Class IoUringIoOps

java.lang.Object
io.netty.channel.uring.IoUringIoOps
All Implemented Interfaces:
IoOps

public final class IoUringIoOps extends Object implements IoOps
IoOps for implementation for Io_uring.
  • Constructor Summary

    Constructors
    Constructor
    Description
    IoUringIoOps(byte opcode, byte flags, short ioPrio, int fd, long union1, long union2, int len, int union3, short data, short union4, short personality, int union5, long union6)
    Create a new instance which represents the io_uring_sqe struct.
  • Method Summary

    Modifier and Type
    Method
    Description
     

    Methods inherited from class Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
  • Constructor Details

    • IoUringIoOps

      public IoUringIoOps(byte opcode, byte flags, short ioPrio, int fd, long union1, long union2, int len, int union3, short data, short union4, short personality, int union5, long union6)
      Create a new instance which represents the io_uring_sqe struct.
       struct io_uring_sqe {
           __u8    opcode;    // type of operation for this sqe
           __u8    flags;     // IOSQE_ flags
           __u16   ioprio;    // ioprio for the request
           __s32   fd;        // file descriptor to do IO on
      
           union {            // union1
               __u64 off;     // offset into file
               __u64 addr2;
               struct {
                   __u32 cmd_op;
                   __u32 __pad1;
               };
           };
      
           union {             // union2
               __u64 addr;    // pointer to buffer or iovecs
               __u64 splice_off_in;
               struct {
                   __u32 level;
                   __u32 optname;
               };
           };
           __u32 len;        // buffer size or number of iovecs
      
           union {           // union3
               __kernel_rwf_t rw_flags;
               __u32 fsync_flags;
               __u16 poll_events;    // compatibility
               __u32 poll32_events; // word-reversed for BE
               __u32 sync_range_flags;
               __u32 msg_flags;
               __u32 timeout_flags;
               __u32 accept_flags;
               __u32 cancel_flags;
               __u32 open_flags;
               __u32 statx_flags;
               __u32 fadvise_advice;
               __u32 splice_flags;
               __u32 rename_flags;
               __u32 unlink_flags;
               __u32 hardlink_flags;
               __u32 xeattr_flags;
               __u32 msg_ring_flags;
               __u32 uring_cmd_flags;
               __u32 waitid_flags;
               __u32 futex_flags;
               __u32 install_fd_flags;
               __u32 nop_flags;
           };
           __u64 user_data;    // data to be passed back at completion time
                               // pack this to avoid bogus arm OABI complaints
      
           union {             // union4
      
               // index into fixed buffers, if used
               __u16 buf_index;
               // for grouped buffer selection
               __u16 buf_group;
           }__attribute__((packed));
           // personality to use, if used
           __u16 personality;
      
           union {            // union5
      
               __s32 splice_fd_in;
               __u32 file_index;
               __u32 optlen;
               struct {
                   __u16 addr_len;
                   __u16 __pad3[ 1];
               };
           };
      
           union {           // union6
      
               struct {
                   __u64 addr3;
                   __u64 __pad2[ 1];
               };
               __u64 optval;
               //
               // If the ring is initialized with IORING_SETUP_SQE128, then
               // this field is used for 80 bytes of arbitrary command data
               __u8 cmd[ 0];
           };
       };
      
      
  • Method Details