chiark / gitweb /
Prep v234: Apply missing upstream fixes in src/libelogind (2/6)
[elogind.git] / src / basic / missing_syscall.h
index 42c39ee8d9a63deb1702d217d66cf70e13cafa4a..beadf369a4690363a66322c6b7db6201cb3a4c1b 100644 (file)
@@ -1,32 +1,34 @@
 #pragma once
 
 /***
-  This file is part of elogind.
+  This file is part of systemd.
 
   Copyright 2010 Lennart Poettering
   Copyright 2016 Zbigniew JÄ™drzejewski-Szmek
 
-  elogind is free software; you can redistribute it and/or modify it
+  systemd is free software; you can redistribute it and/or modify it
   under the terms of the GNU Lesser General Public License as published by
   the Free Software Foundation; either version 2.1 of the License, or
   (at your option) any later version.
 
-  elogind is distributed in the hope that it will be useful, but
+  systemd is distributed in the hope that it will be useful, but
   WITHOUT ANY WARRANTY; without even the implied warranty of
   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
   Lesser General Public License for more details.
 
   You should have received a copy of the GNU Lesser General Public License
-  along with elogind; If not, see <http://www.gnu.org/licenses/>.
+  along with systemd; If not, see <http://www.gnu.org/licenses/>.
 ***/
 
 /* Missing glibc definitions to access certain kernel APIs */
 
+#if 0 /// UNNEEDED by elogind
 #if !HAVE_DECL_PIVOT_ROOT
 static inline int pivot_root(const char *new_root, const char *put_old) {
         return syscall(SYS_pivot_root, new_root, put_old);
 }
 #endif
+#endif // 0
 
 /* ======================================================================= */
 
@@ -52,6 +54,8 @@ static inline int pivot_root(const char *new_root, const char *put_old) {
 #      endif
 #    elif defined __i386__
 #      define __NR_memfd_create 356
+#    elif defined __arc__
+#      define __NR_memfd_create 279
 #    else
 #      warning "__NR_memfd_create unknown for your architecture"
 #    endif
@@ -97,6 +101,8 @@ static inline int memfd_create(const char *name, unsigned int flags) {
 #      if _MIPS_SIM == _MIPS_SIM_ABI64
 #        define __NR_getrandom 5313
 #      endif
+#    elif defined(__arc__)
+#      define __NR_getrandom 278
 #    else
 #      warning "__NR_getrandom unknown for your architecture"
 #    endif
@@ -132,6 +138,8 @@ static inline pid_t gettid(void) {
 #      define __NR_name_to_handle_at 370
 #    elif defined(__powerpc__)
 #      define __NR_name_to_handle_at 345
+#    elif defined(__arc__)
+#      define __NR_name_to_handle_at 264
 #    else
 #      error "__NR_name_to_handle_at is not defined"
 #    endif
@@ -161,6 +169,8 @@ static inline int name_to_handle_at(int fd, const char *name, struct file_handle
 #      define __NR_setns 308
 #    elif defined(__i386__)
 #      define __NR_setns 346
+#    elif defined(__arc__)
+#      define __NR_setns 268
 #    else
 #      error "__NR_setns is not defined"
 #    endif
@@ -178,18 +188,7 @@ static inline int setns(int fd, int nstype) {
 
 /* ======================================================================= */
 
-static inline int raw_clone(unsigned long flags, void *child_stack) {
-#if defined(__s390__) || defined(__CRIS__)
-        /* On s390 and cris the order of the first and second arguments
-         * of the raw clone() system call is reversed. */
-        return (int) syscall(__NR_clone, child_stack, flags);
-#else
-        return (int) syscall(__NR_clone, flags, child_stack);
-#endif
-}
-
-/* ======================================================================= */
-
+#if 0 /// UNNEEDED by elogind
 static inline pid_t raw_getpid(void) {
 #if defined(__alpha__)
         return (pid_t) syscall(__NR_getxpid);
@@ -197,6 +196,7 @@ static inline pid_t raw_getpid(void) {
         return (pid_t) syscall(__NR_getpid);
 #endif
 }
+#endif // 0
 
 /* ======================================================================= */
 
@@ -206,6 +206,8 @@ static inline pid_t raw_getpid(void) {
 #      define __NR_renameat2 316
 #    elif defined __arm__
 #      define __NR_renameat2 382
+#    elif defined __aarch64__
+#      define __NR_renameat2 276
 #    elif defined _MIPS_SIM
 #      if _MIPS_SIM == _MIPS_SIM_ABI32
 #        define __NR_renameat2 4351
@@ -218,6 +220,12 @@ static inline pid_t raw_getpid(void) {
 #      endif
 #    elif defined __i386__
 #      define __NR_renameat2 353
+#    elif defined __powerpc64__
+#      define __NR_renameat2 357
+#    elif defined __s390__ || defined __s390x__
+#      define __NR_renameat2 347
+#    elif defined __arc__
+#      define __NR_renameat2 276
 #    else
 #      warning "__NR_renameat2 unknown for your architecture"
 #    endif
@@ -291,6 +299,10 @@ static inline key_serial_t request_key(const char *type, const char *description
 #      define __NR_copy_file_range 391
 #    elif defined __aarch64__
 #      define __NR_copy_file_range 285
+#    elif defined __powerpc__
+#      define __NR_copy_file_range 379
+#    elif defined __arc__
+#      define __NR_copy_file_range 285
 #    else
 #      warning "__NR_copy_file_range not defined for your architecture"
 #    endif