]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/blob - sys/contrib/cloudabi/cloudabi64_types.h
Import bhyve_graphics into CURRENT. Thanks to all who tested
[FreeBSD/FreeBSD.git] / sys / contrib / cloudabi / cloudabi64_types.h
1 // Copyright (c) 2016 Nuxi (https://nuxi.nl/) and contributors.
2 //
3 // Redistribution and use in source and binary forms, with or without
4 // modification, are permitted provided that the following conditions
5 // are met:
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.
11 //
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
22 // SUCH DAMAGE.
23 //
24 // This file is automatically generated. Do not edit.
25 //
26 // Source: https://github.com/NuxiNL/cloudabi
27
28 #ifndef CLOUDABI64_TYPES_H
29 #define CLOUDABI64_TYPES_H
30
31 #include "cloudabi_types_common.h"
32
33 typedef struct {
34         _Alignas(4) cloudabi_auxtype_t a_type;
35         union {
36                 _Alignas(8) uint64_t a_val;
37                 _Alignas(8) uint64_t a_ptr;
38         };
39 } cloudabi64_auxv_t;
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");
45
46 typedef struct {
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, "Incorrect layout");
51 _Static_assert(offsetof(cloudabi64_ciovec_t, iov_len) == 8, "Incorrect layout");
52 _Static_assert(sizeof(cloudabi64_ciovec_t) == 16, "Incorrect layout");
53 _Static_assert(_Alignof(cloudabi64_ciovec_t) == 8, "Incorrect layout");
54
55 typedef struct {
56         _Alignas(8) cloudabi_userdata_t userdata;
57         _Alignas(2) cloudabi_errno_t error;
58         _Alignas(1) cloudabi_eventtype_t type;
59         union {
60                 struct {
61                         _Alignas(8) cloudabi_userdata_t identifier;
62                 } clock;
63                 struct {
64                         _Alignas(8) uint64_t condvar;
65                 } condvar;
66                 struct {
67                         _Alignas(8) cloudabi_filesize_t nbytes;
68                         _Alignas(4) cloudabi_fd_t fd;
69                         _Alignas(2) cloudabi_eventrwflags_t flags;
70                 } fd_readwrite;
71                 struct {
72                         _Alignas(8) uint64_t lock;
73                 } lock;
74                 struct {
75                         _Alignas(4) cloudabi_fd_t fd;
76                         _Alignas(1) cloudabi_signal_t signal;
77                         _Alignas(4) cloudabi_exitcode_t exitcode;
78                 } proc_terminate;
79         };
80 } cloudabi64_event_t;
81 _Static_assert(offsetof(cloudabi64_event_t, userdata) == 0, "Incorrect layout");
82 _Static_assert(offsetof(cloudabi64_event_t, error) == 8, "Incorrect layout");
83 _Static_assert(offsetof(cloudabi64_event_t, type) == 10, "Incorrect layout");
84 _Static_assert(offsetof(cloudabi64_event_t, clock.identifier) == 16, "Incorrect layout");
85 _Static_assert(offsetof(cloudabi64_event_t, condvar.condvar) == 16, "Incorrect layout");
86 _Static_assert(offsetof(cloudabi64_event_t, fd_readwrite.nbytes) == 16, "Incorrect layout");
87 _Static_assert(offsetof(cloudabi64_event_t, fd_readwrite.fd) == 24, "Incorrect layout");
88 _Static_assert(offsetof(cloudabi64_event_t, fd_readwrite.flags) == 28, "Incorrect layout");
89 _Static_assert(offsetof(cloudabi64_event_t, lock.lock) == 16, "Incorrect layout");
90 _Static_assert(offsetof(cloudabi64_event_t, proc_terminate.fd) == 16, "Incorrect layout");
91 _Static_assert(offsetof(cloudabi64_event_t, proc_terminate.signal) == 20, "Incorrect layout");
92 _Static_assert(offsetof(cloudabi64_event_t, proc_terminate.exitcode) == 24, "Incorrect layout");
93 _Static_assert(sizeof(cloudabi64_event_t) == 32, "Incorrect layout");
94 _Static_assert(_Alignof(cloudabi64_event_t) == 8, "Incorrect layout");
95
96 typedef struct {
97         _Alignas(8) uint64_t iov_base;
98         _Alignas(8) uint64_t iov_len;
99 } cloudabi64_iovec_t;
100 _Static_assert(offsetof(cloudabi64_iovec_t, iov_base) == 0, "Incorrect layout");
101 _Static_assert(offsetof(cloudabi64_iovec_t, iov_len) == 8, "Incorrect layout");
102 _Static_assert(sizeof(cloudabi64_iovec_t) == 16, "Incorrect layout");
103 _Static_assert(_Alignof(cloudabi64_iovec_t) == 8, "Incorrect layout");
104
105 typedef void cloudabi64_processentry_t(uint64_t auxv);
106
107 typedef struct {
108         _Alignas(8) uint64_t ri_data;
109         _Alignas(8) uint64_t ri_datalen;
110         _Alignas(8) uint64_t ri_fds;
111         _Alignas(8) uint64_t ri_fdslen;
112         _Alignas(2) cloudabi_msgflags_t ri_flags;
113 } cloudabi64_recv_in_t;
114 _Static_assert(offsetof(cloudabi64_recv_in_t, ri_data) == 0, "Incorrect layout");
115 _Static_assert(offsetof(cloudabi64_recv_in_t, ri_datalen) == 8, "Incorrect layout");
116 _Static_assert(offsetof(cloudabi64_recv_in_t, ri_fds) == 16, "Incorrect layout");
117 _Static_assert(offsetof(cloudabi64_recv_in_t, ri_fdslen) == 24, "Incorrect layout");
118 _Static_assert(offsetof(cloudabi64_recv_in_t, ri_flags) == 32, "Incorrect layout");
119 _Static_assert(sizeof(cloudabi64_recv_in_t) == 40, "Incorrect layout");
120 _Static_assert(_Alignof(cloudabi64_recv_in_t) == 8, "Incorrect layout");
121
122 typedef struct {
123         _Alignas(8) uint64_t si_data;
124         _Alignas(8) uint64_t si_datalen;
125         _Alignas(8) uint64_t si_fds;
126         _Alignas(8) uint64_t si_fdslen;
127         _Alignas(2) cloudabi_msgflags_t si_flags;
128 } cloudabi64_send_in_t;
129 _Static_assert(offsetof(cloudabi64_send_in_t, si_data) == 0, "Incorrect layout");
130 _Static_assert(offsetof(cloudabi64_send_in_t, si_datalen) == 8, "Incorrect layout");
131 _Static_assert(offsetof(cloudabi64_send_in_t, si_fds) == 16, "Incorrect layout");
132 _Static_assert(offsetof(cloudabi64_send_in_t, si_fdslen) == 24, "Incorrect layout");
133 _Static_assert(offsetof(cloudabi64_send_in_t, si_flags) == 32, "Incorrect layout");
134 _Static_assert(sizeof(cloudabi64_send_in_t) == 40, "Incorrect layout");
135 _Static_assert(_Alignof(cloudabi64_send_in_t) == 8, "Incorrect layout");
136
137 typedef struct {
138         _Alignas(8) uint64_t so_datalen;
139 } cloudabi64_send_out_t;
140 _Static_assert(offsetof(cloudabi64_send_out_t, so_datalen) == 0, "Incorrect layout");
141 _Static_assert(sizeof(cloudabi64_send_out_t) == 8, "Incorrect layout");
142 _Static_assert(_Alignof(cloudabi64_send_out_t) == 8, "Incorrect layout");
143
144 typedef struct {
145         _Alignas(8) cloudabi_userdata_t userdata;
146         _Alignas(2) cloudabi_subflags_t flags;
147         _Alignas(1) cloudabi_eventtype_t type;
148         union {
149                 struct {
150                         _Alignas(8) cloudabi_userdata_t identifier;
151                         _Alignas(4) cloudabi_clockid_t clock_id;
152                         _Alignas(8) cloudabi_timestamp_t timeout;
153                         _Alignas(8) cloudabi_timestamp_t precision;
154                         _Alignas(2) cloudabi_subclockflags_t flags;
155                 } clock;
156                 struct {
157                         _Alignas(8) uint64_t condvar;
158                         _Alignas(8) uint64_t lock;
159                         _Alignas(1) cloudabi_scope_t condvar_scope;
160                         _Alignas(1) cloudabi_scope_t lock_scope;
161                 } condvar;
162                 struct {
163                         _Alignas(4) cloudabi_fd_t fd;
164                         _Alignas(2) cloudabi_subrwflags_t flags;
165                 } fd_readwrite;
166                 struct {
167                         _Alignas(8) uint64_t lock;
168                         _Alignas(1) cloudabi_scope_t lock_scope;
169                 } lock;
170                 struct {
171                         _Alignas(4) cloudabi_fd_t fd;
172                 } proc_terminate;
173         };
174 } cloudabi64_subscription_t;
175 _Static_assert(offsetof(cloudabi64_subscription_t, userdata) == 0, "Incorrect layout");
176 _Static_assert(offsetof(cloudabi64_subscription_t, flags) == 8, "Incorrect layout");
177 _Static_assert(offsetof(cloudabi64_subscription_t, type) == 10, "Incorrect layout");
178 _Static_assert(offsetof(cloudabi64_subscription_t, clock.identifier) == 16, "Incorrect layout");
179 _Static_assert(offsetof(cloudabi64_subscription_t, clock.clock_id) == 24, "Incorrect layout");
180 _Static_assert(offsetof(cloudabi64_subscription_t, clock.timeout) == 32, "Incorrect layout");
181 _Static_assert(offsetof(cloudabi64_subscription_t, clock.precision) == 40, "Incorrect layout");
182 _Static_assert(offsetof(cloudabi64_subscription_t, clock.flags) == 48, "Incorrect layout");
183 _Static_assert(offsetof(cloudabi64_subscription_t, condvar.condvar) == 16, "Incorrect layout");
184 _Static_assert(offsetof(cloudabi64_subscription_t, condvar.lock) == 24, "Incorrect layout");
185 _Static_assert(offsetof(cloudabi64_subscription_t, condvar.condvar_scope) == 32, "Incorrect layout");
186 _Static_assert(offsetof(cloudabi64_subscription_t, condvar.lock_scope) == 33, "Incorrect layout");
187 _Static_assert(offsetof(cloudabi64_subscription_t, fd_readwrite.fd) == 16, "Incorrect layout");
188 _Static_assert(offsetof(cloudabi64_subscription_t, fd_readwrite.flags) == 20, "Incorrect layout");
189 _Static_assert(offsetof(cloudabi64_subscription_t, lock.lock) == 16, "Incorrect layout");
190 _Static_assert(offsetof(cloudabi64_subscription_t, lock.lock_scope) == 24, "Incorrect layout");
191 _Static_assert(offsetof(cloudabi64_subscription_t, proc_terminate.fd) == 16, "Incorrect layout");
192 _Static_assert(sizeof(cloudabi64_subscription_t) == 56, "Incorrect layout");
193 _Static_assert(_Alignof(cloudabi64_subscription_t) == 8, "Incorrect layout");
194
195 typedef struct {
196         _Alignas(8) uint64_t parent;
197 } cloudabi64_tcb_t;
198 _Static_assert(offsetof(cloudabi64_tcb_t, parent) == 0, "Incorrect layout");
199 _Static_assert(sizeof(cloudabi64_tcb_t) == 8, "Incorrect layout");
200 _Static_assert(_Alignof(cloudabi64_tcb_t) == 8, "Incorrect layout");
201
202 typedef void cloudabi64_threadentry_t(cloudabi_tid_t tid, uint64_t aux);
203
204 typedef struct {
205         _Alignas(8) uint64_t ro_datalen;
206         _Alignas(8) uint64_t ro_fdslen;
207         _Alignas(2) cloudabi_sockaddr_t ro_sockname;
208         _Alignas(2) cloudabi_sockaddr_t ro_peername;
209         _Alignas(2) cloudabi_msgflags_t ro_flags;
210 } cloudabi64_recv_out_t;
211 _Static_assert(offsetof(cloudabi64_recv_out_t, ro_datalen) == 0, "Incorrect layout");
212 _Static_assert(offsetof(cloudabi64_recv_out_t, ro_fdslen) == 8, "Incorrect layout");
213 _Static_assert(offsetof(cloudabi64_recv_out_t, ro_sockname) == 16, "Incorrect layout");
214 _Static_assert(offsetof(cloudabi64_recv_out_t, ro_peername) == 36, "Incorrect layout");
215 _Static_assert(offsetof(cloudabi64_recv_out_t, ro_flags) == 56, "Incorrect layout");
216 _Static_assert(sizeof(cloudabi64_recv_out_t) == 64, "Incorrect layout");
217 _Static_assert(_Alignof(cloudabi64_recv_out_t) == 8, "Incorrect layout");
218
219 typedef struct {
220         _Alignas(8) uint64_t entry_point;
221         _Alignas(8) uint64_t stack;
222         _Alignas(8) uint64_t stack_size;
223         _Alignas(8) uint64_t argument;
224 } cloudabi64_threadattr_t;
225 _Static_assert(offsetof(cloudabi64_threadattr_t, entry_point) == 0, "Incorrect layout");
226 _Static_assert(offsetof(cloudabi64_threadattr_t, stack) == 8, "Incorrect layout");
227 _Static_assert(offsetof(cloudabi64_threadattr_t, stack_size) == 16, "Incorrect layout");
228 _Static_assert(offsetof(cloudabi64_threadattr_t, argument) == 24, "Incorrect layout");
229 _Static_assert(sizeof(cloudabi64_threadattr_t) == 32, "Incorrect layout");
230 _Static_assert(_Alignof(cloudabi64_threadattr_t) == 8, "Incorrect layout");
231
232 #endif