Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

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>

authored by

Pavel Begunkov and committed by
Jens Axboe
63805d0a da8bc3c8

+60 -29
+3 -29
io_uring/io_uring.c
··· 108 108 #define SQE_COMMON_FLAGS (IOSQE_FIXED_FILE | IOSQE_IO_LINK | \ 109 109 IOSQE_IO_HARDLINK | IOSQE_ASYNC) 110 110 111 - #define SQE_VALID_FLAGS (SQE_COMMON_FLAGS | IOSQE_BUFFER_SELECT | \ 112 - IOSQE_IO_DRAIN | IOSQE_CQE_SKIP_SUCCESS) 113 - 114 111 #define IO_REQ_LINK_FLAGS (REQ_F_LINK | REQ_F_HARDLINK) 115 112 116 113 #define IO_REQ_CLEAN_FLAGS (REQ_F_BUFFER_SELECTED | REQ_F_NEED_CLEANUP | \ ··· 3459 3462 struct file *file; 3460 3463 long ret; 3461 3464 3462 - if (unlikely(flags & ~(IORING_ENTER_GETEVENTS | IORING_ENTER_SQ_WAKEUP | 3463 - IORING_ENTER_SQ_WAIT | IORING_ENTER_EXT_ARG | 3464 - IORING_ENTER_REGISTERED_RING | 3465 - IORING_ENTER_ABS_TIMER | 3466 - IORING_ENTER_EXT_ARG_REG | 3467 - IORING_ENTER_NO_IOWAIT))) 3465 + if (unlikely(flags & ~IORING_ENTER_FLAGS)) 3468 3466 return -EINVAL; 3469 3467 3470 3468 /* ··· 3867 3875 if (ret) 3868 3876 goto err; 3869 3877 3870 - p->features = IORING_FEAT_SINGLE_MMAP | IORING_FEAT_NODROP | 3871 - IORING_FEAT_SUBMIT_STABLE | IORING_FEAT_RW_CUR_POS | 3872 - IORING_FEAT_CUR_PERSONALITY | IORING_FEAT_FAST_POLL | 3873 - IORING_FEAT_POLL_32BITS | IORING_FEAT_SQPOLL_NONFIXED | 3874 - IORING_FEAT_EXT_ARG | IORING_FEAT_NATIVE_WORKERS | 3875 - IORING_FEAT_RSRC_TAGS | IORING_FEAT_CQE_SKIP | 3876 - IORING_FEAT_LINKED_FILE | IORING_FEAT_REG_REG_RING | 3877 - IORING_FEAT_RECVSEND_BUNDLE | IORING_FEAT_MIN_TIMEOUT | 3878 - IORING_FEAT_RW_ATTR | IORING_FEAT_NO_IOWAIT; 3878 + p->features = IORING_FEAT_FLAGS; 3879 3879 3880 3880 if (copy_to_user(params, p, sizeof(*p))) { 3881 3881 ret = -EFAULT; ··· 3932 3948 return -EINVAL; 3933 3949 } 3934 3950 3935 - if (p.flags & ~(IORING_SETUP_IOPOLL | IORING_SETUP_SQPOLL | 3936 - IORING_SETUP_SQ_AFF | IORING_SETUP_CQSIZE | 3937 - IORING_SETUP_CLAMP | IORING_SETUP_ATTACH_WQ | 3938 - IORING_SETUP_R_DISABLED | IORING_SETUP_SUBMIT_ALL | 3939 - IORING_SETUP_COOP_TASKRUN | IORING_SETUP_TASKRUN_FLAG | 3940 - IORING_SETUP_SQE128 | IORING_SETUP_CQE32 | 3941 - IORING_SETUP_SINGLE_ISSUER | IORING_SETUP_DEFER_TASKRUN | 3942 - IORING_SETUP_NO_MMAP | IORING_SETUP_REGISTERED_FD_ONLY | 3943 - IORING_SETUP_NO_SQARRAY | IORING_SETUP_HYBRID_IOPOLL | 3944 - IORING_SETUP_CQE_MIXED)) 3951 + if (p.flags & ~IORING_SETUP_FLAGS) 3945 3952 return -EINVAL; 3946 - 3947 3953 return io_uring_create(entries, &p, params); 3948 3954 } 3949 3955
+57
io_uring/io_uring.h
··· 18 18 #include <trace/events/io_uring.h> 19 19 #endif 20 20 21 + #define IORING_FEAT_FLAGS (IORING_FEAT_SINGLE_MMAP |\ 22 + IORING_FEAT_NODROP |\ 23 + IORING_FEAT_SUBMIT_STABLE |\ 24 + IORING_FEAT_RW_CUR_POS |\ 25 + IORING_FEAT_CUR_PERSONALITY |\ 26 + IORING_FEAT_FAST_POLL |\ 27 + IORING_FEAT_POLL_32BITS |\ 28 + IORING_FEAT_SQPOLL_NONFIXED |\ 29 + IORING_FEAT_EXT_ARG |\ 30 + IORING_FEAT_NATIVE_WORKERS |\ 31 + IORING_FEAT_RSRC_TAGS |\ 32 + IORING_FEAT_CQE_SKIP |\ 33 + IORING_FEAT_LINKED_FILE |\ 34 + IORING_FEAT_REG_REG_RING |\ 35 + IORING_FEAT_RECVSEND_BUNDLE |\ 36 + IORING_FEAT_MIN_TIMEOUT |\ 37 + IORING_FEAT_RW_ATTR |\ 38 + IORING_FEAT_NO_IOWAIT) 39 + 40 + #define IORING_SETUP_FLAGS (IORING_SETUP_IOPOLL |\ 41 + IORING_SETUP_SQPOLL |\ 42 + IORING_SETUP_SQ_AFF |\ 43 + IORING_SETUP_CQSIZE |\ 44 + IORING_SETUP_CLAMP |\ 45 + IORING_SETUP_ATTACH_WQ |\ 46 + IORING_SETUP_R_DISABLED |\ 47 + IORING_SETUP_SUBMIT_ALL |\ 48 + IORING_SETUP_COOP_TASKRUN |\ 49 + IORING_SETUP_TASKRUN_FLAG |\ 50 + IORING_SETUP_SQE128 |\ 51 + IORING_SETUP_CQE32 |\ 52 + IORING_SETUP_SINGLE_ISSUER |\ 53 + IORING_SETUP_DEFER_TASKRUN |\ 54 + IORING_SETUP_NO_MMAP |\ 55 + IORING_SETUP_REGISTERED_FD_ONLY |\ 56 + IORING_SETUP_NO_SQARRAY |\ 57 + IORING_SETUP_HYBRID_IOPOLL |\ 58 + IORING_SETUP_CQE_MIXED) 59 + 60 + #define IORING_ENTER_FLAGS (IORING_ENTER_GETEVENTS |\ 61 + IORING_ENTER_SQ_WAKEUP |\ 62 + IORING_ENTER_SQ_WAIT |\ 63 + IORING_ENTER_EXT_ARG |\ 64 + IORING_ENTER_REGISTERED_RING |\ 65 + IORING_ENTER_ABS_TIMER |\ 66 + IORING_ENTER_EXT_ARG_REG |\ 67 + IORING_ENTER_NO_IOWAIT) 68 + 69 + 70 + #define SQE_VALID_FLAGS (IOSQE_FIXED_FILE |\ 71 + IOSQE_IO_DRAIN |\ 72 + IOSQE_IO_LINK |\ 73 + IOSQE_IO_HARDLINK |\ 74 + IOSQE_ASYNC |\ 75 + IOSQE_BUFFER_SELECT |\ 76 + IOSQE_CQE_SKIP_SUCCESS) 77 + 21 78 enum { 22 79 IOU_COMPLETE = 0, 23 80