io_uring

Module opcode

Source
Expand description

Operation codes that can be used to construct squeue::Entrys.

Structs§

  • Accept a new connection on a socket, equivalent to accept4(2).
  • Accept multiple new connections on a socket.
  • Attempt to cancel an already issued request.
  • Attempt to cancel an already issued request, receiving a cancellation builder, which allows for the new cancel criterias introduced since 5.19.
  • Close a file descriptor, equivalent to close(2).
  • Connect a socket, equivalent to connect(2).
  • Modify an epoll file descriptor, equivalent to epoll_ctl(2).
  • Predeclare an access pattern for file data, equivalent to posix_fadvise(2).
  • Preallocate or deallocate space to a file, equivalent to fallocate(2).
  • This command is an alternative to using Submitter::register_files_update which then works in an async fashion, like the rest of the io_uring commands.
  • File sync, equivalent to fsync(2).
  • Wait on a futex, like but not equivalant to futex(2)’s FUTEX_WAIT_BITSET.
  • Wait on multiple futexes.
  • Wake up waiters on a futex, like but not equivalant to futex(2)’s FUTEX_WAKE_BITSET.
  • Create a hard link, equivalent to linkat(2).
  • This request must be linked with another request through Flags::IO_LINK which is described below. Unlike Timeout, LinkTimeout acts on the linked request, not the completion queue.
  • Give advice about use of memory, equivalent to madvise(2).
  • Make a directory, equivalent to mkdirat(2).
  • Send a message (with data) to a target ring.
  • Send a message (with fixed FD) to a target ring.
  • Do not perform any I/O.
  • Open a file, equivalent to openat(2).
  • Open a file, equivalent to openat2(2).
  • Poll the specified fd.
  • Remove an existing poll request.
  • Register nbufs buffers that each have the length len with ids starting from bid in the group bgid that can be used for any request. See BUFFER_SELECT for more info.
  • Issue the equivalent of a pread(2) or pwrite(2) system call
  • Read from a file into a fixed buffer that has been previously registered with Submitter::register_buffers.
  • Vectored read, equivalent to preadv2(2).
  • Receive a message from a socket, equivalent to recv(2).
  • Receive a message on a socket, equivalent to recvmsg(2).
  • Receive multiple messages on a socket, equivalent to recvmsg(2).
  • Receive multiple messages from a socket, equivalent to recv(2).
  • Remove some number of buffers from a buffer group. See BUFFER_SELECT for more info.
  • Send a message on a socket, equivalent to send(2).
  • Send a message on a socket, equivalent to send(2).
  • Send a zerocopy message on a socket, equivalent to send(2).
  • Send a zerocopy message on a socket, equivalent to send(2).
  • Shut down all or part of a full duplex connection on a socket, equivalent to shutdown(2). Available since kernel 5.11.
  • Create an endpoint for communication, equivalent to socket(2).
  • Splice data to/from a pipe, equivalent to splice(2).
  • Get file status, equivalent to statx(2).
  • Create a symlink, equivalent to symlinkat(2).
  • Sync a file segment with disk, equivalent to sync_file_range(2).
  • Duplicate pipe content, equivalent to tee(2).
  • Register a timeout operation.
  • Attempt to remove an existing timeout operation.
  • Attempt to update an existing timeout operation with a new timespec. The optional count value of the original timeout value cannot be updated.
  • A file/device-specific 16-byte command, akin (but not equivalent) to ioctl(2).
  • A file/device-specific 80-byte command, akin (but not equivalent) to ioctl(2).
  • Issue the equivalent of a pread(2) or pwrite(2) system call
  • Write to a file from a fixed buffer that have been previously registered with Submitter::register_buffers.
  • Vectored write, equivalent to pwritev2(2).