Go to the documentation of this file.
4 #include <linux/list.h>
13 #define AIO_KIOGRP_NR_ATOMIC 8
23 #define KIOCB_C_CANCELLED 0x01
24 #define KIOCB_C_COMPLETE 0x02
26 #define KIOCB_SYNC_KEY (~0U)
36 #define KIF_CANCELLED 2
38 #define kiocbTryLock(iocb) test_and_set_bit(KIF_LOCKED, &(iocb)->ki_flags)
39 #define kiocbTryKick(iocb) test_and_set_bit(KIF_KICKED, &(iocb)->ki_flags)
41 #define kiocbSetLocked(iocb) set_bit(KIF_LOCKED, &(iocb)->ki_flags)
42 #define kiocbSetKicked(iocb) set_bit(KIF_KICKED, &(iocb)->ki_flags)
43 #define kiocbSetCancelled(iocb) set_bit(KIF_CANCELLED, &(iocb)->ki_flags)
45 #define kiocbClearLocked(iocb) clear_bit(KIF_LOCKED, &(iocb)->ki_flags)
46 #define kiocbClearKicked(iocb) clear_bit(KIF_KICKED, &(iocb)->ki_flags)
47 #define kiocbClearCancelled(iocb) clear_bit(KIF_CANCELLED, &(iocb)->ki_flags)
49 #define kiocbIsLocked(iocb) test_bit(KIF_LOCKED, &(iocb)->ki_flags)
50 #define kiocbIsKicked(iocb) test_bit(KIF_KICKED, &(iocb)->ki_flags)
51 #define kiocbIsCancelled(iocb) test_bit(KIF_CANCELLED, &(iocb)->ki_flags)
129 static inline bool is_sync_kiocb(
struct kiocb *
kiocb)
134 static inline void init_sync_kiocb(
struct kiocb *
kiocb,
struct file *filp)
136 *kiocb = (
struct kiocb) {
144 #define AIO_RING_MAGIC 0xa10a10a1
145 #define AIO_RING_COMPAT_FEATURES 1
146 #define AIO_RING_INCOMPAT_FEATURES 0
162 #define AIO_RING_PAGES 8
179 return (ring->
head + info->
nr - 1 - ring->
tail) % info->
nr;
220 struct iocb __user *__user *iocbpp,
bool compat);
229 struct iocb __user * __user *iocbpp,
230 bool compat) {
return 0; }
239 extern unsigned long aio_nr;