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.

openat2
module during.openat2
Undocumented in source.
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, uint flags)

Prepares operation that cancels existing async work.

prepClose
void prepClose(SubmissionEntry entry, int fd)

Note: Available from Linux 5.6

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

Note: Available from Linux 5.5

prepEpollCtl
void prepEpollCtl(SubmissionEntry entry, int epfd, int fd, int op, epoll_event ev)

Note: Available from Linux 5.6

prepFadvise
void prepFadvise(SubmissionEntry entry, int fd, long offset, uint len, int advice)

Note: Available from Linux 5.6

prepFallocate
void prepFallocate(SubmissionEntry entry, int fd, int mode, long offset, long len)

Note: Available from Linux 5.6

prepFilesUpdate
void prepFilesUpdate(SubmissionEntry entry, int[] fds, int offset)

Note: Available from Linux 5.6

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.

prepMadvise
void prepMadvise(SubmissionEntry entry, const(ubyte)[] block, int advice)

Note: Available from Linux 5.6

prepNop
void prepNop(SubmissionEntry entry)

Prepares nop operation.

prepOpenat
void prepOpenat(SubmissionEntry entry, int fd, char* path, int flags, uint mode)

Note: Available from Linux 5.6

prepOpenat2
void prepOpenat2(SubmissionEntry entry, int fd, char* path, OpenHow how)

Note: Available from Linux 5.6

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.

prepProvideBuffers
void prepProvideBuffers(SubmissionEntry entry, ubyte[] buf, int nr, ushort bgid, int bid)

Note: Available from Linux 5.7

prepRead
void prepRead(SubmissionEntry entry, int fd, ubyte[] buffer, long offset)

Note: Available from Linux 5.6

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

Prepares read_fixed operation.

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

Prepares readv operation.

prepRecv
void prepRecv(SubmissionEntry entry, int sockfd, ubyte[] buf, MsgFlags flags)

Note: Available from Linux 5.6

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

Prepares recvmsg(2) operation.

prepRemoveBuffers
void prepRemoveBuffers(SubmissionEntry entry, int nr, ushort bgid)

Note: Available from Linux 5.7

prepSend
void prepSend(SubmissionEntry entry, int sockfd, const(ubyte)[] buf, MsgFlags flags)

Note: Available from Linux 5.6

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

Prepares sendmsg(2) operation.

prepSplice
void prepSplice(SubmissionEntry entry, int fd_in, ulong off_in, int fd_out, ulong off_out, uint nbytes, uint splice_flags)

Note: Available from Linux 5.7

prepStatx
void prepStatx(SubmissionEntry entry, int fd, char* path, int flags, uint mask, Statx statxbuf)

Note: Available from Linux 5.6

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

Prepares sync_file_range(2) operation.

prepTee
void prepTee(SubmissionEntry entry, int fd_in, int fd_out, uint nbytes, uint flags)

Note: Available from Linux 5.8

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.

prepWrite
void prepWrite(SubmissionEntry entry, int fd, const(ubyte)[] buffer, long offset)

Note: Available from Linux 5.6

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

Prepares write_fixed operation.

prepWritev
void prepWritev(SubmissionEntry entry, int fd, V buffer, long 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