1
1
mirror of https://github.com/systemd/systemd-stable.git synced 2024-12-23 17:34:00 +03:00

Merge pull request #11063 from yuwata/update-missing-v3

missing: split missing.h into small pieces
This commit is contained in:
Yu Watanabe 2018-12-06 16:54:27 +01:00 committed by GitHub
commit f0a43eb821
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
59 changed files with 415 additions and 362 deletions

View File

@ -2,6 +2,7 @@
#pragma once #pragma once
#include <assert.h> #include <assert.h>
#include <errno.h>
#include <inttypes.h> #include <inttypes.h>
#include <stdbool.h> #include <stdbool.h>
#include <sys/param.h> #include <sys/param.h>

View File

@ -91,23 +91,33 @@ basic_sources = files('''
memfd-util.h memfd-util.h
mempool.c mempool.c
mempool.h mempool.h
missing_audit.h
missing_btrfs.h missing_btrfs.h
missing_btrfs_tree.h missing_btrfs_tree.h
missing_capability.h missing_capability.h
missing_ethtool.h missing_ethtool.h
missing_fcntl.h
missing_fib_rules.h missing_fib_rules.h
missing_fou.h missing_fou.h
missing_fs.h
missing_if_bridge.h missing_if_bridge.h
missing_if_link.h missing_if_link.h
missing_if_tunnel.h missing_if_tunnel.h
missing_input.h missing_input.h
missing_keyctl.h missing_keyctl.h
missing_magic.h missing_magic.h
missing_mman.h
missing_network.h missing_network.h
missing_prctl.h missing_prctl.h
missing_random.h
missing_resource.h
missing_sched.h
missing_securebits.h missing_securebits.h
missing_socket.h
missing_stat.h missing_stat.h
missing_stdlib.h
missing_syscall.h missing_syscall.h
missing_timerfd.h
missing_type.h missing_type.h
missing_vxcan.h missing_vxcan.h
mkdir-label.c mkdir-label.c

View File

@ -3,325 +3,22 @@
/* Missing glibc definitions to access certain kernel APIs */ /* Missing glibc definitions to access certain kernel APIs */
#include <errno.h> #include "missing_audit.h"
#include <fcntl.h>
#include <inttypes.h>
#include <linux/audit.h>
#include <linux/falloc.h>
#include <linux/oom.h>
#include <net/ethernet.h>
#include <stdlib.h>
#include <sys/resource.h>
#include <sys/socket.h>
#include <sys/syscall.h>
#include <unistd.h>
#if HAVE_AUDIT
#include <libaudit.h>
#endif
#ifdef ARCH_MIPS
#include <asm/sgidefs.h>
#endif
#if HAVE_LINUX_VM_SOCKETS_H
#include <linux/vm_sockets.h>
#else
#define VMADDR_CID_ANY -1U
struct sockaddr_vm {
unsigned short svm_family;
unsigned short svm_reserved1;
unsigned int svm_port;
unsigned int svm_cid;
unsigned char svm_zero[sizeof(struct sockaddr) -
sizeof(unsigned short) -
sizeof(unsigned short) -
sizeof(unsigned int) -
sizeof(unsigned int)];
};
#endif /* !HAVE_LINUX_VM_SOCKETS_H */
#ifndef RLIMIT_RTTIME
#define RLIMIT_RTTIME 15
#endif
/* If RLIMIT_RTTIME is not defined, then we cannot use RLIMIT_NLIMITS as is */
#define _RLIMIT_MAX (RLIMIT_RTTIME+1 > RLIMIT_NLIMITS ? RLIMIT_RTTIME+1 : RLIMIT_NLIMITS)
#ifndef F_LINUX_SPECIFIC_BASE
#define F_LINUX_SPECIFIC_BASE 1024
#endif
#ifndef F_SETPIPE_SZ
#define F_SETPIPE_SZ (F_LINUX_SPECIFIC_BASE + 7)
#endif
#ifndef F_GETPIPE_SZ
#define F_GETPIPE_SZ (F_LINUX_SPECIFIC_BASE + 8)
#endif
#ifndef F_ADD_SEALS
#define F_ADD_SEALS (F_LINUX_SPECIFIC_BASE + 9)
#define F_GET_SEALS (F_LINUX_SPECIFIC_BASE + 10)
#define F_SEAL_SEAL 0x0001 /* prevent further seals from being set */
#define F_SEAL_SHRINK 0x0002 /* prevent file from shrinking */
#define F_SEAL_GROW 0x0004 /* prevent file from growing */
#define F_SEAL_WRITE 0x0008 /* prevent writes */
#endif
#ifndef F_OFD_GETLK
#define F_OFD_GETLK 36
#define F_OFD_SETLK 37
#define F_OFD_SETLKW 38
#endif
#ifndef MFD_ALLOW_SEALING
#define MFD_ALLOW_SEALING 0x0002U
#endif
#ifndef MFD_CLOEXEC
#define MFD_CLOEXEC 0x0001U
#endif
#ifndef IP_FREEBIND
#define IP_FREEBIND 15
#endif
#ifndef OOM_SCORE_ADJ_MIN
#define OOM_SCORE_ADJ_MIN (-1000)
#endif
#ifndef OOM_SCORE_ADJ_MAX
#define OOM_SCORE_ADJ_MAX 1000
#endif
#ifndef AUDIT_SERVICE_START
#define AUDIT_SERVICE_START 1130 /* Service (daemon) start */
#endif
#ifndef AUDIT_SERVICE_STOP
#define AUDIT_SERVICE_STOP 1131 /* Service (daemon) stop */
#endif
#ifndef TIOCVHANGUP
#define TIOCVHANGUP 0x5437
#endif
#ifndef IP_TRANSPARENT
#define IP_TRANSPARENT 19
#endif
#ifndef SOL_NETLINK
#define SOL_NETLINK 270
#endif
#ifndef NETLINK_LIST_MEMBERSHIPS
#define NETLINK_LIST_MEMBERSHIPS 9
#endif
#ifndef SOL_SCTP
#define SOL_SCTP 132
#endif
#ifndef GRND_NONBLOCK
#define GRND_NONBLOCK 0x0001
#endif
#ifndef GRND_RANDOM
#define GRND_RANDOM 0x0002
#endif
#ifndef FS_NOCOW_FL
#define FS_NOCOW_FL 0x00800000
#endif
#ifndef CLONE_NEWCGROUP
#define CLONE_NEWCGROUP 0x02000000
#endif
#ifndef MS_MOVE
#define MS_MOVE 8192
#endif
#ifndef MS_REC
#define MS_REC 16384
#endif
#ifndef MS_PRIVATE
#define MS_PRIVATE (1<<18)
#endif
#ifndef MS_REC
#define MS_REC (1<<19)
#endif
#ifndef MS_SHARED
#define MS_SHARED (1<<20)
#endif
#ifndef MS_RELATIME
#define MS_RELATIME (1<<21)
#endif
#ifndef MS_KERNMOUNT
#define MS_KERNMOUNT (1<<22)
#endif
#ifndef MS_I_VERSION
#define MS_I_VERSION (1<<23)
#endif
#ifndef MS_STRICTATIME
#define MS_STRICTATIME (1<<24)
#endif
#ifndef MS_LAZYTIME
#define MS_LAZYTIME (1<<25)
#endif
#ifndef SCM_SECURITY
#define SCM_SECURITY 0x03
#endif
#ifndef DM_DEFERRED_REMOVE
#define DM_DEFERRED_REMOVE (1 << 17)
#endif
#ifndef MAX_HANDLE_SZ
#define MAX_HANDLE_SZ 128
#endif
#if ! HAVE_SECURE_GETENV
# if HAVE___SECURE_GETENV
# define secure_getenv __secure_getenv
# else
# error "neither secure_getenv nor __secure_getenv are available"
# endif
#endif
#ifndef CIFS_MAGIC_NUMBER
# define CIFS_MAGIC_NUMBER 0xFF534D42
#endif
#ifndef TFD_TIMER_CANCEL_ON_SET
# define TFD_TIMER_CANCEL_ON_SET (1 << 1)
#endif
#ifndef SO_REUSEPORT
# define SO_REUSEPORT 15
#endif
#ifndef SO_PEERGROUPS
# define SO_PEERGROUPS 59
#endif
#ifndef DRM_IOCTL_SET_MASTER
# define DRM_IOCTL_SET_MASTER _IO('d', 0x1e)
#endif
#ifndef DRM_IOCTL_DROP_MASTER
# define DRM_IOCTL_DROP_MASTER _IO('d', 0x1f)
#endif
/* The precise definition of __O_TMPFILE is arch specific; use the
* values defined by the kernel (note: some are hexa, some are octal,
* duplicated as-is from the kernel definitions):
* - alpha, parisc, sparc: each has a specific value;
* - others: they use the "generic" value.
*/
#ifndef __O_TMPFILE
#if defined(__alpha__)
#define __O_TMPFILE 0100000000
#elif defined(__parisc__) || defined(__hppa__)
#define __O_TMPFILE 0400000000
#elif defined(__sparc__) || defined(__sparc64__)
#define __O_TMPFILE 0x2000000
#else
#define __O_TMPFILE 020000000
#endif
#endif
/* a horrid kludge trying to make sure that this will fail on old kernels */
#ifndef O_TMPFILE
#define O_TMPFILE (__O_TMPFILE | O_DIRECTORY)
#endif
#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
#ifndef MAX_AUDIT_MESSAGE_LENGTH
#define MAX_AUDIT_MESSAGE_LENGTH 8970
#endif
#ifndef AUDIT_NLGRP_MAX
#define AUDIT_NLGRP_READLOG 1
#endif
#ifndef RENAME_NOREPLACE
#define RENAME_NOREPLACE (1 << 0)
#endif
#ifndef KCMP_FILE
#define KCMP_FILE 0
#endif
#ifndef ETHERTYPE_LLDP
#define ETHERTYPE_LLDP 0x88cc
#endif
#ifndef SOL_ALG
#define SOL_ALG 279
#endif
#ifndef AF_VSOCK
#define AF_VSOCK 40
#endif
#ifndef EXT4_IOC_RESIZE_FS
# define EXT4_IOC_RESIZE_FS _IOW('f', 16, __u64)
#endif
#ifndef NS_GET_NSTYPE
#define NS_GET_NSTYPE _IO(0xb7, 0x3)
#endif
#ifndef FALLOC_FL_KEEP_SIZE
#define FALLOC_FL_KEEP_SIZE 0x01
#endif
#ifndef FALLOC_FL_PUNCH_HOLE
#define FALLOC_FL_PUNCH_HOLE 0x02
#endif
#ifndef PF_KTHREAD
#define PF_KTHREAD 0x00200000
#endif
/* The maximum thread/process name length including trailing NUL byte. This mimics the kernel definition of the same
* name, which we need in userspace at various places but is not defined in userspace currently, neither under this
* name nor any other. */
#ifndef TASK_COMM_LEN
#define TASK_COMM_LEN 16
#endif
#include "missing_btrfs_tree.h" #include "missing_btrfs_tree.h"
#include "missing_capability.h" #include "missing_capability.h"
#include "missing_fcntl.h"
#include "missing_fs.h"
#include "missing_input.h" #include "missing_input.h"
#include "missing_magic.h" #include "missing_magic.h"
#include "missing_mman.h"
#include "missing_network.h" #include "missing_network.h"
#include "missing_prctl.h" #include "missing_prctl.h"
#include "missing_random.h"
#include "missing_resource.h"
#include "missing_sched.h"
#include "missing_socket.h"
#include "missing_stdlib.h"
#include "missing_timerfd.h"
#include "missing_type.h" #include "missing_type.h"
#include "missing_syscall.h" #include "missing_syscall.h"

24
src/basic/missing_audit.h Normal file
View File

@ -0,0 +1,24 @@
/* SPDX-License-Identifier: LGPL-2.1+ */
#pragma once
#include <linux/audit.h>
#if HAVE_AUDIT
#include <libaudit.h>
#endif
#ifndef AUDIT_SERVICE_START
#define AUDIT_SERVICE_START 1130 /* Service (daemon) start */
#endif
#ifndef AUDIT_SERVICE_STOP
#define AUDIT_SERVICE_STOP 1131 /* Service (daemon) stop */
#endif
#ifndef MAX_AUDIT_MESSAGE_LENGTH
#define MAX_AUDIT_MESSAGE_LENGTH 8970
#endif
#ifndef AUDIT_NLGRP_MAX
#define AUDIT_NLGRP_READLOG 1
#endif

60
src/basic/missing_fcntl.h Normal file
View File

@ -0,0 +1,60 @@
/* SPDX-License-Identifier: LGPL-2.1+ */
#pragma once
#include <fcntl.h>
#ifndef F_LINUX_SPECIFIC_BASE
#define F_LINUX_SPECIFIC_BASE 1024
#endif
#ifndef F_SETPIPE_SZ
#define F_SETPIPE_SZ (F_LINUX_SPECIFIC_BASE + 7)
#endif
#ifndef F_GETPIPE_SZ
#define F_GETPIPE_SZ (F_LINUX_SPECIFIC_BASE + 8)
#endif
#ifndef F_ADD_SEALS
#define F_ADD_SEALS (F_LINUX_SPECIFIC_BASE + 9)
#define F_GET_SEALS (F_LINUX_SPECIFIC_BASE + 10)
#define F_SEAL_SEAL 0x0001 /* prevent further seals from being set */
#define F_SEAL_SHRINK 0x0002 /* prevent file from shrinking */
#define F_SEAL_GROW 0x0004 /* prevent file from growing */
#define F_SEAL_WRITE 0x0008 /* prevent writes */
#endif
#ifndef F_OFD_GETLK
#define F_OFD_GETLK 36
#define F_OFD_SETLK 37
#define F_OFD_SETLKW 38
#endif
#ifndef MAX_HANDLE_SZ
#define MAX_HANDLE_SZ 128
#endif
/* The precise definition of __O_TMPFILE is arch specific; use the
* values defined by the kernel (note: some are hexa, some are octal,
* duplicated as-is from the kernel definitions):
* - alpha, parisc, sparc: each has a specific value;
* - others: they use the "generic" value.
*/
#ifndef __O_TMPFILE
#if defined(__alpha__)
#define __O_TMPFILE 0100000000
#elif defined(__parisc__) || defined(__hppa__)
#define __O_TMPFILE 0400000000
#elif defined(__sparc__) || defined(__sparc64__)
#define __O_TMPFILE 0x2000000
#else
#define __O_TMPFILE 020000000
#endif
#endif
/* a horrid kludge trying to make sure that this will fail on old kernels */
#ifndef O_TMPFILE
#define O_TMPFILE (__O_TMPFILE | O_DIRECTORY)
#endif

63
src/basic/missing_fs.h Normal file
View File

@ -0,0 +1,63 @@
/* SPDX-License-Identifier: LGPL-2.1+ */
#pragma once
/* linux/fs.h */
#ifndef RENAME_NOREPLACE /* 0a7c3937a1f23f8cb5fc77ae01661e9968a51d0c (3.15) */
#define RENAME_NOREPLACE (1 << 0)
#endif
/* linux/fs.h or sys/mount.h */
#ifndef MS_MOVE
#define MS_MOVE 8192
#endif
#ifndef MS_REC
#define MS_REC 16384
#endif
#ifndef MS_PRIVATE
#define MS_PRIVATE (1<<18)
#endif
#ifndef MS_SLAVE
#define MS_SLAVE (1<<19)
#endif
#ifndef MS_SHARED
#define MS_SHARED (1<<20)
#endif
#ifndef MS_RELATIME
#define MS_RELATIME (1<<21)
#endif
#ifndef MS_KERNMOUNT
#define MS_KERNMOUNT (1<<22)
#endif
#ifndef MS_I_VERSION
#define MS_I_VERSION (1<<23)
#endif
#ifndef MS_STRICTATIME
#define MS_STRICTATIME (1<<24)
#endif
#ifndef MS_LAZYTIME
#define MS_LAZYTIME (1<<25)
#endif
/* Not exposed yet. Defined at fs/ext4/ext4.h */
#ifndef EXT4_IOC_RESIZE_FS
#define EXT4_IOC_RESIZE_FS _IOW('f', 16, __u64)
#endif
/* Not exposed yet. Defined at fs/cifs/cifsglob.h */
#ifndef CIFS_MAGIC_NUMBER
#define CIFS_MAGIC_NUMBER 0xFF534D42
#endif
/* linux/nsfs.h */
#ifndef NS_GET_NSTYPE /* d95fa3c76a66b6d76b1e109ea505c55e66360f3c (4.11) */
#define NS_GET_NSTYPE _IO(0xb7, 0x3)
#endif

View File

@ -2,6 +2,7 @@
#pragma once #pragma once
#include <linux/input.h> #include <linux/input.h>
#include <linux/types.h>
/* linux@c7dc65737c9a607d3e6f8478659876074ad129b8 (3.12) */ /* linux@c7dc65737c9a607d3e6f8478659876074ad129b8 (3.12) */
#ifndef EVIOCREVOKE #ifndef EVIOCREVOKE
@ -11,9 +12,9 @@
/* linux@06a16293f71927f756dcf37558a79c0b05a91641 (4.4) */ /* linux@06a16293f71927f756dcf37558a79c0b05a91641 (4.4) */
#ifndef EVIOCSMASK #ifndef EVIOCSMASK
struct input_mask { struct input_mask {
uint32_t type; __u32 type;
uint32_t codes_size; __u32 codes_size;
uint64_t codes_ptr; __u64 codes_ptr;
}; };
#define EVIOCGMASK _IOR('E', 0x92, struct input_mask) #define EVIOCGMASK _IOR('E', 0x92, struct input_mask)

12
src/basic/missing_mman.h Normal file
View File

@ -0,0 +1,12 @@
/* SPDX-License-Identifier: LGPL-2.1+ */
#pragma once
#include <sys/mman.h>
#ifndef MFD_ALLOW_SEALING
#define MFD_ALLOW_SEALING 0x0002U
#endif
#ifndef MFD_CLOEXEC
#define MFD_CLOEXEC 0x0001U
#endif

View File

@ -3,6 +3,7 @@
#include <linux/loop.h> #include <linux/loop.h>
#include <linux/rtnetlink.h> #include <linux/rtnetlink.h>
#include <net/ethernet.h>
#include "missing_ethtool.h" #include "missing_ethtool.h"
#include "missing_fib_rules.h" #include "missing_fib_rules.h"
@ -116,6 +117,11 @@
#define NET_NAME_RENAMED 4 #define NET_NAME_RENAMED 4
#endif #endif
/* netlink.h */
#ifndef NETLINK_LIST_MEMBERSHIPS /* b42be38b2778eda2237fc759e55e3b698b05b315 (4.2) */
#define NETLINK_LIST_MEMBERSHIPS 9
#endif
/* rtnetlink.h */ /* rtnetlink.h */
#ifndef RTA_PREF #ifndef RTA_PREF
#define RTA_PREF 20 #define RTA_PREF 20
@ -128,3 +134,17 @@
#ifndef RTA_EXPIRES #ifndef RTA_EXPIRES
#define RTA_EXPIRES 23 #define RTA_EXPIRES 23
#endif #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
/* Not exposed yet. Similar values are defined in net/ethernet.h */
#ifndef ETHERTYPE_LLDP
#define ETHERTYPE_LLDP 0x88cc
#endif

View File

@ -0,0 +1,16 @@
/* SPDX-License-Identifier: LGPL-2.1+ */
#pragma once
#if USE_SYS_RANDOM_H
# include <sys/random.h>
#else
# include <linux/random.h>
#endif
#ifndef GRND_NONBLOCK
#define GRND_NONBLOCK 0x0001
#endif
#ifndef GRND_RANDOM
#define GRND_RANDOM 0x0002
#endif

View File

@ -0,0 +1,11 @@
/* SPDX-License-Identifier: LGPL-2.1+ */
#pragma once
#include <sys/resource.h>
#ifndef RLIMIT_RTTIME
#define RLIMIT_RTTIME 15
#endif
/* If RLIMIT_RTTIME is not defined, then we cannot use RLIMIT_NLIMITS as is */
#define _RLIMIT_MAX (RLIMIT_RTTIME+1 > RLIMIT_NLIMITS ? RLIMIT_RTTIME+1 : RLIMIT_NLIMITS)

21
src/basic/missing_sched.h Normal file
View File

@ -0,0 +1,21 @@
/* SPDX-License-Identifier: LGPL-2.1+ */
#pragma once
#include <sched.h>
#ifndef CLONE_NEWCGROUP
#define CLONE_NEWCGROUP 0x02000000
#endif
/* Not exposed yet. Defined at include/linux/sched.h */
#ifndef PF_KTHREAD
#define PF_KTHREAD 0x00200000
#endif
/* The maximum thread/process name length including trailing NUL byte. This mimics the kernel definition of the same
* name, which we need in userspace at various places but is not defined in userspace currently, neither under this
* name nor any other. */
/* Not exposed yet. Defined at include/linux/sched.h */
#ifndef TASK_COMM_LEN
#define TASK_COMM_LEN 16
#endif

View File

@ -0,0 +1,60 @@
/* SPDX-License-Identifier: LGPL-2.1+ */
#pragma once
#include <sys/socket.h>
#if HAVE_LINUX_VM_SOCKETS_H
#include <linux/vm_sockets.h>
#else
#define VMADDR_CID_ANY -1U
struct sockaddr_vm {
unsigned short svm_family;
unsigned short svm_reserved1;
unsigned int svm_port;
unsigned int svm_cid;
unsigned char svm_zero[sizeof(struct sockaddr) -
sizeof(unsigned short) -
sizeof(unsigned short) -
sizeof(unsigned int) -
sizeof(unsigned int)];
};
#endif /* !HAVE_LINUX_VM_SOCKETS_H */
#ifndef AF_VSOCK
#define AF_VSOCK 40
#endif
#ifndef SO_REUSEPORT
#define SO_REUSEPORT 15
#endif
#ifndef SO_PEERGROUPS
#define SO_PEERGROUPS 59
#endif
#ifndef SOL_NETLINK
#define SOL_NETLINK 270
#endif
#ifndef SOL_ALG
#define SOL_ALG 279
#endif
/* Not exposed yet. Defined in include/linux/socket.h. */
#ifndef SOL_SCTP
#define SOL_SCTP 132
#endif
/* Not exposed yet. Defined in include/linux/socket.h */
#ifndef SCM_SECURITY
#define SCM_SECURITY 0x03
#endif
/* netinet/in.h */
#ifndef IP_FREEBIND
#define IP_FREEBIND 15
#endif
#ifndef IP_TRANSPARENT
#define IP_TRANSPARENT 19
#endif

View File

@ -11,32 +11,32 @@
/* a528d35e8bfcc521d7cb70aaf03e1bd296c8493f (4.11) */ /* a528d35e8bfcc521d7cb70aaf03e1bd296c8493f (4.11) */
#if !HAVE_STRUCT_STATX #if !HAVE_STRUCT_STATX
struct statx_timestamp { struct statx_timestamp {
int64_t tv_sec; __s64 tv_sec;
uint32_t tv_nsec; __u32 tv_nsec;
uint32_t __reserved; __s32 __reserved;
}; };
struct statx { struct statx {
uint32_t stx_mask; __u32 stx_mask;
uint32_t stx_blksize; __u32 stx_blksize;
uint64_t stx_attributes; __u64 stx_attributes;
uint32_t stx_nlink; __u32 stx_nlink;
uint32_t stx_uid; __u32 stx_uid;
uint32_t stx_gid; __u32 stx_gid;
uint16_t stx_mode; __u16 stx_mode;
uint16_t __spare0[1]; __u16 __spare0[1];
uint64_t stx_ino; __u64 stx_ino;
uint64_t stx_size; __u64 stx_size;
uint64_t stx_blocks; __u64 stx_blocks;
uint64_t stx_attributes_mask; __u64 stx_attributes_mask;
struct statx_timestamp stx_atime; struct statx_timestamp stx_atime;
struct statx_timestamp stx_btime; struct statx_timestamp stx_btime;
struct statx_timestamp stx_ctime; struct statx_timestamp stx_ctime;
struct statx_timestamp stx_mtime; struct statx_timestamp stx_mtime;
uint32_t stx_rdev_major; __u32 stx_rdev_major;
uint32_t stx_rdev_minor; __u32 stx_rdev_minor;
uint32_t stx_dev_major; __u32 stx_dev_major;
uint32_t stx_dev_minor; __u32 stx_dev_minor;
uint64_t __spare2[14]; __u64 __spare2[14];
}; };
#endif #endif

View File

@ -0,0 +1,13 @@
/* SPDX-License-Identifier: LGPL-2.1+ */
#pragma once
#include <stdlib.h>
/* stdlib.h */
#if !HAVE_SECURE_GETENV
# if HAVE___SECURE_GETENV
# define secure_getenv __secure_getenv
# else
# error "neither secure_getenv nor __secure_getenv are available"
# endif
#endif

View File

@ -6,10 +6,20 @@
#include <fcntl.h> #include <fcntl.h>
#include <sys/syscall.h> #include <sys/syscall.h>
#include <sys/types.h> #include <sys/types.h>
#include <unistd.h>
#ifdef ARCH_MIPS
#include <asm/sgidefs.h>
#endif
#include "missing_keyctl.h" #include "missing_keyctl.h"
#include "missing_stat.h" #include "missing_stat.h"
/* linux/kcmp.h */
#ifndef KCMP_FILE /* 3f4994cfc15f38a3159c6e3a4b3ab2e1481a6b02 (3.19) */
#define KCMP_FILE 0
#endif
#if !HAVE_PIVOT_ROOT #if !HAVE_PIVOT_ROOT
static inline int missing_pivot_root(const char *new_root, const char *put_old) { static inline int missing_pivot_root(const char *new_root, const char *put_old) {
return syscall(__NR_pivot_root, new_root, put_old); return syscall(__NR_pivot_root, new_root, put_old);
@ -257,7 +267,7 @@ static inline int missing_kcmp(pid_t pid1, pid_t pid2, int type, unsigned long i
/* ======================================================================= */ /* ======================================================================= */
#if !HAVE_KEYCTL #if !HAVE_KEYCTL
static inline long missing_keyctl(int cmd, unsigned long arg2, unsigned long arg3, unsigned long arg4,unsigned long arg5) { static inline long missing_keyctl(int cmd, unsigned long arg2, unsigned long arg3, unsigned long arg4, unsigned long arg5) {
# ifdef __NR_keyctl # ifdef __NR_keyctl
return syscall(__NR_keyctl, cmd, arg2, arg3, arg4, arg5); return syscall(__NR_keyctl, cmd, arg2, arg3, arg4, arg5);
# else # else

View File

@ -0,0 +1,8 @@
/* SPDX-License-Identifier: LGPL-2.1+ */
#pragma once
#include <sys/timerfd.h>
#ifndef TFD_TIMER_CANCEL_ON_SET
#define TFD_TIMER_CANCEL_ON_SET (1 << 1)
#endif

View File

@ -2,6 +2,7 @@
#include <errno.h> #include <errno.h>
#include <inttypes.h> #include <inttypes.h>
#include <linux/oom.h>
#include <locale.h> #include <locale.h>
#include <stdio.h> #include <stdio.h>
#include <stdlib.h> #include <stdlib.h>

View File

@ -7,7 +7,6 @@
#include <elf.h> #include <elf.h>
#include <errno.h> #include <errno.h>
#include <fcntl.h> #include <fcntl.h>
#include <linux/random.h>
#include <stdbool.h> #include <stdbool.h>
#include <stdint.h> #include <stdint.h>
#include <stdlib.h> #include <stdlib.h>

View File

@ -1,6 +1,10 @@
/* SPDX-License-Identifier: LGPL-2.1+ */ /* SPDX-License-Identifier: LGPL-2.1+ */
#pragma once #pragma once
#include <inttypes.h>
#include <linux/netlink.h>
#include <linux/if_infiniband.h>
#include <linux/if_packet.h>
#include <netinet/ether.h> #include <netinet/ether.h>
#include <netinet/in.h> #include <netinet/in.h>
#include <stdbool.h> #include <stdbool.h>
@ -8,13 +12,10 @@
#include <sys/socket.h> #include <sys/socket.h>
#include <sys/types.h> #include <sys/types.h>
#include <sys/un.h> #include <sys/un.h>
#include <linux/netlink.h>
#include <linux/if_infiniband.h>
#include <linux/if_packet.h>
#include "macro.h" #include "macro.h"
#include "missing.h" #include "missing_socket.h"
#include "util.h" #include "sparse-endian.h"
union sockaddr_union { union sockaddr_union {
/* The minimal, abstract version */ /* The minimal, abstract version */

View File

@ -20,7 +20,7 @@
#include "io-util.h" #include "io-util.h"
#include "log.h" #include "log.h"
#include "macro.h" #include "macro.h"
#include "missing.h" #include "missing_timerfd.h"
#include "parse-util.h" #include "parse-util.h"
#include "path-util.h" #include "path-util.h"
#include "process-util.h" #include "process-util.h"

View File

@ -20,6 +20,7 @@
#include "bpf-program.h" #include "bpf-program.h"
#include "fd-util.h" #include "fd-util.h"
#include "ip-address-access.h" #include "ip-address-access.h"
#include "missing_syscall.h"
#include "unit.h" #include "unit.h"
enum { enum {

View File

@ -16,7 +16,7 @@ typedef struct Manager Manager;
#include "cgroup-util.h" #include "cgroup-util.h"
#include "fdset.h" #include "fdset.h"
#include "list.h" #include "list.h"
#include "missing.h" #include "missing_resource.h"
#include "namespace.h" #include "namespace.h"
#include "nsflags.h" #include "nsflags.h"

View File

@ -1,7 +1,8 @@
/* SPDX-License-Identifier: LGPL-2.1+ */ /* SPDX-License-Identifier: LGPL-2.1+ */
#include <netinet/icmp6.h>
#include <arpa/inet.h> #include <arpa/inet.h>
#include <netinet/icmp6.h>
#include <unistd.h>
#include "alloc-util.h" #include "alloc-util.h"
#include "icmp6-util.h" #include "icmp6-util.h"

View File

@ -2,6 +2,7 @@
#include <arpa/inet.h> #include <arpa/inet.h>
#include <linux/sockios.h> #include <linux/sockios.h>
#include <sys/ioctl.h>
#include "sd-lldp.h" #include "sd-lldp.h"

View File

@ -20,6 +20,7 @@
#include "macro.h" #include "macro.h"
#include "socket-util.h" #include "socket-util.h"
#include "tests.h" #include "tests.h"
#include "util.h"
#include "virt.h" #include "virt.h"
static struct ether_addr mac_addr = { static struct ether_addr mac_addr = {

View File

@ -1,5 +1,7 @@
/* SPDX-License-Identifier: LGPL-2.1+ */ /* SPDX-License-Identifier: LGPL-2.1+ */
#include <sys/time.h>
#include "alloc-util.h" #include "alloc-util.h"
#include "bus-dump.h" #include "bus-dump.h"
#include "bus-internal.h" #include "bus-internal.h"

View File

@ -9,6 +9,7 @@
#include "bus-slot.h" #include "bus-slot.h"
#include "bus-type.h" #include "bus-type.h"
#include "bus-util.h" #include "bus-util.h"
#include "missing_capability.h"
#include "set.h" #include "set.h"
#include "string-util.h" #include "string-util.h"
#include "strv.h" #include "strv.h"

View File

@ -10,6 +10,7 @@
#include "bus-util.h" #include "bus-util.h"
#include "def.h" #include "def.h"
#include "fd-util.h" #include "fd-util.h"
#include "missing_resource.h"
#include "time-util.h" #include "time-util.h"
#include "util.h" #include "util.h"

View File

@ -2,6 +2,7 @@
#include <ctype.h> #include <ctype.h>
#include <net/if.h> #include <net/if.h>
#include <sys/ioctl.h>
#include <sys/types.h> #include <sys/types.h>
#include "sd-device.h" #include "sd-device.h"

View File

@ -14,6 +14,7 @@
#include "macro.h" #include "macro.h"
#include "socket-util.h" #include "socket-util.h"
#include "string-util.h" #include "string-util.h"
#include "time-util.h"
#define TEST_TIMEOUT_USEC (20*USEC_PER_SEC) #define TEST_TIMEOUT_USEC (20*USEC_PER_SEC)

View File

@ -3,9 +3,13 @@
#include <fcntl.h> #include <fcntl.h>
#include <linux/input.h> #include <linux/input.h>
#include <string.h> #include <string.h>
#include <stdint.h>
#include <sys/ioctl.h> #include <sys/ioctl.h>
#include <sys/types.h> #include <sys/types.h>
/* Old drm.h may needs to be included after stdint.h and sys/types.h */
#include <drm/drm.h>
#include "sd-device.h" #include "sd-device.h"
#include "alloc-util.h" #include "alloc-util.h"

View File

@ -15,6 +15,7 @@
#include "io-util.h" #include "io-util.h"
#include "loop-util.h" #include "loop-util.h"
#include "machine-image.h" #include "machine-image.h"
#include "missing_capability.h"
#include "mount-util.h" #include "mount-util.h"
#include "process-util.h" #include "process-util.h"
#include "raw-clone.h" #include "raw-clone.h"

View File

@ -27,6 +27,7 @@
#include "local-addresses.h" #include "local-addresses.h"
#include "machine-dbus.h" #include "machine-dbus.h"
#include "machine.h" #include "machine.h"
#include "missing_capability.h"
#include "mkdir.h" #include "mkdir.h"
#include "os-util.h" #include "os-util.h"
#include "path-util.h" #include "path-util.h"

View File

@ -21,6 +21,7 @@
#include "machine-image.h" #include "machine-image.h"
#include "machine-pool.h" #include "machine-pool.h"
#include "machined.h" #include "machined.h"
#include "missing_capability.h"
#include "path-util.h" #include "path-util.h"
#include "process-util.h" #include "process-util.h"
#include "stdio-util.h" #include "stdio-util.h"

View File

@ -6,7 +6,7 @@
#endif #endif
#include "in-addr-util.h" #include "in-addr-util.h"
#include "missing.h" #include "missing_fou.h"
#include "netdev/netdev.h" #include "netdev/netdev.h"
typedef enum FooOverUDPEncapType { typedef enum FooOverUDPEncapType {

View File

@ -3,7 +3,7 @@
#include <linux/if_link.h> #include <linux/if_link.h>
#include "missing.h" #include "missing_if_link.h"
#include "netdev/netdev.h" #include "netdev/netdev.h"
typedef enum IPVlanMode { typedef enum IPVlanMode {

View File

@ -13,6 +13,7 @@
#include "env-file.h" #include "env-file.h"
#include "fd-util.h" #include "fd-util.h"
#include "fileio.h" #include "fileio.h"
#include "missing_network.h"
#include "netlink-util.h" #include "netlink-util.h"
#include "network-internal.h" #include "network-internal.h"
#include "networkd-ipv6-proxy-ndp.h" #include "networkd-ipv6-proxy-ndp.h"

View File

@ -8,6 +8,7 @@
#include "env-file.h" #include "env-file.h"
#include "fd-util.h" #include "fd-util.h"
#include "hostname-util.h" #include "hostname-util.h"
#include "missing_network.h"
#include "networkd-lldp-tx.h" #include "networkd-lldp-tx.h"
#include "networkd-manager.h" #include "networkd-manager.h"
#include "parse-util.h" #include "parse-util.h"

View File

@ -11,6 +11,7 @@
#include "alloc-util.h" #include "alloc-util.h"
#include "ether-addr-util.h" #include "ether-addr-util.h"
#include "lockfile-util.h" #include "lockfile-util.h"
#include "missing_network.h"
#include "netlink-util.h" #include "netlink-util.h"
#include "nspawn-network.h" #include "nspawn-network.h"
#include "siphash24.h" #include "siphash24.h"

View File

@ -8,7 +8,7 @@
#include "conf-parser.h" #include "conf-parser.h"
#include "macro.h" #include "macro.h"
#include "missing.h" #include "missing_resource.h"
#include "nspawn-expose-ports.h" #include "nspawn-expose-ports.h"
#include "nspawn-mount.h" #include "nspawn-mount.h"

View File

@ -6,6 +6,7 @@
#include <errno.h> #include <errno.h>
#include <getopt.h> #include <getopt.h>
#include <grp.h> #include <grp.h>
#include <linux/fs.h>
#include <linux/loop.h> #include <linux/loop.h>
#include <pwd.h> #include <pwd.h>
#include <sched.h> #include <sched.h>
@ -17,7 +18,6 @@
#include <stdlib.h> #include <stdlib.h>
#include <string.h> #include <string.h>
#include <sys/file.h> #include <sys/file.h>
#include <sys/mount.h>
#include <sys/personality.h> #include <sys/personality.h>
#include <sys/prctl.h> #include <sys/prctl.h>
#include <sys/types.h> #include <sys/types.h>

View File

@ -7,6 +7,7 @@
#include "fd-util.h" #include "fd-util.h"
#include "io-util.h" #include "io-util.h"
#include "machine-image.h" #include "machine-image.h"
#include "missing_capability.h"
#include "portable.h" #include "portable.h"
#include "portabled-bus.h" #include "portabled-bus.h"
#include "portabled-image-bus.h" #include "portabled-image-bus.h"

View File

@ -8,6 +8,7 @@
#include "fileio.h" #include "fileio.h"
#include "io-util.h" #include "io-util.h"
#include "machine-image.h" #include "machine-image.h"
#include "missing_capability.h"
#include "portable.h" #include "portable.h"
#include "portabled-bus.h" #include "portabled-bus.h"
#include "portabled-image-bus.h" #include "portabled-image-bus.h"

View File

@ -16,7 +16,7 @@
#include "gcrypt-util.h" #include "gcrypt-util.h"
#include "in-addr-util.h" #include "in-addr-util.h"
#include "main-func.h" #include "main-func.h"
#include "missing.h" #include "missing_network.h"
#include "netlink-util.h" #include "netlink-util.h"
#include "pager.h" #include "pager.h"
#include "parse-util.h" #include "parse-util.h"

View File

@ -4,6 +4,7 @@
#include "bus-common-errors.h" #include "bus-common-errors.h"
#include "bus-util.h" #include "bus-util.h"
#include "dns-domain.h" #include "dns-domain.h"
#include "missing_capability.h"
#include "resolved-bus.h" #include "resolved-bus.h"
#include "resolved-def.h" #include "resolved-def.h"
#include "resolved-dns-synthesize.h" #include "resolved-dns-synthesize.h"

View File

@ -1,6 +1,7 @@
/* SPDX-License-Identifier: LGPL-2.1+ */ /* SPDX-License-Identifier: LGPL-2.1+ */
#include "fd-util.h" #include "fd-util.h"
#include "missing_network.h"
#include "resolved-dns-stub.h" #include "resolved-dns-stub.h"
#include "socket-util.h" #include "socket-util.h"

View File

@ -3,6 +3,7 @@
#include "alloc-util.h" #include "alloc-util.h"
#include "hostname-util.h" #include "hostname-util.h"
#include "local-addresses.h" #include "local-addresses.h"
#include "missing_network.h"
#include "resolved-dns-synthesize.h" #include "resolved-dns-synthesize.h"
int dns_synthesize_ifindex(int ifindex) { int dns_synthesize_ifindex(int ifindex) {

View File

@ -1,6 +1,7 @@
#include "alloc-util.h" #include "alloc-util.h"
#include "bus-util.h" #include "bus-util.h"
#include "missing_capability.h"
#include "resolved-dnssd.h" #include "resolved-dnssd.h"
#include "resolved-dnssd-bus.h" #include "resolved-dnssd-bus.h"
#include "resolved-link.h" #include "resolved-link.h"

View File

@ -17,6 +17,7 @@
#include "fileio.h" #include "fileio.h"
#include "hostname-util.h" #include "hostname-util.h"
#include "io-util.h" #include "io-util.h"
#include "missing_network.h"
#include "netlink-util.h" #include "netlink-util.h"
#include "network-internal.h" #include "network-internal.h"
#include "ordered-set.h" #include "ordered-set.h"

View File

@ -18,6 +18,7 @@
#include "ip-protocol-list.h" #include "ip-protocol-list.h"
#include "list.h" #include "list.h"
#include "locale-util.h" #include "locale-util.h"
#include "missing_fs.h"
#include "mountpoint-util.h" #include "mountpoint-util.h"
#include "nsflags.h" #include "nsflags.h"
#include "parse-util.h" #include "parse-util.h"

View File

@ -18,9 +18,11 @@
#include "fs-util.h" #include "fs-util.h"
#include "log.h" #include "log.h"
#include "macro.h" #include "macro.h"
#include "missing.h"
#include "parse-util.h" #include "parse-util.h"
#include "path-util.h" #include "path-util.h"
#include "process-util.h" #include "process-util.h"
#include "rlimit-util.h"
#include "signal-util.h" #include "signal-util.h"
#include "socket-util.h" #include "socket-util.h"
#include "string-util.h" #include "string-util.h"
@ -28,7 +30,6 @@
#include "syslog-util.h" #include "syslog-util.h"
#include "time-util.h" #include "time-util.h"
#include "utf8.h" #include "utf8.h"
#include "rlimit-util.h"
int config_item_table_lookup( int config_item_table_lookup(
const void *table, const void *table,

View File

@ -1,11 +1,6 @@
/* SPDX-License-Identifier: LGPL-2.1+ */ /* SPDX-License-Identifier: LGPL-2.1+ */
#pragma once #pragma once
#include <stddef.h>
#include "macro.h"
#include "missing.h"
typedef struct LockFile { typedef struct LockFile {
char *path; char *path;
int fd; int fd;

View File

@ -7,6 +7,7 @@
#include <stdlib.h> #include <stdlib.h>
#include <string.h> #include <string.h>
#include <sys/file.h> #include <sys/file.h>
#include <sys/ioctl.h>
#include <sys/stat.h> #include <sys/stat.h>
#include <unistd.h> #include <unistd.h>
#include <linux/fs.h> #include <linux/fs.h>

View File

@ -1,6 +1,6 @@
/* SPDX-License-Identifier: LGPL-2.1+ */ /* SPDX-License-Identifier: LGPL-2.1+ */
#include <sched.h> #include <errno.h>
#include "alloc-util.h" #include "alloc-util.h"
#include "extract-word.h" #include "extract-word.h"

View File

@ -1,9 +1,7 @@
/* SPDX-License-Identifier: LGPL-2.1+ */ /* SPDX-License-Identifier: LGPL-2.1+ */
#pragma once #pragma once
#include <sched.h> #include "missing_sched.h"
#include "missing.h"
/* The combination of all namespace flags defined by the kernel. The right type for this isn't clear. setns() and /* The combination of all namespace flags defined by the kernel. The right type for this isn't clear. setns() and
* unshare() expect these flags to be passed as (signed) "int", while clone() wants them as "unsigned long". The latter * unshare() expect these flags to be passed as (signed) "int", while clone() wants them as "unsigned long". The latter

View File

@ -13,6 +13,7 @@
#include "io-util.h" #include "io-util.h"
#include "log.h" #include "log.h"
#include "macro.h" #include "macro.h"
#include "missing_network.h"
#include "process-util.h" #include "process-util.h"
#include "socket-util.h" #include "socket-util.h"
#include "string-util.h" #include "string-util.h"

View File

@ -5,7 +5,7 @@
#include <linux/ethtool.h> #include <linux/ethtool.h>
#include "conf-parser.h" #include "conf-parser.h"
#include "missing.h" #include "missing_network.h"
struct link_config; struct link_config;

View File

@ -24,6 +24,7 @@
#include "socket-util.h" #include "socket-util.h"
#include "strxcpyx.h" #include "strxcpyx.h"
#include "udev-ctrl.h" #include "udev-ctrl.h"
#include "util.h"
/* wire protocol magic must match */ /* wire protocol magic must match */
#define UDEV_CTRL_MAGIC 0xdead1dea #define UDEV_CTRL_MAGIC 0xdead1dea