[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-ID: <15da71430807281854v3e7c2536hd4e709a9a5dc7bb6@mail.gmail.com>
Date: Tue, 29 Jul 2008 09:54:35 +0800
From: cpusoft <cpusoft@...il.com>
To: netdev@...r.kernel.org
Subject: where change events in epoll_wait(), and who notify an epoll event?
hi, group
i have question in epoll functions.
as we know, user can use poll_wait() as follows:
for(;;) {
nfds = epoll_wait(kdpfd, events, maxevents, -1);
for(n = 0; n < nfds; ++n) {
do_my_function(events[n].data.fd);
}
}
that means we can get the new events from the parameter events from
epoll_wait().
Then i search the kernel, and find the new events comes from
ep_send_events() finally , through sys_poll_wait() and ep_poll().
the ep_send_evnets() shows as follows:
static int ep_send_events(struct eventpoll *ep, struct epoll_event
__user *events, int maxevents)
{
....
//in here, revents = POLLIN | POLLRDNORM;
revents = epi->ffd.file->f_op->poll(epi->ffd.file, NULL);
// i wonder where changes the epi->event.events??
revents &= epi->event.events;
}
So, the revents comes from epi->event.events.
But, i wonder where changes the epi->event.events? and who notify the
epoll event ?
i find nothing from lxr.linux.no by search "event.evnets" as keyword.
Can anybody help me?
--
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Powered by blists - more mailing lists