libclod
C library for interacting with NBTs, region files, LOD data and other things.
Loading...
Searching...
No Matches
syscall.h
1#ifndef LIBCLOD_SYSCALL_H
2#define LIBCLOD_SYSCALL_H
3
4#include <clod/lib.h>
5#include <linux/time.h>
6#include <linux/unistd.h>
7#include <linux/errno.h>
8
9long syscall0(long number);
10long syscall1(long _1, long number);
11long syscall2(long _1, long _2, long number);
12long syscall3(long _1, long _2, long _3, long number);
13long syscall4(long _1, long _2, long _3, long _4, long number);
14long syscall5(long _1, long _2, long _3, long _4, long _5, long number);
15long syscall6(long _1, long _2, long _3, long _4, long _5, long _6, long number);
16
17#define _syscall_switch(_1, _2, _3, _4, _5, _6, N, ...) N
18#define syscall(number, ...) _syscall_switch(__VA_ARGS__, syscall6, syscall5, syscall4, syscall3, syscall2, syscall1, syscall0) (__VA_ARGS__ __VA_OPT__(,) number)
19
20[[deprecated]]
21int syscall_futex_wait(const int *addr, int expected, struct timespec *timeout);
22[[deprecated]]
23int syscall_futex_wake(const int *addr, int num);
24
25[[deprecated]]
26long syscall_read(int fd, void *buff, size_t size);
27[[deprecated]]
28long syscall_write(int fd, const void *buff, size_t size);
29[[deprecated]]
30int syscall_close(int fd);
31
32[[deprecated]]
33void *syscall_mmap(void *addr, size_t length, int prot, int flags, int fd, long offset);
34[[deprecated]]
35int syscall_munmap(void *addr, size_t length);
36
37#endif