#ifndef _SYS_UIO_H #define _SYS_UIO_H #ifdef __cplusplus extern "C" { #endif #include #define __NEED_size_t #define __NEED_ssize_t #define __NEED_struct_iovec #if defined(_GNU_SOURCE) || defined(_BSD_SOURCE) #define __NEED_off_t #endif #ifdef _GNU_SOURCE #define __NEED_pid_t #endif #include #define UIO_MAXIOV 1024 ssize_t readv (int, const struct iovec *, int); ssize_t writev (int, const struct iovec *, int); #if defined(_GNU_SOURCE) || defined(_BSD_SOURCE) ssize_t preadv (int, const struct iovec *, int, off_t); ssize_t pwritev (int, const struct iovec *, int, off_t); #if defined(_LARGEFILE64_SOURCE) #define preadv64 preadv #define pwritev64 pwritev #define off64_t off_t #endif #endif #ifdef _GNU_SOURCE ssize_t process_vm_writev(pid_t, const struct iovec *, unsigned long, const struct iovec *, unsigned long, unsigned long); ssize_t process_vm_readv(pid_t, const struct iovec *, unsigned long, const struct iovec *, unsigned long, unsigned long); ssize_t preadv2 (int, const struct iovec *, int, off_t, int); ssize_t pwritev2 (int, const struct iovec *, int, off_t, int); #define RWF_HIPRI 0x00000001 #define RWF_DSYNC 0x00000002 #define RWF_SYNC 0x00000004 #define RWF_NOWAIT 0x00000008 #define RWF_APPEND 0x00000010 #define RWF_NOAPPEND 0x00000020 #endif #ifdef __cplusplus } #endif #endif