* sysdeps/unix/sysv/linux/Makefile (sysdep_headers): Add
authorUlrich Drepper <drepper@redhat.com>
Wed, 17 Aug 2005 06:17:34 +0000 (06:17 +0000)
committerUlrich Drepper <drepper@redhat.com>
Wed, 17 Aug 2005 06:17:34 +0000 (06:17 +0000)
sys/inotify.h.
* sysdeps/unix/sysv/linux/sys/inotify.h: New file.
* sysdeps/unix/sysv/linux/syscalls.list: Add inotify syscalls.

ChangeLog
sysdeps/unix/sysv/linux/Makefile
sysdeps/unix/sysv/linux/sys/inotify.h [new file with mode: 0644]
sysdeps/unix/sysv/linux/syscalls.list

index 4ef1bed..661d4ed 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,10 @@
 2005-08-16  Ulrich Drepper  <drepper@redhat.com>
 
+       * sysdeps/unix/sysv/linux/Makefile (sysdep_headers): Add
+       sys/inotify.h.
+       * sysdeps/unix/sysv/linux/sys/inotify.h: New file.
+       * sysdeps/unix/sysv/linux/syscalls.list: Add inotify syscalls.
+
        * nscd/cache.c (prune_cache): Add more debug output.  Only for
        debug level 3 and higher and very verbose.
 
index 37be75e..c5e1da0 100644 (file)
@@ -24,7 +24,7 @@ sysdep_headers += sys/mount.h sys/acct.h sys/sysctl.h \
                  sys/quota.h sys/fsuid.h \
                  scsi/sg.h scsi/scsi.h scsi/scsi_ioctl.h sys/pci.h \
                  sys/ultrasound.h sys/raw.h sys/personality.h sys/epoll.h \
-                 bits/a.out.h
+                 bits/a.out.h sys/inotify.h
 
 install-others += $(inst_includedir)/bits/syscall.h
 
diff --git a/sysdeps/unix/sysv/linux/sys/inotify.h b/sysdeps/unix/sysv/linux/sys/inotify.h
new file mode 100644 (file)
index 0000000..eab39b8
--- /dev/null
@@ -0,0 +1,82 @@
+/* Copyright (C) 2005 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, write to the Free
+   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+   02111-1307 USA.  */
+
+#ifndef        _SYS_INOTIFY_H
+#define        _SYS_INOTIFY_H  1
+
+#include <stdint.h>
+
+
+/* Structure describing an inotify event.  */
+struct inotify_event
+{
+  int wd;              /* Watch descriptor.  */
+  uint32_t mask;       /* Watch mask.  */
+  uint32_t cookie;     /* Cookie to synchronize two events.  */
+  uint32_t len;                /* Length (including NULs) of name.  */
+  char name __flexarr; /* Name.  */
+};
+
+
+/* Supported events suitable for MASK parameter of INOTIFY_ADD_WATCH.  */
+#define IN_ACCESS       0x00000001     /* File was accessed.  */
+#define IN_MODIFY       0x00000002     /* File was modified.  */
+#define IN_ATTRIB       0x00000004     /* Metadata changed.  */
+#define IN_CLOSE_WRITE  0x00000008     /* Writtable file was closed.  */
+#define IN_CLOSE_NOWRITE 0x00000010    /* Unwrittable file closed.  */
+#define IN_CLOSE        (IN_CLOSE_WRITE | IN_CLOSE_NOWRITE) /* Close.  */
+#define IN_OPEN                 0x00000020     /* File was opened.  */
+#define IN_MOVED_FROM   0x00000040     /* File was moved from X.  */
+#define IN_MOVED_TO      0x00000080    /* File was moved to Y.  */
+#define IN_MOVE                 (IN_MOVED_FROM | IN_MOVED_TO) /* Moves.  */
+#define IN_CREATE       0x00000100     /* Subfile was created.  */
+#define IN_DELETE       0x00000200     /* Subfile was deleted.  */
+#define IN_DELETE_SELF  0x00000400     /* Self was deleted.  */
+
+/* Events sent by the kernel.  */
+#define IN_UNMOUNT      0x00002000     /* Backing fs was unmounted.  */
+#define IN_Q_OVERFLOW   0x00004000     /* Event queued overflowed.  */
+#define IN_IGNORED      0x00008000     /* File was ignored.  */
+
+/* Special flags.  */
+#define IN_ISDIR        0x40000000     /* Event occurred against dir.  */
+#define IN_ONESHOT      0x80000000     /* Only send event once.  */
+
+/* All events which a program can wait on.  */
+#define IN_ALL_EVENTS   (IN_ACCESS | IN_MODIFY | IN_ATTRIB | IN_CLOSE_WRITE  \
+                         | IN_CLOSE_NOWRITE | IN_OPEN | IN_MOVED_FROM        \
+                         | IN_MOVED_TO | IN_CREATE | IN_DELETE               \
+                         | IN_DELETE_SELF)
+
+
+__BEGIN_DECLS
+
+/* Create and initialize inotify instance.  */
+extern int inotify_init (void) __THROW;
+
+/* Add watch of object NAME to inotify instance FD.  Notify about
+   events specified by MASK.  */
+extern int inotify_add_watch (int __fd, const char *__name, uint32_t __mask)
+  __THROW;
+
+/* Remove the watch specified by WD from the inotify instance FD.  */
+extern int inotify_rm_watch (int __fd, uint32_t __wd) __THROW;
+
+__END_DECLS
+
+#endif /* sys/inotify.h */
index a97305e..3dc8c5e 100644 (file)
@@ -25,6 +25,9 @@ getresuid     -       getresuid       i:ppp   getresuid
 getresgid      -       getresgid       i:ppp   getresgid
 getsid         -       getsid          i:i     getsid
 init_module    EXTRA   init_module     5       init_module
+inotify_add_watch      EXTRA   inotify_add_watch       i:isi   inotify_add_watch
+inotify_init   EXTRA   inotify_init    i:      inotify_init
+inotify_rm_watch       EXTRA   inotify_rm_watch        i:ii    inotify_rm_watch
 ioperm         -       ioperm          i:iii   ioperm
 iopl           -       iopl            i:i     iopl
 keyctl         EXTRA   keyctl          i:iiiii keyctl