[][src]Module syscall::io_uring::v1

The first version of Redox's userspace ring API.

Modules

operation

Structs

CachePadded

A wrapper that aligns a type to the size of a cache line.

ConsumerInstance
ConsumerInstanceBuilder
CqEntry32

A 32-bit Completion Queue Entry. Takes up 16 bytes of space.

CqEntry64

A 64-bit Completion Queue Entry. Takes up 32 bytes of space.

IoUringCqeFlags
IoUringCreateFlags
IoUringRecvFlags
IoUringSqeFlags

General flags describing a submission entry. Note that these flags are different from the syscall flags in that they describe the io_uring behavior when handling the SQE, rather than configuring the syscall.

ProducerInstance
Ring

The raw data structure of the ring, shared with the producer(s) and consumer(s) using it.

SpscReceiver

A safe wrapper over the raw Ring interface, that takes care of the mmap offset, as well as the global Ring structure. Only allows receiving items.

SpscSender

A safe wrapper over the raw Ring interface, that takes care of the mmap offset, as well as the global Ring structure. Only allows sending items.

SqEntry32

A 32-bit Submission Queue Entry, representing a syscall to submit. Takes up 32 bytes of space. Implements Ord by comparing priority, so that they can be stored in BinaryHeap. This entry type is not restricted to only 32-bit platforms, and can be used as a smaller alternative entry type, to fit more entries within the same memory region.

SqEntry64

A 64-bit Submission Queue Entry, representing a syscall to submit. Takes up 128 bytes of space. Implements Ord by comparing priority, so that they can be stored in BinaryHeap. This entry type is only meant to be used on 64-bit platforms.

Enums

ConsumerGenericReceiver
ConsumerGenericSender
KernelOpcode

The opcodes specific to the kernel.

ProducerGenericReceiver
ProducerGenericSender
RingPopError

The errors that may occur when popping from the front of a ring.

RingPushError

The errors that may occur when pushing to the back of a ring.

RingRecvError
RingSendError
StandardOpcode

The standard opcodes, which are a superset of the filesystem (scheme-compatible) syscalls. Opcodes with a value above 127 are specific to the producer; the kernel for example, also has syscalls for managing memory and processes, while a userspace producer such as nvmed can provide custom messages for things like TRIM.

Constants

CQ_ENTRIES_MMAP_OFFSET
CQ_HEADER_MMAP_OFFSET
CURRENT_MINOR
CURRENT_PATCH
SQ_ENTRIES_MMAP_OFFSET
SQ_HEADER_MMAP_OFFSET

Traits

GenericCompletionEntry
GenericSubmissionEntry
GenericSubmissionEntryExt