1 /*
2  * Will go away once libc support is there
3  */
4 #include <unistd.h>
5 #include <sys/syscall.h>
6 #include <sys/uio.h>
7 #include <signal.h>
8 #include "liburing.h"
9 
10 #ifdef __alpha__
11 /*
12  * alpha is the only exception, all other architectures
13  * have common numbers for new system calls.
14  */
15 # ifndef __NR_io_uring_setup
16 #  define __NR_io_uring_setup		535
17 # endif
18 # ifndef __NR_io_uring_enter
19 #  define __NR_io_uring_enter		536
20 # endif
21 # ifndef __NR_io_uring_register
22 #  define __NR_io_uring_register	537
23 # endif
24 #else /* !__alpha__ */
25 # ifndef __NR_io_uring_setup
26 #  define __NR_io_uring_setup		425
27 # endif
28 # ifndef __NR_io_uring_enter
29 #  define __NR_io_uring_enter		426
30 # endif
31 # ifndef __NR_io_uring_register
32 #  define __NR_io_uring_register	427
33 # endif
34 #endif
35 
io_uring_register(int fd,unsigned int opcode,void * arg,unsigned int nr_args)36 int io_uring_register(int fd, unsigned int opcode, void *arg,
37 		      unsigned int nr_args)
38 {
39 	return syscall(__NR_io_uring_register, fd, opcode, arg, nr_args);
40 }
41 
io_uring_setup(unsigned int entries,struct io_uring_params * p)42 int io_uring_setup(unsigned int entries, struct io_uring_params *p)
43 {
44 	return syscall(__NR_io_uring_setup, entries, p);
45 }
46 
io_uring_enter(int fd,unsigned int to_submit,unsigned int min_complete,unsigned int flags,sigset_t * sig)47 int io_uring_enter(int fd, unsigned int to_submit, unsigned int min_complete,
48 		   unsigned int flags, sigset_t *sig)
49 {
50 	return syscall(__NR_io_uring_enter, fd, to_submit, min_complete,
51 			flags, sig, _NSIG / 8);
52 }
53