diff options
| author | Pavel Begunkov <asml.silence@gmail.com> | 2021-04-25 16:32:21 +0300 |
|---|---|---|
| committer | Jens Axboe <axboe@kernel.dk> | 2021-04-25 19:14:04 +0300 |
| commit | 792e35824be9af9fb4dac956229fb97bda04e25e (patch) | |
| tree | 935a757b139448481feaa37c2f07f58622c94ecc /include/uapi/linux | |
| parent | fdecb66281e165927059419c3b1de09ffe4f8369 (diff) | |
| download | linux-792e35824be9af9fb4dac956229fb97bda04e25e.tar.xz | |
io_uring: add IORING_REGISTER_RSRC
Add a new io_uring_register() opcode for rsrc registeration. Instead of
accepting a pointer to resources, fds or iovecs, it @arg is now pointing
to a struct io_uring_rsrc_register, and the second argument tells how
large that struct is to make it easily extendible by adding new fields.
All that is done mainly to be able to pass in a pointer with tags. Pass
it in and enable CQE posting for file resources. Doesn't support setting
tags on update yet.
A design choice made here is to not post CQEs on rsrc de-registration,
but only when we updated-removed it by rsrc dynamic update.
Signed-off-by: Pavel Begunkov <asml.silence@gmail.com>
Link: https://lore.kernel.org/r/c498aaec32a4bb277b2406b9069662c02cdda98c.1619356238.git.asml.silence@gmail.com
Signed-off-by: Jens Axboe <axboe@kernel.dk>
Diffstat (limited to 'include/uapi/linux')
| -rw-r--r-- | include/uapi/linux/io_uring.h | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/include/uapi/linux/io_uring.h b/include/uapi/linux/io_uring.h index d363e0c4fd21..ce7b2fce6713 100644 --- a/include/uapi/linux/io_uring.h +++ b/include/uapi/linux/io_uring.h @@ -298,6 +298,7 @@ enum { IORING_UNREGISTER_PERSONALITY = 10, IORING_REGISTER_RESTRICTIONS = 11, IORING_REGISTER_ENABLE_RINGS = 12, + IORING_REGISTER_RSRC = 13, /* this goes last */ IORING_REGISTER_LAST @@ -320,6 +321,13 @@ enum { IORING_RSRC_FILE = 0, }; +struct io_uring_rsrc_register { + __u32 type; + __u32 nr; + __aligned_u64 data; + __aligned_u64 tags; +}; + /* Skip updating fd indexes set to this value in the fd table */ #define IORING_REGISTER_FILES_SKIP (-2) |
