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_PROCDESC = -8,
16     EVFILT_FS = -9,
17     EVFILT_LIO = -10,
18     EVFILT_USER = -11,
19     EVFILT_SENDFILE = -12,
20     EVFILT_SYSCOUNT = 12,
21 }
22 
23 bitflags! {
24     pub struct EventFlag: c_ushort {
25         const EV_ADD          = 0x0001;
26         const EV_DELETE       = 0x0002;
27         const EV_ENABLE       = 0x0004;
28         const EV_DISABLE      = 0x0008;
29         const EV_FORCEONESHOT = 0x0100;
30         const EV_ONESHOT      = 0x0010;
31         const EV_CLEAR        = 0x0020;
32         const EV_RECEIPT      = 0x0040;
33         const EV_DISPATCH     = 0x0080;
34         const EV_SYSFLAGS     = 0xF000;
35         const EV_DROP         = 0x1000;
36         const EV_FLAG1        = 0x2000;
37         const EV_FLAG2        = 0x4000;
38         const EV_EOF          = 0x8000;
39         const EV_ERROR        = 0x4000;
40     }
41 }
42 
43 bitflags! {
44     pub struct FilterFlag: c_uint {
45         const NOTE_FFNOP                        = 0x00000000;
46         const NOTE_FFAND                        = 0x40000000;
47         const NOTE_FFOR                         = 0x80000000;
48         const NOTE_FFCOPY                       = 0xc0000000;
49         const NOTE_FFCTRLMASK                   = 0xc0000000;
50         const NOTE_FFLAGSMASK                   = 0x00ffffff;
51         const NOTE_TRIGGER                      = 0x01000000;
52 
53         const NOTE_LOWAT                        = 0x00000001;
54         const NOTE_FILE_POLL                    = 0x00000002;
55 
56         const NOTE_DELETE                       = 0x00000001;
57         const NOTE_WRITE                        = 0x00000002;
58         const NOTE_EXTEND                       = 0x00000004;
59         const NOTE_ATTRIB                       = 0x00000008;
60         const NOTE_LINK                         = 0x00000010;
61         const NOTE_RENAME                       = 0x00000020;
62         const NOTE_REVOKE                       = 0x00000040;
63         const NOTE_OPEN                         = 0x00000080;
64         const NOTE_CLOSE                        = 0x00000100;
65         const NOTE_CLOSE_WRITE                  = 0x00000200;
66         const NOTE_READ                         = 0x00000400;
67 
68         const NOTE_EXIT                         = 0x80000000;
69         const NOTE_FORK                         = 0x40000000;
70         const NOTE_EXEC                         = 0x20000000;
71         const NOTE_PCTRLMASK                    = 0xf0000000;
72         const NOTE_PDATAMASK                    = 0x000fffff;
73 
74         const NOTE_TRACK                        = 0x00000001;
75         const NOTE_TRACKERR                     = 0x00000002;
76         const NOTE_CHILD                        = 0x00000004;
77 
78         const NOTE_SECONDS                      = 0x00000001;
79         const NOTE_MSECONDS                     = 0x00000002;
80         const NOTE_USECONDS                     = 0x00000004;
81         const NOTE_NSECONDS                     = 0x00000008;
82     }
83 }
84