#ifndef _UDEV_LIBC_WRAPPER_H_
#define _UDEV_LIBC_WRAPPER_H_
+#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
#endif
+/* headers are broken on some lazy platforms */
#ifndef __FD_SET
#define __FD_SET(d, set) ((set)->fds_bits[__FDELT(d)] |= __FDMASK(d))
#endif
#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
+
+#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_ */