diff options
| author | Pavel Begunkov <asml.silence@gmail.com> | 2025-11-12 12:45:57 +0000 |
|---|---|---|
| committer | Jens Axboe <axboe@kernel.dk> | 2025-11-13 07:27:34 -0700 |
| commit | 001b76b7e755767d847e9aebf1fd6e525f1e58c8 (patch) | |
| tree | b07746d8894841abf3ade0a271419f7f1adf7238 /io_uring/io_uring.h | |
| parent | 0f4b537363cb66c78e97bb58c26986af62856356 (diff) | |
io_uring: keep ring laoyut in a structure
Add a structure keeping SQ/CQ sizes and offsets. For now it only records
data previously returned from rings_size and the SQ size.
Signed-off-by: Pavel Begunkov <asml.silence@gmail.com>
Signed-off-by: Jens Axboe <axboe@kernel.dk>
Diffstat (limited to 'io_uring/io_uring.h')
| -rw-r--r-- | io_uring/io_uring.h | 12 |
1 files changed, 10 insertions, 2 deletions
diff --git a/io_uring/io_uring.h b/io_uring/io_uring.h index d8bc44acb9fa..5e544c2d27c8 100644 --- a/io_uring/io_uring.h +++ b/io_uring/io_uring.h @@ -17,6 +17,14 @@ #include <trace/events/io_uring.h> #endif +struct io_rings_layout { + /* size of CQ + headers + SQ offset array */ + size_t rings_size; + size_t sq_size; + + size_t sq_array_offset; +}; + struct io_ctx_config { struct io_uring_params p; struct io_uring_params __user *uptr; @@ -139,8 +147,8 @@ static inline bool io_should_wake(struct io_wait_queue *iowq) #define IORING_MAX_ENTRIES 32768 #define IORING_MAX_CQ_ENTRIES (2 * IORING_MAX_ENTRIES) -unsigned long rings_size(unsigned int flags, unsigned int sq_entries, - unsigned int cq_entries, size_t *sq_offset); +int rings_size(unsigned int flags, unsigned int sq_entries, + unsigned int cq_entries, struct io_rings_layout *rl); int io_prepare_config(struct io_ctx_config *config); bool io_cqe_cache_refill(struct io_ring_ctx *ctx, bool overflow, bool cqe32); |