d: Merge upstream dmd, druntime 4c18eed967, phobos d945686a4.
[official-gcc.git] / libphobos / libdruntime / core / sys / posix / sys / uio.d
blobe2839631e3b8e5f9433f56f852125ee21f7b4dce
1 /**
2 * D header file for POSIX.
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 */
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)
15 module core.sys.posix.sys.uio;
17 import core.sys.posix.config;
18 public import core.sys.posix.sys.types; // for ssize_t
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;
29 version (Posix):
30 extern (C) nothrow @nogc:
33 // Required
36 struct iovec
38 void* iov_base;
39 size_t iov_len;
42 ssize_t // from core.sys.posix.sys.types
43 size_t // from core.sys.posix.sys.types
45 ssize_t readv(int, const scope iovec*, int);
46 ssize_t writev(int, const scope iovec*, int);
49 version (CRuntime_Glibc)
51 struct iovec
53 void* iov_base;
54 size_t iov_len;
57 ssize_t readv(int, const scope iovec*, int);
58 ssize_t writev(int, const scope iovec*, int);
60 else version (Darwin)
62 struct iovec
64 void* iov_base;
65 size_t iov_len;
68 ssize_t readv(int, const scope iovec*, int);
69 ssize_t writev(int, const scope iovec*, int);
71 else version (FreeBSD)
73 struct iovec
75 void* iov_base;
76 size_t iov_len;
79 ssize_t readv(int, const scope iovec*, int);
80 ssize_t writev(int, const scope iovec*, int);
82 else version (NetBSD)
84 struct iovec
86 void* iov_base;
87 size_t iov_len;
90 ssize_t readv(int, const scope iovec*, int);
91 ssize_t writev(int, const scope iovec*, int);
93 else version (OpenBSD)
95 struct iovec
97 void* iov_base;
98 size_t iov_len;
101 ssize_t readv(int, const scope iovec*, int);
102 ssize_t writev(int, const scope iovec*, int);
104 else version (DragonFlyBSD)
106 struct iovec
108 void* iov_base;
109 size_t iov_len;
112 ssize_t readv(int, const scope iovec*, int);
113 ssize_t writev(int, const scope iovec*, int);
115 else version (Solaris)
117 struct iovec
119 void* iov_base;
120 size_t iov_len;
123 ssize_t readv(int, const scope iovec*, int);
124 ssize_t writev(int, const scope iovec*, int);
126 else version (CRuntime_Bionic)
128 struct iovec
130 void* iov_base;
131 size_t iov_len;
134 int readv(int, const scope iovec*, int);
135 int writev(int, const scope iovec*, int);
137 else version (CRuntime_Musl)
139 struct iovec
141 void* iov_base;
142 size_t iov_len;
145 ssize_t readv(int, const scope iovec*, int);
146 ssize_t writev(int, const scope iovec*, int);
148 else version (CRuntime_UClibc)
150 struct iovec
152 void* iov_base;
153 size_t iov_len;
156 ssize_t readv(int, const scope iovec*, int);
157 ssize_t writev(int, const scope iovec*, int);
159 else
161 static assert(false, "Unsupported platform");