1 // Copyright (c) 2016 Nuxi (https://nuxi.nl/) and contributors.
3 // Redistribution and use in source and binary forms, with or without
4 // modification, are permitted provided that the following conditions
6 // 1. Redistributions of source code must retain the above copyright
7 // notice, this list of conditions and the following disclaimer.
8 // 2. Redistributions in binary form must reproduce the above copyright
9 // notice, this list of conditions and the following disclaimer in the
10 // documentation and/or other materials provided with the distribution.
12 // THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
13 // ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
14 // IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
15 // ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
16 // FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
17 // DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
18 // OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
19 // HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
20 // LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
21 // OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
24 // This file is automatically generated. Do not edit.
26 // Source: https://github.com/NuxiNL/cloudabi
28 #ifndef CLOUDABI64_TYPES_H
29 #define CLOUDABI64_TYPES_H
31 #include "cloudabi_types_common.h"
34 _Alignas(4) cloudabi_auxtype_t a_type;
36 _Alignas(8) uint64_t a_val;
37 _Alignas(8) uint64_t a_ptr;
40 _Static_assert(offsetof(cloudabi64_auxv_t, a_type) == 0, "Incorrect layout");
41 _Static_assert(offsetof(cloudabi64_auxv_t, a_val) == 8, "Incorrect layout");
42 _Static_assert(offsetof(cloudabi64_auxv_t, a_ptr) == 8, "Incorrect layout");
43 _Static_assert(sizeof(cloudabi64_auxv_t) == 16, "Incorrect layout");
44 _Static_assert(_Alignof(cloudabi64_auxv_t) == 8, "Incorrect layout");
47 _Alignas(8) uint64_t iov_base;
48 _Alignas(8) uint64_t iov_len;
49 } cloudabi64_ciovec_t;
50 _Static_assert(offsetof(cloudabi64_ciovec_t, iov_base) == 0,
52 _Static_assert(offsetof(cloudabi64_ciovec_t, iov_len) == 8, "Incorrect layout");
53 _Static_assert(sizeof(cloudabi64_ciovec_t) == 16, "Incorrect layout");
54 _Static_assert(_Alignof(cloudabi64_ciovec_t) == 8, "Incorrect layout");
57 _Alignas(8) cloudabi_userdata_t userdata;
58 _Alignas(2) cloudabi_errno_t error;
59 _Alignas(1) cloudabi_eventtype_t type;
62 _Alignas(8) cloudabi_userdata_t identifier;
65 _Alignas(8) uint64_t condvar;
68 _Alignas(8) cloudabi_filesize_t nbytes;
69 _Alignas(4) cloudabi_fd_t fd;
70 _Alignas(2) cloudabi_eventrwflags_t flags;
73 _Alignas(8) uint64_t lock;
76 _Alignas(4) cloudabi_fd_t fd;
77 _Alignas(1) cloudabi_signal_t signal;
78 _Alignas(4) cloudabi_exitcode_t exitcode;
82 _Static_assert(offsetof(cloudabi64_event_t, userdata) == 0, "Incorrect layout");
83 _Static_assert(offsetof(cloudabi64_event_t, error) == 8, "Incorrect layout");
84 _Static_assert(offsetof(cloudabi64_event_t, type) == 10, "Incorrect layout");
85 _Static_assert(offsetof(cloudabi64_event_t, clock.identifier) == 16,
87 _Static_assert(offsetof(cloudabi64_event_t, condvar.condvar) == 16,
89 _Static_assert(offsetof(cloudabi64_event_t, fd_readwrite.nbytes) == 16,
91 _Static_assert(offsetof(cloudabi64_event_t, fd_readwrite.fd) == 24,
93 _Static_assert(offsetof(cloudabi64_event_t, fd_readwrite.flags) == 28,
95 _Static_assert(offsetof(cloudabi64_event_t, lock.lock) == 16,
97 _Static_assert(offsetof(cloudabi64_event_t, proc_terminate.fd) == 16,
99 _Static_assert(offsetof(cloudabi64_event_t, proc_terminate.signal) == 20,
101 _Static_assert(offsetof(cloudabi64_event_t, proc_terminate.exitcode) == 24,
103 _Static_assert(sizeof(cloudabi64_event_t) == 32, "Incorrect layout");
104 _Static_assert(_Alignof(cloudabi64_event_t) == 8, "Incorrect layout");
107 _Alignas(8) uint64_t iov_base;
108 _Alignas(8) uint64_t iov_len;
109 } cloudabi64_iovec_t;
110 _Static_assert(offsetof(cloudabi64_iovec_t, iov_base) == 0, "Incorrect layout");
111 _Static_assert(offsetof(cloudabi64_iovec_t, iov_len) == 8, "Incorrect layout");
112 _Static_assert(sizeof(cloudabi64_iovec_t) == 16, "Incorrect layout");
113 _Static_assert(_Alignof(cloudabi64_iovec_t) == 8, "Incorrect layout");
115 typedef void cloudabi64_processentry_t(uint64_t auxv);
118 _Alignas(8) uint64_t ri_data;
119 _Alignas(8) uint64_t ri_datalen;
120 _Alignas(8) uint64_t ri_fds;
121 _Alignas(8) uint64_t ri_fdslen;
122 _Alignas(2) cloudabi_msgflags_t ri_flags;
123 } cloudabi64_recv_in_t;
124 _Static_assert(offsetof(cloudabi64_recv_in_t, ri_data) == 0,
126 _Static_assert(offsetof(cloudabi64_recv_in_t, ri_datalen) == 8,
128 _Static_assert(offsetof(cloudabi64_recv_in_t, ri_fds) == 16,
130 _Static_assert(offsetof(cloudabi64_recv_in_t, ri_fdslen) == 24,
132 _Static_assert(offsetof(cloudabi64_recv_in_t, ri_flags) == 32,
134 _Static_assert(sizeof(cloudabi64_recv_in_t) == 40, "Incorrect layout");
135 _Static_assert(_Alignof(cloudabi64_recv_in_t) == 8, "Incorrect layout");
138 _Alignas(8) uint64_t si_data;
139 _Alignas(8) uint64_t si_datalen;
140 _Alignas(8) uint64_t si_fds;
141 _Alignas(8) uint64_t si_fdslen;
142 _Alignas(2) cloudabi_msgflags_t si_flags;
143 } cloudabi64_send_in_t;
144 _Static_assert(offsetof(cloudabi64_send_in_t, si_data) == 0,
146 _Static_assert(offsetof(cloudabi64_send_in_t, si_datalen) == 8,
148 _Static_assert(offsetof(cloudabi64_send_in_t, si_fds) == 16,
150 _Static_assert(offsetof(cloudabi64_send_in_t, si_fdslen) == 24,
152 _Static_assert(offsetof(cloudabi64_send_in_t, si_flags) == 32,
154 _Static_assert(sizeof(cloudabi64_send_in_t) == 40, "Incorrect layout");
155 _Static_assert(_Alignof(cloudabi64_send_in_t) == 8, "Incorrect layout");
157 typedef struct { _Alignas(8) uint64_t so_datalen; } cloudabi64_send_out_t;
158 _Static_assert(offsetof(cloudabi64_send_out_t, so_datalen) == 0,
160 _Static_assert(sizeof(cloudabi64_send_out_t) == 8, "Incorrect layout");
161 _Static_assert(_Alignof(cloudabi64_send_out_t) == 8, "Incorrect layout");
164 _Alignas(8) cloudabi_userdata_t userdata;
165 _Alignas(2) cloudabi_subflags_t flags;
166 _Alignas(1) cloudabi_eventtype_t type;
169 _Alignas(8) cloudabi_userdata_t identifier;
170 _Alignas(4) cloudabi_clockid_t clock_id;
171 _Alignas(8) cloudabi_timestamp_t timeout;
172 _Alignas(8) cloudabi_timestamp_t precision;
173 _Alignas(2) cloudabi_subclockflags_t flags;
176 _Alignas(8) uint64_t condvar;
177 _Alignas(8) uint64_t lock;
178 _Alignas(1) cloudabi_scope_t condvar_scope;
179 _Alignas(1) cloudabi_scope_t lock_scope;
182 _Alignas(4) cloudabi_fd_t fd;
183 _Alignas(2) cloudabi_subrwflags_t flags;
186 _Alignas(8) uint64_t lock;
187 _Alignas(1) cloudabi_scope_t lock_scope;
190 _Alignas(4) cloudabi_fd_t fd;
193 } cloudabi64_subscription_t;
194 _Static_assert(offsetof(cloudabi64_subscription_t, userdata) == 0,
196 _Static_assert(offsetof(cloudabi64_subscription_t, flags) == 8,
198 _Static_assert(offsetof(cloudabi64_subscription_t, type) == 10,
200 _Static_assert(offsetof(cloudabi64_subscription_t, clock.identifier) == 16,
202 _Static_assert(offsetof(cloudabi64_subscription_t, clock.clock_id) == 24,
204 _Static_assert(offsetof(cloudabi64_subscription_t, clock.timeout) == 32,
206 _Static_assert(offsetof(cloudabi64_subscription_t, clock.precision) == 40,
208 _Static_assert(offsetof(cloudabi64_subscription_t, clock.flags) == 48,
210 _Static_assert(offsetof(cloudabi64_subscription_t, condvar.condvar) == 16,
212 _Static_assert(offsetof(cloudabi64_subscription_t, condvar.lock) == 24,
214 _Static_assert(offsetof(cloudabi64_subscription_t, condvar.condvar_scope) == 32,
216 _Static_assert(offsetof(cloudabi64_subscription_t, condvar.lock_scope) == 33,
218 _Static_assert(offsetof(cloudabi64_subscription_t, fd_readwrite.fd) == 16,
220 _Static_assert(offsetof(cloudabi64_subscription_t, fd_readwrite.flags) == 20,
222 _Static_assert(offsetof(cloudabi64_subscription_t, lock.lock) == 16,
224 _Static_assert(offsetof(cloudabi64_subscription_t, lock.lock_scope) == 24,
226 _Static_assert(offsetof(cloudabi64_subscription_t, proc_terminate.fd) == 16,
228 _Static_assert(sizeof(cloudabi64_subscription_t) == 56, "Incorrect layout");
229 _Static_assert(_Alignof(cloudabi64_subscription_t) == 8, "Incorrect layout");
231 typedef struct { _Alignas(8) uint64_t parent; } cloudabi64_tcb_t;
232 _Static_assert(offsetof(cloudabi64_tcb_t, parent) == 0, "Incorrect layout");
233 _Static_assert(sizeof(cloudabi64_tcb_t) == 8, "Incorrect layout");
234 _Static_assert(_Alignof(cloudabi64_tcb_t) == 8, "Incorrect layout");
236 typedef void cloudabi64_threadentry_t(cloudabi_tid_t tid, uint64_t aux);
239 _Alignas(8) uint64_t ro_datalen;
240 _Alignas(8) uint64_t ro_fdslen;
241 _Alignas(2) cloudabi_sockaddr_t ro_sockname;
242 _Alignas(2) cloudabi_sockaddr_t ro_peername;
243 _Alignas(2) cloudabi_msgflags_t ro_flags;
244 } cloudabi64_recv_out_t;
245 _Static_assert(offsetof(cloudabi64_recv_out_t, ro_datalen) == 0,
247 _Static_assert(offsetof(cloudabi64_recv_out_t, ro_fdslen) == 8,
249 _Static_assert(offsetof(cloudabi64_recv_out_t, ro_sockname) == 16,
251 _Static_assert(offsetof(cloudabi64_recv_out_t, ro_peername) == 36,
253 _Static_assert(offsetof(cloudabi64_recv_out_t, ro_flags) == 56,
255 _Static_assert(sizeof(cloudabi64_recv_out_t) == 64, "Incorrect layout");
256 _Static_assert(_Alignof(cloudabi64_recv_out_t) == 8, "Incorrect layout");
259 _Alignas(8) uint64_t entry_point;
260 _Alignas(8) uint64_t stack;
261 _Alignas(8) uint64_t stack_size;
262 _Alignas(8) uint64_t argument;
263 } cloudabi64_threadattr_t;
264 _Static_assert(offsetof(cloudabi64_threadattr_t, entry_point) == 0,
266 _Static_assert(offsetof(cloudabi64_threadattr_t, stack) == 8,
268 _Static_assert(offsetof(cloudabi64_threadattr_t, stack_size) == 16,
270 _Static_assert(offsetof(cloudabi64_threadattr_t, argument) == 24,
272 _Static_assert(sizeof(cloudabi64_threadattr_t) == 32, "Incorrect layout");
273 _Static_assert(_Alignof(cloudabi64_threadattr_t) == 8, "Incorrect layout");