chiark / gitweb /
missing: Fix compilation error due to wrong __NR_name_to_handle_at definition
[elogind.git] / src / shared / missing.h
index 7fbb9259ebae8151746058c8444f88a66f32480c..14abe4ee2eacf95223f4d470c28130af0e200de3 100644 (file)
@@ -26,6 +26,7 @@
 #include <sys/resource.h>
 #include <sys/syscall.h>
 #include <fcntl.h>
+#include <stdlib.h>
 #include <unistd.h>
 #include <linux/oom.h>
 
@@ -208,17 +209,16 @@ static inline pid_t gettid(void) {
 #endif
 
 #ifdef __x86_64__
-#  ifndef __NR_name_to_handle
-#    define __NR_name_to_handle 303
+#  ifndef __NR_name_to_handle_at
+#    define __NR_name_to_handle_at 303
 #  endif
 #else
-#  ifndef __NR_name_to_handle
-#    define __NR_name_to_handle 341
+#  ifndef __NR_name_to_handle_at
+#    define __NR_name_to_handle_at 341
 #  endif
 #endif
 
 #ifndef HAVE_NAME_TO_HANDLE_AT
-
 struct file_handle {
         unsigned int handle_bytes;
         int handle_type;
@@ -229,3 +229,11 @@ static inline int name_to_handle_at(int fd, const char *name, struct file_handle
         return syscall(__NR_name_to_handle_at, fd, name, handle, mnt_id, flags);
 }
 #endif
+
+#ifndef HAVE_SECURE_GETENV
+#  ifdef HAVE___SECURE_GETENV
+#    define secure_getenv __secure_getenv
+#  else
+#    error neither secure_getenv nor __secure_getenv are available
+#  endif
+#endif