]> git.proxmox.com Git - mirror_lxc.git/blobdiff - src/lxc/utils.h
spelling: allocate
[mirror_lxc.git] / src / lxc / utils.h
index a26366d1cd906e94a7c38ea3527fae8a31d02e52..6314b7985a8477ea77db5a02d9e16470de45aa5e 100644 (file)
 #include "file_utils.h"
 #include "initutils.h"
 #include "macro.h"
+#include "raw_syscalls.h"
 #include "string_utils.h"
 
-#ifdef HAVE_LINUX_MEMFD_H
-#include <linux/memfd.h>
-#endif
-
 /* returns 1 on success, 0 if there were any failures */
 extern int lxc_rmdir_onedev(const char *path, const char *exclude);
 extern int get_u16(unsigned short *val, const char *arg, int base);
@@ -59,189 +56,6 @@ extern char *get_rundir(void);
 #endif
 #endif
 
-#if !defined(__NR_setns) && !defined(__NR_set_ns)
-       #if defined(__x86_64__)
-               #define __NR_setns 308
-       #elif defined(__i386__)
-               #define __NR_setns 346
-       #elif defined(__arm__)
-               #define __NR_setns 375
-       #elif defined(__aarch64__)
-               #define __NR_setns 375
-       #elif defined(__powerpc__)
-               #define __NR_setns 350
-       #elif defined(__s390__)
-               #define __NR_setns 339
-       #endif
-#endif
-
-/* Define setns() if missing from the C library */
-#ifndef HAVE_SETNS
-static inline int setns(int fd, int nstype)
-{
-#ifdef __NR_setns
-       return syscall(__NR_setns, fd, nstype);
-#elif defined(__NR_set_ns)
-       return syscall(__NR_set_ns, fd, nstype);
-#else
-       errno = ENOSYS;
-       return -1;
-#endif
-}
-#endif
-
-/* Define sethostname() if missing from the C library */
-#ifndef HAVE_SETHOSTNAME
-static inline int sethostname(const char *name, size_t len)
-{
-#ifdef __NR_sethostname
-return syscall(__NR_sethostname, name, len);
-#else
-errno = ENOSYS;
-return -1;
-#endif
-}
-#endif
-
-/* Define unshare() if missing from the C library */
-#ifndef HAVE_UNSHARE
-static inline int unshare(int flags)
-{
-#ifdef __NR_unshare
-       return syscall(__NR_unshare, flags);
-#else
-       errno = ENOSYS;
-       return -1;
-#endif
-}
-#else
-extern int unshare(int);
-#endif
-
-/* Define signalfd() if missing from the C library */
-#ifdef HAVE_SYS_SIGNALFD_H
-#  include <sys/signalfd.h>
-#else
-/* assume kernel headers are too old */
-#include <stdint.h>
-struct signalfd_siginfo
-{
-       uint32_t ssi_signo;
-       int32_t ssi_errno;
-       int32_t ssi_code;
-       uint32_t ssi_pid;
-       uint32_t ssi_uid;
-       int32_t ssi_fd;
-       uint32_t ssi_tid;
-       uint32_t ssi_band;
-       uint32_t ssi_overrun;
-       uint32_t ssi_trapno;
-       int32_t ssi_status;
-       int32_t ssi_int;
-       uint64_t ssi_ptr;
-       uint64_t ssi_utime;
-       uint64_t ssi_stime;
-       uint64_t ssi_addr;
-       uint8_t __pad[48];
-};
-
-#  ifndef __NR_signalfd4
-/* assume kernel headers are too old */
-#    if __i386__
-#      define __NR_signalfd4 327
-#    elif __x86_64__
-#      define __NR_signalfd4 289
-#    elif __powerpc__
-#      define __NR_signalfd4 313
-#    elif __s390x__
-#      define __NR_signalfd4 322
-#    elif __arm__
-#      define __NR_signalfd4 355
-#    elif __mips__ && _MIPS_SIM == _ABIO32
-#      define __NR_signalfd4 4324
-#    elif __mips__ && _MIPS_SIM == _ABI64
-#      define __NR_signalfd4 5283
-#    elif __mips__ && _MIPS_SIM == _ABIN32
-#      define __NR_signalfd4 6287
-#    endif
-#endif
-
-#  ifndef __NR_signalfd
-/* assume kernel headers are too old */
-#    if __i386__
-#      define __NR_signalfd 321
-#    elif __x86_64__
-#      define __NR_signalfd 282
-#    elif __powerpc__
-#      define __NR_signalfd 305
-#    elif __s390x__
-#      define __NR_signalfd 316
-#    elif __arm__
-#      define __NR_signalfd 349
-#    elif __mips__ && _MIPS_SIM == _ABIO32
-#      define __NR_signalfd 4317
-#    elif __mips__ && _MIPS_SIM == _ABI64
-#      define __NR_signalfd 5276
-#    elif __mips__ && _MIPS_SIM == _ABIN32
-#      define __NR_signalfd 6280
-#    endif
-#endif
-
-static inline int signalfd(int fd, const sigset_t *mask, int flags)
-{
-       int retval;
-
-       retval = syscall (__NR_signalfd4, fd, mask, _NSIG / 8, flags);
-       if (errno == ENOSYS && flags == 0)
-               retval = syscall (__NR_signalfd, fd, mask, _NSIG / 8);
-       return retval;
-}
-#endif
-
-#ifndef HAVE_MEMFD_CREATE
-static inline int memfd_create(const char *name, unsigned int flags) {
-       #ifndef __NR_memfd_create
-               #if defined __i386__
-                       #define __NR_memfd_create 356
-               #elif defined __x86_64__
-                       #define __NR_memfd_create 319
-               #elif defined __arm__
-                       #define __NR_memfd_create 385
-               #elif defined __aarch64__
-                       #define __NR_memfd_create 279
-               #elif defined __s390__
-                       #define __NR_memfd_create 350
-               #elif defined __powerpc__
-                       #define __NR_memfd_create 360
-               #elif defined __sparc__
-                       #define __NR_memfd_create 348
-               #elif defined __blackfin__
-                       #define __NR_memfd_create 390
-               #elif defined __ia64__
-                       #define __NR_memfd_create 1340
-               #elif defined _MIPS_SIM
-                       #if _MIPS_SIM == _MIPS_SIM_ABI32
-                               #define __NR_memfd_create 4354
-                       #endif
-                       #if _MIPS_SIM == _MIPS_SIM_NABI32
-                               #define __NR_memfd_create 6318
-                       #endif
-                       #if _MIPS_SIM == _MIPS_SIM_ABI64
-                               #define __NR_memfd_create 5314
-                       #endif
-               #endif
-       #endif
-       #ifdef __NR_memfd_create
-       return syscall(__NR_memfd_create, name, flags);
-       #else
-       errno = ENOSYS;
-       return -1;
-       #endif
-}
-#else
-extern int memfd_create(const char *name, unsigned int flags);
-#endif
-
 static inline int lxc_set_cloexec(int fd)
 {
        return fcntl(fd, F_SETFD, FD_CLOEXEC);
@@ -397,7 +211,7 @@ __attribute__((sentinel)) extern char *must_append_path(char *first, ...);
 /* return copy of string @entry;  do not fail. */
 extern char *must_copy_string(const char *entry);
 
-/* Re-alllocate a pointer, do not fail */
+/* Re-allocate a pointer, do not fail */
 extern void *must_realloc(void *orig, size_t sz);
 
 extern bool lxc_nic_exists(char *nic);
@@ -423,18 +237,10 @@ static inline uint64_t lxc_getpagesize(void)
  */
 extern uint64_t lxc_find_next_power2(uint64_t n);
 
-static inline pid_t lxc_raw_gettid(void)
-{
-#ifdef SYS_gettid
-       return syscall(SYS_gettid);
-#else
-       return lxc_raw_getpid();
-#endif
-}
-
 /* Set a signal the child process will receive after the parent has died. */
-extern int lxc_set_death_signal(int signal);
+extern int lxc_set_death_signal(int signal, pid_t parent);
 extern int fd_cloexec(int fd, bool cloexec);
 extern int recursive_destroy(char *dirname);
+extern int lxc_setup_keyring(void);
 
 #endif /* __LXC_UTILS_H */