| Constructor and 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. |
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)
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];
};
};
Copyright © 2008–2024 The Netty Project. All rights reserved.