X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?p=elogind.git;a=blobdiff_plain;f=src%2Fshared%2Fmissing.h;h=00e02871d2f4e39ae6d880c3bfa8c758c1638f4a;hp=c80ed2ad998fb1b6bc96d969ada20f3d5dd171d4;hb=793062063a27039584e9a6f968007b1e5436fc03;hpb=7965435e588c8d2fb824c5fd4b8c2739bc30acdf diff --git a/src/shared/missing.h b/src/shared/missing.h index c80ed2ad9..00e02871d 100644 --- a/src/shared/missing.h +++ b/src/shared/missing.h @@ -33,7 +33,6 @@ #include #include #include -#include #ifdef HAVE_AUDIT #include @@ -66,25 +65,11 @@ #ifndef F_ADD_SEALS #define F_ADD_SEALS (F_LINUX_SPECIFIC_BASE + 9) -#endif - -#ifndef F_GET_SEALS #define F_GET_SEALS (F_LINUX_SPECIFIC_BASE + 10) -#endif -#ifndef F_SEAL_SEAL #define F_SEAL_SEAL 0x0001 /* prevent further seals from being set */ -#endif - -#ifndef F_SEAL_SHRINK #define F_SEAL_SHRINK 0x0002 /* prevent file from shrinking */ -#endif - -#ifndef F_SEAL_GROW #define F_SEAL_GROW 0x0004 /* prevent file from growing */ -#endif - -#ifndef F_SEAL_WRITE #define F_SEAL_WRITE 0x0008 /* prevent writes */ #endif @@ -130,87 +115,37 @@ static inline int pivot_root(const char *new_root, const char *put_old) { } #endif -#ifdef __x86_64__ -# ifndef __NR_fanotify_init -# define __NR_fanotify_init 300 -# endif -# ifndef __NR_fanotify_mark -# define __NR_fanotify_mark 301 -# endif -# ifndef __NR_memfd_create +#ifndef __NR_memfd_create +# if defined __x86_64__ # define __NR_memfd_create 319 -# endif -#elif defined __arm__ -# ifndef __NR_memfd_create +# elif defined __arm__ # define __NR_memfd_create 385 -# endif -#elif defined _MIPS_SIM -# if _MIPS_SIM == _MIPS_SIM_ABI32 -# ifndef __NR_fanotify_init -# define __NR_fanotify_init 4336 -# endif -# ifndef __NR_fanotify_mark -# define __NR_fanotify_mark 4337 -# endif -# elif _MIPS_SIM == _MIPS_SIM_NABI32 -# ifndef __NR_fanotify_init -# define __NR_fanotify_init 6300 -# endif -# ifndef __NR_fanotify_mark -# define __NR_fanotify_mark 6301 -# endif -# elif _MIPS_SIM == _MIPS_SIM_ABI64 -# ifndef __NR_fanotify_init -# define __NR_fanotify_init 5295 -# endif -# ifndef __NR_fanotify_mark -# define __NR_fanotify_mark 5296 -# endif -# endif -# ifndef __NR_memfd_create +# elif defined _MIPS_SIM # warning "__NR_memfd_create not yet defined for MIPS" # define __NR_memfd_create 0xffffffff -# endif -#else -# ifndef __NR_fanotify_init -# define __NR_fanotify_init 338 -# endif -# ifndef __NR_fanotify_mark -# define __NR_fanotify_mark 339 -# endif -# ifndef __NR_memfd_create +# else # define __NR_memfd_create 356 # endif #endif -#ifndef HAVE_FANOTIFY_INIT -static inline int fanotify_init(unsigned int flags, unsigned int event_f_flags) { - return syscall(__NR_fanotify_init, flags, event_f_flags); +#ifndef HAVE_MEMFD_CREATE +static inline int memfd_create(const char *name, unsigned int flags) { + return syscall(__NR_memfd_create, name, flags); } #endif -#ifndef HAVE_FANOTIFY_MARK -static inline int fanotify_mark(int fanotify_fd, unsigned int flags, uint64_t mask, - int dfd, const char *pathname) { -#if defined _MIPS_SIM && _MIPS_SIM == _MIPS_SIM_ABI32 || defined __powerpc__ && !defined __powerpc64__ \ - || defined __arm__ && !defined __aarch64__ - union { - uint64_t _64; - uint32_t _32[2]; - } _mask; - _mask._64 = mask; - - return syscall(__NR_fanotify_mark, fanotify_fd, flags, - _mask._32[0], _mask._32[1], dfd, pathname); -#else - return syscall(__NR_fanotify_mark, fanotify_fd, flags, mask, dfd, pathname); -#endif -} +#ifndef __NR_getrandom +# if defined __x86_64__ +# define __NR_getrandom 278 +# else +# warning "__NR_getrandom unknown for your architecture" +# define __NR_getrandom 0xffffffff +# endif #endif -#ifndef HAVE_MEMFD_CREATE -static inline int memfd_create(const char *name, uint64_t flags) { - return syscall(__NR_memfd_create, name, flags); +#if !HAVE_DECL_GETRANDOM +static inline int getrandom(void *buffer, size_t count, unsigned flags) { + return syscall(__NR_getrandom, buffer, count, flags); } #endif @@ -485,7 +420,7 @@ static inline int setns(int fd, int nstype) { #define IFLA_BOND_AD_INFO 23 #define __IFLA_BOND_MAX 24 -#define IFLA_BOND_MAX (__IFLA_BOND_MAX - 1) +#define IFLA_BOND_MAX (__IFLA_BOND_MAX - 1) #endif #if !HAVE_DECL_IFLA_VLAN_PROTOCOL @@ -558,6 +493,10 @@ static inline int setns(int fd, int nstype) { #define IPV6_UNICAST_IF 76 #endif +#ifndef IFF_MULTI_QUEUE +#define IFF_MULTI_QUEUE 0x100 +#endif + #ifndef IFF_LOWER_UP #define IFF_LOWER_UP 0x10000 #endif @@ -597,3 +536,12 @@ static inline int setns(int fd, int nstype) { #ifndef BPF_XOR # define BPF_XOR 0xa0 #endif + +/* Note that LOOPBACK_IFINDEX is currently not exported by the + * kernel/glibc, but hardcoded internally by the kernel. However, as + * it is exported to userspace indirectly via rtnetlink and the + * ioctls, and made use of widely we define it here too, in a way that + * is compatible with the kernel's internal definition. */ +#ifndef LOOPBACK_IFINDEX +#define LOOPBACK_IFINDEX 1 +#endif