github.com/afumu/libc@v0.0.6/sys/socket/socket_linux_ppc64le.go (about) 1 // Code generated by 'ccgo sys/socket/gen.c -crt-import-path "" -export-defines "" -export-enums "" -export-externs X -export-fields F -export-structs "" -export-typedefs "" -header -hide _OSSwapInt16,_OSSwapInt32,_OSSwapInt64 -ignore-unsupported-alignment -o sys/socket/socket_linux_ppc64le.go -pkgname socket', DO NOT EDIT. 2 3 package socket 4 5 import ( 6 "math" 7 "reflect" 8 "sync/atomic" 9 "unsafe" 10 ) 11 12 var _ = math.Pi 13 var _ reflect.Kind 14 var _ atomic.Value 15 var _ unsafe.Pointer 16 17 const ( 18 AF_ALG = 38 // socket.h:133:1: 19 AF_APPLETALK = 5 // socket.h:99:1: 20 AF_ASH = 18 // socket.h:113:1: 21 AF_ATMPVC = 8 // socket.h:102:1: 22 AF_ATMSVC = 20 // socket.h:115:1: 23 AF_AX25 = 3 // socket.h:97:1: 24 AF_BLUETOOTH = 31 // socket.h:126:1: 25 AF_BRIDGE = 7 // socket.h:101:1: 26 AF_CAIF = 37 // socket.h:132:1: 27 AF_CAN = 29 // socket.h:124:1: 28 AF_DECnet = 12 // socket.h:106:1: 29 AF_ECONET = 19 // socket.h:114:1: 30 AF_FILE = 1 // socket.h:95:1: 31 AF_IB = 27 // socket.h:122:1: 32 AF_IEEE802154 = 36 // socket.h:131:1: 33 AF_INET = 2 // socket.h:96:1: 34 AF_INET6 = 10 // socket.h:104:1: 35 AF_IPX = 4 // socket.h:98:1: 36 AF_IRDA = 23 // socket.h:118:1: 37 AF_ISDN = 34 // socket.h:129:1: 38 AF_IUCV = 32 // socket.h:127:1: 39 AF_KCM = 41 // socket.h:136:1: 40 AF_KEY = 15 // socket.h:109:1: 41 AF_LLC = 26 // socket.h:121:1: 42 AF_LOCAL = 1 // socket.h:93:1: 43 AF_MAX = 45 // socket.h:140:1: 44 AF_MPLS = 28 // socket.h:123:1: 45 AF_NETBEUI = 13 // socket.h:107:1: 46 AF_NETLINK = 16 // socket.h:110:1: 47 AF_NETROM = 6 // socket.h:100:1: 48 AF_NFC = 39 // socket.h:134:1: 49 AF_PACKET = 17 // socket.h:112:1: 50 AF_PHONET = 35 // socket.h:130:1: 51 AF_PPPOX = 24 // socket.h:119:1: 52 AF_QIPCRTR = 42 // socket.h:137:1: 53 AF_RDS = 21 // socket.h:116:1: 54 AF_ROSE = 11 // socket.h:105:1: 55 AF_ROUTE = 16 // socket.h:111:1: 56 AF_RXRPC = 33 // socket.h:128:1: 57 AF_SECURITY = 14 // socket.h:108:1: 58 AF_SMC = 43 // socket.h:138:1: 59 AF_SNA = 22 // socket.h:117:1: 60 AF_TIPC = 30 // socket.h:125:1: 61 AF_UNIX = 1 // socket.h:94:1: 62 AF_UNSPEC = 0 // socket.h:92:1: 63 AF_VSOCK = 40 // socket.h:135:1: 64 AF_WANPIPE = 25 // socket.h:120:1: 65 AF_X25 = 9 // socket.h:103:1: 66 AF_XDP = 44 // socket.h:139:1: 67 BIG_ENDIAN = 4321 // endian.h:28:1: 68 BYTE_ORDER = 1234 // endian.h:30:1: 69 FD_SETSIZE = 1024 // select.h:73:1: 70 FIOGETOWN = 0x8903 // sockios.h:8:1: 71 FIOSETOWN = 0x8901 // sockios.h:6:1: 72 LITTLE_ENDIAN = 1234 // endian.h:27:1: 73 PDP_ENDIAN = 3412 // endian.h:29:1: 74 PF_ALG = 38 // socket.h:82:1: 75 PF_APPLETALK = 5 // socket.h:48:1: 76 PF_ASH = 18 // socket.h:62:1: 77 PF_ATMPVC = 8 // socket.h:51:1: 78 PF_ATMSVC = 20 // socket.h:64:1: 79 PF_AX25 = 3 // socket.h:46:1: 80 PF_BLUETOOTH = 31 // socket.h:75:1: 81 PF_BRIDGE = 7 // socket.h:50:1: 82 PF_CAIF = 37 // socket.h:81:1: 83 PF_CAN = 29 // socket.h:73:1: 84 PF_DECnet = 12 // socket.h:55:1: 85 PF_ECONET = 19 // socket.h:63:1: 86 PF_FILE = 1 // socket.h:44:1: 87 PF_IB = 27 // socket.h:71:1: 88 PF_IEEE802154 = 36 // socket.h:80:1: 89 PF_INET = 2 // socket.h:45:1: 90 PF_INET6 = 10 // socket.h:53:1: 91 PF_IPX = 4 // socket.h:47:1: 92 PF_IRDA = 23 // socket.h:67:1: 93 PF_ISDN = 34 // socket.h:78:1: 94 PF_IUCV = 32 // socket.h:76:1: 95 PF_KCM = 41 // socket.h:85:1: 96 PF_KEY = 15 // socket.h:58:1: 97 PF_LLC = 26 // socket.h:70:1: 98 PF_LOCAL = 1 // socket.h:42:1: 99 PF_MAX = 45 // socket.h:89:1: 100 PF_MPLS = 28 // socket.h:72:1: 101 PF_NETBEUI = 13 // socket.h:56:1: 102 PF_NETLINK = 16 // socket.h:59:1: 103 PF_NETROM = 6 // socket.h:49:1: 104 PF_NFC = 39 // socket.h:83:1: 105 PF_PACKET = 17 // socket.h:61:1: 106 PF_PHONET = 35 // socket.h:79:1: 107 PF_PPPOX = 24 // socket.h:68:1: 108 PF_QIPCRTR = 42 // socket.h:86:1: 109 PF_RDS = 21 // socket.h:65:1: 110 PF_ROSE = 11 // socket.h:54:1: 111 PF_ROUTE = 16 // socket.h:60:1: 112 PF_RXRPC = 33 // socket.h:77:1: 113 PF_SECURITY = 14 // socket.h:57:1: 114 PF_SMC = 43 // socket.h:87:1: 115 PF_SNA = 22 // socket.h:66:1: 116 PF_TIPC = 30 // socket.h:74:1: 117 PF_UNIX = 1 // socket.h:43:1: 118 PF_UNSPEC = 0 // socket.h:41:1: 119 PF_VSOCK = 40 // socket.h:84:1: 120 PF_WANPIPE = 25 // socket.h:69:1: 121 PF_X25 = 9 // socket.h:52:1: 122 PF_XDP = 44 // socket.h:88:1: 123 SCM_TIMESTAMP = 29 // socket.h:140:1: 124 SCM_TIMESTAMPING = 37 // socket.h:142:1: 125 SCM_TIMESTAMPING_OPT_STATS = 54 // socket.h:90:1: 126 SCM_TIMESTAMPING_PKTINFO = 58 // socket.h:98:1: 127 SCM_TIMESTAMPNS = 35 // socket.h:141:1: 128 SCM_TXTIME = 61 // socket.h:105:1: 129 SCM_WIFI_STATUS = 41 // socket.h:64:1: 130 SIOCATMARK = 0x8905 // sockios.h:10:1: 131 SIOCGPGRP = 0x8904 // sockios.h:9:1: 132 SIOCGSTAMP = 0x8906 // sockios.h:11:1: 133 SIOCGSTAMPNS = 0x8907 // sockios.h:12:1: 134 SIOCSPGRP = 0x8902 // sockios.h:7:1: 135 SOL_AAL = 265 // socket.h:151:1: 136 SOL_ALG = 279 // socket.h:165:1: 137 SOL_ATM = 264 // socket.h:150:1: 138 SOL_BLUETOOTH = 274 // socket.h:160:1: 139 SOL_CAIF = 278 // socket.h:164:1: 140 SOL_DCCP = 269 // socket.h:155:1: 141 SOL_DECNET = 261 // socket.h:147:1: 142 SOL_IRDA = 266 // socket.h:152:1: 143 SOL_IUCV = 277 // socket.h:163:1: 144 SOL_KCM = 281 // socket.h:167:1: 145 SOL_LLC = 268 // socket.h:154:1: 146 SOL_NETBEUI = 267 // socket.h:153:1: 147 SOL_NETLINK = 270 // socket.h:156:1: 148 SOL_NFC = 280 // socket.h:166:1: 149 SOL_PACKET = 263 // socket.h:149:1: 150 SOL_PNPIPE = 275 // socket.h:161:1: 151 SOL_PPPOL2TP = 273 // socket.h:159:1: 152 SOL_RAW = 255 // socket.h:146:1: 153 SOL_RDS = 276 // socket.h:162:1: 154 SOL_RXRPC = 272 // socket.h:158:1: 155 SOL_SOCKET = 1 // socket.h:9:1: 156 SOL_TIPC = 271 // socket.h:157:1: 157 SOL_TLS = 282 // socket.h:168:1: 158 SOL_X25 = 262 // socket.h:148:1: 159 SOL_XDP = 283 // socket.h:169:1: 160 SOMAXCONN = 4096 // socket.h:172:1: 161 SO_ACCEPTCONN = 30 // socket.h:51:1: 162 SO_ATTACH_BPF = 50 // socket.h:82:1: 163 SO_ATTACH_FILTER = 26 // socket.h:45:1: 164 SO_ATTACH_REUSEPORT_CBPF = 51 // socket.h:85:1: 165 SO_ATTACH_REUSEPORT_EBPF = 52 // socket.h:86:1: 166 SO_BINDTODEVICE = 25 // socket.h:42:1: 167 SO_BINDTOIFINDEX = 62 // socket.h:107:1: 168 SO_BPF_EXTENSIONS = 48 // socket.h:78:1: 169 SO_BROADCAST = 6 // socket.h:16:1: 170 SO_BSDCOMPAT = 14 // socket.h:26:1: 171 SO_BUSY_POLL = 46 // socket.h:74:1: 172 SO_CNX_ADVICE = 53 // socket.h:88:1: 173 SO_COOKIE = 57 // socket.h:96:1: 174 SO_DEBUG = 1 // socket.h:11:1: 175 SO_DETACH_BPF = 27 // socket.h:83:1: 176 SO_DETACH_FILTER = 27 // socket.h:46:1: 177 SO_DETACH_REUSEPORT_BPF = 68 // socket.h:120:1: 178 SO_DOMAIN = 39 // socket.h:59:1: 179 SO_DONTROUTE = 5 // socket.h:15:1: 180 SO_ERROR = 4 // socket.h:14:1: 181 SO_GET_FILTER = 26 // socket.h:47:1: 182 SO_INCOMING_CPU = 49 // socket.h:80:1: 183 SO_INCOMING_NAPI_ID = 56 // socket.h:94:1: 184 SO_KEEPALIVE = 9 // socket.h:21:1: 185 SO_LINGER = 13 // socket.h:25:1: 186 SO_LOCK_FILTER = 44 // socket.h:70:1: 187 SO_MARK = 36 // socket.h:56:1: 188 SO_MAX_PACING_RATE = 47 // socket.h:76:1: 189 SO_MEMINFO = 55 // socket.h:92:1: 190 SO_NOFCS = 43 // socket.h:68:1: 191 SO_NO_CHECK = 11 // socket.h:23:1: 192 SO_OOBINLINE = 10 // socket.h:22:1: 193 SO_PASSCRED = 20 // socket.h:16:1: 194 SO_PASSSEC = 34 // socket.h:54:1: 195 SO_PEEK_OFF = 42 // socket.h:65:1: 196 SO_PEERCRED = 21 // socket.h:17:1: 197 SO_PEERGROUPS = 59 // socket.h:100:1: 198 SO_PEERNAME = 28 // socket.h:49:1: 199 SO_PEERSEC = 31 // socket.h:53:1: 200 SO_PRIORITY = 12 // socket.h:24:1: 201 SO_PROTOCOL = 38 // socket.h:58:1: 202 SO_RCVBUF = 8 // socket.h:18:1: 203 SO_RCVBUFFORCE = 33 // socket.h:20:1: 204 SO_RCVLOWAT = 16 // socket.h:12:1: 205 SO_RCVTIMEO = 18 // socket.h:129:1: 206 SO_RCVTIMEO_NEW = 66 // socket.h:117:1: 207 SO_RCVTIMEO_OLD = 18 // socket.h:14:1: 208 SO_REUSEADDR = 2 // socket.h:12:1: 209 SO_REUSEPORT = 15 // socket.h:27:1: 210 SO_RXQ_OVFL = 40 // socket.h:61:1: 211 SO_SECURITY_AUTHENTICATION = 22 // socket.h:38:1: 212 SO_SECURITY_ENCRYPTION_NETWORK = 24 // socket.h:40:1: 213 SO_SECURITY_ENCRYPTION_TRANSPORT = 23 // socket.h:39:1: 214 SO_SELECT_ERR_QUEUE = 45 // socket.h:72:1: 215 SO_SNDBUF = 7 // socket.h:17:1: 216 SO_SNDBUFFORCE = 32 // socket.h:19:1: 217 SO_SNDLOWAT = 17 // socket.h:13:1: 218 SO_SNDTIMEO = 19 // socket.h:130:1: 219 SO_SNDTIMEO_NEW = 67 // socket.h:118:1: 220 SO_SNDTIMEO_OLD = 19 // socket.h:15:1: 221 SO_TIMESTAMP = 29 // socket.h:125:1: 222 SO_TIMESTAMPING = 37 // socket.h:127:1: 223 SO_TIMESTAMPING_NEW = 65 // socket.h:115:1: 224 SO_TIMESTAMPING_OLD = 37 // socket.h:111:1: 225 SO_TIMESTAMPNS = 35 // socket.h:126:1: 226 SO_TIMESTAMPNS_NEW = 64 // socket.h:114:1: 227 SO_TIMESTAMPNS_OLD = 35 // socket.h:110:1: 228 SO_TIMESTAMP_NEW = 63 // socket.h:113:1: 229 SO_TIMESTAMP_OLD = 29 // socket.h:109:1: 230 SO_TXTIME = 61 // socket.h:104:1: 231 SO_TYPE = 3 // socket.h:13:1: 232 SO_WIFI_STATUS = 41 // socket.h:63:1: 233 SO_ZEROCOPY = 60 // socket.h:102:1: 234 X_ARCH_PPC = 1 // <predefined>:198:1: 235 X_ARCH_PPC64 = 1 // <predefined>:402:1: 236 X_ARCH_PPCGR = 1 // <predefined>:15:1: 237 X_ARCH_PPCSQ = 1 // <predefined>:43:1: 238 X_ARCH_PWR4 = 1 // <predefined>:381:1: 239 X_ARCH_PWR5 = 1 // <predefined>:90:1: 240 X_ARCH_PWR5X = 1 // <predefined>:137:1: 241 X_ARCH_PWR6 = 1 // <predefined>:91:1: 242 X_ARCH_PWR7 = 1 // <predefined>:92:1: 243 X_ARCH_PWR8 = 1 // <predefined>:93:1: 244 X_ASM_POWERPC_POSIX_TYPES_H = 0 // posix_types.h:3:1: 245 X_ASM_POWERPC_SOCKET_H = 0 // socket.h:3:1: 246 X_ATFILE_SOURCE = 1 // features.h:342:1: 247 X_BITS_BYTESWAP_H = 1 // byteswap.h:24:1: 248 X_BITS_ENDIANNESS_H = 1 // endianness.h:2:1: 249 X_BITS_ENDIAN_H = 1 // endian.h:20:1: 250 X_BITS_PTHREADTYPES_ARCH_H = 1 // pthreadtypes-arch.h:21:1: 251 X_BITS_PTHREADTYPES_COMMON_H = 1 // pthreadtypes.h:20:1: 252 X_BITS_SOCKADDR_H = 1 // sockaddr.h:24:1: 253 X_BITS_STDINT_INTN_H = 1 // stdint-intn.h:20:1: 254 X_BITS_TIME64_H = 1 // time64.h:24:1: 255 X_BITS_TYPESIZES_H = 1 // typesizes.h:24:1: 256 X_BITS_TYPES_H = 1 // types.h:24:1: 257 X_BITS_UINTN_IDENTITY_H = 1 // uintn-identity.h:24:1: 258 X_BSD_SIZE_T_ = 0 // stddef.h:189:1: 259 X_BSD_SIZE_T_DEFINED_ = 0 // stddef.h:192:1: 260 X_CALL_ELF = 2 // <predefined>:415:1: 261 X_CALL_LINUX = 1 // <predefined>:123:1: 262 X_DEFAULT_SOURCE = 1 // features.h:227:1: 263 X_ENDIAN_H = 1 // endian.h:19:1: 264 X_FEATURES_H = 1 // features.h:19:1: 265 X_FILE_OFFSET_BITS = 64 // <builtin>:25:1: 266 X_GCC_SIZE_T = 0 // stddef.h:195:1: 267 X_LINUX_POSIX_TYPES_H = 0 // posix_types.h:3:1: 268 X_LITTLE_ENDIAN = 1 // <predefined>:37:1: 269 X_LP64 = 1 // <predefined>:335:1: 270 X_POSIX_C_SOURCE = 200809 // features.h:281:1: 271 X_POSIX_SOURCE = 1 // features.h:279:1: 272 X_RWLOCK_INTERNAL_H = 0 // struct_rwlock.h:21:1: 273 X_SIZET_ = 0 // stddef.h:196:1: 274 X_SIZE_T = 0 // stddef.h:183:1: 275 X_SIZE_T_ = 0 // stddef.h:188:1: 276 X_SIZE_T_DECLARED = 0 // stddef.h:193:1: 277 X_SIZE_T_DEFINED = 0 // stddef.h:191:1: 278 X_SIZE_T_DEFINED_ = 0 // stddef.h:190:1: 279 X_SS_SIZE = 128 // sockaddr.h:40:1: 280 X_STDC_PREDEF_H = 1 // <predefined>:203:1: 281 X_STRUCT_TIMESPEC = 1 // struct_timespec.h:3:1: 282 X_SYS_CDEFS_H = 1 // cdefs.h:19:1: 283 X_SYS_SELECT_H = 1 // select.h:22:1: 284 X_SYS_SIZE_T_H = 0 // stddef.h:184:1: 285 X_SYS_SOCKET_H = 1 // socket.h:20:1: 286 X_SYS_TYPES_H = 1 // types.h:23:1: 287 X_THREAD_MUTEX_INTERNAL_H = 1 // struct_mutex.h:20:1: 288 X_THREAD_SHARED_TYPES_H = 1 // thread-shared-types.h:20:1: 289 X_T_SIZE = 0 // stddef.h:186:1: 290 X_T_SIZE_ = 0 // stddef.h:185:1: 291 Linux = 1 // <predefined>:263:1: 292 Unix = 1 // <predefined>:222:1: 293 ) 294 295 // Bits in the FLAGS argument to `send', `recv', et al. 296 const ( /* socket.h:200:1: */ 297 MSG_OOB = 1 // Process out-of-band data. 298 MSG_PEEK = 2 // Peek at incoming messages. 299 MSG_DONTROUTE = 4 // Don't use local routing. 300 MSG_CTRUNC = 8 // Control data lost before delivery. 301 MSG_PROXY = 16 // Supply or ask second address. 302 MSG_TRUNC = 32 303 MSG_DONTWAIT = 64 // Nonblocking IO. 304 MSG_EOR = 128 // End of record. 305 MSG_WAITALL = 256 // Wait for a full request. 306 MSG_FIN = 512 307 MSG_SYN = 1024 308 MSG_CONFIRM = 2048 // Confirm path validity. 309 MSG_RST = 4096 310 MSG_ERRQUEUE = 8192 // Fetch message from error queue. 311 MSG_NOSIGNAL = 16384 // Do not generate SIGPIPE. 312 MSG_MORE = 32768 // Sender will send more. 313 MSG_WAITFORONE = 65536 // Wait for at least one packet to return. 314 MSG_BATCH = 262144 // sendmmsg: more messages coming. 315 MSG_ZEROCOPY = 67108864 // Use user data in kernel path. 316 MSG_FASTOPEN = 536870912 // Send data in TCP SYN. 317 318 MSG_CMSG_CLOEXEC = 1073741824 319 ) 320 321 // Socket level message types. This must match the definitions in 322 // 323 // <linux/socket.h>. 324 const ( /* socket.h:332:1: */ 325 SCM_RIGHTS = 1 326 ) 327 328 // Get the architecture-dependent definition of enum __socket_type. 329 // Define enum __socket_type for generic Linux. 330 // Copyright (C) 1991-2020 Free Software Foundation, Inc. 331 // This file is part of the GNU C Library. 332 // 333 // The GNU C Library is free software; you can redistribute it and/or 334 // modify it under the terms of the GNU Lesser General Public 335 // License as published by the Free Software Foundation; either 336 // version 2.1 of the License, or (at your option) any later version. 337 // 338 // The GNU C Library is distributed in the hope that it will be useful, 339 // but WITHOUT ANY WARRANTY; without even the implied warranty of 340 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 341 // Lesser General Public License for more details. 342 // 343 // You should have received a copy of the GNU Lesser General Public 344 // License along with the GNU C Library; if not, see 345 // <https://www.gnu.org/licenses/>. 346 347 // Types of sockets. 348 const ( /* socket_type.h:24:1: */ 349 SOCK_STREAM = 1 // Sequenced, reliable, connection-based 350 // byte streams. 351 SOCK_DGRAM = 2 // Connectionless, unreliable datagrams 352 // of fixed maximum length. 353 SOCK_RAW = 3 // Raw protocol interface. 354 SOCK_RDM = 4 // Reliably-delivered messages. 355 SOCK_SEQPACKET = 5 // Sequenced, reliable, connection-based, 356 // datagrams of fixed maximum length. 357 SOCK_DCCP = 6 // Datagram Congestion Control Protocol. 358 SOCK_PACKET = 10 // Linux specific way of getting packets 359 // at the dev level. For writing rarp and 360 // other similar things on the user level. 361 362 // Flags to be ORed into the type parameter of socket and socketpair and 363 // used for the flags parameter of paccept. 364 365 SOCK_CLOEXEC = 524288 // Atomically set close-on-exec flag for the 366 // new descriptor(s). 367 SOCK_NONBLOCK = 2048 368 ) 369 370 // The following constants should be used for the second parameter of 371 // 372 // `shutdown'. 373 const ( /* socket.h:41:1: */ 374 SHUT_RD = 0 // No more receptions. 375 SHUT_WR = 1 // No more transmissions. 376 SHUT_RDWR = 2 377 ) 378 379 type Ptrdiff_t = int64 /* <builtin>:3:26 */ 380 381 type Size_t = uint64 /* <builtin>:9:23 */ 382 383 type Wchar_t = int32 /* <builtin>:15:24 */ 384 385 type X__int128_t = struct { 386 Flo int64 387 Fhi int64 388 } /* <builtin>:21:43 */ // must match modernc.org/mathutil.Int128 389 type X__uint128_t = struct { 390 Flo uint64 391 Fhi uint64 392 } /* <builtin>:22:44 */ // must match modernc.org/mathutil.Int128 393 394 type X__builtin_va_list = uintptr /* <builtin>:46:14 */ 395 type X__ieee128 = float64 /* <builtin>:47:21 */ 396 397 // Wide character type. 398 // Locale-writers should change this as necessary to 399 // be big enough to hold unique values not between 0 and 127, 400 // and not (wchar_t) -1, for each defined multibyte character. 401 402 // Define this type if we are doing the whole job, 403 // or if we want this type in particular. 404 405 // A null pointer constant. 406 407 // Structure for scatter/gather I/O. 408 type Iovec = struct { 409 Fiov_base uintptr 410 Fiov_len Size_t 411 } /* struct_iovec.h:26:1 */ 412 413 // Copyright (C) 1989-2020 Free Software Foundation, Inc. 414 // 415 // This file is part of GCC. 416 // 417 // GCC is free software; you can redistribute it and/or modify 418 // it under the terms of the GNU General Public License as published by 419 // the Free Software Foundation; either version 3, or (at your option) 420 // any later version. 421 // 422 // GCC is distributed in the hope that it will be useful, 423 // but WITHOUT ANY WARRANTY; without even the implied warranty of 424 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 425 // GNU General Public License for more details. 426 // 427 // Under Section 7 of GPL version 3, you are granted additional 428 // permissions described in the GCC Runtime Library Exception, version 429 // 3.1, as published by the Free Software Foundation. 430 // 431 // You should have received a copy of the GNU General Public License and 432 // a copy of the GCC Runtime Library Exception along with this program; 433 // see the files COPYING3 and COPYING.RUNTIME respectively. If not, see 434 // <http://www.gnu.org/licenses/>. 435 436 // ISO C Standard: 7.17 Common definitions <stddef.h> 437 438 // Any one of these symbols __need_* means that GNU libc 439 // wants us just to define one data type. So don't define 440 // the symbols that indicate this file's entire job has been done. 441 442 // This avoids lossage on SunOS but only if stdtypes.h comes first. 443 // There's no way to win with the other order! Sun lossage. 444 445 // Sequent's header files use _PTRDIFF_T_ in some conflicting way. 446 // Just ignore it. 447 448 // On VxWorks, <type/vxTypesBase.h> may have defined macros like 449 // _TYPE_size_t which will typedef size_t. fixincludes patched the 450 // vxTypesBase.h so that this macro is only defined if _GCC_SIZE_T is 451 // not defined, and so that defining this macro defines _GCC_SIZE_T. 452 // If we find that the macros are still defined at this point, we must 453 // invoke them so that the type is defined as expected. 454 455 // In case nobody has defined these types, but we aren't running under 456 // GCC 2.00, make sure that __PTRDIFF_TYPE__, __SIZE_TYPE__, and 457 // __WCHAR_TYPE__ have reasonable values. This can happen if the 458 // parts of GCC is compiled by an older compiler, that actually 459 // include gstddef.h, such as collect2. 460 461 // Signed type of difference of two pointers. 462 463 // Define this type if we are doing the whole job, 464 // or if we want this type in particular. 465 466 // Unsigned type of `sizeof' something. 467 468 // Define this type if we are doing the whole job, 469 // or if we want this type in particular. 470 471 // Wide character type. 472 // Locale-writers should change this as necessary to 473 // be big enough to hold unique values not between 0 and 127, 474 // and not (wchar_t) -1, for each defined multibyte character. 475 476 // Define this type if we are doing the whole job, 477 // or if we want this type in particular. 478 479 // A null pointer constant. 480 481 // This operating system-specific header file defines the SOCK_*, PF_*, 482 // AF_*, MSG_*, SOL_*, and SO_* constants, and the `struct sockaddr', 483 // `struct msghdr', and `struct linger' types. 484 // System-specific socket constants and types. Linux version. 485 // Copyright (C) 1991-2020 Free Software Foundation, Inc. 486 // This file is part of the GNU C Library. 487 // 488 // The GNU C Library is free software; you can redistribute it and/or 489 // modify it under the terms of the GNU Lesser General Public 490 // License as published by the Free Software Foundation; either 491 // version 2.1 of the License, or (at your option) any later version. 492 // 493 // The GNU C Library is distributed in the hope that it will be useful, 494 // but WITHOUT ANY WARRANTY; without even the implied warranty of 495 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 496 // Lesser General Public License for more details. 497 // 498 // You should have received a copy of the GNU Lesser General Public 499 // License along with the GNU C Library; if not, see 500 // <https://www.gnu.org/licenses/>. 501 502 // Copyright (C) 1989-2020 Free Software Foundation, Inc. 503 // 504 // This file is part of GCC. 505 // 506 // GCC is free software; you can redistribute it and/or modify 507 // it under the terms of the GNU General Public License as published by 508 // the Free Software Foundation; either version 3, or (at your option) 509 // any later version. 510 // 511 // GCC is distributed in the hope that it will be useful, 512 // but WITHOUT ANY WARRANTY; without even the implied warranty of 513 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 514 // GNU General Public License for more details. 515 // 516 // Under Section 7 of GPL version 3, you are granted additional 517 // permissions described in the GCC Runtime Library Exception, version 518 // 3.1, as published by the Free Software Foundation. 519 // 520 // You should have received a copy of the GNU General Public License and 521 // a copy of the GCC Runtime Library Exception along with this program; 522 // see the files COPYING3 and COPYING.RUNTIME respectively. If not, see 523 // <http://www.gnu.org/licenses/>. 524 525 // ISO C Standard: 7.17 Common definitions <stddef.h> 526 527 // Any one of these symbols __need_* means that GNU libc 528 // wants us just to define one data type. So don't define 529 // the symbols that indicate this file's entire job has been done. 530 531 // This avoids lossage on SunOS but only if stdtypes.h comes first. 532 // There's no way to win with the other order! Sun lossage. 533 534 // Sequent's header files use _PTRDIFF_T_ in some conflicting way. 535 // Just ignore it. 536 537 // On VxWorks, <type/vxTypesBase.h> may have defined macros like 538 // _TYPE_size_t which will typedef size_t. fixincludes patched the 539 // vxTypesBase.h so that this macro is only defined if _GCC_SIZE_T is 540 // not defined, and so that defining this macro defines _GCC_SIZE_T. 541 // If we find that the macros are still defined at this point, we must 542 // invoke them so that the type is defined as expected. 543 544 // In case nobody has defined these types, but we aren't running under 545 // GCC 2.00, make sure that __PTRDIFF_TYPE__, __SIZE_TYPE__, and 546 // __WCHAR_TYPE__ have reasonable values. This can happen if the 547 // parts of GCC is compiled by an older compiler, that actually 548 // include gstddef.h, such as collect2. 549 550 // Signed type of difference of two pointers. 551 552 // Define this type if we are doing the whole job, 553 // or if we want this type in particular. 554 555 // Unsigned type of `sizeof' something. 556 557 // Define this type if we are doing the whole job, 558 // or if we want this type in particular. 559 560 // Wide character type. 561 // Locale-writers should change this as necessary to 562 // be big enough to hold unique values not between 0 and 127, 563 // and not (wchar_t) -1, for each defined multibyte character. 564 565 // Define this type if we are doing the whole job, 566 // or if we want this type in particular. 567 568 // A null pointer constant. 569 570 // Copyright (C) 1991-2020 Free Software Foundation, Inc. 571 // This file is part of the GNU C Library. 572 // 573 // The GNU C Library is free software; you can redistribute it and/or 574 // modify it under the terms of the GNU Lesser General Public 575 // License as published by the Free Software Foundation; either 576 // version 2.1 of the License, or (at your option) any later version. 577 // 578 // The GNU C Library is distributed in the hope that it will be useful, 579 // but WITHOUT ANY WARRANTY; without even the implied warranty of 580 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 581 // Lesser General Public License for more details. 582 // 583 // You should have received a copy of the GNU Lesser General Public 584 // License along with the GNU C Library; if not, see 585 // <https://www.gnu.org/licenses/>. 586 587 // POSIX Standard: 2.6 Primitive System Data Types <sys/types.h> 588 589 // Copyright (C) 1991-2020 Free Software Foundation, Inc. 590 // This file is part of the GNU C Library. 591 // 592 // The GNU C Library is free software; you can redistribute it and/or 593 // modify it under the terms of the GNU Lesser General Public 594 // License as published by the Free Software Foundation; either 595 // version 2.1 of the License, or (at your option) any later version. 596 // 597 // The GNU C Library is distributed in the hope that it will be useful, 598 // but WITHOUT ANY WARRANTY; without even the implied warranty of 599 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 600 // Lesser General Public License for more details. 601 // 602 // You should have received a copy of the GNU Lesser General Public 603 // License along with the GNU C Library; if not, see 604 // <https://www.gnu.org/licenses/>. 605 606 // bits/types.h -- definitions of __*_t types underlying *_t types. 607 // Copyright (C) 2002-2020 Free Software Foundation, Inc. 608 // This file is part of the GNU C Library. 609 // 610 // The GNU C Library is free software; you can redistribute it and/or 611 // modify it under the terms of the GNU Lesser General Public 612 // License as published by the Free Software Foundation; either 613 // version 2.1 of the License, or (at your option) any later version. 614 // 615 // The GNU C Library is distributed in the hope that it will be useful, 616 // but WITHOUT ANY WARRANTY; without even the implied warranty of 617 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 618 // Lesser General Public License for more details. 619 // 620 // You should have received a copy of the GNU Lesser General Public 621 // License along with the GNU C Library; if not, see 622 // <https://www.gnu.org/licenses/>. 623 624 // Never include this file directly; use <sys/types.h> instead. 625 626 // Copyright (C) 1991-2020 Free Software Foundation, Inc. 627 // This file is part of the GNU C Library. 628 // 629 // The GNU C Library is free software; you can redistribute it and/or 630 // modify it under the terms of the GNU Lesser General Public 631 // License as published by the Free Software Foundation; either 632 // version 2.1 of the License, or (at your option) any later version. 633 // 634 // The GNU C Library is distributed in the hope that it will be useful, 635 // but WITHOUT ANY WARRANTY; without even the implied warranty of 636 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 637 // Lesser General Public License for more details. 638 // 639 // You should have received a copy of the GNU Lesser General Public 640 // License along with the GNU C Library; if not, see 641 // <https://www.gnu.org/licenses/>. 642 643 // Determine the wordsize from the preprocessor defines. 644 645 // Bit size of the time_t type at glibc build time, general case. 646 // Copyright (C) 2018-2020 Free Software Foundation, Inc. 647 // This file is part of the GNU C Library. 648 // 649 // The GNU C Library is free software; you can redistribute it and/or 650 // modify it under the terms of the GNU Lesser General Public 651 // License as published by the Free Software Foundation; either 652 // version 2.1 of the License, or (at your option) any later version. 653 // 654 // The GNU C Library is distributed in the hope that it will be useful, 655 // but WITHOUT ANY WARRANTY; without even the implied warranty of 656 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 657 // Lesser General Public License for more details. 658 // 659 // You should have received a copy of the GNU Lesser General Public 660 // License along with the GNU C Library; if not, see 661 // <https://www.gnu.org/licenses/>. 662 663 // Determine the wordsize from the preprocessor defines. 664 665 // Size in bits of the 'time_t' type of the default ABI. 666 667 // Convenience types. 668 type X__u_char = uint8 /* types.h:31:23 */ 669 type X__u_short = uint16 /* types.h:32:28 */ 670 type X__u_int = uint32 /* types.h:33:22 */ 671 type X__u_long = uint64 /* types.h:34:27 */ 672 673 // Fixed-size types, underlying types depend on word size and compiler. 674 type X__int8_t = int8 /* types.h:37:21 */ 675 type X__uint8_t = uint8 /* types.h:38:23 */ 676 type X__int16_t = int16 /* types.h:39:26 */ 677 type X__uint16_t = uint16 /* types.h:40:28 */ 678 type X__int32_t = int32 /* types.h:41:20 */ 679 type X__uint32_t = uint32 /* types.h:42:22 */ 680 type X__int64_t = int64 /* types.h:44:25 */ 681 type X__uint64_t = uint64 /* types.h:45:27 */ 682 683 // Smallest types with at least a given width. 684 type X__int_least8_t = X__int8_t /* types.h:52:18 */ 685 type X__uint_least8_t = X__uint8_t /* types.h:53:19 */ 686 type X__int_least16_t = X__int16_t /* types.h:54:19 */ 687 type X__uint_least16_t = X__uint16_t /* types.h:55:20 */ 688 type X__int_least32_t = X__int32_t /* types.h:56:19 */ 689 type X__uint_least32_t = X__uint32_t /* types.h:57:20 */ 690 type X__int_least64_t = X__int64_t /* types.h:58:19 */ 691 type X__uint_least64_t = X__uint64_t /* types.h:59:20 */ 692 693 // quad_t is also 64 bits. 694 type X__quad_t = int64 /* types.h:63:18 */ 695 type X__u_quad_t = uint64 /* types.h:64:27 */ 696 697 // Largest integral types. 698 type X__intmax_t = int64 /* types.h:72:18 */ 699 type X__uintmax_t = uint64 /* types.h:73:27 */ 700 701 // The machine-dependent file <bits/typesizes.h> defines __*_T_TYPE 702 // macros for each of the OS types we define below. The definitions 703 // of those macros must use the following macros for underlying types. 704 // We define __S<SIZE>_TYPE and __U<SIZE>_TYPE for the signed and unsigned 705 // variants of each of the following integer types on this machine. 706 // 707 // 16 -- "natural" 16-bit type (always short) 708 // 32 -- "natural" 32-bit type (always int) 709 // 64 -- "natural" 64-bit type (long or long long) 710 // LONG32 -- 32-bit type, traditionally long 711 // QUAD -- 64-bit type, traditionally long long 712 // WORD -- natural type of __WORDSIZE bits (int or long) 713 // LONGWORD -- type of __WORDSIZE bits, traditionally long 714 // 715 // We distinguish WORD/LONGWORD, 32/LONG32, and 64/QUAD so that the 716 // conventional uses of `long' or `long long' type modifiers match the 717 // types we define, even when a less-adorned type would be the same size. 718 // This matters for (somewhat) portably writing printf/scanf formats for 719 // these types, where using the appropriate l or ll format modifiers can 720 // make the typedefs and the formats match up across all GNU platforms. If 721 // we used `long' when it's 64 bits where `long long' is expected, then the 722 // compiler would warn about the formats not matching the argument types, 723 // and the programmer changing them to shut up the compiler would break the 724 // program's portability. 725 // 726 // Here we assume what is presently the case in all the GCC configurations 727 // we support: long long is always 64 bits, long is always word/address size, 728 // and int is always 32 bits. 729 730 // No need to mark the typedef with __extension__. 731 // bits/typesizes.h -- underlying types for *_t. Generic version. 732 // Copyright (C) 2002-2020 Free Software Foundation, Inc. 733 // This file is part of the GNU C Library. 734 // 735 // The GNU C Library is free software; you can redistribute it and/or 736 // modify it under the terms of the GNU Lesser General Public 737 // License as published by the Free Software Foundation; either 738 // version 2.1 of the License, or (at your option) any later version. 739 // 740 // The GNU C Library is distributed in the hope that it will be useful, 741 // but WITHOUT ANY WARRANTY; without even the implied warranty of 742 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 743 // Lesser General Public License for more details. 744 // 745 // You should have received a copy of the GNU Lesser General Public 746 // License along with the GNU C Library; if not, see 747 // <https://www.gnu.org/licenses/>. 748 749 // See <bits/types.h> for the meaning of these macros. This file exists so 750 // that <bits/types.h> need not vary across different GNU platforms. 751 752 // Tell the libc code that off_t and off64_t are actually the same type 753 // for all ABI purposes, even if possibly expressed as different base types 754 // for C type-checking purposes. 755 756 // Same for ino_t and ino64_t. 757 758 // And for rlim_t and rlim64_t. 759 760 // And for fsblkcnt_t, fsblkcnt64_t, fsfilcnt_t and fsfilcnt64_t. 761 762 // Number of descriptors that can fit in an `fd_set'. 763 764 // bits/time64.h -- underlying types for __time64_t. Generic version. 765 // Copyright (C) 2018-2020 Free Software Foundation, Inc. 766 // This file is part of the GNU C Library. 767 // 768 // The GNU C Library is free software; you can redistribute it and/or 769 // modify it under the terms of the GNU Lesser General Public 770 // License as published by the Free Software Foundation; either 771 // version 2.1 of the License, or (at your option) any later version. 772 // 773 // The GNU C Library is distributed in the hope that it will be useful, 774 // but WITHOUT ANY WARRANTY; without even the implied warranty of 775 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 776 // Lesser General Public License for more details. 777 // 778 // You should have received a copy of the GNU Lesser General Public 779 // License along with the GNU C Library; if not, see 780 // <https://www.gnu.org/licenses/>. 781 782 // Define __TIME64_T_TYPE so that it is always a 64-bit type. 783 784 // If we already have 64-bit time type then use it. 785 786 type X__dev_t = uint64 /* types.h:145:25 */ // Type of device numbers. 787 type X__uid_t = uint32 /* types.h:146:25 */ // Type of user identifications. 788 type X__gid_t = uint32 /* types.h:147:25 */ // Type of group identifications. 789 type X__ino_t = uint64 /* types.h:148:25 */ // Type of file serial numbers. 790 type X__ino64_t = uint64 /* types.h:149:27 */ // Type of file serial numbers (LFS). 791 type X__mode_t = uint32 /* types.h:150:26 */ // Type of file attribute bitmasks. 792 type X__nlink_t = uint64 /* types.h:151:27 */ // Type of file link counts. 793 type X__off_t = int64 /* types.h:152:25 */ // Type of file sizes and offsets. 794 type X__off64_t = int64 /* types.h:153:27 */ // Type of file sizes and offsets (LFS). 795 type X__pid_t = int32 /* types.h:154:25 */ // Type of process identifications. 796 type X__fsid_t = struct{ F__val [2]int32 } /* types.h:155:26 */ // Type of file system IDs. 797 type X__clock_t = int64 /* types.h:156:27 */ // Type of CPU usage counts. 798 type X__rlim_t = uint64 /* types.h:157:26 */ // Type for resource measurement. 799 type X__rlim64_t = uint64 /* types.h:158:28 */ // Type for resource measurement (LFS). 800 type X__id_t = uint32 /* types.h:159:24 */ // General type for IDs. 801 type X__time_t = int64 /* types.h:160:26 */ // Seconds since the Epoch. 802 type X__useconds_t = uint32 /* types.h:161:30 */ // Count of microseconds. 803 type X__suseconds_t = int64 /* types.h:162:31 */ // Signed count of microseconds. 804 805 type X__daddr_t = int32 /* types.h:164:27 */ // The type of a disk address. 806 type X__key_t = int32 /* types.h:165:25 */ // Type of an IPC key. 807 808 // Clock ID used in clock and timer functions. 809 type X__clockid_t = int32 /* types.h:168:29 */ 810 811 // Timer ID returned by `timer_create'. 812 type X__timer_t = uintptr /* types.h:171:12 */ 813 814 // Type to represent block size. 815 type X__blksize_t = int64 /* types.h:174:29 */ 816 817 // Types from the Large File Support interface. 818 819 // Type to count number of disk blocks. 820 type X__blkcnt_t = int64 /* types.h:179:28 */ 821 type X__blkcnt64_t = int64 /* types.h:180:30 */ 822 823 // Type to count file system blocks. 824 type X__fsblkcnt_t = uint64 /* types.h:183:30 */ 825 type X__fsblkcnt64_t = uint64 /* types.h:184:32 */ 826 827 // Type to count file system nodes. 828 type X__fsfilcnt_t = uint64 /* types.h:187:30 */ 829 type X__fsfilcnt64_t = uint64 /* types.h:188:32 */ 830 831 // Type of miscellaneous file system fields. 832 type X__fsword_t = int64 /* types.h:191:28 */ 833 834 type X__ssize_t = int64 /* types.h:193:27 */ // Type of a byte count, or error. 835 836 // Signed long type used in system calls. 837 type X__syscall_slong_t = int64 /* types.h:196:33 */ 838 // Unsigned long type used in system calls. 839 type X__syscall_ulong_t = uint64 /* types.h:198:33 */ 840 841 // These few don't really vary by system, they always correspond 842 // 843 // to one of the other defined types. 844 type X__loff_t = X__off64_t /* types.h:202:19 */ // Type of file sizes and offsets (LFS). 845 type X__caddr_t = uintptr /* types.h:203:14 */ 846 847 // Duplicates info from stdint.h but this is used in unistd.h. 848 type X__intptr_t = int64 /* types.h:206:25 */ 849 850 // Duplicate info from sys/socket.h. 851 type X__socklen_t = uint32 /* types.h:209:23 */ 852 853 // C99: An integer type that can be accessed as an atomic entity, 854 // 855 // even in the presence of asynchronous interrupts. 856 // It is not currently necessary for this to be machine-specific. 857 type X__sig_atomic_t = int32 /* types.h:214:13 */ 858 859 // Seconds since the Epoch, visible to user code when time_t is too 860 // narrow only for consistency with the old way of widening too-narrow 861 // types. User code should never use __time64_t. 862 863 type U_char = X__u_char /* types.h:33:18 */ 864 type U_short = X__u_short /* types.h:34:19 */ 865 type U_int = X__u_int /* types.h:35:17 */ 866 type U_long = X__u_long /* types.h:36:18 */ 867 type Quad_t = X__quad_t /* types.h:37:18 */ 868 type U_quad_t = X__u_quad_t /* types.h:38:20 */ 869 type Fsid_t = X__fsid_t /* types.h:39:18 */ 870 type Loff_t = X__loff_t /* types.h:42:18 */ 871 872 type Ino_t = X__ino64_t /* types.h:49:19 */ 873 874 type Dev_t = X__dev_t /* types.h:59:17 */ 875 876 type Gid_t = X__gid_t /* types.h:64:17 */ 877 878 type Mode_t = X__mode_t /* types.h:69:18 */ 879 880 type Nlink_t = X__nlink_t /* types.h:74:19 */ 881 882 type Uid_t = X__uid_t /* types.h:79:17 */ 883 884 type Off_t = X__off64_t /* types.h:87:19 */ 885 886 type Pid_t = X__pid_t /* types.h:97:17 */ 887 888 type Id_t = X__id_t /* types.h:103:16 */ 889 890 type Ssize_t = X__ssize_t /* types.h:108:19 */ 891 892 type Daddr_t = X__daddr_t /* types.h:114:19 */ 893 type Caddr_t = X__caddr_t /* types.h:115:19 */ 894 895 type Key_t = X__key_t /* types.h:121:17 */ 896 897 // bits/types.h -- definitions of __*_t types underlying *_t types. 898 // Copyright (C) 2002-2020 Free Software Foundation, Inc. 899 // This file is part of the GNU C Library. 900 // 901 // The GNU C Library is free software; you can redistribute it and/or 902 // modify it under the terms of the GNU Lesser General Public 903 // License as published by the Free Software Foundation; either 904 // version 2.1 of the License, or (at your option) any later version. 905 // 906 // The GNU C Library is distributed in the hope that it will be useful, 907 // but WITHOUT ANY WARRANTY; without even the implied warranty of 908 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 909 // Lesser General Public License for more details. 910 // 911 // You should have received a copy of the GNU Lesser General Public 912 // License along with the GNU C Library; if not, see 913 // <https://www.gnu.org/licenses/>. 914 915 // Never include this file directly; use <sys/types.h> instead. 916 917 // Returned by `clock'. 918 type Clock_t = X__clock_t /* clock_t.h:7:19 */ 919 920 // bits/types.h -- definitions of __*_t types underlying *_t types. 921 // Copyright (C) 2002-2020 Free Software Foundation, Inc. 922 // This file is part of the GNU C Library. 923 // 924 // The GNU C Library is free software; you can redistribute it and/or 925 // modify it under the terms of the GNU Lesser General Public 926 // License as published by the Free Software Foundation; either 927 // version 2.1 of the License, or (at your option) any later version. 928 // 929 // The GNU C Library is distributed in the hope that it will be useful, 930 // but WITHOUT ANY WARRANTY; without even the implied warranty of 931 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 932 // Lesser General Public License for more details. 933 // 934 // You should have received a copy of the GNU Lesser General Public 935 // License along with the GNU C Library; if not, see 936 // <https://www.gnu.org/licenses/>. 937 938 // Never include this file directly; use <sys/types.h> instead. 939 940 // Clock ID used in clock and timer functions. 941 type Clockid_t = X__clockid_t /* clockid_t.h:7:21 */ 942 943 // bits/types.h -- definitions of __*_t types underlying *_t types. 944 // Copyright (C) 2002-2020 Free Software Foundation, Inc. 945 // This file is part of the GNU C Library. 946 // 947 // The GNU C Library is free software; you can redistribute it and/or 948 // modify it under the terms of the GNU Lesser General Public 949 // License as published by the Free Software Foundation; either 950 // version 2.1 of the License, or (at your option) any later version. 951 // 952 // The GNU C Library is distributed in the hope that it will be useful, 953 // but WITHOUT ANY WARRANTY; without even the implied warranty of 954 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 955 // Lesser General Public License for more details. 956 // 957 // You should have received a copy of the GNU Lesser General Public 958 // License along with the GNU C Library; if not, see 959 // <https://www.gnu.org/licenses/>. 960 961 // Never include this file directly; use <sys/types.h> instead. 962 963 // Returned by `time'. 964 type Time_t = X__time_t /* time_t.h:7:18 */ 965 966 // bits/types.h -- definitions of __*_t types underlying *_t types. 967 // Copyright (C) 2002-2020 Free Software Foundation, Inc. 968 // This file is part of the GNU C Library. 969 // 970 // The GNU C Library is free software; you can redistribute it and/or 971 // modify it under the terms of the GNU Lesser General Public 972 // License as published by the Free Software Foundation; either 973 // version 2.1 of the License, or (at your option) any later version. 974 // 975 // The GNU C Library is distributed in the hope that it will be useful, 976 // but WITHOUT ANY WARRANTY; without even the implied warranty of 977 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 978 // Lesser General Public License for more details. 979 // 980 // You should have received a copy of the GNU Lesser General Public 981 // License along with the GNU C Library; if not, see 982 // <https://www.gnu.org/licenses/>. 983 984 // Never include this file directly; use <sys/types.h> instead. 985 986 // Timer ID returned by `timer_create'. 987 type Timer_t = X__timer_t /* timer_t.h:7:19 */ 988 989 // Copyright (C) 1989-2020 Free Software Foundation, Inc. 990 // 991 // This file is part of GCC. 992 // 993 // GCC is free software; you can redistribute it and/or modify 994 // it under the terms of the GNU General Public License as published by 995 // the Free Software Foundation; either version 3, or (at your option) 996 // any later version. 997 // 998 // GCC is distributed in the hope that it will be useful, 999 // but WITHOUT ANY WARRANTY; without even the implied warranty of 1000 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 1001 // GNU General Public License for more details. 1002 // 1003 // Under Section 7 of GPL version 3, you are granted additional 1004 // permissions described in the GCC Runtime Library Exception, version 1005 // 3.1, as published by the Free Software Foundation. 1006 // 1007 // You should have received a copy of the GNU General Public License and 1008 // a copy of the GCC Runtime Library Exception along with this program; 1009 // see the files COPYING3 and COPYING.RUNTIME respectively. If not, see 1010 // <http://www.gnu.org/licenses/>. 1011 1012 // ISO C Standard: 7.17 Common definitions <stddef.h> 1013 1014 // Any one of these symbols __need_* means that GNU libc 1015 // wants us just to define one data type. So don't define 1016 // the symbols that indicate this file's entire job has been done. 1017 1018 // This avoids lossage on SunOS but only if stdtypes.h comes first. 1019 // There's no way to win with the other order! Sun lossage. 1020 1021 // Sequent's header files use _PTRDIFF_T_ in some conflicting way. 1022 // Just ignore it. 1023 1024 // On VxWorks, <type/vxTypesBase.h> may have defined macros like 1025 // _TYPE_size_t which will typedef size_t. fixincludes patched the 1026 // vxTypesBase.h so that this macro is only defined if _GCC_SIZE_T is 1027 // not defined, and so that defining this macro defines _GCC_SIZE_T. 1028 // If we find that the macros are still defined at this point, we must 1029 // invoke them so that the type is defined as expected. 1030 1031 // In case nobody has defined these types, but we aren't running under 1032 // GCC 2.00, make sure that __PTRDIFF_TYPE__, __SIZE_TYPE__, and 1033 // __WCHAR_TYPE__ have reasonable values. This can happen if the 1034 // parts of GCC is compiled by an older compiler, that actually 1035 // include gstddef.h, such as collect2. 1036 1037 // Signed type of difference of two pointers. 1038 1039 // Define this type if we are doing the whole job, 1040 // or if we want this type in particular. 1041 1042 // Unsigned type of `sizeof' something. 1043 1044 // Define this type if we are doing the whole job, 1045 // or if we want this type in particular. 1046 1047 // Wide character type. 1048 // Locale-writers should change this as necessary to 1049 // be big enough to hold unique values not between 0 and 127, 1050 // and not (wchar_t) -1, for each defined multibyte character. 1051 1052 // Define this type if we are doing the whole job, 1053 // or if we want this type in particular. 1054 1055 // A null pointer constant. 1056 1057 // Old compatibility names for C types. 1058 type Ulong = uint64 /* types.h:148:27 */ 1059 type Ushort = uint16 /* types.h:149:28 */ 1060 type Uint = uint32 /* types.h:150:22 */ 1061 1062 // These size-specific names are used by some of the inet code. 1063 1064 // Define intN_t types. 1065 // Copyright (C) 2017-2020 Free Software Foundation, Inc. 1066 // This file is part of the GNU C Library. 1067 // 1068 // The GNU C Library is free software; you can redistribute it and/or 1069 // modify it under the terms of the GNU Lesser General Public 1070 // License as published by the Free Software Foundation; either 1071 // version 2.1 of the License, or (at your option) any later version. 1072 // 1073 // The GNU C Library is distributed in the hope that it will be useful, 1074 // but WITHOUT ANY WARRANTY; without even the implied warranty of 1075 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 1076 // Lesser General Public License for more details. 1077 // 1078 // You should have received a copy of the GNU Lesser General Public 1079 // License along with the GNU C Library; if not, see 1080 // <https://www.gnu.org/licenses/>. 1081 1082 // bits/types.h -- definitions of __*_t types underlying *_t types. 1083 // Copyright (C) 2002-2020 Free Software Foundation, Inc. 1084 // This file is part of the GNU C Library. 1085 // 1086 // The GNU C Library is free software; you can redistribute it and/or 1087 // modify it under the terms of the GNU Lesser General Public 1088 // License as published by the Free Software Foundation; either 1089 // version 2.1 of the License, or (at your option) any later version. 1090 // 1091 // The GNU C Library is distributed in the hope that it will be useful, 1092 // but WITHOUT ANY WARRANTY; without even the implied warranty of 1093 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 1094 // Lesser General Public License for more details. 1095 // 1096 // You should have received a copy of the GNU Lesser General Public 1097 // License along with the GNU C Library; if not, see 1098 // <https://www.gnu.org/licenses/>. 1099 1100 // Never include this file directly; use <sys/types.h> instead. 1101 1102 type Int8_t = X__int8_t /* stdint-intn.h:24:18 */ 1103 type Int16_t = X__int16_t /* stdint-intn.h:25:19 */ 1104 type Int32_t = X__int32_t /* stdint-intn.h:26:19 */ 1105 type Int64_t = X__int64_t /* stdint-intn.h:27:19 */ 1106 1107 // These were defined by ISO C without the first `_'. 1108 type U_int8_t = X__uint8_t /* types.h:158:19 */ 1109 type U_int16_t = X__uint16_t /* types.h:159:20 */ 1110 type U_int32_t = X__uint32_t /* types.h:160:20 */ 1111 type U_int64_t = X__uint64_t /* types.h:161:20 */ 1112 1113 type Register_t = int32 /* types.h:164:13 */ 1114 1115 // It also defines `fd_set' and the FD_* macros for `select'. 1116 // `fd_set' type and related macros, and `select'/`pselect' declarations. 1117 // Copyright (C) 1996-2020 Free Software Foundation, Inc. 1118 // This file is part of the GNU C Library. 1119 // 1120 // The GNU C Library is free software; you can redistribute it and/or 1121 // modify it under the terms of the GNU Lesser General Public 1122 // License as published by the Free Software Foundation; either 1123 // version 2.1 of the License, or (at your option) any later version. 1124 // 1125 // The GNU C Library is distributed in the hope that it will be useful, 1126 // but WITHOUT ANY WARRANTY; without even the implied warranty of 1127 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 1128 // Lesser General Public License for more details. 1129 // 1130 // You should have received a copy of the GNU Lesser General Public 1131 // License along with the GNU C Library; if not, see 1132 // <https://www.gnu.org/licenses/>. 1133 1134 // POSIX 1003.1g: 6.2 Select from File Descriptor Sets <sys/select.h> 1135 1136 // Copyright (C) 1991-2020 Free Software Foundation, Inc. 1137 // This file is part of the GNU C Library. 1138 // 1139 // The GNU C Library is free software; you can redistribute it and/or 1140 // modify it under the terms of the GNU Lesser General Public 1141 // License as published by the Free Software Foundation; either 1142 // version 2.1 of the License, or (at your option) any later version. 1143 // 1144 // The GNU C Library is distributed in the hope that it will be useful, 1145 // but WITHOUT ANY WARRANTY; without even the implied warranty of 1146 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 1147 // Lesser General Public License for more details. 1148 // 1149 // You should have received a copy of the GNU Lesser General Public 1150 // License along with the GNU C Library; if not, see 1151 // <https://www.gnu.org/licenses/>. 1152 1153 // Get definition of needed basic types. 1154 // bits/types.h -- definitions of __*_t types underlying *_t types. 1155 // Copyright (C) 2002-2020 Free Software Foundation, Inc. 1156 // This file is part of the GNU C Library. 1157 // 1158 // The GNU C Library is free software; you can redistribute it and/or 1159 // modify it under the terms of the GNU Lesser General Public 1160 // License as published by the Free Software Foundation; either 1161 // version 2.1 of the License, or (at your option) any later version. 1162 // 1163 // The GNU C Library is distributed in the hope that it will be useful, 1164 // but WITHOUT ANY WARRANTY; without even the implied warranty of 1165 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 1166 // Lesser General Public License for more details. 1167 // 1168 // You should have received a copy of the GNU Lesser General Public 1169 // License along with the GNU C Library; if not, see 1170 // <https://www.gnu.org/licenses/>. 1171 1172 // Never include this file directly; use <sys/types.h> instead. 1173 1174 // Get __FD_* definitions. 1175 // Copyright (C) 1997-2020 Free Software Foundation, Inc. 1176 // This file is part of the GNU C Library. 1177 // 1178 // The GNU C Library is free software; you can redistribute it and/or 1179 // modify it under the terms of the GNU Lesser General Public 1180 // License as published by the Free Software Foundation; either 1181 // version 2.1 of the License, or (at your option) any later version. 1182 // 1183 // The GNU C Library is distributed in the hope that it will be useful, 1184 // but WITHOUT ANY WARRANTY; without even the implied warranty of 1185 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 1186 // Lesser General Public License for more details. 1187 // 1188 // You should have received a copy of the GNU Lesser General Public 1189 // License along with the GNU C Library; if not, see 1190 // <https://www.gnu.org/licenses/>. 1191 1192 // We don't use `memset' because this would require a prototype and 1193 // the array isn't too big. 1194 1195 // Get sigset_t. 1196 1197 type X__sigset_t = struct{ F__val [16]uint64 } /* __sigset_t.h:8:3 */ 1198 1199 // A set of signals to be blocked, unblocked, or waited for. 1200 type Sigset_t = X__sigset_t /* sigset_t.h:7:20 */ 1201 1202 // Get definition of timer specification structures. 1203 1204 // bits/types.h -- definitions of __*_t types underlying *_t types. 1205 // Copyright (C) 2002-2020 Free Software Foundation, Inc. 1206 // This file is part of the GNU C Library. 1207 // 1208 // The GNU C Library is free software; you can redistribute it and/or 1209 // modify it under the terms of the GNU Lesser General Public 1210 // License as published by the Free Software Foundation; either 1211 // version 2.1 of the License, or (at your option) any later version. 1212 // 1213 // The GNU C Library is distributed in the hope that it will be useful, 1214 // but WITHOUT ANY WARRANTY; without even the implied warranty of 1215 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 1216 // Lesser General Public License for more details. 1217 // 1218 // You should have received a copy of the GNU Lesser General Public 1219 // License along with the GNU C Library; if not, see 1220 // <https://www.gnu.org/licenses/>. 1221 1222 // Never include this file directly; use <sys/types.h> instead. 1223 1224 // A time value that is accurate to the nearest 1225 // 1226 // microsecond but also has a range of years. 1227 type Timeval = struct { 1228 Ftv_sec X__time_t 1229 Ftv_usec X__suseconds_t 1230 } /* struct_timeval.h:8:1 */ 1231 1232 // NB: Include guard matches what <linux/time.h> uses. 1233 1234 // bits/types.h -- definitions of __*_t types underlying *_t types. 1235 // Copyright (C) 2002-2020 Free Software Foundation, Inc. 1236 // This file is part of the GNU C Library. 1237 // 1238 // The GNU C Library is free software; you can redistribute it and/or 1239 // modify it under the terms of the GNU Lesser General Public 1240 // License as published by the Free Software Foundation; either 1241 // version 2.1 of the License, or (at your option) any later version. 1242 // 1243 // The GNU C Library is distributed in the hope that it will be useful, 1244 // but WITHOUT ANY WARRANTY; without even the implied warranty of 1245 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 1246 // Lesser General Public License for more details. 1247 // 1248 // You should have received a copy of the GNU Lesser General Public 1249 // License along with the GNU C Library; if not, see 1250 // <https://www.gnu.org/licenses/>. 1251 1252 // Never include this file directly; use <sys/types.h> instead. 1253 1254 // Endian macros for string.h functions 1255 // Copyright (C) 1992-2020 Free Software Foundation, Inc. 1256 // This file is part of the GNU C Library. 1257 // 1258 // The GNU C Library is free software; you can redistribute it and/or 1259 // modify it under the terms of the GNU Lesser General Public 1260 // License as published by the Free Software Foundation; either 1261 // version 2.1 of the License, or (at your option) any later version. 1262 // 1263 // The GNU C Library is distributed in the hope that it will be useful, 1264 // but WITHOUT ANY WARRANTY; without even the implied warranty of 1265 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 1266 // Lesser General Public License for more details. 1267 // 1268 // You should have received a copy of the GNU Lesser General Public 1269 // License along with the GNU C Library; if not, see 1270 // <http://www.gnu.org/licenses/>. 1271 1272 // POSIX.1b structure for a time value. This is like a `struct timeval' but 1273 // 1274 // has nanoseconds instead of microseconds. 1275 type Timespec = struct { 1276 Ftv_sec X__time_t 1277 Ftv_nsec X__syscall_slong_t 1278 } /* struct_timespec.h:10:1 */ 1279 1280 type Suseconds_t = X__suseconds_t /* select.h:43:23 */ 1281 1282 // The fd_set member is required to be an array of longs. 1283 type X__fd_mask = int64 /* select.h:49:18 */ 1284 1285 // Some versions of <linux/posix_types.h> define this macros. 1286 // It's easier to assume 8-bit bytes than to get CHAR_BIT. 1287 1288 // fd_set for select and pselect. 1289 type Fd_set = struct{ F__fds_bits [16]X__fd_mask } /* select.h:70:5 */ 1290 1291 // Maximum number of file descriptors in `fd_set'. 1292 1293 // Sometimes the fd_set member is assumed to have this type. 1294 type Fd_mask = X__fd_mask /* select.h:77:19 */ 1295 1296 // Define some inlines helping to catch common problems. 1297 1298 type Blksize_t = X__blksize_t /* types.h:185:21 */ 1299 1300 // Types from the Large File Support interface. 1301 type Blkcnt_t = X__blkcnt64_t /* types.h:205:22 */ // Type to count number of disk blocks. 1302 type Fsblkcnt_t = X__fsblkcnt64_t /* types.h:209:24 */ // Type to count file system blocks. 1303 type Fsfilcnt_t = X__fsfilcnt64_t /* types.h:213:24 */ // Type to count file system inodes. 1304 1305 // Now add the thread types. 1306 // Declaration of common pthread types for all architectures. 1307 // Copyright (C) 2017-2020 Free Software Foundation, Inc. 1308 // This file is part of the GNU C Library. 1309 // 1310 // The GNU C Library is free software; you can redistribute it and/or 1311 // modify it under the terms of the GNU Lesser General Public 1312 // License as published by the Free Software Foundation; either 1313 // version 2.1 of the License, or (at your option) any later version. 1314 // 1315 // The GNU C Library is distributed in the hope that it will be useful, 1316 // but WITHOUT ANY WARRANTY; without even the implied warranty of 1317 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 1318 // Lesser General Public License for more details. 1319 // 1320 // You should have received a copy of the GNU Lesser General Public 1321 // License along with the GNU C Library; if not, see 1322 // <https://www.gnu.org/licenses/>. 1323 1324 // For internal mutex and condition variable definitions. 1325 // Common threading primitives definitions for both POSIX and C11. 1326 // Copyright (C) 2017-2020 Free Software Foundation, Inc. 1327 // This file is part of the GNU C Library. 1328 // 1329 // The GNU C Library is free software; you can redistribute it and/or 1330 // modify it under the terms of the GNU Lesser General Public 1331 // License as published by the Free Software Foundation; either 1332 // version 2.1 of the License, or (at your option) any later version. 1333 // 1334 // The GNU C Library is distributed in the hope that it will be useful, 1335 // but WITHOUT ANY WARRANTY; without even the implied warranty of 1336 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 1337 // Lesser General Public License for more details. 1338 // 1339 // You should have received a copy of the GNU Lesser General Public 1340 // License along with the GNU C Library; if not, see 1341 // <https://www.gnu.org/licenses/>. 1342 1343 // Arch-specific definitions. Each architecture must define the following 1344 // macros to define the expected sizes of pthread data types: 1345 // 1346 // __SIZEOF_PTHREAD_ATTR_T - size of pthread_attr_t. 1347 // __SIZEOF_PTHREAD_MUTEX_T - size of pthread_mutex_t. 1348 // __SIZEOF_PTHREAD_MUTEXATTR_T - size of pthread_mutexattr_t. 1349 // __SIZEOF_PTHREAD_COND_T - size of pthread_cond_t. 1350 // __SIZEOF_PTHREAD_CONDATTR_T - size of pthread_condattr_t. 1351 // __SIZEOF_PTHREAD_RWLOCK_T - size of pthread_rwlock_t. 1352 // __SIZEOF_PTHREAD_RWLOCKATTR_T - size of pthread_rwlockattr_t. 1353 // __SIZEOF_PTHREAD_BARRIER_T - size of pthread_barrier_t. 1354 // __SIZEOF_PTHREAD_BARRIERATTR_T - size of pthread_barrierattr_t. 1355 // 1356 // The additional macro defines any constraint for the lock alignment 1357 // inside the thread structures: 1358 // 1359 // __LOCK_ALIGNMENT - for internal lock/futex usage. 1360 // 1361 // Same idea but for the once locking primitive: 1362 // 1363 // __ONCE_ALIGNMENT - for pthread_once_t/once_flag definition. 1364 1365 // Machine-specific pthread type layouts. Generic version. 1366 // Copyright (C) 2019-2020 Free Software Foundation, Inc. 1367 // 1368 // This file is part of the GNU C Library. 1369 // 1370 // The GNU C Library is free software; you can redistribute it and/or 1371 // modify it under the terms of the GNU Lesser General Public 1372 // License as published by the Free Software Foundation; either 1373 // version 2.1 of the License, or (at your option) any later version. 1374 // 1375 // The GNU C Library is distributed in the hope that it will be useful, 1376 // but WITHOUT ANY WARRANTY; without even the implied warranty of 1377 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 1378 // Lesser General Public License for more details. 1379 // 1380 // You should have received a copy of the GNU Lesser General Public 1381 // License along with the GNU C Library; if not, see 1382 // <http://www.gnu.org/licenses/>. 1383 1384 // Determine the wordsize from the preprocessor defines. 1385 1386 // Common definition of pthread_mutex_t. 1387 1388 type X__pthread_internal_list = struct { 1389 F__prev uintptr 1390 F__next uintptr 1391 } /* thread-shared-types.h:49:9 */ 1392 1393 // Type to count file system inodes. 1394 1395 // Now add the thread types. 1396 // Declaration of common pthread types for all architectures. 1397 // Copyright (C) 2017-2020 Free Software Foundation, Inc. 1398 // This file is part of the GNU C Library. 1399 // 1400 // The GNU C Library is free software; you can redistribute it and/or 1401 // modify it under the terms of the GNU Lesser General Public 1402 // License as published by the Free Software Foundation; either 1403 // version 2.1 of the License, or (at your option) any later version. 1404 // 1405 // The GNU C Library is distributed in the hope that it will be useful, 1406 // but WITHOUT ANY WARRANTY; without even the implied warranty of 1407 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 1408 // Lesser General Public License for more details. 1409 // 1410 // You should have received a copy of the GNU Lesser General Public 1411 // License along with the GNU C Library; if not, see 1412 // <https://www.gnu.org/licenses/>. 1413 1414 // For internal mutex and condition variable definitions. 1415 // Common threading primitives definitions for both POSIX and C11. 1416 // Copyright (C) 2017-2020 Free Software Foundation, Inc. 1417 // This file is part of the GNU C Library. 1418 // 1419 // The GNU C Library is free software; you can redistribute it and/or 1420 // modify it under the terms of the GNU Lesser General Public 1421 // License as published by the Free Software Foundation; either 1422 // version 2.1 of the License, or (at your option) any later version. 1423 // 1424 // The GNU C Library is distributed in the hope that it will be useful, 1425 // but WITHOUT ANY WARRANTY; without even the implied warranty of 1426 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 1427 // Lesser General Public License for more details. 1428 // 1429 // You should have received a copy of the GNU Lesser General Public 1430 // License along with the GNU C Library; if not, see 1431 // <https://www.gnu.org/licenses/>. 1432 1433 // Arch-specific definitions. Each architecture must define the following 1434 // macros to define the expected sizes of pthread data types: 1435 // 1436 // __SIZEOF_PTHREAD_ATTR_T - size of pthread_attr_t. 1437 // __SIZEOF_PTHREAD_MUTEX_T - size of pthread_mutex_t. 1438 // __SIZEOF_PTHREAD_MUTEXATTR_T - size of pthread_mutexattr_t. 1439 // __SIZEOF_PTHREAD_COND_T - size of pthread_cond_t. 1440 // __SIZEOF_PTHREAD_CONDATTR_T - size of pthread_condattr_t. 1441 // __SIZEOF_PTHREAD_RWLOCK_T - size of pthread_rwlock_t. 1442 // __SIZEOF_PTHREAD_RWLOCKATTR_T - size of pthread_rwlockattr_t. 1443 // __SIZEOF_PTHREAD_BARRIER_T - size of pthread_barrier_t. 1444 // __SIZEOF_PTHREAD_BARRIERATTR_T - size of pthread_barrierattr_t. 1445 // 1446 // The additional macro defines any constraint for the lock alignment 1447 // inside the thread structures: 1448 // 1449 // __LOCK_ALIGNMENT - for internal lock/futex usage. 1450 // 1451 // Same idea but for the once locking primitive: 1452 // 1453 // __ONCE_ALIGNMENT - for pthread_once_t/once_flag definition. 1454 1455 // Machine-specific pthread type layouts. Generic version. 1456 // Copyright (C) 2019-2020 Free Software Foundation, Inc. 1457 // 1458 // This file is part of the GNU C Library. 1459 // 1460 // The GNU C Library is free software; you can redistribute it and/or 1461 // modify it under the terms of the GNU Lesser General Public 1462 // License as published by the Free Software Foundation; either 1463 // version 2.1 of the License, or (at your option) any later version. 1464 // 1465 // The GNU C Library is distributed in the hope that it will be useful, 1466 // but WITHOUT ANY WARRANTY; without even the implied warranty of 1467 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 1468 // Lesser General Public License for more details. 1469 // 1470 // You should have received a copy of the GNU Lesser General Public 1471 // License along with the GNU C Library; if not, see 1472 // <http://www.gnu.org/licenses/>. 1473 1474 // Determine the wordsize from the preprocessor defines. 1475 1476 // Common definition of pthread_mutex_t. 1477 1478 type X__pthread_list_t = X__pthread_internal_list /* thread-shared-types.h:53:3 */ 1479 1480 type X__pthread_internal_slist = struct{ F__next uintptr } /* thread-shared-types.h:55:9 */ 1481 1482 type X__pthread_slist_t = X__pthread_internal_slist /* thread-shared-types.h:58:3 */ 1483 1484 // Arch-specific mutex definitions. A generic implementation is provided 1485 // by sysdeps/nptl/bits/struct_mutex.h. If required, an architecture 1486 // can override it by defining: 1487 // 1488 // 1. struct __pthread_mutex_s (used on both pthread_mutex_t and mtx_t 1489 // definition). It should contains at least the internal members 1490 // defined in the generic version. 1491 // 1492 // 2. __LOCK_ALIGNMENT for any extra attribute for internal lock used with 1493 // atomic operations. 1494 // 1495 // 3. The macro __PTHREAD_MUTEX_INITIALIZER used for static initialization. 1496 // It should initialize the mutex internal flag. 1497 1498 // PowerPC internal mutex struct definitions. 1499 // Copyright (C) 2019-2020 Free Software Foundation, Inc. 1500 // This file is part of the GNU C Library. 1501 // 1502 // The GNU C Library is free software; you can redistribute it and/or 1503 // modify it under the terms of the GNU Lesser General Public 1504 // License as published by the Free Software Foundation; either 1505 // version 2.1 of the License, or (at your option) any later version. 1506 // 1507 // The GNU C Library is distributed in the hope that it will be useful, 1508 // but WITHOUT ANY WARRANTY; without even the implied warranty of 1509 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 1510 // Lesser General Public License for more details. 1511 // 1512 // You should have received a copy of the GNU Lesser General Public 1513 // License along with the GNU C Library; if not, see 1514 // <http://www.gnu.org/licenses/>. 1515 1516 type X__pthread_mutex_s = struct { 1517 F__lock int32 1518 F__count uint32 1519 F__owner int32 1520 F__nusers uint32 1521 F__kind int32 1522 F__spins int16 1523 F__elision int16 1524 F__list X__pthread_list_t 1525 } /* struct_mutex.h:22:1 */ 1526 1527 // Arch-sepecific read-write lock definitions. A generic implementation is 1528 // provided by struct_rwlock.h. If required, an architecture can override it 1529 // by defining: 1530 // 1531 // 1. struct __pthread_rwlock_arch_t (used on pthread_rwlock_t definition). 1532 // It should contain at least the internal members defined in the 1533 // generic version. 1534 // 1535 // 2. The macro __PTHREAD_RWLOCK_INITIALIZER used for static initialization. 1536 // It should initialize the rwlock internal type. 1537 1538 // PowerPC internal rwlock struct definitions. 1539 // Copyright (C) 2019-2020 Free Software Foundation, Inc. 1540 // 1541 // This file is part of the GNU C Library. 1542 // 1543 // The GNU C Library is free software; you can redistribute it and/or 1544 // modify it under the terms of the GNU Lesser General Public 1545 // License as published by the Free Software Foundation; either 1546 // version 2.1 of the License, or (at your option) any later version. 1547 // 1548 // The GNU C Library is distributed in the hope that it will be useful, 1549 // but WITHOUT ANY WARRANTY; without even the implied warranty of 1550 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 1551 // Lesser General Public License for more details. 1552 // 1553 // You should have received a copy of the GNU Lesser General Public 1554 // License along with the GNU C Library; if not, see 1555 // <http://www.gnu.org/licenses/>. 1556 1557 type X__pthread_rwlock_arch_t = struct { 1558 F__readers uint32 1559 F__writers uint32 1560 F__wrphase_futex uint32 1561 F__writers_futex uint32 1562 F__pad3 uint32 1563 F__pad4 uint32 1564 F__cur_writer int32 1565 F__shared int32 1566 F__rwelision uint8 1567 F__pad1 [7]uint8 1568 F__pad2 uint64 1569 F__flags uint32 1570 F__ccgo_pad1 [4]byte 1571 } /* struct_rwlock.h:23:1 */ 1572 1573 // Common definition of pthread_cond_t. 1574 1575 type X__pthread_cond_s = struct { 1576 F__0 struct{ F__wseq uint64 } 1577 F__8 struct{ F__g1_start uint64 } 1578 F__g_refs [2]uint32 1579 F__g_size [2]uint32 1580 F__g1_orig_size uint32 1581 F__wrefs uint32 1582 F__g_signals [2]uint32 1583 } /* thread-shared-types.h:92:1 */ 1584 1585 // Thread identifiers. The structure of the attribute type is not 1586 // 1587 // exposed on purpose. 1588 type Pthread_t = uint64 /* pthreadtypes.h:27:27 */ 1589 1590 // Data structures for mutex handling. The structure of the attribute 1591 // 1592 // type is not exposed on purpose. 1593 type Pthread_mutexattr_t = struct { 1594 F__ccgo_pad1 [0]uint32 1595 F__size [4]uint8 1596 } /* pthreadtypes.h:36:3 */ 1597 1598 // Data structure for condition variable handling. The structure of 1599 // 1600 // the attribute type is not exposed on purpose. 1601 type Pthread_condattr_t = struct { 1602 F__ccgo_pad1 [0]uint32 1603 F__size [4]uint8 1604 } /* pthreadtypes.h:45:3 */ 1605 1606 // Keys for thread-specific data 1607 type Pthread_key_t = uint32 /* pthreadtypes.h:49:22 */ 1608 1609 // Once-only execution 1610 type Pthread_once_t = int32 /* pthreadtypes.h:53:30 */ 1611 1612 type Pthread_attr_t1 = struct { 1613 F__ccgo_pad1 [0]uint64 1614 F__size [56]uint8 1615 } /* pthreadtypes.h:56:1 */ 1616 1617 type Pthread_attr_t = Pthread_attr_t1 /* pthreadtypes.h:62:30 */ 1618 1619 type Pthread_mutex_t = struct{ F__data X__pthread_mutex_s } /* pthreadtypes.h:72:3 */ 1620 1621 type Pthread_cond_t = struct{ F__data X__pthread_cond_s } /* pthreadtypes.h:80:3 */ 1622 1623 // Data structure for reader-writer lock variable handling. The 1624 // 1625 // structure of the attribute type is deliberately not exposed. 1626 type Pthread_rwlock_t = struct{ F__data X__pthread_rwlock_arch_t } /* pthreadtypes.h:91:3 */ 1627 1628 type Pthread_rwlockattr_t = struct { 1629 F__ccgo_pad1 [0]uint64 1630 F__size [8]uint8 1631 } /* pthreadtypes.h:97:3 */ 1632 1633 // POSIX spinlock data type. 1634 type Pthread_spinlock_t = int32 /* pthreadtypes.h:103:22 */ 1635 1636 // POSIX barriers data type. The structure of the type is 1637 // 1638 // deliberately not exposed. 1639 type Pthread_barrier_t = struct { 1640 F__ccgo_pad1 [0]uint64 1641 F__size [32]uint8 1642 } /* pthreadtypes.h:112:3 */ 1643 1644 type Pthread_barrierattr_t = struct { 1645 F__ccgo_pad1 [0]uint32 1646 F__size [4]uint8 1647 } /* pthreadtypes.h:118:3 */ 1648 1649 // Type for length arguments in socket calls. 1650 type Socklen_t = X__socklen_t /* socket.h:33:21 */ 1651 1652 // Protocol families. 1653 1654 // Address families. 1655 1656 // Socket level values. Others are defined in the appropriate headers. 1657 // 1658 // XXX These definitions also should go into the appropriate headers as 1659 // far as they are available. 1660 1661 // Maximum queue length specifiable by listen. 1662 1663 // Get the definition of the macro to define the common sockaddr members. 1664 // Definition of struct sockaddr_* common members and sizes, generic version. 1665 // Copyright (C) 1995-2020 Free Software Foundation, Inc. 1666 // This file is part of the GNU C Library. 1667 // 1668 // The GNU C Library is free software; you can redistribute it and/or 1669 // modify it under the terms of the GNU Lesser General Public 1670 // License as published by the Free Software Foundation; either 1671 // version 2.1 of the License, or (at your option) any later version. 1672 // 1673 // The GNU C Library is distributed in the hope that it will be useful, 1674 // but WITHOUT ANY WARRANTY; without even the implied warranty of 1675 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 1676 // Lesser General Public License for more details. 1677 // 1678 // You should have received a copy of the GNU Lesser General Public 1679 // License along with the GNU C Library; if not, see 1680 // <https://www.gnu.org/licenses/>. 1681 1682 // Never include this file directly; use <sys/socket.h> instead. 1683 1684 // POSIX.1g specifies this type name for the `sa_family' member. 1685 type Sa_family_t = uint16 /* sockaddr.h:28:28 */ 1686 1687 // This macro is used to declare the initial common members 1688 // of the data types used for socket addresses, `struct sockaddr', 1689 // `struct sockaddr_in', `struct sockaddr_un', etc. 1690 1691 // Size of struct sockaddr_storage. 1692 1693 // Structure describing a generic socket address. 1694 type Sockaddr = struct { 1695 Fsa_family Sa_family_t 1696 Fsa_data [14]uint8 1697 } /* socket.h:178:1 */ 1698 1699 // Structure large enough to hold any socket address (with the historical 1700 // exception of AF_UNIX). 1701 1702 type Sockaddr_storage = struct { 1703 Fss_family Sa_family_t 1704 F__ss_padding [118]uint8 1705 F__ss_align uint64 1706 } /* socket.h:191:1 */ 1707 1708 // Structure describing messages sent by 1709 // 1710 // `sendmsg' and received by `recvmsg'. 1711 type Msghdr = struct { 1712 Fmsg_name uintptr 1713 Fmsg_namelen Socklen_t 1714 F__ccgo_pad1 [4]byte 1715 Fmsg_iov uintptr 1716 Fmsg_iovlen Size_t 1717 Fmsg_control uintptr 1718 Fmsg_controllen Size_t 1719 Fmsg_flags int32 1720 F__ccgo_pad2 [4]byte 1721 } /* socket.h:257:1 */ 1722 1723 // Structure used for storage of ancillary data object information. 1724 type Cmsghdr = struct { 1725 F__ccgo_pad1 [0]uint64 1726 Fcmsg_len Size_t 1727 Fcmsg_level int32 1728 Fcmsg_type int32 1729 } /* socket.h:275:1 */ 1730 1731 // SPDX-License-Identifier: GPL-2.0+ WITH Linux-syscall-note 1732 1733 // This program is free software; you can redistribute it and/or 1734 // modify it under the terms of the GNU General Public License 1735 // as published by the Free Software Foundation; either version 1736 // 2 of the License, or (at your option) any later version. 1737 1738 // SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note 1739 1740 // SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note 1741 1742 // SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note 1743 1744 // This allows for 1024 file descriptors: if NR_OPEN is ever grown 1745 // beyond that you'll have to change this too. But 1024 fd's seem to be 1746 // enough even for such "real" unices like OSF/1, so hopefully this is 1747 // one limit that doesn't have to be changed [again]. 1748 // 1749 // Note that POSIX wants the FD_CLEAR(fd,fdsetp) defines to be in 1750 // <sys/time.h> (and thus <linux/time.h>) - but this is a more logical 1751 // place for them. Solved by having dummy defines in <sys/time.h>. 1752 1753 // This macro may have been defined in <gnu/types.h>. But we always 1754 // use the one here. 1755 1756 type X__kernel_fd_set = struct{ Ffds_bits [16]uint64 } /* posix_types.h:27:3 */ 1757 1758 // Type of a signal handler. 1759 type X__kernel_sighandler_t = uintptr /* posix_types.h:30:14 */ 1760 1761 // Type of a SYSV IPC key. 1762 type X__kernel_key_t = int32 /* posix_types.h:33:13 */ 1763 type X__kernel_mqd_t = int32 /* posix_types.h:34:13 */ 1764 1765 // SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note 1766 1767 // This file is generally used by user-level software, so you need to 1768 // be a little careful about namespace pollution etc. Also, we cannot 1769 // assume GCC is being used. 1770 1771 type X__kernel_old_dev_t = uint64 /* posix_types.h:12:23 */ 1772 1773 // SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note 1774 1775 // SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note 1776 1777 // SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note 1778 1779 // There seems to be no way of detecting this automatically from user 1780 // space, so 64 bit architectures should override this in their 1781 // bitsperlong.h. In particular, an architecture that supports 1782 // both 32 and 64 bit user space must not rely on CONFIG_64BIT 1783 // to decide it, but rather check a compiler provided macro. 1784 1785 // This file is generally used by user-level software, so you need to 1786 // be a little careful about namespace pollution etc. 1787 // 1788 // First the types that are often defined in different ways across 1789 // architectures, so that you can override them. 1790 1791 type X__kernel_long_t = int64 /* posix_types.h:15:15 */ 1792 type X__kernel_ulong_t = uint64 /* posix_types.h:16:23 */ 1793 1794 type X__kernel_ino_t = X__kernel_ulong_t /* posix_types.h:20:26 */ 1795 1796 type X__kernel_mode_t = uint32 /* posix_types.h:24:22 */ 1797 1798 type X__kernel_pid_t = int32 /* posix_types.h:28:14 */ 1799 1800 type X__kernel_ipc_pid_t = int32 /* posix_types.h:32:14 */ 1801 1802 type X__kernel_uid_t = uint32 /* posix_types.h:36:22 */ 1803 type X__kernel_gid_t = uint32 /* posix_types.h:37:22 */ 1804 1805 type X__kernel_suseconds_t = X__kernel_long_t /* posix_types.h:41:26 */ 1806 1807 type X__kernel_daddr_t = int32 /* posix_types.h:45:14 */ 1808 1809 type X__kernel_uid32_t = uint32 /* posix_types.h:49:22 */ 1810 type X__kernel_gid32_t = uint32 /* posix_types.h:50:22 */ 1811 1812 type X__kernel_old_uid_t = X__kernel_uid_t /* posix_types.h:54:24 */ 1813 type X__kernel_old_gid_t = X__kernel_gid_t /* posix_types.h:55:24 */ 1814 1815 // Most 32 bit architectures use "unsigned int" size_t, 1816 // and all 64 bit architectures use "unsigned long" size_t. 1817 type X__kernel_size_t = X__kernel_ulong_t /* posix_types.h:72:26 */ 1818 type X__kernel_ssize_t = X__kernel_long_t /* posix_types.h:73:25 */ 1819 type X__kernel_ptrdiff_t = X__kernel_long_t /* posix_types.h:74:25 */ 1820 1821 type X__kernel_fsid_t = struct{ Fval [2]int32 } /* posix_types.h:81:3 */ 1822 1823 // anything below here should be completely generic 1824 type X__kernel_off_t = X__kernel_long_t /* posix_types.h:87:25 */ 1825 type X__kernel_loff_t = int64 /* posix_types.h:88:19 */ 1826 type X__kernel_old_time_t = X__kernel_long_t /* posix_types.h:89:25 */ 1827 type X__kernel_time_t = X__kernel_long_t /* posix_types.h:90:25 */ 1828 type X__kernel_time64_t = int64 /* posix_types.h:91:19 */ 1829 type X__kernel_clock_t = X__kernel_long_t /* posix_types.h:92:25 */ 1830 type X__kernel_timer_t = int32 /* posix_types.h:93:14 */ 1831 type X__kernel_clockid_t = int32 /* posix_types.h:94:14 */ 1832 type X__kernel_caddr_t = uintptr /* posix_types.h:95:14 */ 1833 type X__kernel_uid16_t = uint16 /* posix_types.h:96:24 */ 1834 type X__kernel_gid16_t = uint16 /* posix_types.h:97:24 */ 1835 1836 // SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note 1837 1838 // Socket-level I/O control calls. 1839 1840 // For setsockopt(2) 1841 1842 // Security levels - as per NRL IPv6 - don't actually do anything 1843 1844 // Socket filtering 1845 1846 // Instruct lower device to use last 4-bytes of skb data as FCS 1847 1848 // on 64-bit and x32, avoid the ?: operator 1849 1850 // Structure used to manipulate the SO_LINGER option. 1851 type Linger = struct { 1852 Fl_onoff int32 1853 Fl_linger int32 1854 } /* socket.h:361:1 */ 1855 1856 // This is the 4.3 BSD `struct sockaddr' format, which is used as wire 1857 // 1858 // format in the grotty old 4.3 `talk' protocol. 1859 type Osockaddr = struct { 1860 Fsa_family uint16 1861 Fsa_data [14]uint8 1862 } /* struct_osockaddr.h:6:1 */ 1863 1864 // Define some macros helping to catch buffer overflows. 1865 1866 var _ uint8 /* gen.c:2:13: */