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) { .... revents = epi->ffd.file->f_op->poll(epi->ffd.file, NULL); //in here, revents = POLLIN | POLLRDNORM; revents &= epi->event.events; // i wonder where changes the epi->event.events?? } So, the revents comes from epi->event.events. But, i wonder where changes the epi->event.events? i find nothing from lxr.linux.no by search "event.evnets" as keyword. Can anybody help me? -- To unsubscribe from this list: send an email with "unsubscribe kernelnewbies" to ecartis@xxxxxxxxxxxx Please read the FAQ at http://kernelnewbies.org/FAQ