chiark / gitweb /
readahead: implement minimal readahead logic based on fanotify(), mincore() and reada...
[elogind.git] / src / missing.h
index f40d36ebc4f5a8643b6be2270b3800673eb364be..defe885eccb05a35d9bcacadd4a3419a03f4f3d9 100644 (file)
@@ -1,4 +1,4 @@
-/*-*- Mode: C; c-basic-offset: 8 -*-*/
+/*-*- Mode: C; c-basic-offset: 8; indent-tabs-mode: nil -*-*/
 
 #ifndef foomissinghfoo
 #define foomissinghfoo
 #include <sys/syscall.h>
 #include <fcntl.h>
 #include <unistd.h>
+#include <linux/oom.h>
+
+#ifdef HAVE_AUDIT
+#include <libaudit.h>
+#endif
 
 #include "macro.h"
 
 #define IP_FREEBIND 15
 #endif
 
-static inline int pivot_root(const char *new_root, const char *put_old) {
-        return syscall(SYS_pivot_root, new_root, put_old);
-}
+#ifndef OOM_SCORE_ADJ_MIN
+#define OOM_SCORE_ADJ_MIN (-1000)
+#endif
+
+#ifndef OOM_SCORE_ADJ_MAX
+#define OOM_SCORE_ADJ_MAX 1000
+#endif
 
 #ifndef AUDIT_SERVICE_START
-#define AUDIT_SERVICE_START     1130    /* Service (daemon) start */
+#define AUDIT_SERVICE_START 1130 /* Service (daemon) start */
 #endif
 
 #ifndef AUDIT_SERVICE_STOP
-#define AUDIT_SERVICE_STOP      1131    /* Service (daemon) stop */
+#define AUDIT_SERVICE_STOP 1131 /* Service (daemon) stop */
+#endif
+
+static inline int pivot_root(const char *new_root, const char *put_old) {
+        return syscall(SYS_pivot_root, new_root, 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
+#else
+#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) {
+       return syscall(__NR_fanotify_init, flags, event_f_flags);
+}
+
+static inline int fanotify_mark(int fanotify_fd, unsigned int flags, __u64 mask,
+                                int dfd, const char *pathname) {
+       return syscall(__NR_fanotify_mark, fanotify_fd, flags, mask, dfd, pathname);
+}
 
 #endif