1 --- cronie-1.4.1/src/cron.h~ 2009-06-01 10:46:08.000000000 +0300
2 +++ cronie-1.4.1/src/cron.h 2009-08-13 13:32:40.909067818 +0300
7 +#ifdef SYS_INOTIFY_H_EXISTS_AND_WORKS
8 #include <sys/inotify.h>
10 +#include "inotify-nosys.h"
14 #include "pathnames.h"
15 --- cronie-1.4.1/configure.ac~ 2009-08-13 13:56:08.000000000 +0300
16 +++ cronie-1.4.1/configure.ac 2009-08-13 13:56:11.295316050 +0300
27 [AS_HELP_STRING([--with-inotify], [ Enable inotify support])],
28 [ if test "x$withval" != "xno" ; then
29 + AC_MSG_CHECKING([whether sys/inotify.h actually works])
31 + AC_LANG_PROGRAM([[#include <sys/inotify.h>]],
32 + [[return (-1 == inotify_init());]]
34 + [AC_MSG_RESULT([yup]); AC_DEFINE([SYS_INOTIFY_H_EXISTS_AND_WORKS],[1],[sys/inotify.h exists and works correctly])],
35 + [AC_MSG_RESULT([nope, using own inotify headers])]
38 AC_DEFINE(WITH_INOTIFY,1,[Define if you want inotify support.])
39 - AC_CHECK_HEADER([sys/inotify.h], , AC_MSG_ERROR(Inotify support requires sys/inotify.h header))
40 - AC_CHECK_FUNCS(inotify_init inotify_add_watch)
44 --- /dev/null 2008-11-04 20:33:38.146691408 +0200
45 +++ cronie-1.4.1/src/inotify-nosys.h 2007-12-30 10:50:22.000000000 +0200
48 + * This header is used if <sys/inotify.h> cannot be found.
50 + * Inode based directory notification for Linux
52 + * Copyright (C) 2005 John McCutchan
55 +#ifndef _LINUX_INOTIFY_H
56 +#define _LINUX_INOTIFY_H
59 +#include <sys/syscall.h>
63 + * struct inotify_event - structure read from the inotify device for each event
65 + * When you are watching a directory, you will receive the filename for events
66 + * such as IN_CREATE, IN_DELETE, IN_OPEN, IN_CLOSE, ..., relative to the wd.
68 +struct inotify_event {
69 + int wd; /* watch descriptor */
70 + uint32_t mask; /* watch mask */
71 + uint32_t cookie; /* cookie to synchronize two events */
72 + uint32_t len; /* length (including nulls) of name */
73 + char name __flexarr; /* stub for possible name */
76 +/* the following are legal, implemented events that user-space can watch for */
77 +#define IN_ACCESS 0x00000001 /* File was accessed */
78 +#define IN_MODIFY 0x00000002 /* File was modified */
79 +#define IN_ATTRIB 0x00000004 /* Metadata changed */
80 +#define IN_CLOSE_WRITE 0x00000008 /* Writtable file was closed */
81 +#define IN_CLOSE_NOWRITE 0x00000010 /* Unwrittable file closed */
82 +#define IN_OPEN 0x00000020 /* File was opened */
83 +#define IN_MOVED_FROM 0x00000040 /* File was moved from X */
84 +#define IN_MOVED_TO 0x00000080 /* File was moved to Y */
85 +#define IN_CREATE 0x00000100 /* Subfile was created */
86 +#define IN_DELETE 0x00000200 /* Subfile was deleted */
87 +#define IN_DELETE_SELF 0x00000400 /* Self was deleted */
88 +#define IN_MOVE_SELF 0x00000800 /* Self was moved */
90 +/* the following are legal events. they are sent as needed to any watch */
91 +#define IN_UNMOUNT 0x00002000 /* Backing fs was unmounted */
92 +#define IN_Q_OVERFLOW 0x00004000 /* Event queued overflowed */
93 +#define IN_IGNORED 0x00008000 /* File was ignored */
96 +#define IN_CLOSE (IN_CLOSE_WRITE | IN_CLOSE_NOWRITE) /* close */
97 +#define IN_MOVE (IN_MOVED_FROM | IN_MOVED_TO) /* moves */
100 +#define IN_ONLYDIR 0x01000000 /* only watch the path if it is a directory */
101 +#define IN_DONT_FOLLOW 0x02000000 /* don't follow a sym link */
102 +#define IN_MASK_ADD 0x20000000 /* add to the mask of an already existing watch */
103 +#define IN_ISDIR 0x40000000 /* event occurred against dir */
104 +#define IN_ONESHOT 0x80000000 /* only send event once */
107 + * All of the events - we build the list by hand so that we can add flags in
108 + * the future and not break backward compatibility. Apps will get only the
109 + * events that they originally wanted. Be sure to add new events here!
111 +#define IN_ALL_EVENTS (IN_ACCESS | IN_MODIFY | IN_ATTRIB | IN_CLOSE_WRITE | \
112 + IN_CLOSE_NOWRITE | IN_OPEN | IN_MOVED_FROM | \
113 + IN_MOVED_TO | IN_DELETE | IN_CREATE | IN_DELETE_SELF | \
116 +#if defined (__alpha__)
117 +# define __NR_inotify_init 444
118 +# define __NR_inotify_add_watch 445
119 +# define __NR_inotify_rm_watch 446
121 +#elif defined (__arm__)
122 +# define __NR_inotify_init (__NR_SYSCALL_BASE+316)
123 +# define __NR_inotify_add_watch (__NR_SYSCALL_BASE+317)
124 +# define __NR_inotify_rm_watch (__NR_SYSCALL_BASE+318)
126 +#elif defined (__frv__)
127 +# define __NR_inotify_init 291
128 +# define __NR_inotify_add_watch 292
129 +# define __NR_inotify_rm_watch 293
131 +#elif defined(__i386__)
132 +# define __NR_inotify_init 291
133 +# define __NR_inotify_add_watch 292
134 +# define __NR_inotify_rm_watch 293
136 +#elif defined (__ia64__)
137 +# define __NR_inotify_init 1277
138 +# define __NR_inotify_add_watch 1278
139 +# define __NR_inotify_rm_watch 1279
141 +#elif defined (__mips__)
142 +# if _MIPS_SIM == _MIPS_SIM_ABI32
143 +# define __NR_inotify_init (__NR_Linux + 284)
144 +# define __NR_inotify_add_watch (__NR_Linux + 285)
145 +# define __NR_inotify_rm_watch (__NR_Linux + 286)
147 +# if _MIPS_SIM == _MIPS_SIM_ABI64
148 +# define __NR_inotify_init (__NR_Linux + 243)
149 +# define __NR_inotify_add_watch (__NR_Linux + 243)
150 +# define __NR_inotify_rm_watch (__NR_Linux + 243)
152 +# if _MIPS_SIM == _MIPS_SIM_NABI32
153 +# define __NR_inotify_init (__NR_Linux + 247)
154 +# define __NR_inotify_add_watch (__NR_Linux + 248)
155 +# define __NR_inotify_rm_watch (__NR_Linux + 249)
158 +#elif defined(__parisc__)
159 +# define __NR_inotify_init (__NR_Linux + 269)
160 +# define __NR_inotify_add_watch (__NR_Linux + 270)
161 +# define __NR_inotify_rm_watch (__NR_Linux + 271)
163 +#elif defined(__powerpc__) || defined(__powerpc64__)
164 +# define __NR_inotify_init 275
165 +# define __NR_inotify_add_watch 276
166 +# define __NR_inotify_rm_watch 277
168 +#elif defined (__s390__)
169 +# define __NR_inotify_init 284
170 +# define __NR_inotify_add_watch 285
171 +# define __NR_inotify_rm_watch 286
173 +#elif defined (__sh__)
174 +# define __NR_inotify_init 290
175 +# define __NR_inotify_add_watch 291
176 +# define __NR_inotify_rm_watch 292
178 +#elif defined (__sh64__)
179 +# define __NR_inotify_init 318
180 +# define __NR_inotify_add_watch 319
181 +# define __NR_inotify_rm_watch 320
183 +#elif defined (__sparc__) || defined (__sparc64__)
184 +# define __NR_inotify_init 151
185 +# define __NR_inotify_add_watch 152
186 +# define __NR_inotify_rm_watch 156
188 +#elif defined(__x86_64__)
189 +# define __NR_inotify_init 253
190 +# define __NR_inotify_add_watch 254
191 +# define __NR_inotify_rm_watch 255
194 +# error "Unsupported architecture!"
197 +static inline int inotify_init (void)
199 + return syscall (__NR_inotify_init);
202 +static inline int inotify_add_watch (int fd, const char *name, uint32_t mask)
204 + return syscall (__NR_inotify_add_watch, fd, name, mask);
207 +static inline int inotify_rm_watch (int fd, uint32_t wd)
209 + return syscall (__NR_inotify_rm_watch, fd, wd);
213 +#endif /* _LINUX_INOTIFY_H */