uring_sys/
syscalls.rs

1use libc;
2use crate::io_uring_params;
3
4// syscall constants
5#[allow(non_upper_case_globals)]
6const __NR_io_uring_setup: libc::c_long = 425;
7#[allow(non_upper_case_globals)]
8const __NR_io_uring_enter: libc::c_long = 426;
9#[allow(non_upper_case_globals)]
10const __NR_io_uring_register: libc::c_long = 427;
11
12pub unsafe fn io_uring_register(fd: libc::c_int, opcode: libc::c_uint, arg: *const libc::c_void, nr_args: libc::c_uint)
13                                -> libc::c_int
14{
15    libc::syscall(
16        __NR_io_uring_register,
17        fd,
18        opcode,
19        arg,
20        nr_args
21    ) as libc::c_int
22}
23
24pub unsafe fn io_uring_setup(entries: libc::c_uint, p: *mut io_uring_params)
25                             -> libc::c_int
26{
27    libc::syscall(
28        __NR_io_uring_setup,
29        entries,
30        p
31    ) as libc::c_int
32}
33
34pub unsafe fn io_uring_enter(fd: libc::c_int, to_submit: libc::c_uint, min_complete: libc::c_uint, flags: libc::c_uint, sig: *const libc::sigset_t)
35                             -> libc::c_int
36{
37    libc::syscall(
38        __NR_io_uring_enter,
39        fd,
40        to_submit,
41        min_complete,
42        flags,
43        sig,
44        core::mem::size_of::<libc::sigset_t>()
45    ) as libc::c_int
46}