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