From: Alexander Larsson Date: Mon, 21 Jan 2008 10:35:44 +0000 (+0000) Subject: Removed. Removed. Removed the included copies of the inotify headers. We X-Git-Url: http://git.openbox.org/?a=commitdiff_plain;h=d8473705b0b3757dda9976a8d40a638f35f03046;p=dana%2Fcg-glib.git Removed. Removed. Removed the included copies of the inotify headers. We 2008-01-21 Alexander Larsson * inotify/Makefile.am: * inotify/inotify-helper.c: * inotify/inotify-kernel.c: * inotify/inotify-path.c: * inotify/local_inotify.h: Removed. * inotify/local_inotify_syscalls.h: Removed. Removed the included copies of the inotify headers. We now only use the header which exists on modern systems. This fixes problems on ARM and SH5 (#510448) but is also generally much cleaner and future safe. For instance, if other OSes add support for inotify it should "just work". svn path=/trunk/; revision=6338 --- diff --git a/ChangeLog b/ChangeLog index 6c19a163..75b86423 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +2008-01-21 Alexander Larsson + + * configure.in: + Only check for sys/inotify.h (see gio/ChangeLog) + 2008-01-18 16:51:23 Tim Janik * glib/gutils.h: don't define __GNUC_PREREQ which is not in the glib diff --git a/configure.in b/configure.in index b21f1340..f41532e4 100644 --- a/configure.in +++ b/configure.in @@ -1483,10 +1483,6 @@ dnl ***************************** dnl ** Check for inotify (GIO) ** dnl ***************************** inotify_support=no -AC_CHECK_HEADERS([linux/inotify.h], -[ - inotify_support=yes -]) AC_CHECK_HEADERS([sys/inotify.h], [ inotify_support=yes diff --git a/gio/ChangeLog b/gio/ChangeLog index f5ddeae0..5b37988c 100644 --- a/gio/ChangeLog +++ b/gio/ChangeLog @@ -1,3 +1,19 @@ +2008-01-21 Alexander Larsson + + * inotify/Makefile.am: + * inotify/inotify-helper.c: + * inotify/inotify-kernel.c: + * inotify/inotify-path.c: + * inotify/local_inotify.h: Removed. + * inotify/local_inotify_syscalls.h: Removed. + Removed the included copies of the inotify + headers. We now only use the + header which exists on modern systems. + This fixes problems on ARM and SH5 (#510448) + but is also generally much cleaner and future + safe. For instance, if other OSes add support + for inotify it should "just work". + 2008-01-20 Matthias Clasen * inotify/*.c: Coding style fixes. diff --git a/gio/inotify/Makefile.am b/gio/inotify/Makefile.am index 62753418..725936b3 100644 --- a/gio/inotify/Makefile.am +++ b/gio/inotify/Makefile.am @@ -17,8 +17,6 @@ libinotify_la_SOURCES = \ inotify-path.h \ inotify-sub.h \ inotify-helper.h \ - local_inotify.h \ - local_inotify_syscalls.h \ ginotifyfilemonitor.c \ ginotifyfilemonitor.h \ ginotifydirectorymonitor.c \ diff --git a/gio/inotify/inotify-helper.c b/gio/inotify/inotify-helper.c index 34d7f617..39f2feb8 100644 --- a/gio/inotify/inotify-helper.c +++ b/gio/inotify/inotify-helper.c @@ -29,18 +29,7 @@ #include #include /* Just include the local header to stop all the pain */ -#include "local_inotify.h" -#if 0 -#ifdef HAVE_SYS_INOTIFY_H -/* We don't actually include the libc header, because there has been - * problems with libc versions that was built without inotify support. - * Instead we use the local version. - */ -#include "local_inotify.h" -#elif defined (HAVE_LINUX_INOTIFY_H) -#include -#endif -#endif +#include #include #include #include "inotify-helper.h" diff --git a/gio/inotify/inotify-kernel.c b/gio/inotify/inotify-kernel.c index 4b6381a2..f9861a0b 100644 --- a/gio/inotify/inotify-kernel.c +++ b/gio/inotify/inotify-kernel.c @@ -29,23 +29,7 @@ #include #include #include "inotify-kernel.h" - -/* Just include the local headers to stop all the pain */ -#include "local_inotify.h" -#include "local_inotify_syscalls.h" -#if 0 -#ifdef HAVE_SYS_INOTIFY_H -/* We don't actually include the libc header, because there has been - * problems with libc versions that was built without inotify support. - * Instead we use the local version. - */ -#include "local_inotify.h" -#include "local_inotify_syscalls.h" -#elif defined (HAVE_LINUX_INOTIFY_H) -#include -#include "local_inotify_syscalls.h" -#endif -#endif +#include /* Timings for pairing MOVED_TO / MOVED_FROM events */ #define PROCESS_EVENTS_TIME 1000 /* milliseconds (1 hz) */ diff --git a/gio/inotify/inotify-path.c b/gio/inotify/inotify-path.c index ffdfa81c..c5cfbb8a 100644 --- a/gio/inotify/inotify-path.c +++ b/gio/inotify/inotify-path.c @@ -28,17 +28,7 @@ /* Don't put conflicting kernel types in the global namespace: */ #define __KERNEL_STRICT_NAMES -#include "local_inotify.h" -#if 0 -#ifdef HAVE_SYS_INOTIFY_H -/* We don't actually include the libc header, because there has been - * problems with libc versions that was built without inotify support. - * Instead we use the local version. - */ -#elif defined (HAVE_LINUX_INOTIFY_H) -#include -#endif -#endif +#include #include #include #include "inotify-kernel.h" diff --git a/gio/inotify/local_inotify.h b/gio/inotify/local_inotify.h deleted file mode 100644 index 267c88b5..00000000 --- a/gio/inotify/local_inotify.h +++ /dev/null @@ -1,113 +0,0 @@ -/* - * Inode based directory notification for Linux - * - * Copyright (C) 2005 John McCutchan - */ - -#ifndef _LINUX_INOTIFY_H -#define _LINUX_INOTIFY_H - -#include - -/* - * struct inotify_event - structure read from the inotify device for each event - * - * When you are watching a directory, you will receive the filename for events - * such as IN_CREATE, IN_DELETE, IN_OPEN, IN_CLOSE, ..., relative to the wd. - */ -struct inotify_event { - __s32 wd; /* watch descriptor */ - __u32 mask; /* watch mask */ - __u32 cookie; /* cookie to synchronize two events */ - __u32 len; /* length (including nulls) of name */ - char name[0]; /* stub for possible name */ -}; - -/* the following are legal, implemented events that user-space can watch for */ -#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_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_CREATE 0x00000100 /* Subfile was created */ -#define IN_DELETE 0x00000200 /* Subfile was deleted */ -#define IN_DELETE_SELF 0x00000400 /* Self was deleted */ -#define IN_MOVE_SELF 0x00000800 /* Self was moved */ - -/* the following are legal events. they are sent as needed to any watch */ -#define IN_UNMOUNT 0x00002000 /* Backing fs was unmounted */ -#define IN_Q_OVERFLOW 0x00004000 /* Event queued overflowed */ -#define IN_IGNORED 0x00008000 /* File was ignored */ - -/* helper events */ -#define IN_CLOSE (IN_CLOSE_WRITE | IN_CLOSE_NOWRITE) /* close */ -#define IN_MOVE (IN_MOVED_FROM | IN_MOVED_TO) /* moves */ - -/* special flags */ -#define IN_ONLYDIR 0x01000000 /* only watch the path if it is a directory */ -#define IN_DONT_FOLLOW 0x02000000 /* don't follow a sym link */ -#define IN_MASK_ADD 0x20000000 /* add to the mask of an already existing watch */ -#define IN_ISDIR 0x40000000 /* event occurred against dir */ -#define IN_ONESHOT 0x80000000 /* only send event once */ - -/* - * All of the events - we build the list by hand so that we can add flags in - * the future and not break backward compatibility. Apps will get only the - * events that they originally wanted. Be sure to add new events here! - */ -#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_DELETE | IN_CREATE | IN_DELETE_SELF | \ - IN_MOVE_SELF) - -#ifdef __KERNEL__ - -#include -#include -#include - -#ifdef CONFIG_INOTIFY - -extern void inotify_inode_queue_event(struct inode *, __u32, __u32, - const char *); -extern void inotify_dentry_parent_queue_event(struct dentry *, __u32, __u32, - const char *); -extern void inotify_unmount_inodes(struct list_head *); -extern void inotify_inode_is_dead(struct inode *); -extern u32 inotify_get_cookie(void); - -#else - -static inline void inotify_inode_queue_event(struct inode *inode, - __u32 mask, __u32 cookie, - const char *filename) -{ -} - -static inline void inotify_dentry_parent_queue_event(struct dentry *dentry, - __u32 mask, __u32 cookie, - const char *filename) -{ -} - -static inline void inotify_unmount_inodes(struct list_head *list) -{ -} - -static inline void inotify_inode_is_dead(struct inode *inode) -{ -} - -static inline u32 inotify_get_cookie(void) -{ - return 0; -} - -#endif /* CONFIG_INOTIFY */ - -#endif /* __KERNEL __ */ - -#endif /* _LINUX_INOTIFY_H */ diff --git a/gio/inotify/local_inotify_syscalls.h b/gio/inotify/local_inotify_syscalls.h deleted file mode 100644 index 1821acce..00000000 --- a/gio/inotify/local_inotify_syscalls.h +++ /dev/null @@ -1,85 +0,0 @@ -#ifndef _LINUX_INOTIFY_SYSCALLS_H -#define _LINUX_INOTIFY_SYSCALLS_H - -#include -#include -#include - -#if defined(__i386__) -# define __NR_inotify_init 291 -# define __NR_inotify_add_watch 292 -# define __NR_inotify_rm_watch 293 -#elif defined(__x86_64__) -# define __NR_inotify_init 253 -# define __NR_inotify_add_watch 254 -# define __NR_inotify_rm_watch 255 -#elif defined(__alpha__) -# define __NR_inotify_init 444 -# define __NR_inotify_add_watch 445 -# define __NR_inotify_rm_watch 446 -#elif defined(__ppc__) || defined(__powerpc__) || defined(__powerpc64__) -# define __NR_inotify_init 275 -# define __NR_inotify_add_watch 276 -# define __NR_inotify_rm_watch 277 -#elif defined(__sparc__) || defined (__sparc64__) -# define __NR_inotify_init 151 -# define __NR_inotify_add_watch 152 -# define __NR_inotify_rm_watch 156 -#elif defined (__ia64__) -# define __NR_inotify_init 1277 -# define __NR_inotify_add_watch 1278 -# define __NR_inotify_rm_watch 1279 -#elif defined (__s390__) || defined (__s390x__) -# define __NR_inotify_init 284 -# define __NR_inotify_add_watch 285 -# define __NR_inotify_rm_watch 286 -#elif defined (__arm__) -# define __NR_inotify_init 316 -# define __NR_inotify_add_watch 317 -# define __NR_inotify_rm_watch 318 -#elif defined (__SH4__) -# define __NR_inotify_init 290 -# define __NR_inotify_add_watch 291 -# define __NR_inotify_rm_watch 292 -#elif defined (__SH5__) -# define __NR_inotify_init 318 -# define __NR_inotify_add_watch 319 -# define __NR_inotify_rm_watch 320 -#else -# warning "Unsupported architecture" -#endif - -#if defined(__i386__) || defined(__x86_64) || defined(__alpha__) || defined(__ppc__) || defined(__sparc__) || defined(__powerpc__) || defined(__powerpc64__) || defined(__ia64__) || defined(__s390__) -static inline int inotify_init (void) -{ - return syscall (__NR_inotify_init); -} - -static inline int inotify_add_watch (int fd, const char *name, __u32 mask) -{ - return syscall (__NR_inotify_add_watch, fd, name, mask); -} - -static inline int inotify_rm_watch (int fd, __u32 wd) -{ - return syscall (__NR_inotify_rm_watch, fd, wd); -} -#else -static inline int inotify_init (void) -{ - return -1; -} - -static inline int inotify_add_watch (int fd, const char *name, __u32 mask) -{ - return -1; -} - -static inline int inotify_rm_watch (int fd, __u32 wd) -{ - return -1; -} - -#endif - -#endif /* _LINUX_INOTIFY_SYSCALLS_H */