chiark / gitweb /
092 release
[elogind.git] / udev_libc_wrapper.h
index 9a8b26a2b38725787ed070cd6f4869ae22078959..ed8070947fbe4a77cec2f10105b45b3fd28cc8c0 100644 (file)
 # define __NR_inotify_init     290
 # define __NR_inotify_add_watch        291
 # define __NR_inotify_rm_watch 292
+#elif defined (__hppa__)
+# define __NR_inotify_init      269
+# define __NR_inotify_add_watch 270
+# define __NR_inotify_rm_watch  271
+#elif defined (__mips__)
+# include <sgidefs.h>
+# if _MIPS_SIM == _MIPS_SIM_ABI32
+#  define __NR_Linux             4000
+#  define __NR_inotify_init      (__NR_Linux + 284)
+#  define __NR_inotify_add_watch (__NR_Linux + 285)
+#  define __NR_inotify_rm_watch  (__NR_Linux + 286)
+# elif _MIPS_SIM == _MIPS_SIM_ABI64
+#  define __NR_Linux             5000
+#  define __NR_inotify_init      (__NR_Linux + 243)
+#  define __NR_inotify_add_watch (__NR_Linux + 244)
+#  define __NR_inotify_rm_watch  (__NR_Linux + 245)
+# elif _MIPS_SIM == _MIPS_SIM_NABI32
+#  define __NR_Linux             6000
+#  define __NR_inotify_init      (__NR_Linux + 247)
+#  define __NR_inotify_add_watch (__NR_Linux + 248)
+#  define __NR_inotify_rm_watch  (__NR_Linux + 249)
+# endif
 #else
-# error "Unsupported architecture!"
+#warning "inotify unsupported on this architecture!"
 #endif
 #endif /* __NR_inotify_init */
 
+/* dummy if we don't have the syscalls defined */
+#ifndef __NR_inotify_init
+static inline int inotify_init(void)
+{
+       return -1;
+}
+
+static inline int inotify_add_watch(int fd, const char *name, uint32_t mask)
+{
+       return -1;
+}
+#else
 /* needed until /usr/include/sys/inotify.h is working */
 #ifdef __KLIBC__
 #include <sys/inotify.h>
@@ -83,13 +117,17 @@ static inline int inotify_add_watch(int fd, const char *name, uint32_t mask)
 {
        return syscall(__NR_inotify_add_watch, fd, name, mask);
 }
+#endif /* __KLIBC__ */
+#endif /* __NR_inotify_init */
+
+#ifndef IN_CREATE
 #define IN_CREATE              0x00000100      /* Subfile was created */
 #define IN_MOVED_FROM          0x00000040      /* File was moved from X */
 #define IN_MOVED_TO            0x00000080      /* File was moved to Y */
 #define IN_DELETE              0x00000200      /* Subfile was deleted */
 #define IN_CLOSE_WRITE         0x00000008      /* Writtable file was closed */
 #define IN_MOVE                        (IN_MOVED_FROM | IN_MOVED_TO) /* moves */
-#endif /* __KLIBC__ */
+#endif /* IN_CREATE */
 
 /* needed for our signal handlers to work */
 #undef asmlinkage
@@ -119,15 +157,11 @@ static inline int inotify_add_watch(int fd, const char *name, uint32_t mask)
 #endif
 
 #ifndef SO_RCVBUFFORCE
+#if defined(__alpha__) || defined(__hppa__) || defined(__sparc__) || defined(__sparc_v9__)
+#define SO_RCVBUFFORCE 0x100b
+#else
 #define SO_RCVBUFFORCE 33
 #endif
-
-#ifdef __KLIBC__
-static inline int clearenv(void)
-{
-       environ[0] = NULL;
-       return 0;
-}
 #endif
 
 extern uid_t lookup_user(const char *user);