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