summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorcee1 <fykcee1@gmail.com>2011-03-17 10:13:01 +0800
committerLennart Poettering <lennart@poettering.net>2011-03-17 04:03:44 +0100
commitd59d0a2b4b41a75eaf618b26b8f8bd1e17de7e2b (patch)
treed8fc37a441a031c949d12dcf3b903665a2258573
parentf6a6225e414858ff222d2b175369cc42459abf9a (diff)
read-ahead: Fix broken systemd-readahead-collect on mips.
This actually adjust the __NR_fanotify* system call numbers to proper ones on mips(according userspace ABI).
-rw-r--r--configure.ac3
-rw-r--r--src/missing.h51
2 files changed, 42 insertions, 12 deletions
diff --git a/configure.ac b/configure.ac
index cae2dce367..8a28c8e807 100644
--- a/configure.ac
+++ b/configure.ac
@@ -28,6 +28,9 @@ AC_SUBST(PACKAGE_URL, [http://www.freedesktop.org/wiki/Software/systemd])
AC_CANONICAL_HOST
AC_DEFINE_UNQUOTED([CANONICAL_HOST], "$host", [Canonical host string.])
+AS_IF([test "x$host_cpu" = "xmips" || test "x$host_cpu" = "xmipsel" ||
+ test "x$host_cpu" = "xmips64" || test "x$host_cpu" = "xmips64el"],
+ [AC_DEFINE(ARCH_MIPS, [], [Whether on mips arch])])
AM_SILENT_RULES([yes])
diff --git a/src/missing.h b/src/missing.h
index c0cb3eaea7..35e209fba4 100644
--- a/src/missing.h
+++ b/src/missing.h
@@ -36,6 +36,10 @@
#include "macro.h"
+#ifdef ARCH_MIPS
+#include <asm/sgidefs.h>
+#endif
+
#ifndef RLIMIT_RTTIME
#define RLIMIT_RTTIME 15
#endif
@@ -77,19 +81,42 @@ static inline int pivot_root(const char *new_root, const char *put_old) {
}
#ifdef __x86_64__
-#ifndef __NR_fanotify_init
-#define __NR_fanotify_init 300
-#endif
-#ifndef __NR_fanotify_mark
-#define __NR_fanotify_mark 301
-#endif
+# ifndef __NR_fanotify_init
+# define __NR_fanotify_init 300
+# endif
+# ifndef __NR_fanotify_mark
+# define __NR_fanotify_mark 301
+# endif
+#elif defined _MIPS_SIM
+# if _MIPS_SIM == _MIPS_SIM_ABI32
+# ifndef __NR_fanotify_init
+# define __NR_fanotify_init 4336
+# endif
+# ifndef __NR_fanotify_mark
+# define __NR_fanotify_mark 4337
+# endif
+# elif _MIPS_SIM == _MIPS_SIM_NABI32
+# ifndef __NR_fanotify_init
+# define __NR_fanotify_init 6300
+# endif
+# ifndef __NR_fanotify_mark
+# define __NR_fanotify_mark 6301
+# endif
+# elif _MIPS_SIM == _MIPS_SIM_ABI64
+# ifndef __NR_fanotify_init
+# define __NR_fanotify_init 5295
+# endif
+# ifndef __NR_fanotify_mark
+# define __NR_fanotify_mark 5296
+# endif
+# endif
#else
-#ifndef __NR_fanotify_init
-#define __NR_fanotify_init 338
-#endif
-#ifndef __NR_fanotify_mark
-#define __NR_fanotify_mark 339
-#endif
+# ifndef __NR_fanotify_init
+# define __NR_fanotify_init 338
+# endif
+# ifndef __NR_fanotify_mark
+# define __NR_fanotify_mark 339
+# endif
#endif
static inline int fanotify_init(unsigned int flags, unsigned int event_f_flags) {