- struct _kqueue_scan {
- kevent_callback_t call; /* per-event callback */
- kqueue_continue_t cont; /* whole call continuation */
- filt_process_data_t process_data; /* needed for filter processing */
- uint64_t deadline; /* computed deadline for operation */
- void *data; /* caller's private data */
- } uus_kqueue_scan; /* saved state for kevent_scan() */
-
- struct _kevent {
- struct _kqueue_scan scan; /* space for the generic data */
- struct fileproc *fp; /* fileproc we hold iocount on */
- int fd; /* fd for fileproc (if held) */
- int eventcount; /* user-level event count */
- int eventout; /* number of events output */
- struct filt_process_s process_data; /* space for process data fed thru */
- int32_t *retval; /* place to store return val */
- user_addr_t eventlist; /* user-level event list address */
- uint64_t data_available; /* [user/kernel] addr of in/out size */
- } uus_kevent; /* saved state for kevent() */