Changeset View
Changeset View
Standalone View
Standalone View
sys/sys/event.h
Show First 20 Lines • Show All 49 Lines • ▼ Show 20 Lines | |||||
#define EV_SET(kevp_, a, b, c, d, e, f) do { \ | #define EV_SET(kevp_, a, b, c, d, e, f) do { \ | ||||
struct kevent *kevp = (kevp_); \ | struct kevent *kevp = (kevp_); \ | ||||
(kevp)->ident = (a); \ | (kevp)->ident = (a); \ | ||||
(kevp)->filter = (b); \ | (kevp)->filter = (b); \ | ||||
(kevp)->flags = (c); \ | (kevp)->flags = (c); \ | ||||
(kevp)->fflags = (d); \ | (kevp)->fflags = (d); \ | ||||
(kevp)->data = (e); \ | (kevp)->data = (e); \ | ||||
(kevp)->udata = (f); \ | (kevp)->udata = (f); \ | ||||
(kevp)->ext[0] = 0; \ | |||||
(kevp)->ext[1] = 0; \ | |||||
(kevp)->ext[2] = 0; \ | |||||
(kevp)->ext[3] = 0; \ | |||||
} while(0) | } while(0) | ||||
struct kevent { | struct kevent { | ||||
__uintptr_t ident; /* identifier for this event */ | __uintptr_t ident; /* identifier for this event */ | ||||
short filter; /* filter for event */ | short filter; /* filter for event */ | ||||
unsigned short flags; | unsigned short flags; | ||||
unsigned int fflags; | unsigned int fflags; | ||||
__intptr_t data; | __int64_t data; | ||||
void *udata; /* opaque user data identifier */ | void *udata; /* opaque user data identifier */ | ||||
__uint64_t ext[4]; | |||||
}; | }; | ||||
/* actions */ | /* actions */ | ||||
#define EV_ADD 0x0001 /* add event to kq (implies enable) */ | #define EV_ADD 0x0001 /* add event to kq (implies enable) */ | ||||
#define EV_DELETE 0x0002 /* delete event from kq */ | #define EV_DELETE 0x0002 /* delete event from kq */ | ||||
#define EV_ENABLE 0x0004 /* enable event */ | #define EV_ENABLE 0x0004 /* enable event */ | ||||
#define EV_DISABLE 0x0008 /* disable event (not reported) */ | #define EV_DISABLE 0x0008 /* disable event (not reported) */ | ||||
#define EV_FORCEONESHOT 0x0100 /* enable _ONESHOT and force trigger */ | #define EV_FORCEONESHOT 0x0100 /* enable _ONESHOT and force trigger */ | ||||
▲ Show 20 Lines • Show All 69 Lines • ▼ Show 20 Lines | |||||
#define NOTE_TRACKERR 0x00000002 /* could not track child */ | #define NOTE_TRACKERR 0x00000002 /* could not track child */ | ||||
#define NOTE_CHILD 0x00000004 /* am a child process */ | #define NOTE_CHILD 0x00000004 /* am a child process */ | ||||
/* additional flags for EVFILT_TIMER */ | /* additional flags for EVFILT_TIMER */ | ||||
#define NOTE_SECONDS 0x00000001 /* data is seconds */ | #define NOTE_SECONDS 0x00000001 /* data is seconds */ | ||||
#define NOTE_MSECONDS 0x00000002 /* data is milliseconds */ | #define NOTE_MSECONDS 0x00000002 /* data is milliseconds */ | ||||
#define NOTE_USECONDS 0x00000004 /* data is microseconds */ | #define NOTE_USECONDS 0x00000004 /* data is microseconds */ | ||||
#define NOTE_NSECONDS 0x00000008 /* data is nanoseconds */ | #define NOTE_NSECONDS 0x00000008 /* data is nanoseconds */ | ||||
#define NOTE_ABSTIME 0x00000010 /* timeout is absolute */ | |||||
struct knote; | struct knote; | ||||
SLIST_HEAD(klist, knote); | SLIST_HEAD(klist, knote); | ||||
struct kqueue; | struct kqueue; | ||||
TAILQ_HEAD(kqlist, kqueue); | TAILQ_HEAD(kqlist, kqueue); | ||||
struct knlist { | struct knlist { | ||||
struct klist kl_list; | struct klist kl_list; | ||||
void (*kl_lock)(void *); /* lock function */ | void (*kl_lock)(void *); /* lock function */ | ||||
▲ Show 20 Lines • Show All 67 Lines • ▼ Show 20 Lines | |||||
#define KN_DISABLED 0x04 /* event is disabled */ | #define KN_DISABLED 0x04 /* event is disabled */ | ||||
#define KN_DETACHED 0x08 /* knote is detached */ | #define KN_DETACHED 0x08 /* knote is detached */ | ||||
#define KN_MARKER 0x20 /* ignore this knote */ | #define KN_MARKER 0x20 /* ignore this knote */ | ||||
#define KN_KQUEUE 0x40 /* this knote belongs to a kq */ | #define KN_KQUEUE 0x40 /* this knote belongs to a kq */ | ||||
#define KN_HASKQLOCK 0x80 /* for _inevent */ | #define KN_HASKQLOCK 0x80 /* for _inevent */ | ||||
#define KN_SCAN 0x100 /* flux set in kqueue_scan() */ | #define KN_SCAN 0x100 /* flux set in kqueue_scan() */ | ||||
int kn_influx; | int kn_influx; | ||||
int kn_sfflags; /* saved filter flags */ | int kn_sfflags; /* saved filter flags */ | ||||
intptr_t kn_sdata; /* saved data field */ | int64_t kn_sdata; /* saved data field */ | ||||
union { | union { | ||||
struct file *p_fp; /* file data pointer */ | struct file *p_fp; /* file data pointer */ | ||||
struct proc *p_proc; /* proc pointer */ | struct proc *p_proc; /* proc pointer */ | ||||
struct kaiocb *p_aio; /* AIO job pointer */ | struct kaiocb *p_aio; /* AIO job pointer */ | ||||
struct aioliojob *p_lio; /* LIO job pointer */ | struct aioliojob *p_lio; /* LIO job pointer */ | ||||
void *p_v; /* generic other pointer */ | void *p_v; /* generic other pointer */ | ||||
} kn_ptr; | } kn_ptr; | ||||
struct filterops *kn_fop; | struct filterops *kn_fop; | ||||
#define kn_id kn_kevent.ident | #define kn_id kn_kevent.ident | ||||
#define kn_filter kn_kevent.filter | #define kn_filter kn_kevent.filter | ||||
#define kn_flags kn_kevent.flags | #define kn_flags kn_kevent.flags | ||||
#define kn_fflags kn_kevent.fflags | #define kn_fflags kn_kevent.fflags | ||||
#define kn_data kn_kevent.data | #define kn_data kn_kevent.data | ||||
#define kn_fp kn_ptr.p_fp | #define kn_fp kn_ptr.p_fp | ||||
}; | }; | ||||
struct kevent_copyops { | struct kevent_copyops { | ||||
void *arg; | void *arg; | ||||
int (*k_copyout)(void *arg, struct kevent *kevp, int count); | int (*k_copyout)(void *arg, struct kevent *kevp, int count); | ||||
int (*k_copyin)(void *arg, struct kevent *kevp, int count); | int (*k_copyin)(void *arg, struct kevent *kevp, int count); | ||||
size_t kevent_size; | |||||
}; | }; | ||||
struct thread; | struct thread; | ||||
struct proc; | struct proc; | ||||
struct knlist; | struct knlist; | ||||
struct mtx; | struct mtx; | ||||
struct rwlock; | struct rwlock; | ||||
Show All 40 Lines |