xref: /aosp_15_r20/prebuilts/build-tools/sysroots/i686-unknown-linux-musl/include/sys/uio.h (revision cda5da8d549138a6648c5ee6d7a49cf8f4a657be)
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