Commit f49eca21 authored by Jens Axboe's avatar Jens Axboe

io_uring: add generic command payload type to struct io_kiocb

Each opcode generally has a command structure in io_kiocb which it can
use to store data associated with that request.

In preparation for having the core layer not know about what's inside
these fields, add a generic io_cmd_data type and put in the union as
well.
Signed-off-by: default avatarJens Axboe <axboe@kernel.dk>
parent dc919caf
......@@ -954,14 +954,27 @@ enum {
};
/*
* NOTE! Each of the iocb union members has the file pointer
* Each request type overlays its private data structure on top of this one.
* They must not exceed this one in size.
*/
struct io_cmd_data {
struct file *file;
/* each command gets 56 bytes of data */
__u8 data[56];
};
#define io_kiocb_to_cmd(req) ((void *) &(req)->cmd)
struct io_kiocb {
union {
/*
* NOTE! Each of the io_kiocb union members has the file pointer
* as the first entry in their struct definition. So you can
* access the file pointer through any of the sub-structs,
* or directly as just 'file' in this struct.
*/
struct io_kiocb {
union {
struct file *file;
struct io_cmd_data cmd;
struct io_rw rw;
struct io_poll_iocb poll;
struct io_poll_update poll_update;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment