|  | /* | 
|  | * Will go away once libc support is there | 
|  | */ | 
|  | #include <unistd.h> | 
|  | #include <sys/syscall.h> | 
|  | #include <sys/uio.h> | 
|  | #include <signal.h> | 
|  | #include "liburing.h" | 
|  |  | 
|  | #ifdef __alpha__ | 
|  | /* | 
|  | * alpha is the only exception, all other architectures | 
|  | * have common numbers for new system calls. | 
|  | */ | 
|  | # ifndef __NR_io_uring_setup | 
|  | #  define __NR_io_uring_setup		535 | 
|  | # endif | 
|  | # ifndef __NR_io_uring_enter | 
|  | #  define __NR_io_uring_enter		536 | 
|  | # endif | 
|  | # ifndef __NR_io_uring_register | 
|  | #  define __NR_io_uring_register	537 | 
|  | # endif | 
|  | #else /* !__alpha__ */ | 
|  | # ifndef __NR_io_uring_setup | 
|  | #  define __NR_io_uring_setup		425 | 
|  | # endif | 
|  | # ifndef __NR_io_uring_enter | 
|  | #  define __NR_io_uring_enter		426 | 
|  | # endif | 
|  | # ifndef __NR_io_uring_register | 
|  | #  define __NR_io_uring_register	427 | 
|  | # endif | 
|  | #endif | 
|  |  | 
|  | int io_uring_register(int fd, unsigned int opcode, void *arg, | 
|  | unsigned int nr_args) | 
|  | { | 
|  | return syscall(__NR_io_uring_register, fd, opcode, arg, nr_args); | 
|  | } | 
|  |  | 
|  | int io_uring_setup(unsigned int entries, struct io_uring_params *p) | 
|  | { | 
|  | return syscall(__NR_io_uring_setup, entries, p); | 
|  | } | 
|  |  | 
|  | int io_uring_enter(int fd, unsigned int to_submit, unsigned int min_complete, | 
|  | unsigned int flags, sigset_t *sig) | 
|  | { | 
|  | return syscall(__NR_io_uring_enter, fd, to_submit, min_complete, | 
|  | flags, sig, _NSIG / 8); | 
|  | } |