mirror of
https://github.com/systemd/systemd.git
synced 2025-03-19 22:50:17 +03:00
missing: add quotactl_fd() wrapper
This commit is contained in:
parent
f91f1eda08
commit
7adafb0832
@ -677,6 +677,7 @@ foreach ident : [
|
||||
['pidfd_spawn', '''#include <spawn.h>'''],
|
||||
['strerrorname_np', '''#include <string.h>'''],
|
||||
['getrandom', '''#include <sys/random.h>'''],
|
||||
['quotactl_fd', '''#include <sys/quota.h>'''],
|
||||
]
|
||||
|
||||
have = cc.has_function(ident[0], prefix : ident[1], args : '-D_GNU_SOURCE')
|
||||
|
@ -685,3 +685,19 @@ int __clone2(int (*fn)(void *), void *stack_base, size_t stack_size, int flags,
|
||||
* at build time) and just define it. Once the kernel drops ia64 support, we can drop this too. */
|
||||
#define HAVE_CLONE 1
|
||||
#endif
|
||||
|
||||
/* ======================================================================= */
|
||||
|
||||
#if !HAVE_QUOTACTL_FD
|
||||
|
||||
static inline int missing_quotactl_fd(int fd, int cmd, int id, void *addr) {
|
||||
#if defined __NR_quotactl_fd
|
||||
return syscall(__NR_quotactl_fd, fd, cmd, id, addr);
|
||||
#else
|
||||
errno = ENOSYS;
|
||||
return -1;
|
||||
#endif
|
||||
}
|
||||
|
||||
# define quotactl_fd missing_quotactl_fd
|
||||
#endif
|
||||
|
@ -1197,3 +1197,71 @@ assert_cc(__NR_statx == systemd_NR_statx);
|
||||
# endif
|
||||
# endif
|
||||
#endif
|
||||
|
||||
#ifndef __IGNORE_quotactl_fd
|
||||
# if defined(__aarch64__)
|
||||
# define systemd_NR_quotactl_fd 443
|
||||
# elif defined(__alpha__)
|
||||
# define systemd_NR_quotactl_fd 553
|
||||
# elif defined(__arc__) || defined(__tilegx__)
|
||||
# define systemd_NR_quotactl_fd 443
|
||||
# elif defined(__arm__)
|
||||
# define systemd_NR_quotactl_fd 443
|
||||
# elif defined(__i386__)
|
||||
# define systemd_NR_quotactl_fd 443
|
||||
# elif defined(__ia64__)
|
||||
# define systemd_NR_quotactl_fd 1467
|
||||
# elif defined(__loongarch_lp64)
|
||||
# define systemd_NR_quotactl_fd 443
|
||||
# elif defined(__m68k__)
|
||||
# define systemd_NR_quotactl_fd 443
|
||||
# elif defined(_MIPS_SIM)
|
||||
# if _MIPS_SIM == _MIPS_SIM_ABI32
|
||||
# define systemd_NR_quotactl_fd 4443
|
||||
# elif _MIPS_SIM == _MIPS_SIM_NABI32
|
||||
# define systemd_NR_quotactl_fd 6443
|
||||
# elif _MIPS_SIM == _MIPS_SIM_ABI64
|
||||
# define systemd_NR_quotactl_fd 5443
|
||||
# else
|
||||
# error "Unknown MIPS ABI"
|
||||
# endif
|
||||
# elif defined(__hppa__)
|
||||
# define systemd_NR_quotactl_fd 443
|
||||
# elif defined(__powerpc__)
|
||||
# define systemd_NR_quotactl_fd 443
|
||||
# elif defined(__riscv)
|
||||
# if __riscv_xlen == 32
|
||||
# define systemd_NR_quotactl_fd 443
|
||||
# elif __riscv_xlen == 64
|
||||
# define systemd_NR_quotactl_fd 443
|
||||
# else
|
||||
# error "Unknown RISC-V ABI"
|
||||
# endif
|
||||
# elif defined(__s390__)
|
||||
# define systemd_NR_quotactl_fd 443
|
||||
# elif defined(__sparc__)
|
||||
# define systemd_NR_quotactl_fd 443
|
||||
# elif defined(__x86_64__)
|
||||
# if defined(__ILP32__)
|
||||
# define systemd_NR_quotactl_fd (443 | /* __X32_SYSCALL_BIT */ 0x40000000)
|
||||
# else
|
||||
# define systemd_NR_quotactl_fd 443
|
||||
# endif
|
||||
# elif !defined(missing_arch_template)
|
||||
# warning "quotactl_fd() syscall number is unknown for your architecture"
|
||||
# endif
|
||||
|
||||
/* may be an (invalid) negative number due to libseccomp, see PR 13319 */
|
||||
# if defined __NR_quotactl_fd && __NR_quotactl_fd >= 0
|
||||
# if defined systemd_NR_quotactl_fd
|
||||
assert_cc(__NR_quotactl_fd == systemd_NR_quotactl_fd);
|
||||
# endif
|
||||
# else
|
||||
# if defined __NR_quotactl_fd
|
||||
# undef __NR_quotactl_fd
|
||||
# endif
|
||||
# if defined systemd_NR_quotactl_fd && systemd_NR_quotactl_fd >= 0
|
||||
# define __NR_quotactl_fd systemd_NR_quotactl_fd
|
||||
# endif
|
||||
# endif
|
||||
#endif
|
||||
|
@ -20,6 +20,7 @@ SYSCALLS = [
|
||||
'pidfd_open',
|
||||
'pidfd_send_signal',
|
||||
'pkey_mprotect',
|
||||
'quotactl_fd',
|
||||
'renameat2',
|
||||
'setns',
|
||||
'statx',
|
||||
|
Loading…
x
Reference in New Issue
Block a user