]> git.ipfire.org Git - thirdparty/gcc.git/blob - libphobos/libdruntime/core/sys/posix/sys/uio.d
Add D front-end, libphobos library, and D2 testsuite.
[thirdparty/gcc.git] / libphobos / libdruntime / core / sys / posix / sys / uio.d
1 /**
2 * D header file for POSIX.
3 *
4 * Copyright: Copyright Sean Kelly 2005 - 2009.
5 * License: $(HTTP www.boost.org/LICENSE_1_0.txt, Boost License 1.0).
6 * Authors: Sean Kelly, Alex Rønne Petersen
7 * Standards: The Open Group Base Specifications Issue 6, IEEE Std 1003.1, 2004 Edition
8 */
9
10 /* Copyright Sean Kelly 2005 - 2009.
11 * Distributed under the Boost Software License, Version 1.0.
12 * (See accompanying file LICENSE or copy at
13 * http://www.boost.org/LICENSE_1_0.txt)
14 */
15 module core.sys.posix.sys.uio;
16
17 private import core.sys.posix.config;
18 public import core.sys.posix.sys.types; // for ssize_t
19
20 version (OSX)
21 version = Darwin;
22 else version (iOS)
23 version = Darwin;
24 else version (TVOS)
25 version = Darwin;
26 else version (WatchOS)
27 version = Darwin;
28
29 version (Posix):
30 extern (C) nothrow @nogc:
31
32 //
33 // Required
34 //
35 /*
36 struct iovec
37 {
38 void* iov_base;
39 size_t iov_len;
40 }
41
42 ssize_t // from core.sys.posix.sys.types
43 size_t // from core.sys.posix.sys.types
44
45 ssize_t readv(int, in iovec*, int);
46 ssize_t writev(int, in iovec*, int);
47 */
48
49 version (CRuntime_Glibc)
50 {
51 struct iovec
52 {
53 void* iov_base;
54 size_t iov_len;
55 }
56
57 ssize_t readv(int, in iovec*, int);
58 ssize_t writev(int, in iovec*, int);
59 }
60 else version (Darwin)
61 {
62 struct iovec
63 {
64 void* iov_base;
65 size_t iov_len;
66 }
67
68 ssize_t readv(int, in iovec*, int);
69 ssize_t writev(int, in iovec*, int);
70 }
71 else version (FreeBSD)
72 {
73 struct iovec
74 {
75 void* iov_base;
76 size_t iov_len;
77 }
78
79 ssize_t readv(int, in iovec*, int);
80 ssize_t writev(int, in iovec*, int);
81 }
82 else version (NetBSD)
83 {
84 struct iovec
85 {
86 void* iov_base;
87 size_t iov_len;
88 }
89
90 ssize_t readv(int, in iovec*, int);
91 ssize_t writev(int, in iovec*, int);
92 }
93 else version (DragonFlyBSD)
94 {
95 struct iovec
96 {
97 void* iov_base;
98 size_t iov_len;
99 }
100
101 ssize_t readv(int, in iovec*, int);
102 ssize_t writev(int, in iovec*, int);
103 }
104 else version (Solaris)
105 {
106 struct iovec
107 {
108 void* iov_base;
109 size_t iov_len;
110 }
111
112 ssize_t readv(int, in iovec*, int);
113 ssize_t writev(int, in iovec*, int);
114 }
115 else version (CRuntime_Bionic)
116 {
117 struct iovec
118 {
119 void* iov_base;
120 size_t iov_len;
121 }
122
123 int readv(int, in iovec*, int);
124 int writev(int, in iovec*, int);
125 }
126 else version (CRuntime_Musl)
127 {
128 struct iovec
129 {
130 void* iov_base;
131 uint iov_len;
132 }
133
134 ssize_t readv(int, in iovec*, int);
135 ssize_t writev(int, in iovec*, int);
136 }
137 else version (CRuntime_UClibc)
138 {
139 struct iovec
140 {
141 void* iov_base;
142 size_t iov_len;
143 }
144
145 ssize_t readv(int, in iovec*, int);
146 ssize_t writev(int, in iovec*, int);
147 }
148 else
149 {
150 static assert(false, "Unsupported platform");
151 }