io_uring: add macros for avaliable flags
Add constants for supported setup / request / feature flags as well as the feature mask. They'll be used in the next patch. Signed-off-by: Pavel Begunkov <asml.silence@gmail.com> Reviewed-by: Martin K. Petersen <martin.petersen@oracle.com> Signed-off-by: Jens Axboe <axboe@kernel.dk>
This commit is contained in:
parent
da8bc3c81c
commit
63805d0a9b
|
@ -108,9 +108,6 @@
|
||||||
#define SQE_COMMON_FLAGS (IOSQE_FIXED_FILE | IOSQE_IO_LINK | \
|
#define SQE_COMMON_FLAGS (IOSQE_FIXED_FILE | IOSQE_IO_LINK | \
|
||||||
IOSQE_IO_HARDLINK | IOSQE_ASYNC)
|
IOSQE_IO_HARDLINK | IOSQE_ASYNC)
|
||||||
|
|
||||||
#define SQE_VALID_FLAGS (SQE_COMMON_FLAGS | IOSQE_BUFFER_SELECT | \
|
|
||||||
IOSQE_IO_DRAIN | IOSQE_CQE_SKIP_SUCCESS)
|
|
||||||
|
|
||||||
#define IO_REQ_LINK_FLAGS (REQ_F_LINK | REQ_F_HARDLINK)
|
#define IO_REQ_LINK_FLAGS (REQ_F_LINK | REQ_F_HARDLINK)
|
||||||
|
|
||||||
#define IO_REQ_CLEAN_FLAGS (REQ_F_BUFFER_SELECTED | REQ_F_NEED_CLEANUP | \
|
#define IO_REQ_CLEAN_FLAGS (REQ_F_BUFFER_SELECTED | REQ_F_NEED_CLEANUP | \
|
||||||
|
@ -3462,12 +3459,7 @@ SYSCALL_DEFINE6(io_uring_enter, unsigned int, fd, u32, to_submit,
|
||||||
struct file *file;
|
struct file *file;
|
||||||
long ret;
|
long ret;
|
||||||
|
|
||||||
if (unlikely(flags & ~(IORING_ENTER_GETEVENTS | IORING_ENTER_SQ_WAKEUP |
|
if (unlikely(flags & ~IORING_ENTER_FLAGS))
|
||||||
IORING_ENTER_SQ_WAIT | IORING_ENTER_EXT_ARG |
|
|
||||||
IORING_ENTER_REGISTERED_RING |
|
|
||||||
IORING_ENTER_ABS_TIMER |
|
|
||||||
IORING_ENTER_EXT_ARG_REG |
|
|
||||||
IORING_ENTER_NO_IOWAIT)))
|
|
||||||
return -EINVAL;
|
return -EINVAL;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
@ -3875,15 +3867,7 @@ static __cold int io_uring_create(unsigned entries, struct io_uring_params *p,
|
||||||
if (ret)
|
if (ret)
|
||||||
goto err;
|
goto err;
|
||||||
|
|
||||||
p->features = IORING_FEAT_SINGLE_MMAP | IORING_FEAT_NODROP |
|
p->features = IORING_FEAT_FLAGS;
|
||||||
IORING_FEAT_SUBMIT_STABLE | IORING_FEAT_RW_CUR_POS |
|
|
||||||
IORING_FEAT_CUR_PERSONALITY | IORING_FEAT_FAST_POLL |
|
|
||||||
IORING_FEAT_POLL_32BITS | IORING_FEAT_SQPOLL_NONFIXED |
|
|
||||||
IORING_FEAT_EXT_ARG | IORING_FEAT_NATIVE_WORKERS |
|
|
||||||
IORING_FEAT_RSRC_TAGS | IORING_FEAT_CQE_SKIP |
|
|
||||||
IORING_FEAT_LINKED_FILE | IORING_FEAT_REG_REG_RING |
|
|
||||||
IORING_FEAT_RECVSEND_BUNDLE | IORING_FEAT_MIN_TIMEOUT |
|
|
||||||
IORING_FEAT_RW_ATTR | IORING_FEAT_NO_IOWAIT;
|
|
||||||
|
|
||||||
if (copy_to_user(params, p, sizeof(*p))) {
|
if (copy_to_user(params, p, sizeof(*p))) {
|
||||||
ret = -EFAULT;
|
ret = -EFAULT;
|
||||||
|
@ -3948,18 +3932,8 @@ static long io_uring_setup(u32 entries, struct io_uring_params __user *params)
|
||||||
return -EINVAL;
|
return -EINVAL;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (p.flags & ~(IORING_SETUP_IOPOLL | IORING_SETUP_SQPOLL |
|
if (p.flags & ~IORING_SETUP_FLAGS)
|
||||||
IORING_SETUP_SQ_AFF | IORING_SETUP_CQSIZE |
|
|
||||||
IORING_SETUP_CLAMP | IORING_SETUP_ATTACH_WQ |
|
|
||||||
IORING_SETUP_R_DISABLED | IORING_SETUP_SUBMIT_ALL |
|
|
||||||
IORING_SETUP_COOP_TASKRUN | IORING_SETUP_TASKRUN_FLAG |
|
|
||||||
IORING_SETUP_SQE128 | IORING_SETUP_CQE32 |
|
|
||||||
IORING_SETUP_SINGLE_ISSUER | IORING_SETUP_DEFER_TASKRUN |
|
|
||||||
IORING_SETUP_NO_MMAP | IORING_SETUP_REGISTERED_FD_ONLY |
|
|
||||||
IORING_SETUP_NO_SQARRAY | IORING_SETUP_HYBRID_IOPOLL |
|
|
||||||
IORING_SETUP_CQE_MIXED))
|
|
||||||
return -EINVAL;
|
return -EINVAL;
|
||||||
|
|
||||||
return io_uring_create(entries, &p, params);
|
return io_uring_create(entries, &p, params);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -18,6 +18,63 @@
|
||||||
#include <trace/events/io_uring.h>
|
#include <trace/events/io_uring.h>
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#define IORING_FEAT_FLAGS (IORING_FEAT_SINGLE_MMAP |\
|
||||||
|
IORING_FEAT_NODROP |\
|
||||||
|
IORING_FEAT_SUBMIT_STABLE |\
|
||||||
|
IORING_FEAT_RW_CUR_POS |\
|
||||||
|
IORING_FEAT_CUR_PERSONALITY |\
|
||||||
|
IORING_FEAT_FAST_POLL |\
|
||||||
|
IORING_FEAT_POLL_32BITS |\
|
||||||
|
IORING_FEAT_SQPOLL_NONFIXED |\
|
||||||
|
IORING_FEAT_EXT_ARG |\
|
||||||
|
IORING_FEAT_NATIVE_WORKERS |\
|
||||||
|
IORING_FEAT_RSRC_TAGS |\
|
||||||
|
IORING_FEAT_CQE_SKIP |\
|
||||||
|
IORING_FEAT_LINKED_FILE |\
|
||||||
|
IORING_FEAT_REG_REG_RING |\
|
||||||
|
IORING_FEAT_RECVSEND_BUNDLE |\
|
||||||
|
IORING_FEAT_MIN_TIMEOUT |\
|
||||||
|
IORING_FEAT_RW_ATTR |\
|
||||||
|
IORING_FEAT_NO_IOWAIT)
|
||||||
|
|
||||||
|
#define IORING_SETUP_FLAGS (IORING_SETUP_IOPOLL |\
|
||||||
|
IORING_SETUP_SQPOLL |\
|
||||||
|
IORING_SETUP_SQ_AFF |\
|
||||||
|
IORING_SETUP_CQSIZE |\
|
||||||
|
IORING_SETUP_CLAMP |\
|
||||||
|
IORING_SETUP_ATTACH_WQ |\
|
||||||
|
IORING_SETUP_R_DISABLED |\
|
||||||
|
IORING_SETUP_SUBMIT_ALL |\
|
||||||
|
IORING_SETUP_COOP_TASKRUN |\
|
||||||
|
IORING_SETUP_TASKRUN_FLAG |\
|
||||||
|
IORING_SETUP_SQE128 |\
|
||||||
|
IORING_SETUP_CQE32 |\
|
||||||
|
IORING_SETUP_SINGLE_ISSUER |\
|
||||||
|
IORING_SETUP_DEFER_TASKRUN |\
|
||||||
|
IORING_SETUP_NO_MMAP |\
|
||||||
|
IORING_SETUP_REGISTERED_FD_ONLY |\
|
||||||
|
IORING_SETUP_NO_SQARRAY |\
|
||||||
|
IORING_SETUP_HYBRID_IOPOLL |\
|
||||||
|
IORING_SETUP_CQE_MIXED)
|
||||||
|
|
||||||
|
#define IORING_ENTER_FLAGS (IORING_ENTER_GETEVENTS |\
|
||||||
|
IORING_ENTER_SQ_WAKEUP |\
|
||||||
|
IORING_ENTER_SQ_WAIT |\
|
||||||
|
IORING_ENTER_EXT_ARG |\
|
||||||
|
IORING_ENTER_REGISTERED_RING |\
|
||||||
|
IORING_ENTER_ABS_TIMER |\
|
||||||
|
IORING_ENTER_EXT_ARG_REG |\
|
||||||
|
IORING_ENTER_NO_IOWAIT)
|
||||||
|
|
||||||
|
|
||||||
|
#define SQE_VALID_FLAGS (IOSQE_FIXED_FILE |\
|
||||||
|
IOSQE_IO_DRAIN |\
|
||||||
|
IOSQE_IO_LINK |\
|
||||||
|
IOSQE_IO_HARDLINK |\
|
||||||
|
IOSQE_ASYNC |\
|
||||||
|
IOSQE_BUFFER_SELECT |\
|
||||||
|
IOSQE_CQE_SKIP_SUCCESS)
|
||||||
|
|
||||||
enum {
|
enum {
|
||||||
IOU_COMPLETE = 0,
|
IOU_COMPLETE = 0,
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue