0001
0002 #ifndef IOU_OP_DEF_H
0003 #define IOU_OP_DEF_H
0004
0005 struct io_op_def {
0006
0007 unsigned needs_file : 1;
0008
0009 unsigned plug : 1;
0010
0011 unsigned hash_reg_file : 1;
0012
0013 unsigned unbound_nonreg_file : 1;
0014
0015 unsigned pollin : 1;
0016 unsigned pollout : 1;
0017 unsigned poll_exclusive : 1;
0018
0019 unsigned buffer_select : 1;
0020
0021 unsigned not_supported : 1;
0022
0023 unsigned audit_skip : 1;
0024
0025 unsigned ioprio : 1;
0026
0027 unsigned iopoll : 1;
0028
0029 unsigned manual_alloc : 1;
0030
0031 unsigned short async_size;
0032
0033 const char *name;
0034
0035 int (*prep)(struct io_kiocb *, const struct io_uring_sqe *);
0036 int (*issue)(struct io_kiocb *, unsigned int);
0037 int (*prep_async)(struct io_kiocb *);
0038 void (*cleanup)(struct io_kiocb *);
0039 };
0040
0041 extern const struct io_op_def io_op_defs[];
0042
0043 void io_uring_optable_init(void);
0044 #endif