during

Simple idiomatic dlang wrapper around linux io_uring (see: https://kernel.dk/io_uring.pdf) asynchronous API.

Modules

io_uring
module during.io_uring

* io_uring system api definitions. * * See: https://github.com/torvalds/linux/blob/master/include/uapi/linux/io_uring.h * * Last changes from: f8e85cf255ad57d65eeb9a9d0e59e3dec55bdd9e (20191123)

tests
module during.tests
Undocumented in source.

Public Imports

during.io_uring
public import during.io_uring;
Undocumented in source.

Members

Functions

fill
void fill(SubmissionEntry entry, E op)

Uses custom operation definition to fill fields of SubmissionEntry. Can be used in cases, when builtin prep* functions aren't enough.

prepAccept
void prepAccept(SubmissionEntry entry, int fd, ADDR addr, socklen_t addrlen, AcceptFlags flags)

Prepares accept4(2) operation.

prepCancel
void prepCancel(SubmissionEntry entry, D userData)

Prepares operation that cancels existing async work.

prepConnect
void prepConnect(SubmissionEntry entry, int fd, const(ADDR) addr)

Note: Available from Linux 5.5

prepFsync
void prepFsync(SubmissionEntry entry, int fd, FsyncFlags flags)

Prepares fsync operation.

prepLinkTimeout
void prepLinkTimeout(SubmissionEntry entry, KernelTimespec time, TimeoutFlags flags)

Prepares linked timeout operation.

prepNop
void prepNop(SubmissionEntry entry)

Prepares nop operation.

prepPollAdd
void prepPollAdd(SubmissionEntry entry, int fd, PollEvents events)

Poll the fd specified in the submission queue entry for the events specified in the poll_events field. Unlike poll or epoll without EPOLLONESHOT, this interface always works in one shot mode. That is, once the poll operation is completed, it will have to be resubmitted.

prepPollRemove
void prepPollRemove(SubmissionEntry entry, D userData)

Remove an existing poll request. If found, the res field of the CompletionEntry will contain 0. If not found, res will contain -ENOENT.

prepReadFixed
void prepReadFixed(SubmissionEntry entry, int fd, ulong offset, ubyte[] buffer, ushort bufferIndex)

Prepares read_fixed operation.

prepReadv
void prepReadv(SubmissionEntry entry, int fd, V buffer, ulong offset)

Prepares readv operation.

prepRecvMsg
void prepRecvMsg(SubmissionEntry entry, int fd, msghdr msg, MsgFlags flags)

Prepares recvmsg(2) operation.

prepSendMsg
void prepSendMsg(SubmissionEntry entry, int fd, msghdr msg, MsgFlags flags)

Prepares sendmsg(2) operation.

prepSyncFileRange
void prepSyncFileRange(SubmissionEntry entry, int fd, ulong offset, uint len, SyncFileRangeFlags flags)

Prepares sync_file_range(2) operation.

prepTimeout
void prepTimeout(SubmissionEntry entry, KernelTimespec time, ulong count, TimeoutFlags flags)

This command will register a timeout operation.

prepTimeoutRemove
void prepTimeoutRemove(SubmissionEntry entry, D userData)

Prepares operations to remove existing timeout registered using TIMEOUToperation.

prepWriteFixed
void prepWriteFixed(SubmissionEntry entry, int fd, ulong offset, ubyte[] buffer, ushort bufferIndex)

Prepares write_fixed operation.

prepWritev
void prepWritev(SubmissionEntry entry, int fd, V buffer, ulong offset)

Prepares writev operation.

setUserData
void setUserData(SubmissionEntry entry, D data)

Template function to help set SubmissionEntry user_data field.

setup
int setup(Uring uring, uint entries, SetupFlags flags)

Setup new instance of io_uring into provided Uring structure.

Structs

Uring
struct Uring

Main entry point to work with io_uring.

Meta