1 /* SPDX-License-Identifier: MIT */
2
3 #ifndef __INTERNAL__LIBURING_SYSCALL_H
4 #error "This file should be included from src/syscall.h (liburing)"
5 #endif
6
7 #ifndef LIBURING_ARCH_GENERIC_SYSCALL_H
8 #define LIBURING_ARCH_GENERIC_SYSCALL_H
9
____sys_io_uring_register(int fd,unsigned opcode,const void * arg,unsigned nr_args)10 static inline int ____sys_io_uring_register(int fd, unsigned opcode,
11 const void *arg, unsigned nr_args)
12 {
13 int ret;
14 ret = syscall(__NR_io_uring_register, fd, opcode, arg, nr_args);
15 return (ret < 0) ? -errno : ret;
16 }
17
____sys_io_uring_setup(unsigned entries,struct io_uring_params * p)18 static inline int ____sys_io_uring_setup(unsigned entries,
19 struct io_uring_params *p)
20 {
21 int ret;
22 ret = syscall(__NR_io_uring_setup, entries, p);
23 return (ret < 0) ? -errno : ret;
24 }
25
____sys_io_uring_enter2(int fd,unsigned to_submit,unsigned min_complete,unsigned flags,sigset_t * sig,int sz)26 static inline int ____sys_io_uring_enter2(int fd, unsigned to_submit,
27 unsigned min_complete, unsigned flags,
28 sigset_t *sig, int sz)
29 {
30 int ret;
31 ret = syscall(__NR_io_uring_enter, fd, to_submit, min_complete, flags,
32 sig, sz);
33 return (ret < 0) ? -errno : ret;
34 }
35
____sys_io_uring_enter(int fd,unsigned to_submit,unsigned min_complete,unsigned flags,sigset_t * sig)36 static inline int ____sys_io_uring_enter(int fd, unsigned to_submit,
37 unsigned min_complete, unsigned flags,
38 sigset_t *sig)
39 {
40 return ____sys_io_uring_enter2(fd, to_submit, min_complete, flags, sig,
41 _NSIG / 8);
42 }
43
__sys_mmap(void * addr,size_t length,int prot,int flags,int fd,off_t offset)44 static inline void *__sys_mmap(void *addr, size_t length, int prot, int flags,
45 int fd, off_t offset)
46 {
47 void *ret;
48 ret = mmap(addr, length, prot, flags, fd, offset);
49 return (ret == MAP_FAILED) ? ERR_PTR(-errno) : ret;
50 }
51
__sys_munmap(void * addr,size_t length)52 static inline int __sys_munmap(void *addr, size_t length)
53 {
54 int ret;
55 ret = munmap(addr, length);
56 return (ret < 0) ? -errno : ret;
57 }
58
__sys_madvise(void * addr,size_t length,int advice)59 static inline int __sys_madvise(void *addr, size_t length, int advice)
60 {
61 int ret;
62 ret = madvise(addr, length, advice);
63 return (ret < 0) ? -errno : ret;
64 }
65
__sys_getrlimit(int resource,struct rlimit * rlim)66 static inline int __sys_getrlimit(int resource, struct rlimit *rlim)
67 {
68 int ret;
69 ret = getrlimit(resource, rlim);
70 return (ret < 0) ? -errno : ret;
71 }
72
__sys_setrlimit(int resource,const struct rlimit * rlim)73 static inline int __sys_setrlimit(int resource, const struct rlimit *rlim)
74 {
75 int ret;
76 ret = setrlimit(resource, rlim);
77 return (ret < 0) ? -errno : ret;
78 }
79
__sys_close(int fd)80 static inline int __sys_close(int fd)
81 {
82 int ret;
83 ret = close(fd);
84 return (ret < 0) ? -errno : ret;
85 }
86
87 #endif /* #ifndef LIBURING_ARCH_GENERIC_SYSCALL_H */
88