diff --git a/include/sys/inotify.h b/include/sys/inotify.h new file mode 100644 index 0000000000000000000000000000000000000000..59644ef37e6d8b19394e68e03f3d3cfe5cb29c66 --- /dev/null +++ b/include/sys/inotify.h @@ -0,0 +1,55 @@ +#ifndef _SYS_INOTIFY_H +#define _SYS_INOTIFY_H + +#ifdef __cplusplus +extern "C" { +#endif + +#include + +struct inotify_event { + int we; + uint32_t mask, cookie, len; + char name[]; +}; + +#define IN_CLOEXEC 020000000 +#define IN_NONBLOCK 04000 + +#define IN_ACCESS 0x00000001 +#define IN_MODIFY 0x00000002 +#define IN_ATTRIB 0x00000004 +#define IN_CLOSE_WRITE 0x00000008 +#define IN_CLOSE_NOWRITE 0x00000010 +#define IN_CLOSE (IN_CLOSE_WRITE | IN_CLOSE_NOWRITE) +#define IN_OPEN 0x00000020 +#define IN_MOVED_FROM 0x00000040 +#define IN_MOVED_TO 0x00000080 +#define IN_MOVE (IN_MOVED_FROM | IN_MOVED_TO) +#define IN_CREATE 0x00000100 +#define IN_DELETE 0x00000200 +#define IN_DELETE_SELF 0x00000400 +#define IN_MOVE_SELF 0x00000800 +#define IN_ALL_EVENTS 0x00000fff + +#define IN_UNMOUNT 0x00002000 +#define IN_Q_OVERFLOW 0x00004000 +#define IN_IGNORED 0x00008000 + +#define IN_ONLYDIR 0x01000000 +#define IN_DONT_FOLLOW 0x02000000 +#define IN_MASK_ADD 0x20000000 + +#define IN_ISDIR 0x40000000 +#define IN_ONESHOT 0x80000000 + +int inotify_init(void); +int inotify_init1(int); +int inotify_add_watch(int, const char *, uint32_t); +int inotify_rm_watch(int, uint32_t); + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/src/linux/inotify_add_watch.c b/src/linux/inotify_add_watch.c new file mode 100644 index 0000000000000000000000000000000000000000..9973f161f75d66362263fe348911b6e6d71609d5 --- /dev/null +++ b/src/linux/inotify_add_watch.c @@ -0,0 +1,7 @@ +#include +#include "syscall.h" + +int inotify_add_watch(int fd, const char *pathname, uint32_t mask) +{ + return syscall3(__NR_inotify_add_watch, fd, (long)pathname, mask); +} diff --git a/src/linux/inotify_init.c b/src/linux/inotify_init.c new file mode 100644 index 0000000000000000000000000000000000000000..d378460d7fdf384a0f3e1876a37db885d3427ce6 --- /dev/null +++ b/src/linux/inotify_init.c @@ -0,0 +1,7 @@ +#include +#include "syscall.h" + +int inotify_init() +{ + return syscall0(__NR_inotify_init); +} diff --git a/src/linux/inotify_init1.c b/src/linux/inotify_init1.c new file mode 100644 index 0000000000000000000000000000000000000000..5fad09468dcc99e4424215a03f7a871fe1df0477 --- /dev/null +++ b/src/linux/inotify_init1.c @@ -0,0 +1,7 @@ +#include +#include "syscall.h" + +int inotify_init1(int flags) +{ + return syscall1(__NR_inotify_init1, flags); +} diff --git a/src/linux/inotify_rm_watch.c b/src/linux/inotify_rm_watch.c new file mode 100644 index 0000000000000000000000000000000000000000..0772d71931fb2409cd2451f309a7320ef6dc1a8b --- /dev/null +++ b/src/linux/inotify_rm_watch.c @@ -0,0 +1,7 @@ +#include +#include "syscall.h" + +int inotify_rm_watch(int fd, uint32_t wd) +{ + return syscall2(__NR_inotify_rm_watch, fd, wd); +}