1 #ifndef _SYS_UIO_H 2 #define _SYS_UIO_H 3 4 #ifdef __cplusplus 5 extern "C" { 6 #endif 7 8 #include <features.h> 9 10 #define __NEED_size_t 11 #define __NEED_ssize_t 12 #define __NEED_struct_iovec 13 14 #if defined(_GNU_SOURCE) || defined(_BSD_SOURCE) 15 #define __NEED_off_t 16 #endif 17 18 #ifdef _GNU_SOURCE 19 #define __NEED_pid_t 20 #endif 21 22 #include <bits/alltypes.h> 23 24 #define UIO_MAXIOV 1024 25 26 ssize_t readv (int, const struct iovec *, int); 27 ssize_t writev (int, const struct iovec *, int); 28 29 #if defined(_GNU_SOURCE) || defined(_BSD_SOURCE) 30 ssize_t preadv (int, const struct iovec *, int, off_t); 31 ssize_t pwritev (int, const struct iovec *, int, off_t); 32 #if defined(_LARGEFILE64_SOURCE) 33 #define preadv64 preadv 34 #define pwritev64 pwritev 35 #define off64_t off_t 36 #endif 37 #endif 38 39 #ifdef _GNU_SOURCE 40 ssize_t process_vm_writev(pid_t, const struct iovec *, unsigned long, const struct iovec *, unsigned long, unsigned long); 41 ssize_t process_vm_readv(pid_t, const struct iovec *, unsigned long, const struct iovec *, unsigned long, unsigned long); 42 ssize_t preadv2 (int, const struct iovec *, int, off_t, int); 43 ssize_t pwritev2 (int, const struct iovec *, int, off_t, int); 44 #define RWF_HIPRI 0x00000001 45 #define RWF_DSYNC 0x00000002 46 #define RWF_SYNC 0x00000004 47 #define RWF_NOWAIT 0x00000008 48 #define RWF_APPEND 0x00000010 49 #define RWF_NOAPPEND 0x00000020 50 #endif 51 52 #ifdef __cplusplus 53 } 54 #endif 55 56 #endif 57