1 /**
2  * D header file for POSIX.
3  *
4  * Copyright: Public Domain
5  * License:   Public Domain
6  * Authors:   Sean Kelly
7  * Standards: The Open Group Base Specifications Issue 6, IEEE Std 1003.1, 2004 Edition
8  */
9 module tango.stdc.posix.sys.uio;
10 
11 private import tango.stdc.posix.config;
12 public import tango.stdc.posix.sys.types; // for ssize_t, size_t
13 
14 extern (C):
15 
16 //
17 // Required
18 //
19 /*
20 struct iovec
21 {
22     void*  iov_base;
23     size_t iov_len;
24 }
25 
26 ssize_t // from tango.stdc.posix.sys.types
27 size_t  // from tango.stdc.posix.sys.types
28 
29 ssize_t readv(int, in iovec*, int);
30 ssize_t writev(int, in iovec*, int);
31 */
32 
33 version( linux )
34 {
35     struct iovec
36     {
37         void*  iov_base;
38         size_t iov_len;
39     }
40 
41     ssize_t readv(int, in iovec*, int);
42     ssize_t writev(int, in iovec*, int);
43 }
44 else version(OSX)
45 {
46     struct iovec
47     {
48         void*  iov_base;
49         size_t iov_len;
50     }
51 
52     ssize_t readv(int, in iovec*, int);
53     ssize_t writev(int, in iovec*, int);
54 }
55 else version( FreeBSD )
56 {
57     struct iovec
58     {
59         void*  iov_base;
60         size_t iov_len;
61     }
62 
63     ssize_t readv(int, in iovec*, int);
64     ssize_t writev(int, in iovec*, int);
65 }
66 else version( solaris )
67 {
68     struct iovec
69     {
70         void*  iov_base;
71         size_t iov_len;
72     }
73 
74     ssize_t readv(int, in iovec*, int);
75     ssize_t writev(int, in iovec*, int);
76 }