diff options
author | Rich Felker <dalias@aerifal.cx> | 2011-02-19 02:52:29 -0500 |
---|---|---|
committer | Rich Felker <dalias@aerifal.cx> | 2011-02-19 02:52:29 -0500 |
commit | 095a5ae6f2466cdd457cdf3e9925b1fbd302c9be (patch) | |
tree | 0318183c342722060cd7e9b532148a784eb428b6 | |
parent | cc2a8228fa0b35c9aee69efa7ac657bb7a4704f9 (diff) | |
download | musl-095a5ae6f2466cdd457cdf3e9925b1fbd302c9be.tar.gz musl-095a5ae6f2466cdd457cdf3e9925b1fbd302c9be.tar.xz musl-095a5ae6f2466cdd457cdf3e9925b1fbd302c9be.zip |
add syscall wrappers for inotify
-rw-r--r-- | include/sys/inotify.h | 55 | ||||
-rw-r--r-- | src/linux/inotify_add_watch.c | 7 | ||||
-rw-r--r-- | src/linux/inotify_init.c | 7 | ||||
-rw-r--r-- | src/linux/inotify_init1.c | 7 | ||||
-rw-r--r-- | src/linux/inotify_rm_watch.c | 7 |
5 files changed, 83 insertions, 0 deletions
diff --git a/include/sys/inotify.h b/include/sys/inotify.h new file mode 100644 index 00000000..59644ef3 --- /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 <stdint.h> + +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 00000000..9973f161 --- /dev/null +++ b/src/linux/inotify_add_watch.c @@ -0,0 +1,7 @@ +#include <sys/inotify.h> +#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 00000000..d378460d --- /dev/null +++ b/src/linux/inotify_init.c @@ -0,0 +1,7 @@ +#include <sys/inotify.h> +#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 00000000..5fad0946 --- /dev/null +++ b/src/linux/inotify_init1.c @@ -0,0 +1,7 @@ +#include <sys/inotify.h> +#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 00000000..0772d719 --- /dev/null +++ b/src/linux/inotify_rm_watch.c @@ -0,0 +1,7 @@ +#include <sys/inotify.h> +#include "syscall.h" + +int inotify_rm_watch(int fd, uint32_t wd) +{ + return syscall2(__NR_inotify_rm_watch, fd, wd); +} |