diff options
Diffstat (limited to 'include/linux/io_uring.h')
| -rw-r--r-- | include/linux/io_uring.h | 18 | 
1 files changed, 15 insertions, 3 deletions
diff --git a/include/linux/io_uring.h b/include/linux/io_uring.h index 4a2f6cc5a492..43bc8a2edccf 100644 --- a/include/linux/io_uring.h +++ b/include/linux/io_uring.h @@ -4,6 +4,7 @@  #include <linux/sched.h>  #include <linux/xarray.h> +#include <uapi/linux/io_uring.h>  enum io_uring_cmd_flags {  	IO_URING_F_COMPLETE_DEFER	= 1, @@ -20,14 +21,20 @@ enum io_uring_cmd_flags {  struct io_uring_cmd {  	struct file	*file;  	const void	*cmd; -	/* callback to defer completions to task context */ -	void (*task_work_cb)(struct io_uring_cmd *cmd); +	union { +		/* callback to defer completions to task context */ +		void (*task_work_cb)(struct io_uring_cmd *cmd); +		/* used for polled completion */ +		void *cookie; +	};  	u32		cmd_op; -	u32		pad; +	u32		flags;  	u8		pdu[32]; /* available inline for free use */  };  #if defined(CONFIG_IO_URING) +int io_uring_cmd_import_fixed(u64 ubuf, unsigned long len, int rw, +			      struct iov_iter *iter, void *ioucmd);  void io_uring_cmd_done(struct io_uring_cmd *cmd, ssize_t ret, ssize_t res2);  void io_uring_cmd_complete_in_task(struct io_uring_cmd *ioucmd,  			void (*task_work_cb)(struct io_uring_cmd *)); @@ -55,6 +62,11 @@ static inline void io_uring_free(struct task_struct *tsk)  		__io_uring_free(tsk);  }  #else +static inline int io_uring_cmd_import_fixed(u64 ubuf, unsigned long len, int rw, +			      struct iov_iter *iter, void *ioucmd) +{ +	return -EOPNOTSUPP; +}  static inline void io_uring_cmd_done(struct io_uring_cmd *cmd, ssize_t ret,  		ssize_t ret2)  {  |