diff options
-rw-r--r-- | include/sys/mman.h | 5 | ||||
-rw-r--r-- | include/sys/timex.h | 5 | ||||
-rw-r--r-- | include/unistd.h | 1 | ||||
-rw-r--r-- | src/linux/clock_adjtime.c | 9 | ||||
-rw-r--r-- | src/linux/remap_file_pages.c | 8 | ||||
-rw-r--r-- | src/linux/syncfs.c | 8 |
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); +} |