cloudabi32_types.h revision 307144
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 CLOUDABI32_TYPES_H 29#define CLOUDABI32_TYPES_H 30 31#include "cloudabi_types_common.h" 32 33typedef struct { 34 _Alignas(4) cloudabi_auxtype_t a_type; 35 union { 36 _Alignas(4) uint32_t a_val; 37 _Alignas(4) uint32_t a_ptr; 38 }; 39} cloudabi32_auxv_t; 40_Static_assert(offsetof(cloudabi32_auxv_t, a_type) == 0, "Incorrect layout"); 41_Static_assert(offsetof(cloudabi32_auxv_t, a_val) == 4, "Incorrect layout"); 42_Static_assert(offsetof(cloudabi32_auxv_t, a_ptr) == 4, "Incorrect layout"); 43_Static_assert(sizeof(cloudabi32_auxv_t) == 8, "Incorrect layout"); 44_Static_assert(_Alignof(cloudabi32_auxv_t) == 4, "Incorrect layout"); 45 46typedef struct { 47 _Alignas(4) uint32_t iov_base; 48 _Alignas(4) uint32_t iov_len; 49} cloudabi32_ciovec_t; 50_Static_assert(offsetof(cloudabi32_ciovec_t, iov_base) == 0, "Incorrect layout"); 51_Static_assert(offsetof(cloudabi32_ciovec_t, iov_len) == 4, "Incorrect layout"); 52_Static_assert(sizeof(cloudabi32_ciovec_t) == 8, "Incorrect layout"); 53_Static_assert(_Alignof(cloudabi32_ciovec_t) == 4, "Incorrect layout"); 54 55typedef 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(4) uint32_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(4) uint32_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} cloudabi32_event_t; 81_Static_assert(offsetof(cloudabi32_event_t, userdata) == 0, "Incorrect layout"); 82_Static_assert(offsetof(cloudabi32_event_t, error) == 8, "Incorrect layout"); 83_Static_assert(offsetof(cloudabi32_event_t, type) == 10, "Incorrect layout"); 84_Static_assert(offsetof(cloudabi32_event_t, clock.identifier) == 16, "Incorrect layout"); 85_Static_assert(offsetof(cloudabi32_event_t, condvar.condvar) == 16, "Incorrect layout"); 86_Static_assert(offsetof(cloudabi32_event_t, fd_readwrite.nbytes) == 16, "Incorrect layout"); 87_Static_assert(offsetof(cloudabi32_event_t, fd_readwrite.fd) == 24, "Incorrect layout"); 88_Static_assert(offsetof(cloudabi32_event_t, fd_readwrite.flags) == 28, "Incorrect layout"); 89_Static_assert(offsetof(cloudabi32_event_t, lock.lock) == 16, "Incorrect layout"); 90_Static_assert(offsetof(cloudabi32_event_t, proc_terminate.fd) == 16, "Incorrect layout"); 91_Static_assert(offsetof(cloudabi32_event_t, proc_terminate.signal) == 20, "Incorrect layout"); 92_Static_assert(offsetof(cloudabi32_event_t, proc_terminate.exitcode) == 24, "Incorrect layout"); 93_Static_assert(sizeof(cloudabi32_event_t) == 32, "Incorrect layout"); 94_Static_assert(_Alignof(cloudabi32_event_t) == 8, "Incorrect layout"); 95 96typedef struct { 97 _Alignas(4) uint32_t iov_base; 98 _Alignas(4) uint32_t iov_len; 99} cloudabi32_iovec_t; 100_Static_assert(offsetof(cloudabi32_iovec_t, iov_base) == 0, "Incorrect layout"); 101_Static_assert(offsetof(cloudabi32_iovec_t, iov_len) == 4, "Incorrect layout"); 102_Static_assert(sizeof(cloudabi32_iovec_t) == 8, "Incorrect layout"); 103_Static_assert(_Alignof(cloudabi32_iovec_t) == 4, "Incorrect layout"); 104 105typedef void cloudabi32_processentry_t(uint32_t auxv); 106 107typedef struct { 108 _Alignas(4) uint32_t ri_data; 109 _Alignas(4) uint32_t ri_datalen; 110 _Alignas(4) uint32_t ri_fds; 111 _Alignas(4) uint32_t ri_fdslen; 112 _Alignas(2) cloudabi_msgflags_t ri_flags; 113} cloudabi32_recv_in_t; 114_Static_assert(offsetof(cloudabi32_recv_in_t, ri_data) == 0, "Incorrect layout"); 115_Static_assert(offsetof(cloudabi32_recv_in_t, ri_datalen) == 4, "Incorrect layout"); 116_Static_assert(offsetof(cloudabi32_recv_in_t, ri_fds) == 8, "Incorrect layout"); 117_Static_assert(offsetof(cloudabi32_recv_in_t, ri_fdslen) == 12, "Incorrect layout"); 118_Static_assert(offsetof(cloudabi32_recv_in_t, ri_flags) == 16, "Incorrect layout"); 119_Static_assert(sizeof(cloudabi32_recv_in_t) == 20, "Incorrect layout"); 120_Static_assert(_Alignof(cloudabi32_recv_in_t) == 4, "Incorrect layout"); 121 122typedef struct { 123 _Alignas(4) uint32_t si_data; 124 _Alignas(4) uint32_t si_datalen; 125 _Alignas(4) uint32_t si_fds; 126 _Alignas(4) uint32_t si_fdslen; 127 _Alignas(2) cloudabi_msgflags_t si_flags; 128} cloudabi32_send_in_t; 129_Static_assert(offsetof(cloudabi32_send_in_t, si_data) == 0, "Incorrect layout"); 130_Static_assert(offsetof(cloudabi32_send_in_t, si_datalen) == 4, "Incorrect layout"); 131_Static_assert(offsetof(cloudabi32_send_in_t, si_fds) == 8, "Incorrect layout"); 132_Static_assert(offsetof(cloudabi32_send_in_t, si_fdslen) == 12, "Incorrect layout"); 133_Static_assert(offsetof(cloudabi32_send_in_t, si_flags) == 16, "Incorrect layout"); 134_Static_assert(sizeof(cloudabi32_send_in_t) == 20, "Incorrect layout"); 135_Static_assert(_Alignof(cloudabi32_send_in_t) == 4, "Incorrect layout"); 136 137typedef struct { 138 _Alignas(4) uint32_t so_datalen; 139} cloudabi32_send_out_t; 140_Static_assert(offsetof(cloudabi32_send_out_t, so_datalen) == 0, "Incorrect layout"); 141_Static_assert(sizeof(cloudabi32_send_out_t) == 4, "Incorrect layout"); 142_Static_assert(_Alignof(cloudabi32_send_out_t) == 4, "Incorrect layout"); 143 144typedef 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(4) uint32_t condvar; 158 _Alignas(4) uint32_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(4) uint32_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} cloudabi32_subscription_t; 175_Static_assert(offsetof(cloudabi32_subscription_t, userdata) == 0, "Incorrect layout"); 176_Static_assert(offsetof(cloudabi32_subscription_t, flags) == 8, "Incorrect layout"); 177_Static_assert(offsetof(cloudabi32_subscription_t, type) == 10, "Incorrect layout"); 178_Static_assert(offsetof(cloudabi32_subscription_t, clock.identifier) == 16, "Incorrect layout"); 179_Static_assert(offsetof(cloudabi32_subscription_t, clock.clock_id) == 24, "Incorrect layout"); 180_Static_assert(offsetof(cloudabi32_subscription_t, clock.timeout) == 32, "Incorrect layout"); 181_Static_assert(offsetof(cloudabi32_subscription_t, clock.precision) == 40, "Incorrect layout"); 182_Static_assert(offsetof(cloudabi32_subscription_t, clock.flags) == 48, "Incorrect layout"); 183_Static_assert(offsetof(cloudabi32_subscription_t, condvar.condvar) == 16, "Incorrect layout"); 184_Static_assert(offsetof(cloudabi32_subscription_t, condvar.lock) == 20, "Incorrect layout"); 185_Static_assert(offsetof(cloudabi32_subscription_t, condvar.condvar_scope) == 24, "Incorrect layout"); 186_Static_assert(offsetof(cloudabi32_subscription_t, condvar.lock_scope) == 25, "Incorrect layout"); 187_Static_assert(offsetof(cloudabi32_subscription_t, fd_readwrite.fd) == 16, "Incorrect layout"); 188_Static_assert(offsetof(cloudabi32_subscription_t, fd_readwrite.flags) == 20, "Incorrect layout"); 189_Static_assert(offsetof(cloudabi32_subscription_t, lock.lock) == 16, "Incorrect layout"); 190_Static_assert(offsetof(cloudabi32_subscription_t, lock.lock_scope) == 20, "Incorrect layout"); 191_Static_assert(offsetof(cloudabi32_subscription_t, proc_terminate.fd) == 16, "Incorrect layout"); 192_Static_assert(sizeof(cloudabi32_subscription_t) == 56, "Incorrect layout"); 193_Static_assert(_Alignof(cloudabi32_subscription_t) == 8, "Incorrect layout"); 194 195typedef struct { 196 _Alignas(4) uint32_t parent; 197} cloudabi32_tcb_t; 198_Static_assert(offsetof(cloudabi32_tcb_t, parent) == 0, "Incorrect layout"); 199_Static_assert(sizeof(cloudabi32_tcb_t) == 4, "Incorrect layout"); 200_Static_assert(_Alignof(cloudabi32_tcb_t) == 4, "Incorrect layout"); 201 202typedef void cloudabi32_threadentry_t(cloudabi_tid_t tid, uint32_t aux); 203 204typedef struct { 205 _Alignas(4) uint32_t ro_datalen; 206 _Alignas(4) uint32_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} cloudabi32_recv_out_t; 211_Static_assert(offsetof(cloudabi32_recv_out_t, ro_datalen) == 0, "Incorrect layout"); 212_Static_assert(offsetof(cloudabi32_recv_out_t, ro_fdslen) == 4, "Incorrect layout"); 213_Static_assert(offsetof(cloudabi32_recv_out_t, ro_sockname) == 8, "Incorrect layout"); 214_Static_assert(offsetof(cloudabi32_recv_out_t, ro_peername) == 28, "Incorrect layout"); 215_Static_assert(offsetof(cloudabi32_recv_out_t, ro_flags) == 48, "Incorrect layout"); 216_Static_assert(sizeof(cloudabi32_recv_out_t) == 52, "Incorrect layout"); 217_Static_assert(_Alignof(cloudabi32_recv_out_t) == 4, "Incorrect layout"); 218 219typedef struct { 220 _Alignas(4) uint32_t entry_point; 221 _Alignas(4) uint32_t stack; 222 _Alignas(4) uint32_t stack_size; 223 _Alignas(4) uint32_t argument; 224} cloudabi32_threadattr_t; 225_Static_assert(offsetof(cloudabi32_threadattr_t, entry_point) == 0, "Incorrect layout"); 226_Static_assert(offsetof(cloudabi32_threadattr_t, stack) == 4, "Incorrect layout"); 227_Static_assert(offsetof(cloudabi32_threadattr_t, stack_size) == 8, "Incorrect layout"); 228_Static_assert(offsetof(cloudabi32_threadattr_t, argument) == 12, "Incorrect layout"); 229_Static_assert(sizeof(cloudabi32_threadattr_t) == 16, "Incorrect layout"); 230_Static_assert(_Alignof(cloudabi32_threadattr_t) == 4, "Incorrect layout"); 231 232#endif 233