about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--include/sys/mman.h5
-rw-r--r--include/sys/timex.h5
-rw-r--r--include/unistd.h1
-rw-r--r--src/linux/clock_adjtime.c9
-rw-r--r--src/linux/remap_file_pages.c8
-rw-r--r--src/linux/syncfs.c8
6 files changed, 36 insertions, 0 deletions
diff --git a/include/sys/mman.h b/include/sys/mman.h
index 136b45b3..9a1e60ff 100644
--- a/include/sys/mman.h
+++ b/include/sys/mman.h
@@ -10,6 +10,10 @@ extern "C" {
 #define __NEED_size_t
 #define __NEED_off_t
 
+#if defined(_GNU_SOURCE)
+#define __NEED_ssize_t
+#endif
+
 #include <bits/alltypes.h>
 
 #include <bits/mman.h>
@@ -29,6 +33,7 @@ int munlockall (void);
 
 #ifdef _GNU_SOURCE
 void *mremap (void *, size_t, size_t, int, ...);
+int remap_file_pages (void *, size_t, int, ssize_t, int);
 #endif
 
 #if defined(_GNU_SOURCE) || defined(_BSD_SOURCE)
diff --git a/include/sys/timex.h b/include/sys/timex.h
index 12623922..f37c13ce 100644
--- a/include/sys/timex.h
+++ b/include/sys/timex.h
@@ -5,6 +5,10 @@
 extern "C" {
 #endif
 
+#define __NEED_clockid_t
+
+#include <bits/alltypes.h>
+
 #include <sys/time.h>
 
 struct ntptimeval {
@@ -83,6 +87,7 @@ struct timex {
 #define MAXTC		6
 
 int adjtimex(struct timex *);
+int clock_adjtime(clockid_t, struct timex *);
 
 #ifdef __cplusplus
 }
diff --git a/include/unistd.h b/include/unistd.h
index d3bb781a..985d279e 100644
--- a/include/unistd.h
+++ b/include/unistd.h
@@ -184,6 +184,7 @@ int getresgid(gid_t *, gid_t *, gid_t *);
 char *get_current_dir_name(void);
 int pipe2(int [2], int);
 int dup3(int, int, int);
+void syncfs(int);
 #endif
 
 #if defined(_LARGEFILE64_SOURCE) || defined(_GNU_SOURCE)
diff --git a/src/linux/clock_adjtime.c b/src/linux/clock_adjtime.c
new file mode 100644
index 00000000..1fc9bef4
--- /dev/null
+++ b/src/linux/clock_adjtime.c
@@ -0,0 +1,9 @@
+#define _GNU_SOURCE
+#include <time.h>
+#include <sys/timex.h>
+#include "syscall.h"
+
+int clock_adjtime (clockid_t clock_id, struct timex *utx)
+{
+	return syscall(SYS_clock_adjtime, clock_id, utx);
+}
diff --git a/src/linux/remap_file_pages.c b/src/linux/remap_file_pages.c
new file mode 100644
index 00000000..f95c4cc3
--- /dev/null
+++ b/src/linux/remap_file_pages.c
@@ -0,0 +1,8 @@
+#define _GNU_SOURCE
+#include <sys/mman.h>
+#include "syscall.h"
+
+int remap_file_pages(void *addr, size_t size, int prot, ssize_t pgoff, int flags)
+{
+	return syscall(SYS_remap_file_pages, addr, size, prot, pgoff, flags);
+}
diff --git a/src/linux/syncfs.c b/src/linux/syncfs.c
new file mode 100644
index 00000000..fe2b8a70
--- /dev/null
+++ b/src/linux/syncfs.c
@@ -0,0 +1,8 @@
+#define _GNU_SOURCE
+#include <unistd.h>
+#include "syscall.h"
+
+void syncfs(int fd)
+{
+	__syscall(SYS_syncfs, fd);
+}