eve.sys.linux.uring

Syscall wrappers and submission helpers for Linux io_uring.

This module builds on top of core.sys.linux.io_uring, which provides the structure definitions and constants from the kernel ABI. This module adds:

There is no compile-time version check. Call io_uring_setup and handle

ENOSYS to detect kernel support at runtime.

See Also

Functions 11

private fnlong syscall(long number, ...) @system nothrow @nogc
fnint io_uring_setup(uint entries, io_uring_params * params) @systemSet up an io_uring instance.
fnint io_uring_enter(int fd, uint to_submit, uint min_complete, uint flags, const sigset_t * sig = null) @systemInitiate and/or complete I/O using the io_uring instance.
fnint io_uring_register(int fd, uint opcode, const void * arg, uint nr_args) @systemRegister files or buffers with the io_uring instance.
fnvoid io_uring_prep_nop(io_uring_sqe * sqe, ulong user_data) pure @safePrepare an SQE for a NOP operation.
fnvoid io_uring_prep_poll_add(io_uring_sqe * sqe, int fd, ushort poll_mask, ulong user_data) pure @safePrepare an SQE for a POLL_ADD operation.
fnvoid io_uring_prep_poll_remove(io_uring_sqe * sqe, ulong target_user_data, ulong user_data) pure @safePrepare an SQE for a POLL_REMOVE operation.
fnvoid io_uring_prep_read(io_uring_sqe * sqe, int fd, void * buf, uint len, ulong offset, ulong user_data) pure @systemPrepare an SQE for a READ operation.
fnvoid io_uring_prep_write(io_uring_sqe * sqe, int fd, const void * buf, uint len, ulong offset, ulong user_data) pure @systemPrepare an SQE for a WRITE operation.
fnvoid io_uring_prep_close(io_uring_sqe * sqe, int fd, ulong user_data) pure @safePrepare an SQE for a CLOSE operation.
fnvoid io_uring_sqe_set_flags(io_uring_sqe * sqe, ubyte flags) pure @safeSet SQE flags on an existing SQE.