1
1
/**
2
2
* D header file to interface with the
3
- * $(HTTP pubs.opengroup.org/onlinepubs/9699919799/basedefs/aio.h.html, Linux aio API).
4
- * Available since Linux 2.6
3
+ * $(HTTP pubs.opengroup.org/onlinepubs/9699919799/basedefs/aio.h.html, Posix AIO API).
5
4
*
6
5
* Copyright: Copyright D Language Foundation 2018.
7
6
* License: $(LINK2 http://www.boost.org/LICENSE_1_0.txt, Boost License 1.0)
@@ -11,27 +10,36 @@ module core.sys.posix.aio;
11
10
12
11
private import core.sys.posix.signal ;
13
12
14
- version (CRuntime_Glibc ):
15
- version (X86_64 ):
13
+ version (Posix ):
16
14
17
15
extern (C ):
18
16
@system :
19
17
@nogc :
20
18
nothrow :
21
19
22
- struct aiocb
20
+ version ( CRuntime_Glibc )
23
21
{
24
- int aio_fildes;
25
- int aio_lio_opcode;
26
- int aio_reqprio;
27
- void * aio_buf; // volatile
28
- size_t aio_nbytes;
29
- sigevent aio_sigevent;
22
+ version (X86_64 )
23
+ {
24
+ struct aiocb
25
+ {
26
+ int aio_fildes;
27
+ int aio_lio_opcode;
28
+ int aio_reqprio;
29
+ void * aio_buf; // volatile
30
+ size_t aio_nbytes;
31
+ sigevent aio_sigevent;
30
32
31
- ubyte [24 ] internal_members_padding;
32
- off_t aio_offset;
33
- ubyte [32 ] __glibc_reserved;
33
+ ubyte [24 ] internal_members_padding;
34
+ off_t aio_offset;
35
+ ubyte [32 ] __glibc_reserved;
36
+ }
37
+ }
38
+ else
39
+ static assert (0 );
34
40
}
41
+ else
42
+ static assert (false , " Unsupported platform" );
35
43
36
44
/* Return values of cancelation function. */
37
45
enum
59
67
int aio_read (aiocb * aiocbp);
60
68
int aio_write (aiocb * aiocbp);
61
69
int aio_fsync (int op, aiocb * aiocbp);
62
- int aio_error (aiocb * aiocbp);
63
- ssize_t aio_return (aiocb * aiocbp);
64
- int aio_suspend (aiocb* [] aiocb_list, int nitems, timespec * timeout);
70
+ int aio_error (const ( aiocb) * aiocbp);
71
+ ssize_t aio_return (const ( aiocb) * aiocbp);
72
+ int aio_suspend (const ( aiocb* ) * aiocb_list, int nitems, const ( timespec) * timeout);
65
73
int aio_cancel (int fd, aiocb * aiocbp);
66
- int lio_listio (int mode, aiocb* [] aiocb_list, int nitems, sigevent * sevp);
74
+ int lio_listio (int mode, const ( aiocb* ) * aiocb_list, int nitems, sigevent * sevp);
0 commit comments