brintos

brintos / linux-shallow public Read only

0
0
Text · 1.3 KiB · 1445643 Raw
52 lines · c
1// SPDX-License-Identifier: GPL-2.02#ifndef IOU_OP_DEF_H3#define IOU_OP_DEF_H4 5struct io_issue_def {6	/* needs req->file assigned */7	unsigned		needs_file : 1;8	/* should block plug */9	unsigned		plug : 1;10	/* hash wq insertion if file is a regular file */11	unsigned		hash_reg_file : 1;12	/* unbound wq insertion if file is a non-regular file */13	unsigned		unbound_nonreg_file : 1;14	/* set if opcode supports polled "wait" */15	unsigned		pollin : 1;16	unsigned		pollout : 1;17	unsigned		poll_exclusive : 1;18	/* op supports buffer selection */19	unsigned		buffer_select : 1;20	/* skip auditing */21	unsigned		audit_skip : 1;22	/* supports ioprio */23	unsigned		ioprio : 1;24	/* supports iopoll */25	unsigned		iopoll : 1;26	/* have to be put into the iopoll list */27	unsigned		iopoll_queue : 1;28	/* vectored opcode, set if 1) vectored, and 2) handler needs to know */29	unsigned		vectored : 1;30 31	/* size of async data needed, if any */32	unsigned short		async_size;33 34	int (*issue)(struct io_kiocb *, unsigned int);35	int (*prep)(struct io_kiocb *, const struct io_uring_sqe *);36};37 38struct io_cold_def {39	const char		*name;40 41	void (*cleanup)(struct io_kiocb *);42	void (*fail)(struct io_kiocb *);43};44 45extern const struct io_issue_def io_issue_defs[];46extern const struct io_cold_def io_cold_defs[];47 48bool io_uring_op_supported(u8 opcode);49 50void io_uring_optable_init(void);51#endif52