]> git.ipfire.org Git - thirdparty/lxc.git/commitdiff
utils: move memfd_create() definition
authorChristian Brauner <christian.brauner@ubuntu.com>
Wed, 18 Oct 2017 11:36:36 +0000 (13:36 +0200)
committerChristian Brauner <christian.brauner@ubuntu.com>
Thu, 9 Nov 2017 00:03:51 +0000 (01:03 +0100)
Signed-off-by: Christian Brauner <christian.brauner@ubuntu.com>
src/lxc/conf.c
src/lxc/utils.h

index 91816bebb3a2ae7f86a3da029eb0a07e9df408b1..1d11c63b21ed7a20d306af7d007df3fb8321d78f 100644 (file)
 #include <../include/openpty.h>
 #endif
 
-#ifdef HAVE_LINUX_MEMFD_H
-#include <linux/memfd.h>
-#endif
-
 #include "af_unix.h"
 #include "caps.h"       /* for lxc_caps_last_cap() */
 #include "cgroup.h"
@@ -178,59 +174,6 @@ static int sethostname(const char * name, size_t len)
 #define MS_LAZYTIME (1<<25)
 #endif
 
-/* memfd_create() */
-#ifndef MFD_CLOEXEC
-#define MFD_CLOEXEC 0x0001U
-#endif
-
-#ifndef MFD_ALLOW_SEALING
-#define MFD_ALLOW_SEALING 0x0002U
-#endif
-
-#ifndef HAVE_MEMFD_CREATE
-static 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
-
 char *lxchook_names[NUM_LXC_HOOKS] = {"pre-start", "pre-mount", "mount",
                                      "autodev",   "start",     "stop",
                                      "post-stop", "clone",     "destroy"};
index aadf382e306da9825057abbd4d20980a4d560499..606538a2aa183f0a59b3cbcf159eb6c4b799b162 100644 (file)
 #include <sys/types.h>
 #include <sys/vfs.h>
 
+#ifdef HAVE_LINUX_MEMFD_H
+#include <linux/memfd.h>
+#endif
+
 #include "initutils.h"
 
 /* Define __S_ISTYPE if missing from the C library. */
@@ -184,6 +188,59 @@ static inline int signalfd(int fd, const sigset_t *mask, int flags)
 #define LOOP_CTL_GET_FREE 0x4C82
 #endif
 
+/* memfd_create() */
+#ifndef MFD_CLOEXEC
+#define MFD_CLOEXEC 0x0001U
+#endif
+
+#ifndef MFD_ALLOW_SEALING
+#define MFD_ALLOW_SEALING 0x0002U
+#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
+
 /* Struct to carry child pid from lxc_popen() to lxc_pclose().
  * Not an opaque struct to allow direct access to the underlying FILE *
  * (i.e., struct lxc_popen_FILE *file; fgets(buf, sizeof(buf), file->f))