xref: /aosp_15_r20/external/liburing/src/arch/generic/syscall.h (revision 25da2bea747f3a93b4c30fd9708b0618ef55a0e6)
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