chiark / gitweb /
use DESTDIR on uninstall, no need to pass prefix to submake
[elogind.git] / udev_libc_wrapper.h
index 65f4e01c2340077b9ce9b876905e546f0d90da87..6f8c8f24c7eb4693792f941c97bcbe1338d7cdf7 100644 (file)
 #ifndef _UDEV_LIBC_WRAPPER_H_
 #define _UDEV_LIBC_WRAPPER_H_
 
-#ifdef asmlinkage
-# undef asmlinkage
-#endif
+#include <string.h>
+#include <unistd.h>
+#include <linux/types.h>
+
+/* needed for our signal handlers to work */
+#undef asmlinkage
 #ifdef __i386__
-# define asmlinkage    __attribute__((regparm(0)))
+#define asmlinkage     __attribute__((regparm(0)))
+#else
+#define asmlinkage
+#endif
+
+/* headers are broken on some lazy platforms */
+#ifndef __FD_SET
+#define __FD_SET(d, set) ((set)->fds_bits[__FDELT(d)] |= __FDMASK(d))
+#endif
+#ifndef __FD_CLR
+#define __FD_CLR(d, set) ((set)->fds_bits[__FDELT(d)] &= ~__FDMASK(d))
 #endif
-#ifndef asmlinkage
-# define asmlinkage
+#ifndef __FD_ISSET
+#define __FD_ISSET(d, set) (((set)->fds_bits[__FDELT(d)] & __FDMASK(d)) != 0)
+#endif
+#ifndef __FD_ZERO
+#define __FD_ZERO(set) ((void) memset ((void*) (set), 0, sizeof (fd_set)))
 #endif
 
-#include <string.h>
+/* missing in some lazy distros */
+#ifndef NETLINK_KOBJECT_UEVENT
+#define NETLINK_KOBJECT_UEVENT 15
+#endif
+
+#ifndef SO_RCVBUFFORCE
+#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);
 extern gid_t lookup_group(const char *group);
 
-#ifndef strlcat
 extern size_t strlcpy(char *dst, const char *src, size_t size);
-#endif
-
-#ifndef strlcat
 extern size_t strlcat(char *dst, const char *src, size_t size);
-#endif
 
 #endif /* _UDEV_LIBC_WRAPPER_H_ */