···579579 unsigned long vlen, unsigned long pos_l, unsigned long pos_h);580580asmlinkage long sys_preadv2(unsigned long fd, const struct iovec __user *vec,581581 unsigned long vlen, unsigned long pos_l, unsigned long pos_h,582582- int flags);582582+ rwf_t flags);583583asmlinkage long sys_pwritev(unsigned long fd, const struct iovec __user *vec,584584 unsigned long vlen, unsigned long pos_l, unsigned long pos_h);585585asmlinkage long sys_pwritev2(unsigned long fd, const struct iovec __user *vec,586586 unsigned long vlen, unsigned long pos_l, unsigned long pos_h,587587- int flags);587587+ rwf_t flags);588588asmlinkage long sys_getcwd(char __user *buf, unsigned long size);589589asmlinkage long sys_mkdir(const char __user *pathname, umode_t mode);590590asmlinkage long sys_chdir(const char __user *filename);
+11-10
include/uapi/linux/aio_abi.h
···2828#define __LINUX__AIO_ABI_H29293030#include <linux/types.h>3131+#include <linux/fs.h>3132#include <asm/byteorder.h>32333334typedef __kernel_ulong_t aio_context_t;···6362 __s64 res2; /* secondary result */6463};65646666-#if defined(__BYTE_ORDER) ? __BYTE_ORDER == __LITTLE_ENDIAN : defined(__LITTLE_ENDIAN)6767-#define PADDED(x,y) x, y6868-#elif defined(__BYTE_ORDER) ? __BYTE_ORDER == __BIG_ENDIAN : defined(__BIG_ENDIAN)6969-#define PADDED(x,y) y, x7070-#else7171-#error edit for your odd byteorder.7272-#endif7373-7465/*7566 * we always use a 64bit off_t when communicating7667 * with userland. its up to libraries to do the···7279struct iocb {7380 /* these are internal to the kernel/libc. */7481 __u64 aio_data; /* data to be returned in event's data */7575- __u32 PADDED(aio_key, aio_rw_flags);7676- /* the kernel sets aio_key to the req # */8282+8383+#if defined(__BYTE_ORDER) ? __BYTE_ORDER == __LITTLE_ENDIAN : defined(__LITTLE_ENDIAN)8484+ __u32 aio_key; /* the kernel sets aio_key to the req # */8585+ __kernel_rwf_t aio_rw_flags; /* RWF_* flags */8686+#elif defined(__BYTE_ORDER) ? __BYTE_ORDER == __BIG_ENDIAN : defined(__BIG_ENDIAN)8787+ __kernel_rwf_t aio_rw_flags; /* RWF_* flags */8888+ __u32 aio_key; /* the kernel sets aio_key to the req # */8989+#else9090+#error edit for your odd byteorder.9191+#endif77927893 /* common fields */7994 __u16 aio_lio_opcode; /* see IOCB_CMD_ above */
+19-7
include/uapi/linux/fs.h
···358358#define SYNC_FILE_RANGE_WRITE 2359359#define SYNC_FILE_RANGE_WAIT_AFTER 4360360361361-/* flags for preadv2/pwritev2: */362362-#define RWF_HIPRI 0x00000001 /* high priority request, poll if possible */363363-#define RWF_DSYNC 0x00000002 /* per-IO O_DSYNC */364364-#define RWF_SYNC 0x00000004 /* per-IO O_SYNC */365365-#define RWF_NOWAIT 0x00000008 /* per-IO, return -EAGAIN if operation would block */361361+/*362362+ * Flags for preadv2/pwritev2:363363+ */366364367367-#define RWF_SUPPORTED (RWF_HIPRI | RWF_DSYNC | RWF_SYNC |\368368- RWF_NOWAIT)365365+typedef int __bitwise __kernel_rwf_t;366366+367367+/* high priority request, poll if possible */368368+#define RWF_HIPRI ((__force __kernel_rwf_t)0x00000001)369369+370370+/* per-IO O_DSYNC */371371+#define RWF_DSYNC ((__force __kernel_rwf_t)0x00000002)372372+373373+/* per-IO O_SYNC */374374+#define RWF_SYNC ((__force __kernel_rwf_t)0x00000004)375375+376376+/* per-IO, return -EAGAIN if operation would block */377377+#define RWF_NOWAIT ((__force __kernel_rwf_t)0x00000008)378378+379379+/* mask of flags supported by the kernel */380380+#define RWF_SUPPORTED (RWF_HIPRI | RWF_DSYNC | RWF_SYNC | RWF_NOWAIT)369381370382#endif /* _UAPI_LINUX_FS_H */