1 use bitflags::bitflags;
2 use libc::{c_uint, c_ushort};
3 
4 #[allow(non_camel_case_types)]
5 #[derive(Clone, Copy, Debug, PartialEq)]
6 #[repr(i16)]
7 pub enum EventFilter {
8     EVFILT_READ = -1,
9     EVFILT_WRITE = -2,
10     EVFILT_AIO = -3,
11     EVFILT_VNODE = -4,
12     EVFILT_PROC = -5,
13     EVFILT_SIGNAL = -6,
14     EVFILT_TIMER = -7,
15     EVFILT_EXCEPT = -8,
16     EVFILT_USER = -9,
17     EVFILT_FS = -10,
18     EVFILT_SYSCOUNT = 10,
19 }
20 
21 bitflags! {
22     pub struct EventFlag: c_ushort {
23         const EV_ADD      = 0x0001;
24         const EV_DELETE   = 0x0002;
25         const EV_ENABLE   = 0x0004;
26         const EV_DISABLE  = 0x0008;
27         const EV_ONESHOT  = 0x0010;
28         const EV_CLEAR    = 0x0020;
29         const EV_RECEIPT  = 0x0040;
30         const EV_DISPATCH = 0x0080;
31         const EV_SYSFLAGS = 0xF000;
32         const EV_FLAG1    = 0x2000;
33         const EV_EOF      = 0x8000;
34         const EV_ERROR    = 0x4000;
35         const EV_NODATA   = 0x1000;
36     }
37 }
38 
39 bitflags! {
40     pub struct FilterFlag: c_uint {
41         const NOTE_FFNOP      = 0x00000000;
42         const NOTE_FFAND      = 0x40000000;
43         const NOTE_FFOR       = 0x80000000;
44         const NOTE_FFCOPY     = 0xc0000000;
45         const NOTE_FFCTRLMASK = 0xc0000000;
46         const NOTE_FFLAGSMASK = 0x00ffffff;
47         const NOTE_TRIGGER    = 0x01000000;
48         const NOTE_LOWAT      = 0x00000001;
49         const NOTE_OOB        = 0x00000002;
50         const NOTE_DELETE     = 0x00000001;
51         const NOTE_WRITE      = 0x00000002;
52         const NOTE_EXTEND     = 0x00000004;
53         const NOTE_ATTRIB     = 0x00000008;
54         const NOTE_LINK       = 0x00000010;
55         const NOTE_RENAME     = 0x00000020;
56         const NOTE_REVOKE     = 0x00000040;
57         const NOTE_EXIT       = 0x80000000;
58         const NOTE_FORK       = 0x40000000;
59         const NOTE_EXEC       = 0x20000000;
60         const NOTE_SIGNAL     = 0x08000000;
61         const NOTE_PCTRLMASK  = 0xf0000000;
62         const NOTE_PDATAMASK  = 0x000fffff;
63         const NOTE_TRACK      = 0x00000001;
64         const NOTE_TRACKERR   = 0x00000002;
65         const NOTE_CHILD      = 0x00000004;
66     }
67 }
68