1#ifndef _SYS_INOTIFY_H
2#define _SYS_INOTIFY_H
3
4#ifdef __cplusplus
5extern "C" {
6#endif
7
8#include <stdint.h>
9#include <fcntl.h>
10
11struct inotify_event {
12	int wd;
13	uint32_t mask, cookie, len;
14	char name[];
15};
16
17#define IN_CLOEXEC O_CLOEXEC
18#define IN_NONBLOCK O_NONBLOCK
19
20#define IN_ACCESS        0x00000001
21#define IN_MODIFY        0x00000002
22#define IN_ATTRIB        0x00000004
23#define IN_CLOSE_WRITE   0x00000008
24#define IN_CLOSE_NOWRITE 0x00000010
25#define IN_CLOSE         (IN_CLOSE_WRITE | IN_CLOSE_NOWRITE)
26#define IN_OPEN          0x00000020
27#define IN_MOVED_FROM    0x00000040
28#define IN_MOVED_TO      0x00000080
29#define IN_MOVE          (IN_MOVED_FROM | IN_MOVED_TO)
30#define IN_CREATE        0x00000100
31#define IN_DELETE        0x00000200
32#define IN_DELETE_SELF   0x00000400
33#define IN_MOVE_SELF     0x00000800
34#define IN_ALL_EVENTS    0x00000fff
35
36#define IN_UNMOUNT       0x00002000
37#define IN_Q_OVERFLOW    0x00004000
38#define IN_IGNORED       0x00008000
39
40#define IN_ONLYDIR       0x01000000
41#define IN_DONT_FOLLOW   0x02000000
42#define IN_EXCL_UNLINK   0x04000000
43#define IN_MASK_ADD      0x20000000
44
45#define IN_ISDIR         0x40000000
46#define IN_ONESHOT       0x80000000
47
48int inotify_init(void);
49int inotify_init1(int);
50int inotify_add_watch(int, const char *, uint32_t);
51int inotify_rm_watch(int, int);
52
53#ifdef __cplusplus
54}
55#endif
56
57#endif
58