[][src]Struct syscall::io_uring::v1::SqEntry64

#[repr(C, align(64))]pub struct SqEntry64 {
    pub opcode: u8,
    pub flags: u8,
    pub priority: u16,
    pub syscall_flags: u32,
    pub fd: u64,
    pub len: u64,
    pub user_data: u64,
    pub addr: u64,
    pub offset: u64,
    pub additional1: u64,
    pub additional2: u64,
}

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.

Fields

opcode: u8

An opcode with varying definitions; by default it is one of StandardOpcode, which takes values in the 0..=127 range, unless special flags are set during initialization. In the userspace-to-kernel mode, it can also be one of KernelOpcode. Similarly, for userspace-to-userspace, the consumer and producer are free to use other opcodes above 127 for custom opcodes.

This field belongs to the "implicit fields".

flags: u8

Flags specifying how the submission is going to be executed, and etc.

This field belongs to the "implicit fields".

priority: u16

The priority of the syscall; higher priorities may cause the syscall to be reordererd with lower priority syscalls.

This field belongs to the "implicit fields".

syscall_flags: u32

Specific to the opcode, but usually bitflags.

fd: u64

Specific to the opcode, but usually a file descriptor to operate on.

len: u64

Specific to the opcode, but usually the length of a buffer, or number of items.

user_data: u64

A custom value that is simply passed on to the completion entry, allowing completions to be distinguished between each other, and mapped to their corresponding submissions.

This field belongs to the "implicit fields".

addr: u64

Specific to the syscall, but usually an address to a buffer.

offset: u64

Specific to the syscall, and can be used for many different purposes.

additional1: u64

Extends the syscall with 64 additional bits of information, and is not included for SqEntry32.

additional2: u64

Like additional1, extends the syscall with 64 additional bits of information, and is not included for SqEntry32.

Implementations

impl SqEntry64[src]

pub fn linked(self) -> Self[src]

pub fn unlinked(self) -> Self[src]

pub fn drain_first(self) -> Self[src]

pub fn dont_drain_first(self) -> Self[src]

pub fn with_priority(self, priority: u16) -> Self[src]

pub fn with_user_data(self, user_data: u64) -> Self[src]

pub fn new(flags: IoUringSqeFlags, priority: u16, user_data: u64) -> Self[src]

pub fn open(self, path: &[u8], open_flags: u64) -> Self[src]

pub fn write(self, fd: u64, buf: &[u8]) -> Self[src]

pub fn pwrite(self, fd: u64, buf: &[u8], offset: u64) -> Self[src]

pub fn writev(self, fd: u64, vecs: &[IoVec]) -> Self[src]

pub fn pwritev(self, fd: u64, vecs: &[IoVec], offset: u64) -> Self[src]

pub fn read(self, fd: u64, buf: &mut [u8]) -> Self[src]

pub fn pread(self, fd: u64, buf: &mut [u8], offset: u64) -> Self[src]

pub fn readv(self, fd: u64, vecs: &[IoVec]) -> Self[src]

pub fn preadv(self, fd: u64, vecs: &[IoVec], offset: u64) -> Self[src]

pub fn file_update(self, fd: u64, on: EventFlags, oneshot: bool) -> Self[src]

pub fn files_update(self, fds: &[u64], on: EventFlags, oneshot: bool) -> Self[src]

pub fn close_many(self, start_fd: u64, count: u64, flush: bool) -> Self[src]

pub fn close(self, fd: u64, flush: bool) -> Self[src]

Trait Implementations

impl Clone for SqEntry64[src]

impl Copy for SqEntry64[src]

impl Debug for SqEntry64[src]

impl Default for SqEntry64[src]

impl Eq for SqEntry64[src]

impl GenericSubmissionEntry for SqEntry64[src]

impl Hash for SqEntry64[src]

impl Ord for SqEntry64[src]

impl PartialEq<SqEntry64> for SqEntry64[src]

impl PartialOrd<SqEntry64> for SqEntry64[src]

impl StructuralEq for SqEntry64[src]

impl StructuralPartialEq for SqEntry64[src]

Auto Trait Implementations

impl Send for SqEntry64

impl Sync for SqEntry64

impl Unpin for SqEntry64

Blanket Implementations

impl<T> Any for T where
    T: 'static + ?Sized
[src]

impl<T> Borrow<T> for T where
    T: ?Sized
[src]

impl<T> BorrowMut<T> for T where
    T: ?Sized
[src]

impl<T> From<T> for T[src]

impl<T, U> Into<U> for T where
    U: From<T>, 
[src]

impl<T, U> TryFrom<U> for T where
    U: Into<T>, 
[src]

type Error = Infallible

The type returned in the event of a conversion error.

impl<T, U> TryInto<U> for T where
    U: TryFrom<T>, 
[src]

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.