Struct io_uring::squeue::Flags [−][src]
pub struct Flags { /* fields omitted */ }Expand description
Submission flags
Implementations
When this flag is specified, the SQE will not be started before previously submitted SQEs have completed, and new SQEs will not be started before this one completes.
When this flag is specified, it forms a link with the next SQE in the submission ring. That next SQE will not be started before this one completes.
Like IO_LINK, but it doesn’t sever regardless of the completion
result.
Normal operation for io_uring is to try and issue an sqe as non-blocking first, and if that fails, execute it in an async manner.
To support more efficient overlapped operation of requests that the application knows/assumes will always (or most of the time) block, the application can ask for an sqe to be issued async from the start.
Conceptually the kernel holds a set of buffers organized into groups. When you issue a
request with this flag and set buf_group to a valid buffer group ID (e.g.
buf_group on Read) then once the file descriptor
becomes ready the kernel will try to take a buffer from the group.
If there are no buffers in the group, your request will fail with -ENOBUFS. Otherwise,
the corresponding cqueue::Entry::flags will contain the
chosen buffer ID, encoded with:
(buffer_id << IORING_CQE_BUFFER_SHIFT) | IORING_CQE_F_BUFFERYou can use buffer_select to take the buffer ID.
The buffer will then be removed from the group and won’t be usable by other requests anymore.
You can provide new buffers in a group with
ProvideBuffers.
See also the LWN thread on automatic buffer selection.
Requires the unstable feature.
Convert from underlying bit representation, unless that representation contains bits that do not correspond to a flag.
Convert from underlying bit representation, dropping any bits that do not correspond to flags.
Convert from underlying bit representation, preserving all bits (even those not corresponding to a defined flag).
Returns true if there are flags common to both self and other.
Returns true all of the flags in other are contained within self.
Trait Implementations
Disables all flags disabled in the set.
Adds the set of flags.
Toggles the set of flags.
Extends a collection with the contents of an iterator. Read more
extend_one)Extends a collection with exactly one element.
extend_one)Reserves capacity in a collection for the given number of additional elements. Read more
This method returns an ordering between self and other values if one exists. Read more
This method tests less than (for self and other) and is used by the < operator. Read more
This method tests less than or equal to (for self and other) and is used by the <=
operator. Read more
This method tests greater than (for self and other) and is used by the > operator. Read more
Disables all flags enabled in the set.
Auto Trait Implementations
impl RefUnwindSafe for Flags
impl UnwindSafe for Flags
Blanket Implementations
Mutably borrows from an owned value. Read more