8 | module System.Linux.Inotify.Flags
11 | import Derive.Prelude
14 | %language ElabReflection
17 | record InotifyFlags where
21 | %runElab derive "InotifyFlags" [Show,Eq,Ord,FromInteger]
24 | Semigroup InotifyFlags where
25 | IF x <+> IF y = IF $
x .|. y
28 | Monoid InotifyFlags where neutral = IF 0
31 | record InotifyMask where
35 | namespace InotifyMask
36 | %runElab derive "InotifyMask" [Show,Eq,Ord,FromInteger]
39 | Semigroup InotifyMask where
40 | IM x <+> IM y = IM $
x .|. y
43 | Monoid InotifyMask where neutral = IM 0
47 | has : InotifyMask -> InotifyMask -> Bool
48 | has (IM x) (IM y) = y == (x .&. y)
52 | IN_NONBLOCK : InotifyFlags
56 | IN_CLOEXEC : InotifyFlags
60 | IN_ACCESS : InotifyMask
64 | IN_ATTRIB : InotifyMask
68 | IN_CLOSE_WRITE : InotifyMask
72 | IN_CLOSE_NOWRITE : InotifyMask
73 | IN_CLOSE_NOWRITE = 16
76 | IN_CREATE : InotifyMask
80 | IN_DELETE : InotifyMask
84 | IN_DELETE_SELF : InotifyMask
85 | IN_DELETE_SELF = 1024
88 | IN_MODIFY : InotifyMask
92 | IN_MOVE_SELF : InotifyMask
96 | IN_MOVED_FROM : InotifyMask
100 | IN_MOVED_TO : InotifyMask
104 | IN_OPEN : InotifyMask
108 | IN_ALL_EVENTS : InotifyMask
109 | IN_ALL_EVENTS = 4095
112 | IN_MOVE : InotifyMask
116 | IN_CLOSE : InotifyMask
120 | IN_DONT_FOLLOW : InotifyMask
121 | IN_DONT_FOLLOW = 33554432
124 | IN_EXCL_UNLINK : InotifyMask
125 | IN_EXCL_UNLINK = 67108864
128 | IN_MASK_ADD : InotifyMask
129 | IN_MASK_ADD = 536870912
132 | IN_ONESHOT : InotifyMask
133 | IN_ONESHOT = -
2147483648
136 | IN_ONLYDIR : InotifyMask
137 | IN_ONLYDIR = 16777216
140 | IN_MASK_CREATE : InotifyMask
141 | IN_MASK_CREATE = 268435456
144 | IN_IGNORED : InotifyMask
148 | IN_ISDIR : InotifyMask
149 | IN_ISDIR = 1073741824
152 | IN_Q_OVERFLOW : InotifyMask
153 | IN_Q_OVERFLOW = 16384
156 | IN_UNMOUNT : InotifyMask