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); +} | 
