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