1#ifndef __LINUX__AIO_H
2#define __LINUX__AIO_H
3
4#include <linux/aio_abi.h>
5
6struct kioctx;
7struct kiocb;
8struct mm_struct;
9
10#define KIOCB_KEY		0
11
12typedef int (kiocb_cancel_fn)(struct kiocb *);
13
14/* prototypes */
15#ifdef CONFIG_AIO
16extern void exit_aio(struct mm_struct *mm);
17extern long do_io_submit(aio_context_t ctx_id, long nr,
18			 struct iocb __user *__user *iocbpp, bool compat);
19void kiocb_set_cancel_fn(struct kiocb *req, kiocb_cancel_fn *cancel);
20#else
21static inline void exit_aio(struct mm_struct *mm) { }
22static inline long do_io_submit(aio_context_t ctx_id, long nr,
23				struct iocb __user * __user *iocbpp,
24				bool compat) { return 0; }
25static inline void kiocb_set_cancel_fn(struct kiocb *req,
26				       kiocb_cancel_fn *cancel) { }
27#endif /* CONFIG_AIO */
28
29/* for sysctl: */
30extern unsigned long aio_nr;
31extern unsigned long aio_max_nr;
32
33#endif /* __LINUX__AIO_H */
34