Linux Audio

Check our new training course

Loading...
Note: File does not exist in v4.6.
 1// SPDX-License-Identifier: GPL-2.0
 2#ifndef IOU_OP_DEF_H
 3#define IOU_OP_DEF_H
 4
 5struct io_op_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	/* opcode is not supported by this kernel */
21	unsigned		not_supported : 1;
22	/* skip auditing */
23	unsigned		audit_skip : 1;
24	/* supports ioprio */
25	unsigned		ioprio : 1;
26	/* supports iopoll */
27	unsigned		iopoll : 1;
28	/* have to be put into the iopoll list */
29	unsigned		iopoll_queue : 1;
30	/* opcode specific path will handle ->async_data allocation if needed */
31	unsigned		manual_alloc : 1;
32	/* size of async data needed, if any */
33	unsigned short		async_size;
34
35	const char		*name;
36
37	int (*prep)(struct io_kiocb *, const struct io_uring_sqe *);
38	int (*issue)(struct io_kiocb *, unsigned int);
39	int (*prep_async)(struct io_kiocb *);
40	void (*cleanup)(struct io_kiocb *);
41	void (*fail)(struct io_kiocb *);
42};
43
44extern const struct io_op_def io_op_defs[];
45
46void io_uring_optable_init(void);
47#endif