X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?p=elogind.git;a=blobdiff_plain;f=udev_libc_wrapper.h;h=6f8c8f24c7eb4693792f941c97bcbe1338d7cdf7;hp=2df2f4429dbbc1d8f5ad73069b20df2a5cd4a92e;hb=daff48063eb2cb547d24a547684543ee991f0815;hpb=57e1a2770c4d85edd377488906c437f6d1e9b369 diff --git a/udev_libc_wrapper.h b/udev_libc_wrapper.h index 2df2f4429..6f8c8f24c 100644 --- a/udev_libc_wrapper.h +++ b/udev_libc_wrapper.h @@ -22,7 +22,53 @@ #ifndef _UDEV_LIBC_WRAPPER_H_ #define _UDEV_LIBC_WRAPPER_H_ +#include +#include +#include + +/* needed for our signal handlers to work */ +#undef asmlinkage +#ifdef __i386__ +#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 __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 + +/* 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); +extern size_t strlcpy(char *dst, const char *src, size_t size); +extern size_t strlcat(char *dst, const char *src, size_t size); + #endif /* _UDEV_LIBC_WRAPPER_H_ */