use compat memory layout
[ginge.git] / loader / syscalls.h
CommitLineData
d0b9b0df 1#include <stdlib.h>
2
3struct timespec;
4
5void sys_cacheflush(const void *start_addr, const void *end_addr);
6
7long g_syscall(long number, ...);
8
9// arg6 is func ptr, for convenience
10long g_clone(unsigned long flags, void *child_stack, ...);
11
b4f4cb40 12long g_syscall_error(long kret);
d0b9b0df 13
14// raw - no errno handling
15long g_open_raw(const char *pathname, int flags, ...);
16long g_read_raw(int fd, void *buf, size_t count);
17long g_write_raw(int fd, const void *buf, size_t count);
b4f4cb40 18long g_mmap2_raw(void *addr, size_t length, int prot, int flags,
19 int fd, off_t offset);
20long g_munmap_raw(void *addr, size_t length);
21long g_ioctl_raw(int fd, unsigned long request, ...);
22long g_close_raw(int fd);
23long g_chdir_raw(const char *path);
2692251d 24long g_mkdir_raw(const char *pathname, unsigned int mode);
d0b9b0df 25long g_futex_raw(int *uaddr, int op, int val,
26 const struct timespec *timeout);
27long g_nanosleep_raw(const struct timespec *req, struct timespec *rem);
c3831532 28long g_readlink_raw(const char *pathname, char *buf, size_t bufsiz);
78684356 29long g_execve_raw(const char *filename, char * const argv[],
30 char * const envp[]);
d0b9b0df 31long g_clock_gettime_raw(int clk_id, const struct timespec *tp);
32long g_rt_sigprocmask_raw(int how, const void *set, void *oldset,
b4f4cb40 33 size_t sigsetsize);
df608af1 34long g_personality(long persona);
b4f4cb40 35long __attribute__((noreturn))
36 g_exit_group_raw(int status);
37