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 Details

    • IoUringIoOps

      @Deprecated 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.
    • IoUringIoOps

      public IoUringIoOps(byte opcode, byte flags, short ioPrio, int fd, long union1, long union2, int len, int union3, long 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