Ticket #1845: linux-libc-headers-2.6.12.0-inotify-2.patch

File linux-libc-headers-2.6.12.0-inotify-2.patch, 5.6 KB (added by alexander@…, 18 years ago)

Better patch

  • linux-libc-headers-2.6.12.0

    Submitted By: Alexander E. Patrakov
    Date: 2006-07-30
    Initial Package Version: 2.6.12.0
    Origin: Dan Nicholson, Alexander E. Patrakov
    Upstream Status: Project is dead
    Description: Adds inotify headers and syscalls
    Testcase: dovecot-1.0rc2, ./configure --with-notify=inotify
    
    diff -urN linux-libc-headers-2.6.12.0.orig/include/asm-i386/unistd.h linux-libc-headers-2.6.12.0/include/asm-i386/unistd.h
    old new  
    294294#define __NR_add_key            286
    295295#define __NR_request_key        287
    296296#define __NR_keyctl             288
     297/* #define __NR_ioprio_set      289 */
     298/* #define __NR_ioprio_get      290 */
     299#define __NR_inotify_init       291
     300#define __NR_inotify_add_watch  292
     301#define __NR_inotify_rm_watch   293
    297302
    298 #define NR_syscalls 289
     303#define NR_syscalls 294
    299304
    300305/*
    301306 * user-visible error numbers are in the range -1 - -128: see
  • linux-libc-headers-2.6.12.0

    diff -urN linux-libc-headers-2.6.12.0.orig/include/asm-ppc/unistd.h linux-libc-headers-2.6.12.0/include/asm-ppc/unistd.h
    old new  
    277277#define __NR_request_key        270
    278278#define __NR_keyctl             271
    279279#define __NR_waitid             272
     280/* #define __NR_ioprio_set         273 */
     281/* #define __NR_ioprio_get         274 */
     282#define __NR_inotify_init      275
     283#define __NR_inotify_add_watch 276
     284#define __NR_inotify_rm_watch  277
    280285
    281 #define __NR_syscalls           273
     286#define __NR_syscalls           278
    282287
    283288#define __NR(n) #n
    284289
  • linux-libc-headers-2.6.12.0

    diff -urN linux-libc-headers-2.6.12.0.orig/include/linux/inotify.h linux-libc-headers-2.6.12.0/include/linux/inotify.h
    old new  
     1/*
     2 * Inode based directory notification for Linux
     3 *
     4 * Copyright (C) 2005 John McCutchan
     5 */
     6
     7#ifndef _LINUX_INOTIFY_H
     8#define _LINUX_INOTIFY_H
     9
     10#include <linux/types.h>
     11
     12/*
     13 * struct inotify_event - structure read from the inotify device for each event
     14 *
     15 * When you are watching a directory, you will receive the filename for events
     16 * such as IN_CREATE, IN_DELETE, IN_OPEN, IN_CLOSE, ..., relative to the wd.
     17 */
     18struct inotify_event {
     19        __s32           wd;             /* watch descriptor */
     20        __u32           mask;           /* watch mask */
     21        __u32           cookie;         /* cookie to synchronize two events */
     22        __u32           len;            /* length (including nulls) of name */
     23        char            name[0];        /* stub for possible name */
     24};
     25
     26/* the following are legal, implemented events that user-space can watch for */
     27#define IN_ACCESS               0x00000001      /* File was accessed */
     28#define IN_MODIFY               0x00000002      /* File was modified */
     29#define IN_ATTRIB               0x00000004      /* Metadata changed */
     30#define IN_CLOSE_WRITE          0x00000008      /* Writtable file was closed */
     31#define IN_CLOSE_NOWRITE        0x00000010      /* Unwrittable file closed */
     32#define IN_OPEN                 0x00000020      /* File was opened */
     33#define IN_MOVED_FROM           0x00000040      /* File was moved from X */
     34#define IN_MOVED_TO             0x00000080      /* File was moved to Y */
     35#define IN_CREATE               0x00000100      /* Subfile was created */
     36#define IN_DELETE               0x00000200      /* Subfile was deleted */
     37#define IN_DELETE_SELF          0x00000400      /* Self was deleted */
     38#define IN_MOVE_SELF            0x00000800      /* Self was moved */
     39
     40/* the following are legal events.  they are sent as needed to any watch */
     41#define IN_UNMOUNT              0x00002000      /* Backing fs was unmounted */
     42#define IN_Q_OVERFLOW           0x00004000      /* Event queued overflowed */
     43#define IN_IGNORED              0x00008000      /* File was ignored */
     44
     45/* helper events */
     46#define IN_CLOSE                (IN_CLOSE_WRITE | IN_CLOSE_NOWRITE) /* close */
     47#define IN_MOVE                 (IN_MOVED_FROM | IN_MOVED_TO) /* moves */
     48
     49/* special flags */
     50#define IN_ONLYDIR              0x01000000      /* only watch the path if it is a directory */
     51#define IN_DONT_FOLLOW          0x02000000      /* don't follow a sym link */
     52#define IN_MASK_ADD             0x20000000      /* add to the mask of an already existing watch */
     53#define IN_ISDIR                0x40000000      /* event occurred against dir */
     54#define IN_ONESHOT              0x80000000      /* only send event once */
     55
     56/*
     57 * All of the events - we build the list by hand so that we can add flags in
     58 * the future and not break backward compatibility.  Apps will get only the
     59 * events that they originally wanted.  Be sure to add new events here!
     60 */
     61#define IN_ALL_EVENTS   (IN_ACCESS | IN_MODIFY | IN_ATTRIB | IN_CLOSE_WRITE | \
     62                         IN_CLOSE_NOWRITE | IN_OPEN | IN_MOVED_FROM | \
     63                         IN_MOVED_TO | IN_DELETE | IN_CREATE | IN_DELETE_SELF | \
     64                         IN_MOVE_SELF)
     65
     66
     67#endif  /* _LINUX_INOTIFY_H */
  • linux-libc-headers-2.6.12.0

    diff -urN linux-libc-headers-2.6.12.0.orig/include/sys/inotify.h linux-libc-headers-2.6.12.0/include/sys/inotify.h
    old new  
     1/*
     2 * Inode based directory notification for Linux
     3 *
     4 * Copyright (C) 2005 John McCutchan
     5 */
     6
     7#ifndef _SYS_INOTIFY_H
     8#define _SYS_INOTIFY_H
     9
     10#include <stdint.h>
     11#include <linux/inotify.h>
     12#include <asm/unistd.h>
     13
     14extern long int syscall (long int __sysno, ...) __THROW;
     15
     16static inline int inotify_init(void)
     17{
     18        return syscall(__NR_inotify_init);
     19}
     20       
     21static inline int inotify_add_watch(int fd, const char *name, uint32_t mask)
     22{
     23        return syscall(__NR_inotify_add_watch, fd, name, mask);
     24}
     25
     26static inline int inotify_rm_watch (int fd, uint32_t wd)
     27{
     28        return syscall(__NR_inotify_rm_watch, fd, wd);
     29}
     30               
     31#endif  /* _SYS_INOTIFY_H */