Something went wrong. Try again.
Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
Something went wrong. Try again.
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485/* SPDX-License-Identifier: (GPL-2.0 WITH Linux-syscall-note) OR MIT *//* * Header file for the io_uring query interface. * * Copyright (C) 2026 Pavel Begunkov <asml.silence@gmail.com> * Copyright (C) Meta Platforms, Inc. */#ifndef LINUX_IO_URING_QUERY_H#define LINUX_IO_URING_QUERY_H
#include <linux/types.h>
struct io_uring_query_hdr { __u64 next_entry; __u64 query_data; __u32 query_op; __u32 size; __s32 result; __u32 __resv[3];};
enum { IO_URING_QUERY_OPCODES = 0, IO_URING_QUERY_ZCRX = 1, IO_URING_QUERY_SCQ = 2, IO_URING_QUERY_ZCRX_EVENT = 3,
__IO_URING_QUERY_MAX,};
/* Doesn't require a ring */struct io_uring_query_opcode { /* The number of supported IORING_OP_* opcodes */ __u32 nr_request_opcodes; /* The number of supported IORING_[UN]REGISTER_* opcodes */ __u32 nr_register_opcodes; /* Bitmask of all supported IORING_FEAT_* flags */ __u64 feature_flags; /* Bitmask of all supported IORING_SETUP_* flags */ __u64 ring_setup_flags; /* Bitmask of all supported IORING_ENTER_** flags */ __u64 enter_flags; /* Bitmask of all supported IOSQE_* flags */ __u64 sqe_flags; /* The number of available query opcodes */ __u32 nr_query_opcodes; __u32 __pad;};
struct io_uring_query_zcrx { /* Bitmask of supported ZCRX_REG_* flags, */ __u64 register_flags; /* Bitmask of all supported IORING_ZCRX_AREA_* flags */ __u64 area_flags; /* The number of supported ZCRX_CTRL_* opcodes */ __u32 nr_ctrl_opcodes; /* Bitmask of ZCRX_FEATURE_* indicating which features are available */ __u32 features; /* The refill ring header size */ __u32 rq_hdr_size; /* The alignment for the header */ __u32 rq_hdr_alignment; __u64 __resv2;};
struct io_uring_query_zcrx_event { /* Bitmask of supported ZCRX_EVENT_* flags */ __u32 event_flags; /* Size of zcrx_stats */ __u32 stats_size; /* Required alignment for the stats struct within the region (ie stats_offset) */ __u32 stats_off_alignment; __u32 __resv1; __u64 __resv2[4];};
struct io_uring_query_scq { /* The SQ/CQ rings header size */ __u64 hdr_size; /* The alignment for the header */ __u64 hdr_alignment;};
#endif