modernc.org/z@v1.7.4/internal/minigzip_linux_s390x.go (about) 1 // Code generated by 'ccgo -lmodernc.org/z/lib -o internal/minigzip_linux_s390x.go -trace-translation-units /tmp/go-generate-1577412705/cdb.json minigzip64', DO NOT EDIT. 2 3 package main 4 5 import ( 6 "math" 7 "reflect" 8 "sync/atomic" 9 "unsafe" 10 11 "modernc.org/libc" 12 "modernc.org/libc/sys/types" 13 "modernc.org/z/lib" 14 ) 15 16 var _ = math.Pi 17 var _ reflect.Kind 18 var _ atomic.Value 19 var _ unsafe.Pointer 20 var _ types.Size_t 21 22 func main() { libc.Start(main1) } 23 24 // Get the `_PC_*' symbols for the NAME argument to `pathconf' and `fpathconf'; 25 // the `_SC_*' symbols for the NAME argument to `sysconf'; 26 // and the `_CS_*' symbols for the NAME argument to `confstr'. 27 // `sysconf', `pathconf', and `confstr' NAME values. Generic version. 28 // Copyright (C) 1993-2020 Free Software Foundation, Inc. 29 // This file is part of the GNU C Library. 30 // 31 // The GNU C Library is free software; you can redistribute it and/or 32 // modify it under the terms of the GNU Lesser General Public 33 // License as published by the Free Software Foundation; either 34 // version 2.1 of the License, or (at your option) any later version. 35 // 36 // The GNU C Library is distributed in the hope that it will be useful, 37 // but WITHOUT ANY WARRANTY; without even the implied warranty of 38 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 39 // Lesser General Public License for more details. 40 // 41 // You should have received a copy of the GNU Lesser General Public 42 // License along with the GNU C Library; if not, see 43 // <https://www.gnu.org/licenses/>. 44 45 // Values for the NAME argument to `pathconf' and `fpathconf'. 46 const ( /* confname.h:24:1: */ 47 _PC_LINK_MAX = 0 48 _PC_MAX_CANON = 1 49 _PC_MAX_INPUT = 2 50 _PC_NAME_MAX = 3 51 _PC_PATH_MAX = 4 52 _PC_PIPE_BUF = 5 53 _PC_CHOWN_RESTRICTED = 6 54 _PC_NO_TRUNC = 7 55 _PC_VDISABLE = 8 56 _PC_SYNC_IO = 9 57 _PC_ASYNC_IO = 10 58 _PC_PRIO_IO = 11 59 _PC_SOCK_MAXBUF = 12 60 _PC_FILESIZEBITS = 13 61 _PC_REC_INCR_XFER_SIZE = 14 62 _PC_REC_MAX_XFER_SIZE = 15 63 _PC_REC_MIN_XFER_SIZE = 16 64 _PC_REC_XFER_ALIGN = 17 65 _PC_ALLOC_SIZE_MIN = 18 66 _PC_SYMLINK_MAX = 19 67 _PC_2_SYMLINKS = 20 68 ) 69 70 // Values for the NAME argument to `confstr'. 71 const ( /* confname.h:533:1: */ 72 _CS_PATH = 0 // The default search path. 73 74 _CS_V6_WIDTH_RESTRICTED_ENVS = 1 75 76 _CS_GNU_LIBC_VERSION = 2 77 _CS_GNU_LIBPTHREAD_VERSION = 3 78 79 _CS_V5_WIDTH_RESTRICTED_ENVS = 4 80 81 _CS_V7_WIDTH_RESTRICTED_ENVS = 5 82 83 _CS_LFS_CFLAGS = 1000 84 _CS_LFS_LDFLAGS = 1001 85 _CS_LFS_LIBS = 1002 86 _CS_LFS_LINTFLAGS = 1003 87 _CS_LFS64_CFLAGS = 1004 88 _CS_LFS64_LDFLAGS = 1005 89 _CS_LFS64_LIBS = 1006 90 _CS_LFS64_LINTFLAGS = 1007 91 92 _CS_XBS5_ILP32_OFF32_CFLAGS = 1100 93 _CS_XBS5_ILP32_OFF32_LDFLAGS = 1101 94 _CS_XBS5_ILP32_OFF32_LIBS = 1102 95 _CS_XBS5_ILP32_OFF32_LINTFLAGS = 1103 96 _CS_XBS5_ILP32_OFFBIG_CFLAGS = 1104 97 _CS_XBS5_ILP32_OFFBIG_LDFLAGS = 1105 98 _CS_XBS5_ILP32_OFFBIG_LIBS = 1106 99 _CS_XBS5_ILP32_OFFBIG_LINTFLAGS = 1107 100 _CS_XBS5_LP64_OFF64_CFLAGS = 1108 101 _CS_XBS5_LP64_OFF64_LDFLAGS = 1109 102 _CS_XBS5_LP64_OFF64_LIBS = 1110 103 _CS_XBS5_LP64_OFF64_LINTFLAGS = 1111 104 _CS_XBS5_LPBIG_OFFBIG_CFLAGS = 1112 105 _CS_XBS5_LPBIG_OFFBIG_LDFLAGS = 1113 106 _CS_XBS5_LPBIG_OFFBIG_LIBS = 1114 107 _CS_XBS5_LPBIG_OFFBIG_LINTFLAGS = 1115 108 109 _CS_POSIX_V6_ILP32_OFF32_CFLAGS = 1116 110 _CS_POSIX_V6_ILP32_OFF32_LDFLAGS = 1117 111 _CS_POSIX_V6_ILP32_OFF32_LIBS = 1118 112 _CS_POSIX_V6_ILP32_OFF32_LINTFLAGS = 1119 113 _CS_POSIX_V6_ILP32_OFFBIG_CFLAGS = 1120 114 _CS_POSIX_V6_ILP32_OFFBIG_LDFLAGS = 1121 115 _CS_POSIX_V6_ILP32_OFFBIG_LIBS = 1122 116 _CS_POSIX_V6_ILP32_OFFBIG_LINTFLAGS = 1123 117 _CS_POSIX_V6_LP64_OFF64_CFLAGS = 1124 118 _CS_POSIX_V6_LP64_OFF64_LDFLAGS = 1125 119 _CS_POSIX_V6_LP64_OFF64_LIBS = 1126 120 _CS_POSIX_V6_LP64_OFF64_LINTFLAGS = 1127 121 _CS_POSIX_V6_LPBIG_OFFBIG_CFLAGS = 1128 122 _CS_POSIX_V6_LPBIG_OFFBIG_LDFLAGS = 1129 123 _CS_POSIX_V6_LPBIG_OFFBIG_LIBS = 1130 124 _CS_POSIX_V6_LPBIG_OFFBIG_LINTFLAGS = 1131 125 126 _CS_POSIX_V7_ILP32_OFF32_CFLAGS = 1132 127 _CS_POSIX_V7_ILP32_OFF32_LDFLAGS = 1133 128 _CS_POSIX_V7_ILP32_OFF32_LIBS = 1134 129 _CS_POSIX_V7_ILP32_OFF32_LINTFLAGS = 1135 130 _CS_POSIX_V7_ILP32_OFFBIG_CFLAGS = 1136 131 _CS_POSIX_V7_ILP32_OFFBIG_LDFLAGS = 1137 132 _CS_POSIX_V7_ILP32_OFFBIG_LIBS = 1138 133 _CS_POSIX_V7_ILP32_OFFBIG_LINTFLAGS = 1139 134 _CS_POSIX_V7_LP64_OFF64_CFLAGS = 1140 135 _CS_POSIX_V7_LP64_OFF64_LDFLAGS = 1141 136 _CS_POSIX_V7_LP64_OFF64_LIBS = 1142 137 _CS_POSIX_V7_LP64_OFF64_LINTFLAGS = 1143 138 _CS_POSIX_V7_LPBIG_OFFBIG_CFLAGS = 1144 139 _CS_POSIX_V7_LPBIG_OFFBIG_LDFLAGS = 1145 140 _CS_POSIX_V7_LPBIG_OFFBIG_LIBS = 1146 141 _CS_POSIX_V7_LPBIG_OFFBIG_LINTFLAGS = 1147 142 143 _CS_V6_ENV = 1148 144 _CS_V7_ENV = 1149 145 ) 146 147 // Values for the argument to `sysconf'. 148 const ( /* confname.h:71:1: */ 149 _SC_ARG_MAX = 0 150 _SC_CHILD_MAX = 1 151 _SC_CLK_TCK = 2 152 _SC_NGROUPS_MAX = 3 153 _SC_OPEN_MAX = 4 154 _SC_STREAM_MAX = 5 155 _SC_TZNAME_MAX = 6 156 _SC_JOB_CONTROL = 7 157 _SC_SAVED_IDS = 8 158 _SC_REALTIME_SIGNALS = 9 159 _SC_PRIORITY_SCHEDULING = 10 160 _SC_TIMERS = 11 161 _SC_ASYNCHRONOUS_IO = 12 162 _SC_PRIORITIZED_IO = 13 163 _SC_SYNCHRONIZED_IO = 14 164 _SC_FSYNC = 15 165 _SC_MAPPED_FILES = 16 166 _SC_MEMLOCK = 17 167 _SC_MEMLOCK_RANGE = 18 168 _SC_MEMORY_PROTECTION = 19 169 _SC_MESSAGE_PASSING = 20 170 _SC_SEMAPHORES = 21 171 _SC_SHARED_MEMORY_OBJECTS = 22 172 _SC_AIO_LISTIO_MAX = 23 173 _SC_AIO_MAX = 24 174 _SC_AIO_PRIO_DELTA_MAX = 25 175 _SC_DELAYTIMER_MAX = 26 176 _SC_MQ_OPEN_MAX = 27 177 _SC_MQ_PRIO_MAX = 28 178 _SC_VERSION = 29 179 _SC_PAGESIZE = 30 180 _SC_RTSIG_MAX = 31 181 _SC_SEM_NSEMS_MAX = 32 182 _SC_SEM_VALUE_MAX = 33 183 _SC_SIGQUEUE_MAX = 34 184 _SC_TIMER_MAX = 35 185 186 // Values for the argument to `sysconf' 187 // corresponding to _POSIX2_* symbols. 188 _SC_BC_BASE_MAX = 36 189 _SC_BC_DIM_MAX = 37 190 _SC_BC_SCALE_MAX = 38 191 _SC_BC_STRING_MAX = 39 192 _SC_COLL_WEIGHTS_MAX = 40 193 _SC_EQUIV_CLASS_MAX = 41 194 _SC_EXPR_NEST_MAX = 42 195 _SC_LINE_MAX = 43 196 _SC_RE_DUP_MAX = 44 197 _SC_CHARCLASS_NAME_MAX = 45 198 199 _SC_2_VERSION = 46 200 _SC_2_C_BIND = 47 201 _SC_2_C_DEV = 48 202 _SC_2_FORT_DEV = 49 203 _SC_2_FORT_RUN = 50 204 _SC_2_SW_DEV = 51 205 _SC_2_LOCALEDEF = 52 206 207 _SC_PII = 53 208 _SC_PII_XTI = 54 209 _SC_PII_SOCKET = 55 210 _SC_PII_INTERNET = 56 211 _SC_PII_OSI = 57 212 _SC_POLL = 58 213 _SC_SELECT = 59 214 _SC_UIO_MAXIOV = 60 215 _SC_IOV_MAX = 60 216 _SC_PII_INTERNET_STREAM = 61 217 _SC_PII_INTERNET_DGRAM = 62 218 _SC_PII_OSI_COTS = 63 219 _SC_PII_OSI_CLTS = 64 220 _SC_PII_OSI_M = 65 221 _SC_T_IOV_MAX = 66 222 223 // Values according to POSIX 1003.1c (POSIX threads). 224 _SC_THREADS = 67 225 _SC_THREAD_SAFE_FUNCTIONS = 68 226 _SC_GETGR_R_SIZE_MAX = 69 227 _SC_GETPW_R_SIZE_MAX = 70 228 _SC_LOGIN_NAME_MAX = 71 229 _SC_TTY_NAME_MAX = 72 230 _SC_THREAD_DESTRUCTOR_ITERATIONS = 73 231 _SC_THREAD_KEYS_MAX = 74 232 _SC_THREAD_STACK_MIN = 75 233 _SC_THREAD_THREADS_MAX = 76 234 _SC_THREAD_ATTR_STACKADDR = 77 235 _SC_THREAD_ATTR_STACKSIZE = 78 236 _SC_THREAD_PRIORITY_SCHEDULING = 79 237 _SC_THREAD_PRIO_INHERIT = 80 238 _SC_THREAD_PRIO_PROTECT = 81 239 _SC_THREAD_PROCESS_SHARED = 82 240 241 _SC_NPROCESSORS_CONF = 83 242 _SC_NPROCESSORS_ONLN = 84 243 _SC_PHYS_PAGES = 85 244 _SC_AVPHYS_PAGES = 86 245 _SC_ATEXIT_MAX = 87 246 _SC_PASS_MAX = 88 247 248 _SC_XOPEN_VERSION = 89 249 _SC_XOPEN_XCU_VERSION = 90 250 _SC_XOPEN_UNIX = 91 251 _SC_XOPEN_CRYPT = 92 252 _SC_XOPEN_ENH_I18N = 93 253 _SC_XOPEN_SHM = 94 254 255 _SC_2_CHAR_TERM = 95 256 _SC_2_C_VERSION = 96 257 _SC_2_UPE = 97 258 259 _SC_XOPEN_XPG2 = 98 260 _SC_XOPEN_XPG3 = 99 261 _SC_XOPEN_XPG4 = 100 262 263 _SC_CHAR_BIT = 101 264 _SC_CHAR_MAX = 102 265 _SC_CHAR_MIN = 103 266 _SC_INT_MAX = 104 267 _SC_INT_MIN = 105 268 _SC_LONG_BIT = 106 269 _SC_WORD_BIT = 107 270 _SC_MB_LEN_MAX = 108 271 _SC_NZERO = 109 272 _SC_SSIZE_MAX = 110 273 _SC_SCHAR_MAX = 111 274 _SC_SCHAR_MIN = 112 275 _SC_SHRT_MAX = 113 276 _SC_SHRT_MIN = 114 277 _SC_UCHAR_MAX = 115 278 _SC_UINT_MAX = 116 279 _SC_ULONG_MAX = 117 280 _SC_USHRT_MAX = 118 281 282 _SC_NL_ARGMAX = 119 283 _SC_NL_LANGMAX = 120 284 _SC_NL_MSGMAX = 121 285 _SC_NL_NMAX = 122 286 _SC_NL_SETMAX = 123 287 _SC_NL_TEXTMAX = 124 288 289 _SC_XBS5_ILP32_OFF32 = 125 290 _SC_XBS5_ILP32_OFFBIG = 126 291 _SC_XBS5_LP64_OFF64 = 127 292 _SC_XBS5_LPBIG_OFFBIG = 128 293 294 _SC_XOPEN_LEGACY = 129 295 _SC_XOPEN_REALTIME = 130 296 _SC_XOPEN_REALTIME_THREADS = 131 297 298 _SC_ADVISORY_INFO = 132 299 _SC_BARRIERS = 133 300 _SC_BASE = 134 301 _SC_C_LANG_SUPPORT = 135 302 _SC_C_LANG_SUPPORT_R = 136 303 _SC_CLOCK_SELECTION = 137 304 _SC_CPUTIME = 138 305 _SC_THREAD_CPUTIME = 139 306 _SC_DEVICE_IO = 140 307 _SC_DEVICE_SPECIFIC = 141 308 _SC_DEVICE_SPECIFIC_R = 142 309 _SC_FD_MGMT = 143 310 _SC_FIFO = 144 311 _SC_PIPE = 145 312 _SC_FILE_ATTRIBUTES = 146 313 _SC_FILE_LOCKING = 147 314 _SC_FILE_SYSTEM = 148 315 _SC_MONOTONIC_CLOCK = 149 316 _SC_MULTI_PROCESS = 150 317 _SC_SINGLE_PROCESS = 151 318 _SC_NETWORKING = 152 319 _SC_READER_WRITER_LOCKS = 153 320 _SC_SPIN_LOCKS = 154 321 _SC_REGEXP = 155 322 _SC_REGEX_VERSION = 156 323 _SC_SHELL = 157 324 _SC_SIGNALS = 158 325 _SC_SPAWN = 159 326 _SC_SPORADIC_SERVER = 160 327 _SC_THREAD_SPORADIC_SERVER = 161 328 _SC_SYSTEM_DATABASE = 162 329 _SC_SYSTEM_DATABASE_R = 163 330 _SC_TIMEOUTS = 164 331 _SC_TYPED_MEMORY_OBJECTS = 165 332 _SC_USER_GROUPS = 166 333 _SC_USER_GROUPS_R = 167 334 _SC_2_PBS = 168 335 _SC_2_PBS_ACCOUNTING = 169 336 _SC_2_PBS_LOCATE = 170 337 _SC_2_PBS_MESSAGE = 171 338 _SC_2_PBS_TRACK = 172 339 _SC_SYMLOOP_MAX = 173 340 _SC_STREAMS = 174 341 _SC_2_PBS_CHECKPOINT = 175 342 343 _SC_V6_ILP32_OFF32 = 176 344 _SC_V6_ILP32_OFFBIG = 177 345 _SC_V6_LP64_OFF64 = 178 346 _SC_V6_LPBIG_OFFBIG = 179 347 348 _SC_HOST_NAME_MAX = 180 349 _SC_TRACE = 181 350 _SC_TRACE_EVENT_FILTER = 182 351 _SC_TRACE_INHERIT = 183 352 _SC_TRACE_LOG = 184 353 354 _SC_LEVEL1_ICACHE_SIZE = 185 355 _SC_LEVEL1_ICACHE_ASSOC = 186 356 _SC_LEVEL1_ICACHE_LINESIZE = 187 357 _SC_LEVEL1_DCACHE_SIZE = 188 358 _SC_LEVEL1_DCACHE_ASSOC = 189 359 _SC_LEVEL1_DCACHE_LINESIZE = 190 360 _SC_LEVEL2_CACHE_SIZE = 191 361 _SC_LEVEL2_CACHE_ASSOC = 192 362 _SC_LEVEL2_CACHE_LINESIZE = 193 363 _SC_LEVEL3_CACHE_SIZE = 194 364 _SC_LEVEL3_CACHE_ASSOC = 195 365 _SC_LEVEL3_CACHE_LINESIZE = 196 366 _SC_LEVEL4_CACHE_SIZE = 197 367 _SC_LEVEL4_CACHE_ASSOC = 198 368 _SC_LEVEL4_CACHE_LINESIZE = 199 369 // Leave room here, maybe we need a few more cache levels some day. 370 371 _SC_IPV6 = 235 372 _SC_RAW_SOCKETS = 236 373 374 _SC_V7_ILP32_OFF32 = 237 375 _SC_V7_ILP32_OFFBIG = 238 376 _SC_V7_LP64_OFF64 = 239 377 _SC_V7_LPBIG_OFFBIG = 240 378 379 _SC_SS_REPL_MAX = 241 380 381 _SC_TRACE_EVENT_NAME_MAX = 242 382 _SC_TRACE_NAME_MAX = 243 383 _SC_TRACE_SYS_MAX = 244 384 _SC_TRACE_USER_EVENT_MAX = 245 385 386 _SC_XOPEN_STREAMS = 246 387 388 _SC_THREAD_ROBUST_PRIO_INHERIT = 247 389 _SC_THREAD_ROBUST_PRIO_PROTECT = 248 390 ) 391 392 // Copyright (C) 1991-2020 Free Software Foundation, Inc. 393 // This file is part of the GNU C Library. 394 // 395 // The GNU C Library is free software; you can redistribute it and/or 396 // modify it under the terms of the GNU Lesser General Public 397 // License as published by the Free Software Foundation; either 398 // version 2.1 of the License, or (at your option) any later version. 399 // 400 // The GNU C Library is distributed in the hope that it will be useful, 401 // but WITHOUT ANY WARRANTY; without even the implied warranty of 402 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 403 // Lesser General Public License for more details. 404 // 405 // You should have received a copy of the GNU Lesser General Public 406 // License along with the GNU C Library; if not, see 407 // <https://www.gnu.org/licenses/>. 408 409 // ISO C99 Standard: 7.20 General utilities <stdlib.h> 410 411 // Handle feature test macros at the start of a header. 412 // Copyright (C) 2016-2020 Free Software Foundation, Inc. 413 // This file is part of the GNU C Library. 414 // 415 // The GNU C Library is free software; you can redistribute it and/or 416 // modify it under the terms of the GNU Lesser General Public 417 // License as published by the Free Software Foundation; either 418 // version 2.1 of the License, or (at your option) any later version. 419 // 420 // The GNU C Library is distributed in the hope that it will be useful, 421 // but WITHOUT ANY WARRANTY; without even the implied warranty of 422 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 423 // Lesser General Public License for more details. 424 // 425 // You should have received a copy of the GNU Lesser General Public 426 // License along with the GNU C Library; if not, see 427 // <https://www.gnu.org/licenses/>. 428 429 // This header is internal to glibc and should not be included outside 430 // of glibc headers. Headers including it must define 431 // __GLIBC_INTERNAL_STARTING_HEADER_IMPLEMENTATION first. This header 432 // cannot have multiple include guards because ISO C feature test 433 // macros depend on the definition of the macro when an affected 434 // header is included, not when the first system header is 435 // included. 436 437 // Copyright (C) 1991-2020 Free Software Foundation, Inc. 438 // This file is part of the GNU C Library. 439 // 440 // The GNU C Library is free software; you can redistribute it and/or 441 // modify it under the terms of the GNU Lesser General Public 442 // License as published by the Free Software Foundation; either 443 // version 2.1 of the License, or (at your option) any later version. 444 // 445 // The GNU C Library is distributed in the hope that it will be useful, 446 // but WITHOUT ANY WARRANTY; without even the implied warranty of 447 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 448 // Lesser General Public License for more details. 449 // 450 // You should have received a copy of the GNU Lesser General Public 451 // License along with the GNU C Library; if not, see 452 // <https://www.gnu.org/licenses/>. 453 454 // ISO/IEC TR 24731-2:2010 defines the __STDC_WANT_LIB_EXT2__ 455 // macro. 456 457 // ISO/IEC TS 18661-1:2014 defines the __STDC_WANT_IEC_60559_BFP_EXT__ 458 // macro. Most but not all symbols enabled by that macro in TS 459 // 18661-1 are enabled unconditionally in C2X; the symbols in Annex F 460 // still require that macro in C2X. 461 462 // ISO/IEC TS 18661-4:2015 defines the 463 // __STDC_WANT_IEC_60559_FUNCS_EXT__ macro. Other than the reduction 464 // functions, the symbols from this TS are enabled unconditionally in 465 // C2X. 466 467 // ISO/IEC TS 18661-3:2015 defines the 468 // __STDC_WANT_IEC_60559_TYPES_EXT__ macro. 469 470 // Get size_t, wchar_t and NULL from <stddef.h>. 471 // Copyright (C) 1989-2019 Free Software Foundation, Inc. 472 // 473 // This file is part of GCC. 474 // 475 // GCC is free software; you can redistribute it and/or modify 476 // it under the terms of the GNU General Public License as published by 477 // the Free Software Foundation; either version 3, or (at your option) 478 // any later version. 479 // 480 // GCC is distributed in the hope that it will be useful, 481 // but WITHOUT ANY WARRANTY; without even the implied warranty of 482 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 483 // GNU General Public License for more details. 484 // 485 // Under Section 7 of GPL version 3, you are granted additional 486 // permissions described in the GCC Runtime Library Exception, version 487 // 3.1, as published by the Free Software Foundation. 488 // 489 // You should have received a copy of the GNU General Public License and 490 // a copy of the GCC Runtime Library Exception along with this program; 491 // see the files COPYING3 and COPYING.RUNTIME respectively. If not, see 492 // <http://www.gnu.org/licenses/>. 493 494 // ISO C Standard: 7.17 Common definitions <stddef.h> 495 496 // Any one of these symbols __need_* means that GNU libc 497 // wants us just to define one data type. So don't define 498 // the symbols that indicate this file's entire job has been done. 499 500 // This avoids lossage on SunOS but only if stdtypes.h comes first. 501 // There's no way to win with the other order! Sun lossage. 502 503 // Sequent's header files use _PTRDIFF_T_ in some conflicting way. 504 // Just ignore it. 505 506 // On VxWorks, <type/vxTypesBase.h> may have defined macros like 507 // _TYPE_size_t which will typedef size_t. fixincludes patched the 508 // vxTypesBase.h so that this macro is only defined if _GCC_SIZE_T is 509 // not defined, and so that defining this macro defines _GCC_SIZE_T. 510 // If we find that the macros are still defined at this point, we must 511 // invoke them so that the type is defined as expected. 512 513 // In case nobody has defined these types, but we aren't running under 514 // GCC 2.00, make sure that __PTRDIFF_TYPE__, __SIZE_TYPE__, and 515 // __WCHAR_TYPE__ have reasonable values. This can happen if the 516 // parts of GCC is compiled by an older compiler, that actually 517 // include gstddef.h, such as collect2. 518 519 // Signed type of difference of two pointers. 520 521 // Define this type if we are doing the whole job, 522 // or if we want this type in particular. 523 524 // If this symbol has done its job, get rid of it. 525 526 // Unsigned type of `sizeof' something. 527 528 // Define this type if we are doing the whole job, 529 // or if we want this type in particular. 530 531 // Wide character type. 532 // Locale-writers should change this as necessary to 533 // be big enough to hold unique values not between 0 and 127, 534 // and not (wchar_t) -1, for each defined multibyte character. 535 536 // Define this type if we are doing the whole job, 537 // or if we want this type in particular. 538 539 // A null pointer constant. 540 541 // Offset of member MEMBER in a struct of type TYPE. 542 543 // XPG requires a few symbols from <sys/wait.h> being defined. 544 // Definitions of flag bits for `waitpid' et al. 545 // Copyright (C) 1992-2020 Free Software Foundation, Inc. 546 // This file is part of the GNU C Library. 547 // 548 // The GNU C Library is free software; you can redistribute it and/or 549 // modify it under the terms of the GNU Lesser General Public 550 // License as published by the Free Software Foundation; either 551 // version 2.1 of the License, or (at your option) any later version. 552 // 553 // The GNU C Library is distributed in the hope that it will be useful, 554 // but WITHOUT ANY WARRANTY; without even the implied warranty of 555 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 556 // Lesser General Public License for more details. 557 // 558 // You should have received a copy of the GNU Lesser General Public 559 // License along with the GNU C Library; if not, see 560 // <https://www.gnu.org/licenses/>. 561 562 // Bits in the third argument to `waitpid'. 563 564 // Bits in the fourth argument to `waitid'. 565 566 // The following values are used by the `waitid' function. 567 568 // The Linux kernel defines these bare, rather than an enum, 569 // which causes a conflict if the include order is reversed. 570 571 const ( /* waitflags.h:52:1: */ 572 P_ALL = 0 // Wait for any child. 573 P_PID = 1 // Wait for specified process. 574 P_PGID = 2 575 ) 576 577 type ptrdiff_t = int64 /* <builtin>:3:26 */ 578 579 type size_t = uint64 /* <builtin>:9:23 */ 580 581 type wchar_t = int32 /* <builtin>:15:24 */ 582 583 // A null pointer constant. 584 585 // Offset of member MEMBER in a struct of type TYPE. 586 587 // Type whose alignment is supported in every context and is at least 588 // as great as that of any standard type not using alignment 589 // specifiers. 590 type max_align_t = struct { 591 __max_align_ll int64 592 __max_align_ld float64 593 } /* stddef.h:426:3 */ 594 595 type z_size_t = size_t /* zconf.h:248:21 */ 596 597 // Maximum value for memLevel in deflateInit2 598 599 // Maximum value for windowBits in deflateInit2 and inflateInit2. 600 // WARNING: reducing MAX_WBITS makes minigzip unable to extract .gz files 601 // created by gzip. (Files created by minigzip can still be extracted by 602 // gzip.) 603 604 // The memory requirements for deflate are (in bytes): 605 // (1 << (windowBits+2)) + (1 << (memLevel+9)) 606 // that is: 128K for windowBits=15 + 128K for memLevel = 8 (default values) 607 // plus a few kilobytes for small objects. For example, if you want to reduce 608 // the default memory requirements from 256K to 128K, compile with 609 // make CFLAGS="-O -DMAX_WBITS=14 -DMAX_MEM_LEVEL=7" 610 // Of course this will generally degrade compression (there's no free lunch). 611 // 612 // The memory requirements for inflate are (in bytes) 1 << windowBits 613 // that is, 32K for windowBits=15 (default value) plus about 7 kilobytes 614 // for small objects. 615 616 // Type declarations 617 618 // The following definitions for FAR are needed only for MSDOS mixed 619 // model programming (small or medium model with some far allocations). 620 // This was tested only with MSC; for other MSDOS compilers you may have 621 // to define NO_MEMCPY in zutil.h. If you don't need the mixed model, 622 // just define FAR to be empty. 623 624 type Byte = uint8 /* zconf.h:391:24 */ // 8 bits 625 type uInt = uint32 /* zconf.h:393:24 */ // 16 bits or more 626 type uLong = uint64 /* zconf.h:394:24 */ // 32 bits or more 627 628 type Bytef = Byte /* zconf.h:400:22 */ 629 type charf = uint8 /* zconf.h:402:19 */ 630 type intf = int32 /* zconf.h:403:19 */ 631 type uIntf = uInt /* zconf.h:404:19 */ 632 type uLongf = uLong /* zconf.h:405:19 */ 633 634 type voidpc = uintptr /* zconf.h:408:23 */ 635 type voidpf = uintptr /* zconf.h:409:23 */ 636 type voidp = uintptr /* zconf.h:410:23 */ 637 638 // Copyright (C) 1992-2019 Free Software Foundation, Inc. 639 // 640 // This file is part of GCC. 641 // 642 // GCC is free software; you can redistribute it and/or modify it under 643 // the terms of the GNU General Public License as published by the Free 644 // Software Foundation; either version 3, or (at your option) any later 645 // version. 646 // 647 // GCC is distributed in the hope that it will be useful, but WITHOUT ANY 648 // WARRANTY; without even the implied warranty of MERCHANTABILITY or 649 // FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License 650 // for more details. 651 // 652 // Under Section 7 of GPL version 3, you are granted additional 653 // permissions described in the GCC Runtime Library Exception, version 654 // 3.1, as published by the Free Software Foundation. 655 // 656 // You should have received a copy of the GNU General Public License and 657 // a copy of the GCC Runtime Library Exception along with this program; 658 // see the files COPYING3 and COPYING.RUNTIME respectively. If not, see 659 // <http://www.gnu.org/licenses/>. 660 661 // This administrivia gets added to the beginning of limits.h 662 // if the system has its own version of limits.h. 663 664 // We use _GCC_LIMITS_H_ because we want this not to match 665 // any macros that the system's limits.h uses for its own purposes. 666 667 // Use "..." so that we find syslimits.h only in this same directory. 668 // syslimits.h stands for the system's own limits.h file. 669 // If we can use it ok unmodified, then we install this text. 670 // If fixincludes fixes it, then the fixed version is installed 671 // instead of this text. 672 673 // Copyright (C) 1991-2020 Free Software Foundation, Inc. 674 // This file is part of the GNU C Library. 675 // 676 // The GNU C Library is free software; you can redistribute it and/or 677 // modify it under the terms of the GNU Lesser General Public 678 // License as published by the Free Software Foundation; either 679 // version 2.1 of the License, or (at your option) any later version. 680 // 681 // The GNU C Library is distributed in the hope that it will be useful, 682 // but WITHOUT ANY WARRANTY; without even the implied warranty of 683 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 684 // Lesser General Public License for more details. 685 // 686 // You should have received a copy of the GNU Lesser General Public 687 // License along with the GNU C Library; if not, see 688 // <https://www.gnu.org/licenses/>. 689 690 // ISO C99 Standard: 7.10/5.2.4.2.1 Sizes of integer types <limits.h> 691 692 // Handle feature test macros at the start of a header. 693 // Copyright (C) 2016-2020 Free Software Foundation, Inc. 694 // This file is part of the GNU C Library. 695 // 696 // The GNU C Library is free software; you can redistribute it and/or 697 // modify it under the terms of the GNU Lesser General Public 698 // License as published by the Free Software Foundation; either 699 // version 2.1 of the License, or (at your option) any later version. 700 // 701 // The GNU C Library is distributed in the hope that it will be useful, 702 // but WITHOUT ANY WARRANTY; without even the implied warranty of 703 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 704 // Lesser General Public License for more details. 705 // 706 // You should have received a copy of the GNU Lesser General Public 707 // License along with the GNU C Library; if not, see 708 // <https://www.gnu.org/licenses/>. 709 710 // This header is internal to glibc and should not be included outside 711 // of glibc headers. Headers including it must define 712 // __GLIBC_INTERNAL_STARTING_HEADER_IMPLEMENTATION first. This header 713 // cannot have multiple include guards because ISO C feature test 714 // macros depend on the definition of the macro when an affected 715 // header is included, not when the first system header is 716 // included. 717 718 // Copyright (C) 1991-2020 Free Software Foundation, Inc. 719 // This file is part of the GNU C Library. 720 // 721 // The GNU C Library is free software; you can redistribute it and/or 722 // modify it under the terms of the GNU Lesser General Public 723 // License as published by the Free Software Foundation; either 724 // version 2.1 of the License, or (at your option) any later version. 725 // 726 // The GNU C Library is distributed in the hope that it will be useful, 727 // but WITHOUT ANY WARRANTY; without even the implied warranty of 728 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 729 // Lesser General Public License for more details. 730 // 731 // You should have received a copy of the GNU Lesser General Public 732 // License along with the GNU C Library; if not, see 733 // <https://www.gnu.org/licenses/>. 734 735 // These are defined by the user (or the compiler) 736 // to specify the desired environment: 737 // 738 // __STRICT_ANSI__ ISO Standard C. 739 // _ISOC99_SOURCE Extensions to ISO C89 from ISO C99. 740 // _ISOC11_SOURCE Extensions to ISO C99 from ISO C11. 741 // _ISOC2X_SOURCE Extensions to ISO C99 from ISO C2X. 742 // __STDC_WANT_LIB_EXT2__ 743 // Extensions to ISO C99 from TR 27431-2:2010. 744 // __STDC_WANT_IEC_60559_BFP_EXT__ 745 // Extensions to ISO C11 from TS 18661-1:2014. 746 // __STDC_WANT_IEC_60559_FUNCS_EXT__ 747 // Extensions to ISO C11 from TS 18661-4:2015. 748 // __STDC_WANT_IEC_60559_TYPES_EXT__ 749 // Extensions to ISO C11 from TS 18661-3:2015. 750 // 751 // _POSIX_SOURCE IEEE Std 1003.1. 752 // _POSIX_C_SOURCE If ==1, like _POSIX_SOURCE; if >=2 add IEEE Std 1003.2; 753 // if >=199309L, add IEEE Std 1003.1b-1993; 754 // if >=199506L, add IEEE Std 1003.1c-1995; 755 // if >=200112L, all of IEEE 1003.1-2004 756 // if >=200809L, all of IEEE 1003.1-2008 757 // _XOPEN_SOURCE Includes POSIX and XPG things. Set to 500 if 758 // Single Unix conformance is wanted, to 600 for the 759 // sixth revision, to 700 for the seventh revision. 760 // _XOPEN_SOURCE_EXTENDED XPG things and X/Open Unix extensions. 761 // _LARGEFILE_SOURCE Some more functions for correct standard I/O. 762 // _LARGEFILE64_SOURCE Additional functionality from LFS for large files. 763 // _FILE_OFFSET_BITS=N Select default filesystem interface. 764 // _ATFILE_SOURCE Additional *at interfaces. 765 // _GNU_SOURCE All of the above, plus GNU extensions. 766 // _DEFAULT_SOURCE The default set of features (taking precedence over 767 // __STRICT_ANSI__). 768 // 769 // _FORTIFY_SOURCE Add security hardening to many library functions. 770 // Set to 1 or 2; 2 performs stricter checks than 1. 771 // 772 // _REENTRANT, _THREAD_SAFE 773 // Obsolete; equivalent to _POSIX_C_SOURCE=199506L. 774 // 775 // The `-ansi' switch to the GNU C compiler, and standards conformance 776 // options such as `-std=c99', define __STRICT_ANSI__. If none of 777 // these are defined, or if _DEFAULT_SOURCE is defined, the default is 778 // to have _POSIX_SOURCE set to one and _POSIX_C_SOURCE set to 779 // 200809L, as well as enabling miscellaneous functions from BSD and 780 // SVID. If more than one of these are defined, they accumulate. For 781 // example __STRICT_ANSI__, _POSIX_SOURCE and _POSIX_C_SOURCE together 782 // give you ISO C, 1003.1, and 1003.2, but nothing else. 783 // 784 // These are defined by this file and are used by the 785 // header files to decide what to declare or define: 786 // 787 // __GLIBC_USE (F) Define things from feature set F. This is defined 788 // to 1 or 0; the subsequent macros are either defined 789 // or undefined, and those tests should be moved to 790 // __GLIBC_USE. 791 // __USE_ISOC11 Define ISO C11 things. 792 // __USE_ISOC99 Define ISO C99 things. 793 // __USE_ISOC95 Define ISO C90 AMD1 (C95) things. 794 // __USE_ISOCXX11 Define ISO C++11 things. 795 // __USE_POSIX Define IEEE Std 1003.1 things. 796 // __USE_POSIX2 Define IEEE Std 1003.2 things. 797 // __USE_POSIX199309 Define IEEE Std 1003.1, and .1b things. 798 // __USE_POSIX199506 Define IEEE Std 1003.1, .1b, .1c and .1i things. 799 // __USE_XOPEN Define XPG things. 800 // __USE_XOPEN_EXTENDED Define X/Open Unix things. 801 // __USE_UNIX98 Define Single Unix V2 things. 802 // __USE_XOPEN2K Define XPG6 things. 803 // __USE_XOPEN2KXSI Define XPG6 XSI things. 804 // __USE_XOPEN2K8 Define XPG7 things. 805 // __USE_XOPEN2K8XSI Define XPG7 XSI things. 806 // __USE_LARGEFILE Define correct standard I/O things. 807 // __USE_LARGEFILE64 Define LFS things with separate names. 808 // __USE_FILE_OFFSET64 Define 64bit interface as default. 809 // __USE_MISC Define things from 4.3BSD or System V Unix. 810 // __USE_ATFILE Define *at interfaces and AT_* constants for them. 811 // __USE_GNU Define GNU extensions. 812 // __USE_FORTIFY_LEVEL Additional security measures used, according to level. 813 // 814 // The macros `__GNU_LIBRARY__', `__GLIBC__', and `__GLIBC_MINOR__' are 815 // defined by this file unconditionally. `__GNU_LIBRARY__' is provided 816 // only for compatibility. All new code should use the other symbols 817 // to test for features. 818 // 819 // All macros listed above as possibly being defined by this file are 820 // explicitly undefined if they are not explicitly defined. 821 // Feature-test macros that are not defined by the user or compiler 822 // but are implied by the other feature-test macros defined (or by the 823 // lack of any definitions) are defined by the file. 824 // 825 // ISO C feature test macros depend on the definition of the macro 826 // when an affected header is included, not when the first system 827 // header is included, and so they are handled in 828 // <bits/libc-header-start.h>, which does not have a multiple include 829 // guard. Feature test macros that can be handled from the first 830 // system header included are handled here. 831 832 // Undefine everything, so we get a clean slate. 833 834 // Suppress kernel-name space pollution unless user expressedly asks 835 // for it. 836 837 // Convenience macro to test the version of gcc. 838 // Use like this: 839 // #if __GNUC_PREREQ (2,8) 840 // ... code requiring gcc 2.8 or later ... 841 // #endif 842 // Note: only works for GCC 2.0 and later, because __GNUC_MINOR__ was 843 // added in 2.0. 844 845 // Similarly for clang. Features added to GCC after version 4.2 may 846 // or may not also be available in clang, and clang's definitions of 847 // __GNUC(_MINOR)__ are fixed at 4 and 2 respectively. Not all such 848 // features can be queried via __has_extension/__has_feature. 849 850 // Whether to use feature set F. 851 852 // _BSD_SOURCE and _SVID_SOURCE are deprecated aliases for 853 // _DEFAULT_SOURCE. If _DEFAULT_SOURCE is present we do not 854 // issue a warning; the expectation is that the source is being 855 // transitioned to use the new macro. 856 857 // If _GNU_SOURCE was defined by the user, turn on all the other features. 858 859 // If nothing (other than _GNU_SOURCE and _DEFAULT_SOURCE) is defined, 860 // define _DEFAULT_SOURCE. 861 862 // This is to enable the ISO C2X extension. 863 864 // This is to enable the ISO C11 extension. 865 866 // This is to enable the ISO C99 extension. 867 868 // This is to enable the ISO C90 Amendment 1:1995 extension. 869 870 // If none of the ANSI/POSIX macros are defined, or if _DEFAULT_SOURCE 871 // is defined, use POSIX.1-2008 (or another version depending on 872 // _XOPEN_SOURCE). 873 874 // Some C libraries once required _REENTRANT and/or _THREAD_SAFE to be 875 // defined in all multithreaded code. GNU libc has not required this 876 // for many years. We now treat them as compatibility synonyms for 877 // _POSIX_C_SOURCE=199506L, which is the earliest level of POSIX with 878 // comprehensive support for multithreaded code. Using them never 879 // lowers the selected level of POSIX conformance, only raises it. 880 881 // The function 'gets' existed in C89, but is impossible to use 882 // safely. It has been removed from ISO C11 and ISO C++14. Note: for 883 // compatibility with various implementations of <cstdio>, this test 884 // must consider only the value of __cplusplus when compiling C++. 885 886 // GNU formerly extended the scanf functions with modified format 887 // specifiers %as, %aS, and %a[...] that allocate a buffer for the 888 // input using malloc. This extension conflicts with ISO C99, which 889 // defines %a as a standalone format specifier that reads a floating- 890 // point number; moreover, POSIX.1-2008 provides the same feature 891 // using the modifier letter 'm' instead (%ms, %mS, %m[...]). 892 // 893 // We now follow C99 unless GNU extensions are active and the compiler 894 // is specifically in C89 or C++98 mode (strict or not). For 895 // instance, with GCC, -std=gnu11 will have C99-compliant scanf with 896 // or without -D_GNU_SOURCE, but -std=c89 -D_GNU_SOURCE will have the 897 // old extension. 898 899 // Get definitions of __STDC_* predefined macros, if the compiler has 900 // not preincluded this header automatically. 901 // Copyright (C) 1991-2020 Free Software Foundation, Inc. 902 // This file is part of the GNU C Library. 903 // 904 // The GNU C Library is free software; you can redistribute it and/or 905 // modify it under the terms of the GNU Lesser General Public 906 // License as published by the Free Software Foundation; either 907 // version 2.1 of the License, or (at your option) any later version. 908 // 909 // The GNU C Library is distributed in the hope that it will be useful, 910 // but WITHOUT ANY WARRANTY; without even the implied warranty of 911 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 912 // Lesser General Public License for more details. 913 // 914 // You should have received a copy of the GNU Lesser General Public 915 // License along with the GNU C Library; if not, see 916 // <https://www.gnu.org/licenses/>. 917 918 // This macro indicates that the installed library is the GNU C Library. 919 // For historic reasons the value now is 6 and this will stay from now 920 // on. The use of this variable is deprecated. Use __GLIBC__ and 921 // __GLIBC_MINOR__ now (see below) when you want to test for a specific 922 // GNU C library version and use the values in <gnu/lib-names.h> to get 923 // the sonames of the shared libraries. 924 925 // Major and minor version number of the GNU C library package. Use 926 // these macros to test for features in specific releases. 927 928 // This is here only because every header file already includes this one. 929 // Copyright (C) 1992-2020 Free Software Foundation, Inc. 930 // This file is part of the GNU C Library. 931 // 932 // The GNU C Library is free software; you can redistribute it and/or 933 // modify it under the terms of the GNU Lesser General Public 934 // License as published by the Free Software Foundation; either 935 // version 2.1 of the License, or (at your option) any later version. 936 // 937 // The GNU C Library is distributed in the hope that it will be useful, 938 // but WITHOUT ANY WARRANTY; without even the implied warranty of 939 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 940 // Lesser General Public License for more details. 941 // 942 // You should have received a copy of the GNU Lesser General Public 943 // License along with the GNU C Library; if not, see 944 // <https://www.gnu.org/licenses/>. 945 946 // We are almost always included from features.h. 947 948 // The GNU libc does not support any K&R compilers or the traditional mode 949 // of ISO C compilers anymore. Check for some of the combinations not 950 // anymore supported. 951 952 // Some user header file might have defined this before. 953 954 // All functions, except those with callbacks or those that 955 // synchronize memory, are leaf functions. 956 957 // GCC can always grok prototypes. For C++ programs we add throw() 958 // to help it optimize the function calls. But this works only with 959 // gcc 2.8.x and egcs. For gcc 3.2 and up we even mark C functions 960 // as non-throwing using a function attribute since programs can use 961 // the -fexceptions options for C code as well. 962 963 // Compilers that are not clang may object to 964 // #if defined __clang__ && __has_extension(...) 965 // even though they do not need to evaluate the right-hand side of the &&. 966 967 // These two macros are not used in glibc anymore. They are kept here 968 // only because some other projects expect the macros to be defined. 969 970 // For these things, GCC behaves the ANSI way normally, 971 // and the non-ANSI way under -traditional. 972 973 // This is not a typedef so `const __ptr_t' does the right thing. 974 975 // C++ needs to know that types and declarations are C, not C++. 976 977 // Fortify support. 978 979 // Support for flexible arrays. 980 // Headers that should use flexible arrays only if they're "real" 981 // (e.g. only if they won't affect sizeof()) should test 982 // #if __glibc_c99_flexarr_available. 983 984 // __asm__ ("xyz") is used throughout the headers to rename functions 985 // at the assembly language level. This is wrapped by the __REDIRECT 986 // macro, in order to support compilers that can do this some other 987 // way. When compilers don't support asm-names at all, we have to do 988 // preprocessor tricks instead (which don't have exactly the right 989 // semantics, but it's the best we can do). 990 // 991 // Example: 992 // int __REDIRECT(setpgrp, (__pid_t pid, __pid_t pgrp), setpgid); 993 994 // 995 // #elif __SOME_OTHER_COMPILER__ 996 // 997 // # define __REDIRECT(name, proto, alias) name proto; _Pragma("let " #name " = " #alias) 998 999 // GCC has various useful declarations that can be made with the 1000 // `__attribute__' syntax. All of the ways we use this do fine if 1001 // they are omitted for compilers that don't understand it. 1002 1003 // At some point during the gcc 2.96 development the `malloc' attribute 1004 // for functions was introduced. We don't want to use it unconditionally 1005 // (although this would be possible) since it generates warnings. 1006 1007 // Tell the compiler which arguments to an allocation function 1008 // indicate the size of the allocation. 1009 1010 // At some point during the gcc 2.96 development the `pure' attribute 1011 // for functions was introduced. We don't want to use it unconditionally 1012 // (although this would be possible) since it generates warnings. 1013 1014 // This declaration tells the compiler that the value is constant. 1015 1016 // At some point during the gcc 3.1 development the `used' attribute 1017 // for functions was introduced. We don't want to use it unconditionally 1018 // (although this would be possible) since it generates warnings. 1019 1020 // Since version 3.2, gcc allows marking deprecated functions. 1021 1022 // Since version 4.5, gcc also allows one to specify the message printed 1023 // when a deprecated function is used. clang claims to be gcc 4.2, but 1024 // may also support this feature. 1025 1026 // At some point during the gcc 2.8 development the `format_arg' attribute 1027 // for functions was introduced. We don't want to use it unconditionally 1028 // (although this would be possible) since it generates warnings. 1029 // If several `format_arg' attributes are given for the same function, in 1030 // gcc-3.0 and older, all but the last one are ignored. In newer gccs, 1031 // all designated arguments are considered. 1032 1033 // At some point during the gcc 2.97 development the `strfmon' format 1034 // attribute for functions was introduced. We don't want to use it 1035 // unconditionally (although this would be possible) since it 1036 // generates warnings. 1037 1038 // The nonull function attribute allows to mark pointer parameters which 1039 // must not be NULL. 1040 1041 // If fortification mode, we warn about unused results of certain 1042 // function calls which can lead to problems. 1043 1044 // Forces a function to be always inlined. 1045 // The Linux kernel defines __always_inline in stddef.h (283d7573), and 1046 // it conflicts with this definition. Therefore undefine it first to 1047 // allow either header to be included first. 1048 1049 // Associate error messages with the source location of the call site rather 1050 // than with the source location inside the function. 1051 1052 // GCC 4.3 and above with -std=c99 or -std=gnu99 implements ISO C99 1053 // inline semantics, unless -fgnu89-inline is used. Using __GNUC_STDC_INLINE__ 1054 // or __GNUC_GNU_INLINE is not a good enough check for gcc because gcc versions 1055 // older than 4.3 may define these macros and still not guarantee GNU inlining 1056 // semantics. 1057 // 1058 // clang++ identifies itself as gcc-4.2, but has support for GNU inlining 1059 // semantics, that can be checked for by using the __GNUC_STDC_INLINE_ and 1060 // __GNUC_GNU_INLINE__ macro definitions. 1061 1062 // GCC 4.3 and above allow passing all anonymous arguments of an 1063 // __extern_always_inline function to some other vararg function. 1064 1065 // It is possible to compile containing GCC extensions even if GCC is 1066 // run in pedantic mode if the uses are carefully marked using the 1067 // `__extension__' keyword. But this is not generally available before 1068 // version 2.8. 1069 1070 // __restrict is known in EGCS 1.2 and above. 1071 1072 // ISO C99 also allows to declare arrays as non-overlapping. The syntax is 1073 // array_name[restrict] 1074 // GCC 3.1 supports this. 1075 1076 // Describes a char array whose address can safely be passed as the first 1077 // argument to strncpy and strncat, as the char array is not necessarily 1078 // a NUL-terminated string. 1079 1080 // Undefine (also defined in libc-symbols.h). 1081 // Copies attributes from the declaration or type referenced by 1082 // the argument. 1083 1084 // Determine the wordsize from the preprocessor defines. 1085 1086 // Properties of long double type. ldbl-opt version. 1087 // Copyright (C) 2016-2020 Free Software Foundation, Inc. 1088 // This file is part of the GNU C Library. 1089 // 1090 // The GNU C Library is free software; you can redistribute it and/or 1091 // modify it under the terms of the GNU Lesser General Public 1092 // License published by the Free Software Foundation; either 1093 // version 2.1 of the License, or (at your option) any later version. 1094 // 1095 // The GNU C Library is distributed in the hope that it will be useful, 1096 // but WITHOUT ANY WARRANTY; without even the implied warranty of 1097 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 1098 // Lesser General Public License for more details. 1099 // 1100 // You should have received a copy of the GNU Lesser General Public 1101 // License along with the GNU C Library; if not, see 1102 // <https://www.gnu.org/licenses/>. 1103 1104 // __glibc_macro_warning (MESSAGE) issues warning MESSAGE. This is 1105 // intended for use in preprocessor macros. 1106 // 1107 // Note: MESSAGE must be a _single_ string; concatenation of string 1108 // literals is not supported. 1109 1110 // Generic selection (ISO C11) is a C-only feature, available in GCC 1111 // since version 4.9. Previous versions do not provide generic 1112 // selection, even though they might set __STDC_VERSION__ to 201112L, 1113 // when in -std=c11 mode. Thus, we must check for !defined __GNUC__ 1114 // when testing __STDC_VERSION__ for generic selection support. 1115 // On the other hand, Clang also defines __GNUC__, so a clang-specific 1116 // check is required to enable the use of generic selection. 1117 1118 // If we don't have __REDIRECT, prototypes will be missing if 1119 // __USE_FILE_OFFSET64 but not __USE_LARGEFILE[64]. 1120 1121 // Decide whether we can define 'extern inline' functions in headers. 1122 1123 // This is here only because every header file already includes this one. 1124 // Get the definitions of all the appropriate `__stub_FUNCTION' symbols. 1125 // <gnu/stubs.h> contains `#define __stub_FUNCTION' when FUNCTION is a stub 1126 // that will always return failure (and set errno to ENOSYS). 1127 // This file is automatically generated. 1128 // This file selects the right generated file of `__stub_FUNCTION' macros 1129 // based on the architecture being compiled for. 1130 1131 // Determine the wordsize from the preprocessor defines. 1132 1133 // This file is automatically generated. 1134 // It defines a symbol `__stub_FUNCTION' for each function 1135 // in the C library which is a stub, meaning it will fail 1136 // every time called, usually setting errno to ENOSYS. 1137 1138 // ISO/IEC TR 24731-2:2010 defines the __STDC_WANT_LIB_EXT2__ 1139 // macro. 1140 1141 // ISO/IEC TS 18661-1:2014 defines the __STDC_WANT_IEC_60559_BFP_EXT__ 1142 // macro. Most but not all symbols enabled by that macro in TS 1143 // 18661-1 are enabled unconditionally in C2X; the symbols in Annex F 1144 // still require that macro in C2X. 1145 1146 // ISO/IEC TS 18661-4:2015 defines the 1147 // __STDC_WANT_IEC_60559_FUNCS_EXT__ macro. Other than the reduction 1148 // functions, the symbols from this TS are enabled unconditionally in 1149 // C2X. 1150 1151 // ISO/IEC TS 18661-3:2015 defines the 1152 // __STDC_WANT_IEC_60559_TYPES_EXT__ macro. 1153 1154 // Maximum length of any multibyte character in any locale. 1155 // We define this value here since the gcc header does not define 1156 // the correct value. 1157 1158 // If we are not using GNU CC we have to define all the symbols ourself. 1159 // Otherwise use gcc's definitions (see below). 1160 1161 // Get the compiler's limits.h, which defines almost all the ISO constants. 1162 // 1163 // We put this #include_next outside the double inclusion check because 1164 // it should be possible to include this file more than once and still get 1165 // the definitions from gcc's header. 1166 1167 // The <limits.h> files in some gcc versions don't define LLONG_MIN, 1168 // LLONG_MAX, and ULLONG_MAX. Instead only the values gcc defined for 1169 // ages are available. 1170 1171 // The integer width macros are not defined by GCC's <limits.h> before 1172 // GCC 7, or if _GNU_SOURCE rather than 1173 // __STDC_WANT_IEC_60559_BFP_EXT__ is used to enable this feature. 1174 1175 // POSIX adds things to <limits.h>. 1176 // Copyright (C) 1991-2020 Free Software Foundation, Inc. 1177 // This file is part of the GNU C Library. 1178 // 1179 // The GNU C Library is free software; you can redistribute it and/or 1180 // modify it under the terms of the GNU Lesser General Public 1181 // License as published by the Free Software Foundation; either 1182 // version 2.1 of the License, or (at your option) any later version. 1183 // 1184 // The GNU C Library is distributed in the hope that it will be useful, 1185 // but WITHOUT ANY WARRANTY; without even the implied warranty of 1186 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 1187 // Lesser General Public License for more details. 1188 // 1189 // You should have received a copy of the GNU Lesser General Public 1190 // License along with the GNU C Library; if not, see 1191 // <https://www.gnu.org/licenses/>. 1192 1193 // POSIX Standard: 2.9.2 Minimum Values Added to <limits.h> 1194 // 1195 // Never include this file directly; use <limits.h> instead. 1196 1197 // Determine the wordsize from the preprocessor defines. 1198 1199 // These are the standard-mandated minimum values. 1200 1201 // Minimum number of operations in one list I/O call. 1202 1203 // Minimal number of outstanding asynchronous I/O operations. 1204 1205 // Maximum length of arguments to `execve', including environment. 1206 1207 // Maximum simultaneous processes per real user ID. 1208 1209 // Minimal number of timer expiration overruns. 1210 1211 // Maximum length of a host name (not including the terminating null) 1212 // as returned from the GETHOSTNAME function. 1213 1214 // Maximum link count of a file. 1215 1216 // Maximum length of login name. 1217 1218 // Number of bytes in a terminal canonical input queue. 1219 1220 // Number of bytes for which space will be 1221 // available in a terminal input queue. 1222 1223 // Maximum number of message queues open for a process. 1224 1225 // Maximum number of supported message priorities. 1226 1227 // Number of bytes in a filename. 1228 1229 // Number of simultaneous supplementary group IDs per process. 1230 1231 // Number of files one process can have open at once. 1232 1233 // Number of bytes in a pathname. 1234 1235 // Number of bytes than can be written atomically to a pipe. 1236 1237 // The number of repeated occurrences of a BRE permitted by the 1238 // REGEXEC and REGCOMP functions when using the interval notation. 1239 1240 // Minimal number of realtime signals reserved for the application. 1241 1242 // Number of semaphores a process can have. 1243 1244 // Maximal value of a semaphore. 1245 1246 // Number of pending realtime signals. 1247 1248 // Largest value of a `ssize_t'. 1249 1250 // Number of streams a process can have open at once. 1251 1252 // The number of bytes in a symbolic link. 1253 1254 // The number of symbolic links that can be traversed in the 1255 // resolution of a pathname in the absence of a loop. 1256 1257 // Number of timer for a process. 1258 1259 // Maximum number of characters in a tty name. 1260 1261 // Maximum length of a timezone name (element of `tzname'). 1262 1263 // Maximum clock resolution in nanoseconds. 1264 1265 // Get the implementation-specific values for the above. 1266 // Minimum guaranteed maximum values for system limits. Linux version. 1267 // Copyright (C) 1993-2020 Free Software Foundation, Inc. 1268 // This file is part of the GNU C Library. 1269 // 1270 // The GNU C Library is free software; you can redistribute it and/or 1271 // modify it under the terms of the GNU Lesser General Public License as 1272 // published by the Free Software Foundation; either version 2.1 of the 1273 // License, or (at your option) any later version. 1274 // 1275 // The GNU C Library is distributed in the hope that it will be useful, 1276 // but WITHOUT ANY WARRANTY; without even the implied warranty of 1277 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 1278 // Lesser General Public License for more details. 1279 // 1280 // You should have received a copy of the GNU Lesser General Public 1281 // License along with the GNU C Library; see the file COPYING.LIB. If 1282 // not, see <https://www.gnu.org/licenses/>. 1283 1284 // The kernel header pollutes the namespace with the NR_OPEN symbol 1285 // and defines LINK_MAX although filesystems have different maxima. A 1286 // similar thing is true for OPEN_MAX: the limit can be changed at 1287 // runtime and therefore the macro must not be defined. Remove this 1288 // after including the header if necessary. 1289 1290 // The kernel sources contain a file with all the needed information. 1291 // SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note 1292 1293 // Have to remove NR_OPEN? 1294 // Have to remove LINK_MAX? 1295 // Have to remove OPEN_MAX? 1296 // Have to remove ARG_MAX? 1297 1298 // The number of data keys per process. 1299 // This is the value this implementation supports. 1300 1301 // Controlling the iterations of destructors for thread-specific data. 1302 // Number of iterations this implementation does. 1303 1304 // The number of threads per process. 1305 // We have no predefined limit on the number of threads. 1306 1307 // Maximum amount by which a process can descrease its asynchronous I/O 1308 // priority level. 1309 1310 // Minimum size for a thread. We are free to choose a reasonable value. 1311 1312 // Maximum number of timer expiration overruns. 1313 1314 // Maximum tty name length. 1315 1316 // Maximum login name length. This is arbitrary. 1317 1318 // Maximum host name length. 1319 1320 // Maximum message queue priority level. 1321 1322 // Maximum value the semaphore can have. 1323 1324 // ssize_t is not formally required to be the signed type 1325 // corresponding to size_t, but it is for all configurations supported 1326 // by glibc. 1327 1328 // This value is a guaranteed minimum maximum. 1329 // The current maximum can be got from `sysconf'. 1330 1331 // Copyright (C) 1991-2020 Free Software Foundation, Inc. 1332 // This file is part of the GNU C Library. 1333 // 1334 // The GNU C Library is free software; you can redistribute it and/or 1335 // modify it under the terms of the GNU Lesser General Public 1336 // License as published by the Free Software Foundation; either 1337 // version 2.1 of the License, or (at your option) any later version. 1338 // 1339 // The GNU C Library is distributed in the hope that it will be useful, 1340 // but WITHOUT ANY WARRANTY; without even the implied warranty of 1341 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 1342 // Lesser General Public License for more details. 1343 // 1344 // You should have received a copy of the GNU Lesser General Public 1345 // License along with the GNU C Library; if not, see 1346 // <https://www.gnu.org/licenses/>. 1347 1348 // Never include this file directly; include <limits.h> instead. 1349 1350 // The maximum `ibase' and `obase' values allowed by the `bc' utility. 1351 1352 // The maximum number of elements allowed in an array by the `bc' utility. 1353 1354 // The maximum `scale' value allowed by the `bc' utility. 1355 1356 // The maximum length of a string constant accepted by the `bc' utility. 1357 1358 // The maximum number of weights that can be assigned to an entry of 1359 // the LC_COLLATE `order' keyword in the locale definition file. 1360 1361 // The maximum number of expressions that can be nested 1362 // within parentheses by the `expr' utility. 1363 1364 // The maximum length, in bytes, of an input line. 1365 1366 // The maximum number of repeated occurrences of a regular expression 1367 // permitted when using the interval notation `\{M,N\}'. 1368 1369 // The maximum number of bytes in a character class name. We have no 1370 // fixed limit, 2048 is a high number. 1371 1372 // These values are implementation-specific, 1373 // and may vary within the implementation. 1374 // Their precise values can be obtained from sysconf. 1375 1376 // This value is defined like this in regex.h. 1377 1378 // Copyright (C) 1991-2019 Free Software Foundation, Inc. 1379 // 1380 // This file is part of GCC. 1381 // 1382 // GCC is free software; you can redistribute it and/or modify it under 1383 // the terms of the GNU General Public License as published by the Free 1384 // Software Foundation; either version 3, or (at your option) any later 1385 // version. 1386 // 1387 // GCC is distributed in the hope that it will be useful, but WITHOUT ANY 1388 // WARRANTY; without even the implied warranty of MERCHANTABILITY or 1389 // FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License 1390 // for more details. 1391 // 1392 // Under Section 7 of GPL version 3, you are granted additional 1393 // permissions described in the GCC Runtime Library Exception, version 1394 // 3.1, as published by the Free Software Foundation. 1395 // 1396 // You should have received a copy of the GNU General Public License and 1397 // a copy of the GCC Runtime Library Exception along with this program; 1398 // see the files COPYING3 and COPYING.RUNTIME respectively. If not, see 1399 // <http://www.gnu.org/licenses/>. 1400 1401 // Number of bits in a `char'. 1402 1403 // Maximum length of a multibyte character. 1404 1405 // Minimum and maximum values a `signed char' can hold. 1406 1407 // Maximum value an `unsigned char' can hold. (Minimum is 0). 1408 1409 // Minimum and maximum values a `char' can hold. 1410 1411 // Minimum and maximum values a `signed short int' can hold. 1412 1413 // Maximum value an `unsigned short int' can hold. (Minimum is 0). 1414 1415 // Minimum and maximum values a `signed int' can hold. 1416 1417 // Maximum value an `unsigned int' can hold. (Minimum is 0). 1418 1419 // Minimum and maximum values a `signed long int' can hold. 1420 // (Same as `int'). 1421 1422 // Maximum value an `unsigned long int' can hold. (Minimum is 0). 1423 1424 // Minimum and maximum values a `signed long long int' can hold. 1425 1426 // Maximum value an `unsigned long long int' can hold. (Minimum is 0). 1427 1428 // This administrivia gets added to the end of limits.h 1429 // if the system has its own version of limits.h. 1430 1431 type z_crc_t = uint32 /* zconf.h:429:17 */ 1432 1433 // Seconds since the Epoch, visible to user code when time_t is too 1434 // narrow only for consistency with the old way of widening too-narrow 1435 // types. User code should never use __time64_t. 1436 1437 type u_char = uint8 /* types.h:33:18 */ 1438 type u_short = uint16 /* types.h:34:19 */ 1439 type u_int = uint32 /* types.h:35:17 */ 1440 type u_long = uint64 /* types.h:36:18 */ 1441 type quad_t = int64 /* types.h:37:18 */ 1442 type u_quad_t = uint64 /* types.h:38:20 */ 1443 type fsid_t = struct{ __val [2]int32 } /* types.h:39:18 */ 1444 type loff_t = int64 /* types.h:42:18 */ 1445 1446 type ino_t = uint64 /* types.h:49:19 */ 1447 type ino64_t = uint64 /* types.h:54:19 */ 1448 1449 type dev_t = uint64 /* types.h:59:17 */ 1450 1451 type gid_t = uint32 /* types.h:64:17 */ 1452 1453 type mode_t = uint32 /* types.h:69:18 */ 1454 1455 type nlink_t = uint64 /* types.h:74:19 */ 1456 1457 type uid_t = uint32 /* types.h:79:17 */ 1458 1459 type off_t = int64 /* types.h:87:19 */ 1460 type off64_t = int64 /* types.h:92:19 */ 1461 1462 type pid_t = int32 /* types.h:97:17 */ 1463 1464 type id_t = uint32 /* types.h:103:16 */ 1465 1466 type ssize_t = int64 /* types.h:108:19 */ 1467 1468 type daddr_t = int32 /* types.h:114:19 */ 1469 type caddr_t = uintptr /* types.h:115:19 */ 1470 1471 type key_t = int32 /* types.h:121:17 */ 1472 1473 // bits/types.h -- definitions of __*_t types underlying *_t types. 1474 // Copyright (C) 2002-2020 Free Software Foundation, Inc. 1475 // This file is part of the GNU C Library. 1476 // 1477 // The GNU C Library is free software; you can redistribute it and/or 1478 // modify it under the terms of the GNU Lesser General Public 1479 // License as published by the Free Software Foundation; either 1480 // version 2.1 of the License, or (at your option) any later version. 1481 // 1482 // The GNU C Library is distributed in the hope that it will be useful, 1483 // but WITHOUT ANY WARRANTY; without even the implied warranty of 1484 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 1485 // Lesser General Public License for more details. 1486 // 1487 // You should have received a copy of the GNU Lesser General Public 1488 // License along with the GNU C Library; if not, see 1489 // <https://www.gnu.org/licenses/>. 1490 1491 // Never include this file directly; use <sys/types.h> instead. 1492 1493 // Returned by `clock'. 1494 type clock_t = int64 /* clock_t.h:7:19 */ 1495 1496 // bits/types.h -- definitions of __*_t types underlying *_t types. 1497 // Copyright (C) 2002-2020 Free Software Foundation, Inc. 1498 // This file is part of the GNU C Library. 1499 // 1500 // The GNU C Library is free software; you can redistribute it and/or 1501 // modify it under the terms of the GNU Lesser General Public 1502 // License as published by the Free Software Foundation; either 1503 // version 2.1 of the License, or (at your option) any later version. 1504 // 1505 // The GNU C Library is distributed in the hope that it will be useful, 1506 // but WITHOUT ANY WARRANTY; without even the implied warranty of 1507 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 1508 // Lesser General Public License for more details. 1509 // 1510 // You should have received a copy of the GNU Lesser General Public 1511 // License along with the GNU C Library; if not, see 1512 // <https://www.gnu.org/licenses/>. 1513 1514 // Never include this file directly; use <sys/types.h> instead. 1515 1516 // Clock ID used in clock and timer functions. 1517 type clockid_t = int32 /* clockid_t.h:7:21 */ 1518 1519 // bits/types.h -- definitions of __*_t types underlying *_t types. 1520 // Copyright (C) 2002-2020 Free Software Foundation, Inc. 1521 // This file is part of the GNU C Library. 1522 // 1523 // The GNU C Library is free software; you can redistribute it and/or 1524 // modify it under the terms of the GNU Lesser General Public 1525 // License as published by the Free Software Foundation; either 1526 // version 2.1 of the License, or (at your option) any later version. 1527 // 1528 // The GNU C Library is distributed in the hope that it will be useful, 1529 // but WITHOUT ANY WARRANTY; without even the implied warranty of 1530 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 1531 // Lesser General Public License for more details. 1532 // 1533 // You should have received a copy of the GNU Lesser General Public 1534 // License along with the GNU C Library; if not, see 1535 // <https://www.gnu.org/licenses/>. 1536 1537 // Never include this file directly; use <sys/types.h> instead. 1538 1539 // Returned by `time'. 1540 type time_t = int64 /* time_t.h:7:18 */ 1541 1542 // bits/types.h -- definitions of __*_t types underlying *_t types. 1543 // Copyright (C) 2002-2020 Free Software Foundation, Inc. 1544 // This file is part of the GNU C Library. 1545 // 1546 // The GNU C Library is free software; you can redistribute it and/or 1547 // modify it under the terms of the GNU Lesser General Public 1548 // License as published by the Free Software Foundation; either 1549 // version 2.1 of the License, or (at your option) any later version. 1550 // 1551 // The GNU C Library is distributed in the hope that it will be useful, 1552 // but WITHOUT ANY WARRANTY; without even the implied warranty of 1553 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 1554 // Lesser General Public License for more details. 1555 // 1556 // You should have received a copy of the GNU Lesser General Public 1557 // License along with the GNU C Library; if not, see 1558 // <https://www.gnu.org/licenses/>. 1559 1560 // Never include this file directly; use <sys/types.h> instead. 1561 1562 // Timer ID returned by `timer_create'. 1563 type timer_t = uintptr /* timer_t.h:7:19 */ 1564 1565 // Copyright (C) 1989-2019 Free Software Foundation, Inc. 1566 // 1567 // This file is part of GCC. 1568 // 1569 // GCC is free software; you can redistribute it and/or modify 1570 // it under the terms of the GNU General Public License as published by 1571 // the Free Software Foundation; either version 3, or (at your option) 1572 // any later version. 1573 // 1574 // GCC is distributed in the hope that it will be useful, 1575 // but WITHOUT ANY WARRANTY; without even the implied warranty of 1576 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 1577 // GNU General Public License for more details. 1578 // 1579 // Under Section 7 of GPL version 3, you are granted additional 1580 // permissions described in the GCC Runtime Library Exception, version 1581 // 3.1, as published by the Free Software Foundation. 1582 // 1583 // You should have received a copy of the GNU General Public License and 1584 // a copy of the GCC Runtime Library Exception along with this program; 1585 // see the files COPYING3 and COPYING.RUNTIME respectively. If not, see 1586 // <http://www.gnu.org/licenses/>. 1587 1588 // ISO C Standard: 7.17 Common definitions <stddef.h> 1589 1590 // Any one of these symbols __need_* means that GNU libc 1591 // wants us just to define one data type. So don't define 1592 // the symbols that indicate this file's entire job has been done. 1593 1594 // This avoids lossage on SunOS but only if stdtypes.h comes first. 1595 // There's no way to win with the other order! Sun lossage. 1596 1597 // Sequent's header files use _PTRDIFF_T_ in some conflicting way. 1598 // Just ignore it. 1599 1600 // On VxWorks, <type/vxTypesBase.h> may have defined macros like 1601 // _TYPE_size_t which will typedef size_t. fixincludes patched the 1602 // vxTypesBase.h so that this macro is only defined if _GCC_SIZE_T is 1603 // not defined, and so that defining this macro defines _GCC_SIZE_T. 1604 // If we find that the macros are still defined at this point, we must 1605 // invoke them so that the type is defined as expected. 1606 1607 // In case nobody has defined these types, but we aren't running under 1608 // GCC 2.00, make sure that __PTRDIFF_TYPE__, __SIZE_TYPE__, and 1609 // __WCHAR_TYPE__ have reasonable values. This can happen if the 1610 // parts of GCC is compiled by an older compiler, that actually 1611 // include gstddef.h, such as collect2. 1612 1613 // Signed type of difference of two pointers. 1614 1615 // Define this type if we are doing the whole job, 1616 // or if we want this type in particular. 1617 1618 // If this symbol has done its job, get rid of it. 1619 1620 // Unsigned type of `sizeof' something. 1621 1622 // Define this type if we are doing the whole job, 1623 // or if we want this type in particular. 1624 1625 // Wide character type. 1626 // Locale-writers should change this as necessary to 1627 // be big enough to hold unique values not between 0 and 127, 1628 // and not (wchar_t) -1, for each defined multibyte character. 1629 1630 // Define this type if we are doing the whole job, 1631 // or if we want this type in particular. 1632 1633 // A null pointer constant. 1634 1635 // Offset of member MEMBER in a struct of type TYPE. 1636 1637 // Old compatibility names for C types. 1638 type ulong = uint64 /* types.h:148:27 */ 1639 type ushort = uint16 /* types.h:149:28 */ 1640 type uint = uint32 /* types.h:150:22 */ 1641 1642 // These size-specific names are used by some of the inet code. 1643 1644 // Define intN_t types. 1645 // Copyright (C) 2017-2020 Free Software Foundation, Inc. 1646 // This file is part of the GNU C Library. 1647 // 1648 // The GNU C Library is free software; you can redistribute it and/or 1649 // modify it under the terms of the GNU Lesser General Public 1650 // License as published by the Free Software Foundation; either 1651 // version 2.1 of the License, or (at your option) any later version. 1652 // 1653 // The GNU C Library is distributed in the hope that it will be useful, 1654 // but WITHOUT ANY WARRANTY; without even the implied warranty of 1655 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 1656 // Lesser General Public License for more details. 1657 // 1658 // You should have received a copy of the GNU Lesser General Public 1659 // License along with the GNU C Library; if not, see 1660 // <https://www.gnu.org/licenses/>. 1661 1662 // bits/types.h -- definitions of __*_t types underlying *_t types. 1663 // Copyright (C) 2002-2020 Free Software Foundation, Inc. 1664 // This file is part of the GNU C Library. 1665 // 1666 // The GNU C Library is free software; you can redistribute it and/or 1667 // modify it under the terms of the GNU Lesser General Public 1668 // License as published by the Free Software Foundation; either 1669 // version 2.1 of the License, or (at your option) any later version. 1670 // 1671 // The GNU C Library is distributed in the hope that it will be useful, 1672 // but WITHOUT ANY WARRANTY; without even the implied warranty of 1673 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 1674 // Lesser General Public License for more details. 1675 // 1676 // You should have received a copy of the GNU Lesser General Public 1677 // License along with the GNU C Library; if not, see 1678 // <https://www.gnu.org/licenses/>. 1679 1680 // Never include this file directly; use <sys/types.h> instead. 1681 1682 type int8_t = int8 /* stdint-intn.h:24:18 */ 1683 type int16_t = int16 /* stdint-intn.h:25:19 */ 1684 type int32_t = int32 /* stdint-intn.h:26:19 */ 1685 type int64_t = int64 /* stdint-intn.h:27:19 */ 1686 1687 // These were defined by ISO C without the first `_'. 1688 type u_int8_t = uint8 /* types.h:158:19 */ 1689 type u_int16_t = uint16 /* types.h:159:20 */ 1690 type u_int32_t = uint32 /* types.h:160:20 */ 1691 type u_int64_t = uint64 /* types.h:161:20 */ 1692 1693 type register_t = int32 /* types.h:164:13 */ 1694 1695 // A set of signals to be blocked, unblocked, or waited for. 1696 type sigset_t = struct{ __val [16]uint64 } /* sigset_t.h:7:20 */ 1697 1698 // Get definition of timer specification structures. 1699 1700 // bits/types.h -- definitions of __*_t types underlying *_t types. 1701 // Copyright (C) 2002-2020 Free Software Foundation, Inc. 1702 // This file is part of the GNU C Library. 1703 // 1704 // The GNU C Library is free software; you can redistribute it and/or 1705 // modify it under the terms of the GNU Lesser General Public 1706 // License as published by the Free Software Foundation; either 1707 // version 2.1 of the License, or (at your option) any later version. 1708 // 1709 // The GNU C Library is distributed in the hope that it will be useful, 1710 // but WITHOUT ANY WARRANTY; without even the implied warranty of 1711 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 1712 // Lesser General Public License for more details. 1713 // 1714 // You should have received a copy of the GNU Lesser General Public 1715 // License along with the GNU C Library; if not, see 1716 // <https://www.gnu.org/licenses/>. 1717 1718 // Never include this file directly; use <sys/types.h> instead. 1719 1720 // A time value that is accurate to the nearest 1721 // microsecond but also has a range of years. 1722 type timeval = struct { 1723 tv_sec int64 1724 tv_usec int64 1725 } /* struct_timeval.h:8:1 */ 1726 1727 // NB: Include guard matches what <linux/time.h> uses. 1728 1729 // bits/types.h -- definitions of __*_t types underlying *_t types. 1730 // Copyright (C) 2002-2020 Free Software Foundation, Inc. 1731 // This file is part of the GNU C Library. 1732 // 1733 // The GNU C Library is free software; you can redistribute it and/or 1734 // modify it under the terms of the GNU Lesser General Public 1735 // License as published by the Free Software Foundation; either 1736 // version 2.1 of the License, or (at your option) any later version. 1737 // 1738 // The GNU C Library is distributed in the hope that it will be useful, 1739 // but WITHOUT ANY WARRANTY; without even the implied warranty of 1740 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 1741 // Lesser General Public License for more details. 1742 // 1743 // You should have received a copy of the GNU Lesser General Public 1744 // License along with the GNU C Library; if not, see 1745 // <https://www.gnu.org/licenses/>. 1746 1747 // Never include this file directly; use <sys/types.h> instead. 1748 1749 // Endian macros for string.h functions 1750 // Copyright (C) 1992-2020 Free Software Foundation, Inc. 1751 // This file is part of the GNU C Library. 1752 // 1753 // The GNU C Library is free software; you can redistribute it and/or 1754 // modify it under the terms of the GNU Lesser General Public 1755 // License as published by the Free Software Foundation; either 1756 // version 2.1 of the License, or (at your option) any later version. 1757 // 1758 // The GNU C Library is distributed in the hope that it will be useful, 1759 // but WITHOUT ANY WARRANTY; without even the implied warranty of 1760 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 1761 // Lesser General Public License for more details. 1762 // 1763 // You should have received a copy of the GNU Lesser General Public 1764 // License along with the GNU C Library; if not, see 1765 // <http://www.gnu.org/licenses/>. 1766 1767 // POSIX.1b structure for a time value. This is like a `struct timeval' but 1768 // has nanoseconds instead of microseconds. 1769 type timespec = struct { 1770 tv_sec int64 1771 tv_nsec int64 1772 } /* struct_timespec.h:10:1 */ 1773 1774 type suseconds_t = int64 /* select.h:43:23 */ 1775 1776 // Some versions of <linux/posix_types.h> define this macros. 1777 // It's easier to assume 8-bit bytes than to get CHAR_BIT. 1778 1779 // fd_set for select and pselect. 1780 type fd_set = struct{ __fds_bits [16]int64 } /* select.h:70:5 */ 1781 1782 // Maximum number of file descriptors in `fd_set'. 1783 1784 // Sometimes the fd_set member is assumed to have this type. 1785 type fd_mask = int64 /* select.h:77:19 */ 1786 1787 // Define some inlines helping to catch common problems. 1788 1789 type blksize_t = int64 /* types.h:185:21 */ 1790 1791 // Types from the Large File Support interface. 1792 type blkcnt_t = int64 /* types.h:205:22 */ // Type to count number of disk blocks. 1793 type fsblkcnt_t = uint64 /* types.h:209:24 */ // Type to count file system blocks. 1794 type fsfilcnt_t = uint64 /* types.h:213:24 */ // Type to count file system inodes. 1795 1796 type blkcnt64_t = int64 /* types.h:219:22 */ // Type to count number of disk blocks. 1797 type fsblkcnt64_t = uint64 /* types.h:220:24 */ // Type to count file system blocks. 1798 type fsfilcnt64_t = uint64 /* types.h:221:24 */ // Type to count file system inodes. 1799 1800 // Now add the thread types. 1801 // Declaration of common pthread types for all architectures. 1802 // Copyright (C) 2017-2020 Free Software Foundation, Inc. 1803 // This file is part of the GNU C Library. 1804 // 1805 // The GNU C Library is free software; you can redistribute it and/or 1806 // modify it under the terms of the GNU Lesser General Public 1807 // License as published by the Free Software Foundation; either 1808 // version 2.1 of the License, or (at your option) any later version. 1809 // 1810 // The GNU C Library is distributed in the hope that it will be useful, 1811 // but WITHOUT ANY WARRANTY; without even the implied warranty of 1812 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 1813 // Lesser General Public License for more details. 1814 // 1815 // You should have received a copy of the GNU Lesser General Public 1816 // License along with the GNU C Library; if not, see 1817 // <https://www.gnu.org/licenses/>. 1818 1819 // For internal mutex and condition variable definitions. 1820 // Common threading primitives definitions for both POSIX and C11. 1821 // Copyright (C) 2017-2020 Free Software Foundation, Inc. 1822 // This file is part of the GNU C Library. 1823 // 1824 // The GNU C Library is free software; you can redistribute it and/or 1825 // modify it under the terms of the GNU Lesser General Public 1826 // License as published by the Free Software Foundation; either 1827 // version 2.1 of the License, or (at your option) any later version. 1828 // 1829 // The GNU C Library is distributed in the hope that it will be useful, 1830 // but WITHOUT ANY WARRANTY; without even the implied warranty of 1831 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 1832 // Lesser General Public License for more details. 1833 // 1834 // You should have received a copy of the GNU Lesser General Public 1835 // License along with the GNU C Library; if not, see 1836 // <https://www.gnu.org/licenses/>. 1837 1838 // Arch-specific definitions. Each architecture must define the following 1839 // macros to define the expected sizes of pthread data types: 1840 // 1841 // __SIZEOF_PTHREAD_ATTR_T - size of pthread_attr_t. 1842 // __SIZEOF_PTHREAD_MUTEX_T - size of pthread_mutex_t. 1843 // __SIZEOF_PTHREAD_MUTEXATTR_T - size of pthread_mutexattr_t. 1844 // __SIZEOF_PTHREAD_COND_T - size of pthread_cond_t. 1845 // __SIZEOF_PTHREAD_CONDATTR_T - size of pthread_condattr_t. 1846 // __SIZEOF_PTHREAD_RWLOCK_T - size of pthread_rwlock_t. 1847 // __SIZEOF_PTHREAD_RWLOCKATTR_T - size of pthread_rwlockattr_t. 1848 // __SIZEOF_PTHREAD_BARRIER_T - size of pthread_barrier_t. 1849 // __SIZEOF_PTHREAD_BARRIERATTR_T - size of pthread_barrierattr_t. 1850 // 1851 // The additional macro defines any constraint for the lock alignment 1852 // inside the thread structures: 1853 // 1854 // __LOCK_ALIGNMENT - for internal lock/futex usage. 1855 // 1856 // Same idea but for the once locking primitive: 1857 // 1858 // __ONCE_ALIGNMENT - for pthread_once_t/once_flag definition. 1859 1860 // Machine-specific pthread type layouts. Generic version. 1861 // Copyright (C) 2019-2020 Free Software Foundation, Inc. 1862 // 1863 // This file is part of the GNU C Library. 1864 // 1865 // The GNU C Library is free software; you can redistribute it and/or 1866 // modify it under the terms of the GNU Lesser General Public 1867 // License as published by the Free Software Foundation; either 1868 // version 2.1 of the License, or (at your option) any later version. 1869 // 1870 // The GNU C Library is distributed in the hope that it will be useful, 1871 // but WITHOUT ANY WARRANTY; without even the implied warranty of 1872 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 1873 // Lesser General Public License for more details. 1874 // 1875 // You should have received a copy of the GNU Lesser General Public 1876 // License along with the GNU C Library; if not, see 1877 // <http://www.gnu.org/licenses/>. 1878 1879 // Determine the wordsize from the preprocessor defines. 1880 1881 // Common definition of pthread_mutex_t. 1882 1883 type __pthread_internal_list = struct { 1884 __prev uintptr 1885 __next uintptr 1886 } /* thread-shared-types.h:49:9 */ 1887 1888 type __pthread_internal_slist = struct{ __next uintptr } /* thread-shared-types.h:55:9 */ 1889 1890 // Arch-specific mutex definitions. A generic implementation is provided 1891 // by sysdeps/nptl/bits/struct_mutex.h. If required, an architecture 1892 // can override it by defining: 1893 // 1894 // 1. struct __pthread_mutex_s (used on both pthread_mutex_t and mtx_t 1895 // definition). It should contains at least the internal members 1896 // defined in the generic version. 1897 // 1898 // 2. __LOCK_ALIGNMENT for any extra attribute for internal lock used with 1899 // atomic operations. 1900 // 1901 // 3. The macro __PTHREAD_MUTEX_INITIALIZER used for static initialization. 1902 // It should initialize the mutex internal flag. 1903 1904 // S390 internal mutex struct definitions. 1905 // Copyright (C) 2019-2020 Free Software Foundation, Inc. 1906 // This file is part of the GNU C Library. 1907 // 1908 // The GNU C Library is free software; you can redistribute it and/or 1909 // modify it under the terms of the GNU Lesser General Public 1910 // License as published by the Free Software Foundation; either 1911 // version 2.1 of the License, or (at your option) any later version. 1912 // 1913 // The GNU C Library is distributed in the hope that it will be useful, 1914 // but WITHOUT ANY WARRANTY; without even the implied warranty of 1915 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 1916 // Lesser General Public License for more details. 1917 // 1918 // You should have received a copy of the GNU Lesser General Public 1919 // License along with the GNU C Library; if not, see 1920 // <http://www.gnu.org/licenses/>. 1921 1922 type __pthread_mutex_s = struct { 1923 __lock int32 1924 __count uint32 1925 __owner int32 1926 __nusers uint32 1927 __kind int32 1928 __spins int16 1929 __elision int16 1930 __list struct { 1931 __prev uintptr 1932 __next uintptr 1933 } 1934 } /* struct_mutex.h:22:1 */ 1935 1936 // Arch-sepecific read-write lock definitions. A generic implementation is 1937 // provided by struct_rwlock.h. If required, an architecture can override it 1938 // by defining: 1939 // 1940 // 1. struct __pthread_rwlock_arch_t (used on pthread_rwlock_t definition). 1941 // It should contain at least the internal members defined in the 1942 // generic version. 1943 // 1944 // 2. The macro __PTHREAD_RWLOCK_INITIALIZER used for static initialization. 1945 // It should initialize the rwlock internal type. 1946 1947 // S390 internal rwlock struct definitions. 1948 // Copyright (C) 2019-2020 Free Software Foundation, Inc. 1949 // 1950 // This file is part of the GNU C Library. 1951 // 1952 // The GNU C Library is free software; you can redistribute it and/or 1953 // modify it under the terms of the GNU Lesser General Public 1954 // License as published by the Free Software Foundation; either 1955 // version 2.1 of the License, or (at your option) any later version. 1956 // 1957 // The GNU C Library is distributed in the hope that it will be useful, 1958 // but WITHOUT ANY WARRANTY; without even the implied warranty of 1959 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 1960 // Lesser General Public License for more details. 1961 // 1962 // You should have received a copy of the GNU Lesser General Public 1963 // License along with the GNU C Library; if not, see 1964 // <http://www.gnu.org/licenses/>. 1965 1966 type __pthread_rwlock_arch_t = struct { 1967 __readers uint32 1968 __writers uint32 1969 __wrphase_futex uint32 1970 __writers_futex uint32 1971 __pad3 uint32 1972 __pad4 uint32 1973 __cur_writer int32 1974 __shared int32 1975 __pad1 uint64 1976 __pad2 uint64 1977 __flags uint32 1978 _ [4]byte 1979 } /* struct_rwlock.h:23:1 */ 1980 1981 // Common definition of pthread_cond_t. 1982 1983 type __pthread_cond_s = struct { 1984 __0 struct{ __wseq uint64 } 1985 __8 struct{ __g1_start uint64 } 1986 __g_refs [2]uint32 1987 __g_size [2]uint32 1988 __g1_orig_size uint32 1989 __wrefs uint32 1990 __g_signals [2]uint32 1991 } /* thread-shared-types.h:92:1 */ 1992 1993 // Thread identifiers. The structure of the attribute type is not 1994 // exposed on purpose. 1995 type pthread_t = uint64 /* pthreadtypes.h:27:27 */ 1996 1997 // Data structures for mutex handling. The structure of the attribute 1998 // type is not exposed on purpose. 1999 type pthread_mutexattr_t = struct { 2000 _ [0]uint32 2001 __size [4]uint8 2002 } /* pthreadtypes.h:36:3 */ 2003 2004 // Data structure for condition variable handling. The structure of 2005 // the attribute type is not exposed on purpose. 2006 type pthread_condattr_t = struct { 2007 _ [0]uint32 2008 __size [4]uint8 2009 } /* pthreadtypes.h:45:3 */ 2010 2011 // Keys for thread-specific data 2012 type pthread_key_t = uint32 /* pthreadtypes.h:49:22 */ 2013 2014 // Once-only execution 2015 type pthread_once_t = int32 /* pthreadtypes.h:53:30 */ 2016 2017 type pthread_attr_t1 = struct { 2018 _ [0]uint64 2019 __size [56]uint8 2020 } /* pthreadtypes.h:56:1 */ 2021 2022 type pthread_attr_t = pthread_attr_t1 /* pthreadtypes.h:62:30 */ 2023 2024 type pthread_mutex_t = struct{ __data __pthread_mutex_s } /* pthreadtypes.h:72:3 */ 2025 2026 type pthread_cond_t = struct{ __data __pthread_cond_s } /* pthreadtypes.h:80:3 */ 2027 2028 // Data structure for reader-writer lock variable handling. The 2029 // structure of the attribute type is deliberately not exposed. 2030 type pthread_rwlock_t = struct{ __data __pthread_rwlock_arch_t } /* pthreadtypes.h:91:3 */ 2031 2032 type pthread_rwlockattr_t = struct { 2033 _ [0]uint64 2034 __size [8]uint8 2035 } /* pthreadtypes.h:97:3 */ 2036 2037 // POSIX spinlock data type. 2038 type pthread_spinlock_t = int32 /* pthreadtypes.h:103:22 */ 2039 2040 // POSIX barriers data type. The structure of the type is 2041 // deliberately not exposed. 2042 type pthread_barrier_t = struct { 2043 _ [0]uint64 2044 __size [32]uint8 2045 } /* pthreadtypes.h:112:3 */ 2046 2047 type pthread_barrierattr_t = struct { 2048 _ [0]uint32 2049 __size [4]uint8 2050 } /* pthreadtypes.h:118:3 */ 2051 2052 // Define the standard macros for the user, 2053 // if this invocation was from the user program. 2054 2055 // Define va_list, if desired, from __gnuc_va_list. 2056 // We deliberately do not define va_list when called from 2057 // stdio.h, because ANSI C says that stdio.h is not supposed to define 2058 // va_list. stdio.h needs to have access to that data type, 2059 // but must not use that name. It should use the name __gnuc_va_list, 2060 // which is safe because it is reserved for the implementation. 2061 2062 // The macro _VA_LIST_ is the same thing used by this file in Ultrix. 2063 // But on BSD NET2 we must not test or define or undef it. 2064 // (Note that the comments in NET 2's ansi.h 2065 // are incorrect for _VA_LIST_--see stdio.h!) 2066 // The macro _VA_LIST_DEFINED is used in Windows NT 3.5 2067 // The macro _VA_LIST is used in SCO Unix 3.2. 2068 // The macro _VA_LIST_T_H is used in the Bull dpx2 2069 // The macro __va_list__ is used by BeOS. 2070 type va_list = uintptr /* stdarg.h:99:24 */ 2071 2072 // a little trick to accommodate both "#define _LARGEFILE64_SOURCE" and 2073 // "#define _LARGEFILE64_SOURCE 1" as requesting 64-bit operations, (even 2074 // though the former does not conform to the LFS document), but considering 2075 // both "#undef _LARGEFILE64_SOURCE" and "#define _LARGEFILE64_SOURCE 0" as 2076 // equivalently requesting no 64-bit operations 2077 2078 // Copyright (C) 1991-2020 Free Software Foundation, Inc. 2079 // This file is part of the GNU C Library. 2080 // 2081 // The GNU C Library is free software; you can redistribute it and/or 2082 // modify it under the terms of the GNU Lesser General Public 2083 // License as published by the Free Software Foundation; either 2084 // version 2.1 of the License, or (at your option) any later version. 2085 // 2086 // The GNU C Library is distributed in the hope that it will be useful, 2087 // but WITHOUT ANY WARRANTY; without even the implied warranty of 2088 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 2089 // Lesser General Public License for more details. 2090 // 2091 // You should have received a copy of the GNU Lesser General Public 2092 // License along with the GNU C Library; if not, see 2093 // <https://www.gnu.org/licenses/>. 2094 2095 // POSIX Standard: 2.10 Symbolic Constants <unistd.h> 2096 2097 // Copyright (C) 1991-2020 Free Software Foundation, Inc. 2098 // This file is part of the GNU C Library. 2099 // 2100 // The GNU C Library is free software; you can redistribute it and/or 2101 // modify it under the terms of the GNU Lesser General Public 2102 // License as published by the Free Software Foundation; either 2103 // version 2.1 of the License, or (at your option) any later version. 2104 // 2105 // The GNU C Library is distributed in the hope that it will be useful, 2106 // but WITHOUT ANY WARRANTY; without even the implied warranty of 2107 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 2108 // Lesser General Public License for more details. 2109 // 2110 // You should have received a copy of the GNU Lesser General Public 2111 // License along with the GNU C Library; if not, see 2112 // <https://www.gnu.org/licenses/>. 2113 2114 // These may be used to determine what facilities are present at compile time. 2115 // Their values can be obtained at run time from `sysconf'. 2116 2117 // POSIX Standard approved as ISO/IEC 9945-1 as of September 2008. 2118 2119 // These are not #ifdef __USE_POSIX2 because they are 2120 // in the theoretically application-owned namespace. 2121 2122 // The utilities on GNU systems also correspond to this version. 2123 2124 // The utilities on GNU systems also correspond to this version. 2125 2126 // This symbol was required until the 2001 edition of POSIX. 2127 2128 // If defined, the implementation supports the 2129 // C Language Bindings Option. 2130 2131 // If defined, the implementation supports the 2132 // C Language Development Utilities Option. 2133 2134 // If defined, the implementation supports the 2135 // Software Development Utilities Option. 2136 2137 // If defined, the implementation supports the 2138 // creation of locales with the localedef utility. 2139 2140 // X/Open version number to which the library conforms. It is selectable. 2141 2142 // Commands and utilities from XPG4 are available. 2143 2144 // We are compatible with the old published standards as well. 2145 2146 // The X/Open Unix extensions are available. 2147 2148 // The enhanced internationalization capabilities according to XPG4.2 2149 // are present. 2150 2151 // The legacy interfaces are also available. 2152 2153 // Get values of POSIX options: 2154 // 2155 // If these symbols are defined, the corresponding features are 2156 // always available. If not, they may be available sometimes. 2157 // The current values can be obtained with `sysconf'. 2158 // 2159 // _POSIX_JOB_CONTROL Job control is supported. 2160 // _POSIX_SAVED_IDS Processes have a saved set-user-ID 2161 // and a saved set-group-ID. 2162 // _POSIX_REALTIME_SIGNALS Real-time, queued signals are supported. 2163 // _POSIX_PRIORITY_SCHEDULING Priority scheduling is supported. 2164 // _POSIX_TIMERS POSIX.4 clocks and timers are supported. 2165 // _POSIX_ASYNCHRONOUS_IO Asynchronous I/O is supported. 2166 // _POSIX_PRIORITIZED_IO Prioritized asynchronous I/O is supported. 2167 // _POSIX_SYNCHRONIZED_IO Synchronizing file data is supported. 2168 // _POSIX_FSYNC The fsync function is present. 2169 // _POSIX_MAPPED_FILES Mapping of files to memory is supported. 2170 // _POSIX_MEMLOCK Locking of all memory is supported. 2171 // _POSIX_MEMLOCK_RANGE Locking of ranges of memory is supported. 2172 // _POSIX_MEMORY_PROTECTION Setting of memory protections is supported. 2173 // _POSIX_MESSAGE_PASSING POSIX.4 message queues are supported. 2174 // _POSIX_SEMAPHORES POSIX.4 counting semaphores are supported. 2175 // _POSIX_SHARED_MEMORY_OBJECTS POSIX.4 shared memory objects are supported. 2176 // _POSIX_THREADS POSIX.1c pthreads are supported. 2177 // _POSIX_THREAD_ATTR_STACKADDR Thread stack address attribute option supported. 2178 // _POSIX_THREAD_ATTR_STACKSIZE Thread stack size attribute option supported. 2179 // _POSIX_THREAD_SAFE_FUNCTIONS Thread-safe functions are supported. 2180 // _POSIX_THREAD_PRIORITY_SCHEDULING 2181 // POSIX.1c thread execution scheduling supported. 2182 // _POSIX_THREAD_PRIO_INHERIT Thread priority inheritance option supported. 2183 // _POSIX_THREAD_PRIO_PROTECT Thread priority protection option supported. 2184 // _POSIX_THREAD_PROCESS_SHARED Process-shared synchronization supported. 2185 // _POSIX_PII Protocol-independent interfaces are supported. 2186 // _POSIX_PII_XTI XTI protocol-indep. interfaces are supported. 2187 // _POSIX_PII_SOCKET Socket protocol-indep. interfaces are supported. 2188 // _POSIX_PII_INTERNET Internet family of protocols supported. 2189 // _POSIX_PII_INTERNET_STREAM Connection-mode Internet protocol supported. 2190 // _POSIX_PII_INTERNET_DGRAM Connectionless Internet protocol supported. 2191 // _POSIX_PII_OSI ISO/OSI family of protocols supported. 2192 // _POSIX_PII_OSI_COTS Connection-mode ISO/OSI service supported. 2193 // _POSIX_PII_OSI_CLTS Connectionless ISO/OSI service supported. 2194 // _POSIX_POLL Implementation supports `poll' function. 2195 // _POSIX_SELECT Implementation supports `select' and `pselect'. 2196 // 2197 // _XOPEN_REALTIME X/Open realtime support is available. 2198 // _XOPEN_REALTIME_THREADS X/Open realtime thread support is available. 2199 // _XOPEN_SHM Shared memory interface according to XPG4.2. 2200 // 2201 // _XBS5_ILP32_OFF32 Implementation provides environment with 32-bit 2202 // int, long, pointer, and off_t types. 2203 // _XBS5_ILP32_OFFBIG Implementation provides environment with 32-bit 2204 // int, long, and pointer and off_t with at least 2205 // 64 bits. 2206 // _XBS5_LP64_OFF64 Implementation provides environment with 32-bit 2207 // int, and 64-bit long, pointer, and off_t types. 2208 // _XBS5_LPBIG_OFFBIG Implementation provides environment with at 2209 // least 32 bits int and long, pointer, and off_t 2210 // with at least 64 bits. 2211 // 2212 // If any of these symbols is defined as -1, the corresponding option is not 2213 // true for any file. If any is defined as other than -1, the corresponding 2214 // option is true for all files. If a symbol is not defined at all, the value 2215 // for a specific file can be obtained from `pathconf' and `fpathconf'. 2216 // 2217 // _POSIX_CHOWN_RESTRICTED Only the super user can use `chown' to change 2218 // the owner of a file. `chown' can only be used 2219 // to change the group ID of a file to a group of 2220 // which the calling process is a member. 2221 // _POSIX_NO_TRUNC Pathname components longer than 2222 // NAME_MAX generate an error. 2223 // _POSIX_VDISABLE If defined, if the value of an element of the 2224 // `c_cc' member of `struct termios' is 2225 // _POSIX_VDISABLE, no character will have the 2226 // effect associated with that element. 2227 // _POSIX_SYNC_IO Synchronous I/O may be performed. 2228 // _POSIX_ASYNC_IO Asynchronous I/O may be performed. 2229 // _POSIX_PRIO_IO Prioritized Asynchronous I/O may be performed. 2230 // 2231 // Support for the Large File Support interface is not generally available. 2232 // If it is available the following constants are defined to one. 2233 // _LFS64_LARGEFILE Low-level I/O supports large files. 2234 // _LFS64_STDIO Standard I/O supports large files. 2235 // 2236 2237 // Define POSIX options for Linux. 2238 // Copyright (C) 1996-2020 Free Software Foundation, Inc. 2239 // This file is part of the GNU C Library. 2240 // 2241 // The GNU C Library is free software; you can redistribute it and/or 2242 // modify it under the terms of the GNU Lesser General Public License as 2243 // published by the Free Software Foundation; either version 2.1 of the 2244 // License, or (at your option) any later version. 2245 // 2246 // The GNU C Library is distributed in the hope that it will be useful, 2247 // but WITHOUT ANY WARRANTY; without even the implied warranty of 2248 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 2249 // Lesser General Public License for more details. 2250 // 2251 // You should have received a copy of the GNU Lesser General Public 2252 // License along with the GNU C Library; see the file COPYING.LIB. If 2253 // not, see <https://www.gnu.org/licenses/>. 2254 2255 // Job control is supported. 2256 2257 // Processes have a saved set-user-ID and a saved set-group-ID. 2258 2259 // Priority scheduling is not supported with the correct semantics, 2260 // but GNU/Linux applications expect that the corresponding interfaces 2261 // are available, even though the semantics do not meet the POSIX 2262 // requirements. See glibc bug 14829. 2263 2264 // Synchronizing file data is supported. 2265 2266 // The fsync function is present. 2267 2268 // Mapping of files to memory is supported. 2269 2270 // Locking of all memory is supported. 2271 2272 // Locking of ranges of memory is supported. 2273 2274 // Setting of memory protections is supported. 2275 2276 // Some filesystems allow all users to change file ownership. 2277 2278 // `c_cc' member of 'struct termios' structure can be disabled by 2279 // using the value _POSIX_VDISABLE. 2280 2281 // Filenames are not silently truncated. 2282 2283 // X/Open realtime support is available. 2284 2285 // X/Open thread realtime support is available. 2286 2287 // XPG4.2 shared memory is supported. 2288 2289 // Tell we have POSIX threads. 2290 2291 // We have the reentrant functions described in POSIX. 2292 2293 // We provide priority scheduling for threads. 2294 2295 // We support user-defined stack sizes. 2296 2297 // We support user-defined stacks. 2298 2299 // We support priority inheritence. 2300 2301 // We support priority protection, though only for non-robust 2302 // mutexes. 2303 2304 // We support priority inheritence for robust mutexes. 2305 2306 // We do not support priority protection for robust mutexes. 2307 2308 // We support POSIX.1b semaphores. 2309 2310 // Real-time signals are supported. 2311 2312 // We support asynchronous I/O. 2313 // Alternative name for Unix98. 2314 // Support for prioritization is also available. 2315 2316 // The LFS support in asynchronous I/O is also available. 2317 2318 // The rest of the LFS is also available. 2319 2320 // POSIX shared memory objects are implemented. 2321 2322 // CPU-time clocks support needs to be checked at runtime. 2323 2324 // Clock support in threads must be also checked at runtime. 2325 2326 // GNU libc provides regular expression handling. 2327 2328 // Reader/Writer locks are available. 2329 2330 // We have a POSIX shell. 2331 2332 // We support the Timeouts option. 2333 2334 // We support spinlocks. 2335 2336 // The `spawn' function family is supported. 2337 2338 // We have POSIX timers. 2339 2340 // The barrier functions are available. 2341 2342 // POSIX message queues are available. 2343 2344 // Thread process-shared synchronization is supported. 2345 2346 // The monotonic clock might be available. 2347 2348 // The clock selection interfaces are available. 2349 2350 // Advisory information interfaces are available. 2351 2352 // IPv6 support is available. 2353 2354 // Raw socket support is available. 2355 2356 // We have at least one terminal. 2357 2358 // Neither process nor thread sporadic server interfaces is available. 2359 2360 // trace.h is not available. 2361 2362 // Typed memory objects are not available. 2363 2364 // Get the environment definitions from Unix98. 2365 // Copyright (C) 1999-2020 Free Software Foundation, Inc. 2366 // This file is part of the GNU C Library. 2367 // 2368 // The GNU C Library is free software; you can redistribute it and/or 2369 // modify it under the terms of the GNU Lesser General Public 2370 // License as published by the Free Software Foundation; either 2371 // version 2.1 of the License, or (at your option) any later version. 2372 // 2373 // The GNU C Library is distributed in the hope that it will be useful, 2374 // but WITHOUT ANY WARRANTY; without even the implied warranty of 2375 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 2376 // Lesser General Public License for more details. 2377 // 2378 // You should have received a copy of the GNU Lesser General Public 2379 // License along with the GNU C Library; if not, see 2380 // <https://www.gnu.org/licenses/>. 2381 2382 // Determine the wordsize from the preprocessor defines. 2383 2384 // This header should define the following symbols under the described 2385 // situations. A value `1' means that the model is always supported, 2386 // `-1' means it is never supported. Undefined means it cannot be 2387 // statically decided. 2388 // 2389 // _POSIX_V7_ILP32_OFF32 32bit int, long, pointers, and off_t type 2390 // _POSIX_V7_ILP32_OFFBIG 32bit int, long, and pointers and larger off_t type 2391 // 2392 // _POSIX_V7_LP64_OFF32 64bit long and pointers and 32bit off_t type 2393 // _POSIX_V7_LPBIG_OFFBIG 64bit long and pointers and large off_t type 2394 // 2395 // The macros _POSIX_V6_ILP32_OFF32, _POSIX_V6_ILP32_OFFBIG, 2396 // _POSIX_V6_LP64_OFF32, _POSIX_V6_LPBIG_OFFBIG, _XBS5_ILP32_OFF32, 2397 // _XBS5_ILP32_OFFBIG, _XBS5_LP64_OFF32, and _XBS5_LPBIG_OFFBIG were 2398 // used in previous versions of the Unix standard and are available 2399 // only for compatibility. 2400 2401 // Environments with 32-bit wide pointers are optionally provided. 2402 // Therefore following macros aren't defined: 2403 // # undef _POSIX_V7_ILP32_OFF32 2404 // # undef _POSIX_V7_ILP32_OFFBIG 2405 // # undef _POSIX_V6_ILP32_OFF32 2406 // # undef _POSIX_V6_ILP32_OFFBIG 2407 // # undef _XBS5_ILP32_OFF32 2408 // # undef _XBS5_ILP32_OFFBIG 2409 // and users need to check at runtime. 2410 2411 // We also have no use (for now) for an environment with bigger pointers 2412 // and offsets. 2413 2414 // By default we have 64-bit wide `long int', pointers and `off_t'. 2415 2416 // Standard file descriptors. 2417 2418 // All functions that are not declared anywhere else. 2419 2420 // bits/types.h -- definitions of __*_t types underlying *_t types. 2421 // Copyright (C) 2002-2020 Free Software Foundation, Inc. 2422 // This file is part of the GNU C Library. 2423 // 2424 // The GNU C Library is free software; you can redistribute it and/or 2425 // modify it under the terms of the GNU Lesser General Public 2426 // License as published by the Free Software Foundation; either 2427 // version 2.1 of the License, or (at your option) any later version. 2428 // 2429 // The GNU C Library is distributed in the hope that it will be useful, 2430 // but WITHOUT ANY WARRANTY; without even the implied warranty of 2431 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 2432 // Lesser General Public License for more details. 2433 // 2434 // You should have received a copy of the GNU Lesser General Public 2435 // License along with the GNU C Library; if not, see 2436 // <https://www.gnu.org/licenses/>. 2437 2438 // Never include this file directly; use <sys/types.h> instead. 2439 2440 // Copyright (C) 1989-2019 Free Software Foundation, Inc. 2441 // 2442 // This file is part of GCC. 2443 // 2444 // GCC is free software; you can redistribute it and/or modify 2445 // it under the terms of the GNU General Public License as published by 2446 // the Free Software Foundation; either version 3, or (at your option) 2447 // any later version. 2448 // 2449 // GCC is distributed in the hope that it will be useful, 2450 // but WITHOUT ANY WARRANTY; without even the implied warranty of 2451 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 2452 // GNU General Public License for more details. 2453 // 2454 // Under Section 7 of GPL version 3, you are granted additional 2455 // permissions described in the GCC Runtime Library Exception, version 2456 // 3.1, as published by the Free Software Foundation. 2457 // 2458 // You should have received a copy of the GNU General Public License and 2459 // a copy of the GCC Runtime Library Exception along with this program; 2460 // see the files COPYING3 and COPYING.RUNTIME respectively. If not, see 2461 // <http://www.gnu.org/licenses/>. 2462 2463 // ISO C Standard: 7.17 Common definitions <stddef.h> 2464 2465 // Any one of these symbols __need_* means that GNU libc 2466 // wants us just to define one data type. So don't define 2467 // the symbols that indicate this file's entire job has been done. 2468 2469 // This avoids lossage on SunOS but only if stdtypes.h comes first. 2470 // There's no way to win with the other order! Sun lossage. 2471 2472 // Sequent's header files use _PTRDIFF_T_ in some conflicting way. 2473 // Just ignore it. 2474 2475 // On VxWorks, <type/vxTypesBase.h> may have defined macros like 2476 // _TYPE_size_t which will typedef size_t. fixincludes patched the 2477 // vxTypesBase.h so that this macro is only defined if _GCC_SIZE_T is 2478 // not defined, and so that defining this macro defines _GCC_SIZE_T. 2479 // If we find that the macros are still defined at this point, we must 2480 // invoke them so that the type is defined as expected. 2481 2482 // In case nobody has defined these types, but we aren't running under 2483 // GCC 2.00, make sure that __PTRDIFF_TYPE__, __SIZE_TYPE__, and 2484 // __WCHAR_TYPE__ have reasonable values. This can happen if the 2485 // parts of GCC is compiled by an older compiler, that actually 2486 // include gstddef.h, such as collect2. 2487 2488 // Signed type of difference of two pointers. 2489 2490 // Define this type if we are doing the whole job, 2491 // or if we want this type in particular. 2492 2493 // If this symbol has done its job, get rid of it. 2494 2495 // Unsigned type of `sizeof' something. 2496 2497 // Define this type if we are doing the whole job, 2498 // or if we want this type in particular. 2499 2500 // Wide character type. 2501 // Locale-writers should change this as necessary to 2502 // be big enough to hold unique values not between 0 and 127, 2503 // and not (wchar_t) -1, for each defined multibyte character. 2504 2505 // Define this type if we are doing the whole job, 2506 // or if we want this type in particular. 2507 2508 // A null pointer constant. 2509 2510 // Offset of member MEMBER in a struct of type TYPE. 2511 2512 // The Single Unix specification says that some more types are 2513 // available here. 2514 2515 type useconds_t = uint32 /* unistd.h:255:22 */ 2516 2517 type intptr_t = int64 /* unistd.h:267:20 */ 2518 2519 type socklen_t = uint32 /* unistd.h:274:21 */ 2520 2521 // Define some macros helping to catch buffer overflows. 2522 2523 // System-specific extensions. 2524 // System-specific extensions of <unistd.h>, Linux version. 2525 // Copyright (C) 2019-2020 Free Software Foundation, Inc. 2526 // This file is part of the GNU C Library. 2527 // 2528 // The GNU C Library is free software; you can redistribute it and/or 2529 // modify it under the terms of the GNU Lesser General Public 2530 // License as published by the Free Software Foundation; either 2531 // version 2.1 of the License, or (at your option) any later version. 2532 // 2533 // The GNU C Library is distributed in the hope that it will be useful, 2534 // but WITHOUT ANY WARRANTY; without even the implied warranty of 2535 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 2536 // Lesser General Public License for more details. 2537 // 2538 // You should have received a copy of the GNU Lesser General Public 2539 // License along with the GNU C Library; if not, see 2540 // <https://www.gnu.org/licenses/>. 2541 2542 // MVS linker does not support external names larger than 8 bytes 2543 2544 // 2545 // The 'zlib' compression library provides in-memory compression and 2546 // decompression functions, including integrity checks of the uncompressed data. 2547 // This version of the library supports only one compression method (deflation) 2548 // but other algorithms will be added later and will have the same stream 2549 // interface. 2550 // 2551 // Compression can be done in a single step if the buffers are large enough, 2552 // or can be done by repeated calls of the compression function. In the latter 2553 // case, the application must provide more input and/or consume the output 2554 // (providing more output space) before each call. 2555 // 2556 // The compressed data format used by default by the in-memory functions is 2557 // the zlib format, which is a zlib wrapper documented in RFC 1950, wrapped 2558 // around a deflate stream, which is itself documented in RFC 1951. 2559 // 2560 // The library also supports reading and writing files in gzip (.gz) format 2561 // with an interface similar to that of stdio using the functions that start 2562 // with "gz". The gzip format is different from the zlib format. gzip is a 2563 // gzip wrapper, documented in RFC 1952, wrapped around a deflate stream. 2564 // 2565 // This library can optionally read and write gzip and raw deflate streams in 2566 // memory as well. 2567 // 2568 // The zlib format was designed to be compact and fast for use in memory 2569 // and on communications channels. The gzip format was designed for single- 2570 // file compression on file systems, has a larger header than zlib to maintain 2571 // directory information, and uses a different, slower check method than zlib. 2572 // 2573 // The library does not install any signal handler. The decoder checks 2574 // the consistency of the compressed data, so the library should never crash 2575 // even in the case of corrupted input. 2576 2577 type alloc_func = uintptr /* zlib.h:81:16 */ 2578 type free_func = uintptr /* zlib.h:82:16 */ 2579 2580 type z_stream_s = struct { 2581 next_in uintptr 2582 avail_in uInt 2583 _ [4]byte 2584 total_in uLong 2585 next_out uintptr 2586 avail_out uInt 2587 _ [4]byte 2588 total_out uLong 2589 msg uintptr 2590 state uintptr 2591 zalloc alloc_func 2592 zfree free_func 2593 opaque voidpf 2594 data_type int32 2595 _ [4]byte 2596 adler uLong 2597 reserved uLong 2598 } /* zlib.h:86:9 */ 2599 2600 type z_stream = z_stream_s /* zlib.h:106:3 */ 2601 2602 type z_streamp = uintptr /* zlib.h:108:22 */ 2603 2604 // 2605 // gzip header information passed to and from zlib routines. See RFC 1952 2606 // for more details on the meanings of these fields. 2607 type gz_header_s = struct { 2608 text int32 2609 _ [4]byte 2610 time uLong 2611 xflags int32 2612 os int32 2613 extra uintptr 2614 extra_len uInt 2615 extra_max uInt 2616 name uintptr 2617 name_max uInt 2618 _ [4]byte 2619 comment uintptr 2620 comm_max uInt 2621 hcrc int32 2622 done int32 2623 _ [4]byte 2624 } /* zlib.h:114:9 */ 2625 2626 // 2627 // gzip header information passed to and from zlib routines. See RFC 1952 2628 // for more details on the meanings of these fields. 2629 type gz_header = gz_header_s /* zlib.h:129:3 */ 2630 2631 type gz_headerp = uintptr /* zlib.h:131:23 */ 2632 // 2633 // inflateGetHeader() requests that gzip header information be stored in the 2634 // provided gz_header structure. inflateGetHeader() may be called after 2635 // inflateInit2() or inflateReset(), and before the first call of inflate(). 2636 // As inflate() processes the gzip stream, head->done is zero until the header 2637 // is completed, at which time head->done is set to one. If a zlib stream is 2638 // being decoded, then head->done is set to -1 to indicate that there will be 2639 // no gzip header information forthcoming. Note that Z_BLOCK or Z_TREES can be 2640 // used to force inflate() to return immediately after header processing is 2641 // complete and before any actual data is decompressed. 2642 // 2643 // The text, time, xflags, and os fields are filled in with the gzip header 2644 // contents. hcrc is set to true if there is a header CRC. (The header CRC 2645 // was valid if done is set to one.) If extra is not Z_NULL, then extra_max 2646 // contains the maximum number of bytes to write to extra. Once done is true, 2647 // extra_len contains the actual extra field length, and extra contains the 2648 // extra field, or that field truncated if extra_max is less than extra_len. 2649 // If name is not Z_NULL, then up to name_max characters are written there, 2650 // terminated with a zero unless the length is greater than name_max. If 2651 // comment is not Z_NULL, then up to comm_max characters are written there, 2652 // terminated with a zero unless the length is greater than comm_max. When any 2653 // of extra, name, or comment are not Z_NULL and the respective field is not 2654 // present in the header, then that field is set to Z_NULL to signal its 2655 // absence. This allows the use of deflateSetHeader() with the returned 2656 // structure to duplicate the header. However if those fields are set to 2657 // allocated memory, then the application will need to save those pointers 2658 // elsewhere so that they can be eventually freed. 2659 // 2660 // If inflateGetHeader is not used, then the header information is simply 2661 // discarded. The header is always checked for validity, including the header 2662 // CRC if present. inflateReset() will reset the process to discard the header 2663 // information. The application would need to call inflateGetHeader() again to 2664 // retrieve the header from the next gzip stream. 2665 // 2666 // inflateGetHeader returns Z_OK if success, or Z_STREAM_ERROR if the source 2667 // stream state was inconsistent. 2668 2669 // 2670 // ZEXTERN int ZEXPORT inflateBackInit OF((z_streamp strm, int windowBits, 2671 // unsigned char FAR *window)); 2672 // 2673 // Initialize the internal stream state for decompression using inflateBack() 2674 // calls. The fields zalloc, zfree and opaque in strm must be initialized 2675 // before the call. If zalloc and zfree are Z_NULL, then the default library- 2676 // derived memory allocation routines are used. windowBits is the base two 2677 // logarithm of the window size, in the range 8..15. window is a caller 2678 // supplied buffer of that size. Except for special applications where it is 2679 // assured that deflate was used with small window sizes, windowBits must be 15 2680 // and a 32K byte window must be supplied to be able to decompress general 2681 // deflate streams. 2682 // 2683 // See inflateBack() for the usage of these routines. 2684 // 2685 // inflateBackInit will return Z_OK on success, Z_STREAM_ERROR if any of 2686 // the parameters are invalid, Z_MEM_ERROR if the internal state could not be 2687 // allocated, or Z_VERSION_ERROR if the version of the library does not match 2688 // the version of the header file. 2689 2690 type in_func = uintptr /* zlib.h:1092:18 */ 2691 type out_func = uintptr /* zlib.h:1094:13 */ 2692 // 2693 // Same as uncompress, except that sourceLen is a pointer, where the 2694 // length of the source is *sourceLen. On return, *sourceLen is the number of 2695 // source bytes consumed. 2696 2697 // gzip file access functions 2698 2699 // 2700 // This library supports reading and writing files in gzip (.gz) format with 2701 // an interface similar to that of stdio, using the functions that start with 2702 // "gz". The gzip format is different from the zlib format. gzip is a gzip 2703 // wrapper, documented in RFC 1952, wrapped around a deflate stream. 2704 2705 type gzFile_s = struct { 2706 have uint32 2707 _ [4]byte 2708 next uintptr 2709 pos off64_t 2710 } /* zlib.h:1300:9 */ 2711 2712 // 2713 // Same as uncompress, except that sourceLen is a pointer, where the 2714 // length of the source is *sourceLen. On return, *sourceLen is the number of 2715 // source bytes consumed. 2716 2717 // gzip file access functions 2718 2719 // 2720 // This library supports reading and writing files in gzip (.gz) format with 2721 // an interface similar to that of stdio, using the functions that start with 2722 // "gz". The gzip format is different from the zlib format. gzip is a gzip 2723 // wrapper, documented in RFC 1952, wrapped around a deflate stream. 2724 2725 type gzFile = uintptr /* zlib.h:1300:25 */ 2726 2727 // The tag name of this struct is _G_fpos_t to preserve historic 2728 // C++ mangled names for functions taking fpos_t arguments. 2729 // That name should not be used in new code. 2730 type _G_fpos_t = struct { 2731 __pos int64 2732 __state struct { 2733 __count int32 2734 __value struct{ __wch uint32 } 2735 } 2736 } /* __fpos_t.h:10:9 */ 2737 2738 // bits/types.h -- definitions of __*_t types underlying *_t types. 2739 // Copyright (C) 2002-2020 Free Software Foundation, Inc. 2740 // This file is part of the GNU C Library. 2741 // 2742 // The GNU C Library is free software; you can redistribute it and/or 2743 // modify it under the terms of the GNU Lesser General Public 2744 // License as published by the Free Software Foundation; either 2745 // version 2.1 of the License, or (at your option) any later version. 2746 // 2747 // The GNU C Library is distributed in the hope that it will be useful, 2748 // but WITHOUT ANY WARRANTY; without even the implied warranty of 2749 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 2750 // Lesser General Public License for more details. 2751 // 2752 // You should have received a copy of the GNU Lesser General Public 2753 // License along with the GNU C Library; if not, see 2754 // <https://www.gnu.org/licenses/>. 2755 2756 // Never include this file directly; use <sys/types.h> instead. 2757 2758 // The tag name of this struct is _G_fpos64_t to preserve historic 2759 // C++ mangled names for functions taking fpos_t and/or fpos64_t 2760 // arguments. That name should not be used in new code. 2761 type _G_fpos64_t = struct { 2762 __pos int64 2763 __state struct { 2764 __count int32 2765 __value struct{ __wch uint32 } 2766 } 2767 } /* __fpos64_t.h:10:9 */ 2768 2769 type _IO_FILE = struct { 2770 _flags int32 2771 _ [4]byte 2772 _IO_read_ptr uintptr 2773 _IO_read_end uintptr 2774 _IO_read_base uintptr 2775 _IO_write_base uintptr 2776 _IO_write_ptr uintptr 2777 _IO_write_end uintptr 2778 _IO_buf_base uintptr 2779 _IO_buf_end uintptr 2780 _IO_save_base uintptr 2781 _IO_backup_base uintptr 2782 _IO_save_end uintptr 2783 _markers uintptr 2784 _chain uintptr 2785 _fileno int32 2786 _flags2 int32 2787 _old_offset int64 2788 _cur_column uint16 2789 _vtable_offset int8 2790 _shortbuf [1]uint8 2791 _ [4]byte 2792 _lock uintptr 2793 _offset int64 2794 _codecvt uintptr 2795 _wide_data uintptr 2796 _freeres_list uintptr 2797 _freeres_buf uintptr 2798 __pad5 size_t 2799 _mode int32 2800 _unused2 [20]uint8 2801 } /* __FILE.h:4:1 */ 2802 2803 // The opaque type of streams. This is the definition used elsewhere. 2804 type FILE = _IO_FILE /* FILE.h:7:25 */ 2805 2806 // These macros are used by bits/stdio.h and internal headers. 2807 2808 // Many more flag bits are defined internally. 2809 2810 // The type of the second argument to `fgetpos' and `fsetpos'. 2811 type fpos_t = _G_fpos64_t /* stdio.h:86:20 */ 2812 type fpos64_t = _G_fpos64_t /* stdio.h:89:20 */ 2813 2814 // POSIX.1-2008 extended locale interface (see locale.h). 2815 // Definition of locale_t. 2816 // Copyright (C) 2017-2020 Free Software Foundation, Inc. 2817 // This file is part of the GNU C Library. 2818 // 2819 // The GNU C Library is free software; you can redistribute it and/or 2820 // modify it under the terms of the GNU Lesser General Public 2821 // License as published by the Free Software Foundation; either 2822 // version 2.1 of the License, or (at your option) any later version. 2823 // 2824 // The GNU C Library is distributed in the hope that it will be useful, 2825 // but WITHOUT ANY WARRANTY; without even the implied warranty of 2826 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 2827 // Lesser General Public License for more details. 2828 // 2829 // You should have received a copy of the GNU Lesser General Public 2830 // License along with the GNU C Library; if not, see 2831 // <https://www.gnu.org/licenses/>. 2832 2833 // Definition of struct __locale_struct and __locale_t. 2834 // Copyright (C) 1997-2020 Free Software Foundation, Inc. 2835 // This file is part of the GNU C Library. 2836 // Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997. 2837 // 2838 // The GNU C Library is free software; you can redistribute it and/or 2839 // modify it under the terms of the GNU Lesser General Public 2840 // License as published by the Free Software Foundation; either 2841 // version 2.1 of the License, or (at your option) any later version. 2842 // 2843 // The GNU C Library is distributed in the hope that it will be useful, 2844 // but WITHOUT ANY WARRANTY; without even the implied warranty of 2845 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 2846 // Lesser General Public License for more details. 2847 // 2848 // You should have received a copy of the GNU Lesser General Public 2849 // License along with the GNU C Library; if not, see 2850 // <https://www.gnu.org/licenses/>. 2851 2852 // POSIX.1-2008: the locale_t type, representing a locale context 2853 // (implementation-namespace version). This type should be treated 2854 // as opaque by applications; some details are exposed for the sake of 2855 // efficiency in e.g. ctype functions. 2856 2857 type __locale_struct = struct { 2858 __locales [13]uintptr 2859 __ctype_b uintptr 2860 __ctype_tolower uintptr 2861 __ctype_toupper uintptr 2862 __names [13]uintptr 2863 } /* __locale_t.h:28:1 */ 2864 2865 type locale_t = uintptr /* locale_t.h:24:20 */ 2866 2867 // Copyright (C) 1991-2020 Free Software Foundation, Inc. 2868 // This file is part of the GNU C Library. 2869 // 2870 // The GNU C Library is free software; you can redistribute it and/or 2871 // modify it under the terms of the GNU Lesser General Public 2872 // License as published by the Free Software Foundation; either 2873 // version 2.1 of the License, or (at your option) any later version. 2874 // 2875 // The GNU C Library is distributed in the hope that it will be useful, 2876 // but WITHOUT ANY WARRANTY; without even the implied warranty of 2877 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 2878 // Lesser General Public License for more details. 2879 // 2880 // You should have received a copy of the GNU Lesser General Public 2881 // License along with the GNU C Library; if not, see 2882 // <https://www.gnu.org/licenses/>. 2883 2884 // ISO C99 Standard: 7.20 General utilities <stdlib.h> 2885 2886 // Handle feature test macros at the start of a header. 2887 // Copyright (C) 2016-2020 Free Software Foundation, Inc. 2888 // This file is part of the GNU C Library. 2889 // 2890 // The GNU C Library is free software; you can redistribute it and/or 2891 // modify it under the terms of the GNU Lesser General Public 2892 // License as published by the Free Software Foundation; either 2893 // version 2.1 of the License, or (at your option) any later version. 2894 // 2895 // The GNU C Library is distributed in the hope that it will be useful, 2896 // but WITHOUT ANY WARRANTY; without even the implied warranty of 2897 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 2898 // Lesser General Public License for more details. 2899 // 2900 // You should have received a copy of the GNU Lesser General Public 2901 // License along with the GNU C Library; if not, see 2902 // <https://www.gnu.org/licenses/>. 2903 2904 // This header is internal to glibc and should not be included outside 2905 // of glibc headers. Headers including it must define 2906 // __GLIBC_INTERNAL_STARTING_HEADER_IMPLEMENTATION first. This header 2907 // cannot have multiple include guards because ISO C feature test 2908 // macros depend on the definition of the macro when an affected 2909 // header is included, not when the first system header is 2910 // included. 2911 2912 // Copyright (C) 1991-2020 Free Software Foundation, Inc. 2913 // This file is part of the GNU C Library. 2914 // 2915 // The GNU C Library is free software; you can redistribute it and/or 2916 // modify it under the terms of the GNU Lesser General Public 2917 // License as published by the Free Software Foundation; either 2918 // version 2.1 of the License, or (at your option) any later version. 2919 // 2920 // The GNU C Library is distributed in the hope that it will be useful, 2921 // but WITHOUT ANY WARRANTY; without even the implied warranty of 2922 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 2923 // Lesser General Public License for more details. 2924 // 2925 // You should have received a copy of the GNU Lesser General Public 2926 // License along with the GNU C Library; if not, see 2927 // <https://www.gnu.org/licenses/>. 2928 2929 // ISO/IEC TR 24731-2:2010 defines the __STDC_WANT_LIB_EXT2__ 2930 // macro. 2931 2932 // ISO/IEC TS 18661-1:2014 defines the __STDC_WANT_IEC_60559_BFP_EXT__ 2933 // macro. Most but not all symbols enabled by that macro in TS 2934 // 18661-1 are enabled unconditionally in C2X; the symbols in Annex F 2935 // still require that macro in C2X. 2936 2937 // ISO/IEC TS 18661-4:2015 defines the 2938 // __STDC_WANT_IEC_60559_FUNCS_EXT__ macro. Other than the reduction 2939 // functions, the symbols from this TS are enabled unconditionally in 2940 // C2X. 2941 2942 // ISO/IEC TS 18661-3:2015 defines the 2943 // __STDC_WANT_IEC_60559_TYPES_EXT__ macro. 2944 2945 // Get size_t, wchar_t and NULL from <stddef.h>. 2946 // Copyright (C) 1989-2019 Free Software Foundation, Inc. 2947 // 2948 // This file is part of GCC. 2949 // 2950 // GCC is free software; you can redistribute it and/or modify 2951 // it under the terms of the GNU General Public License as published by 2952 // the Free Software Foundation; either version 3, or (at your option) 2953 // any later version. 2954 // 2955 // GCC is distributed in the hope that it will be useful, 2956 // but WITHOUT ANY WARRANTY; without even the implied warranty of 2957 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 2958 // GNU General Public License for more details. 2959 // 2960 // Under Section 7 of GPL version 3, you are granted additional 2961 // permissions described in the GCC Runtime Library Exception, version 2962 // 3.1, as published by the Free Software Foundation. 2963 // 2964 // You should have received a copy of the GNU General Public License and 2965 // a copy of the GCC Runtime Library Exception along with this program; 2966 // see the files COPYING3 and COPYING.RUNTIME respectively. If not, see 2967 // <http://www.gnu.org/licenses/>. 2968 2969 // ISO C Standard: 7.17 Common definitions <stddef.h> 2970 2971 // Any one of these symbols __need_* means that GNU libc 2972 // wants us just to define one data type. So don't define 2973 // the symbols that indicate this file's entire job has been done. 2974 2975 // This avoids lossage on SunOS but only if stdtypes.h comes first. 2976 // There's no way to win with the other order! Sun lossage. 2977 2978 // Sequent's header files use _PTRDIFF_T_ in some conflicting way. 2979 // Just ignore it. 2980 2981 // On VxWorks, <type/vxTypesBase.h> may have defined macros like 2982 // _TYPE_size_t which will typedef size_t. fixincludes patched the 2983 // vxTypesBase.h so that this macro is only defined if _GCC_SIZE_T is 2984 // not defined, and so that defining this macro defines _GCC_SIZE_T. 2985 // If we find that the macros are still defined at this point, we must 2986 // invoke them so that the type is defined as expected. 2987 2988 // In case nobody has defined these types, but we aren't running under 2989 // GCC 2.00, make sure that __PTRDIFF_TYPE__, __SIZE_TYPE__, and 2990 // __WCHAR_TYPE__ have reasonable values. This can happen if the 2991 // parts of GCC is compiled by an older compiler, that actually 2992 // include gstddef.h, such as collect2. 2993 2994 // Signed type of difference of two pointers. 2995 2996 // Define this type if we are doing the whole job, 2997 // or if we want this type in particular. 2998 2999 // If this symbol has done its job, get rid of it. 3000 3001 // Unsigned type of `sizeof' something. 3002 3003 // Define this type if we are doing the whole job, 3004 // or if we want this type in particular. 3005 3006 // Wide character type. 3007 // Locale-writers should change this as necessary to 3008 // be big enough to hold unique values not between 0 and 127, 3009 // and not (wchar_t) -1, for each defined multibyte character. 3010 3011 // Define this type if we are doing the whole job, 3012 // or if we want this type in particular. 3013 3014 // A null pointer constant. 3015 3016 // Offset of member MEMBER in a struct of type TYPE. 3017 3018 // XPG requires a few symbols from <sys/wait.h> being defined. 3019 // Definitions of flag bits for `waitpid' et al. 3020 // Copyright (C) 1992-2020 Free Software Foundation, Inc. 3021 // This file is part of the GNU C Library. 3022 // 3023 // The GNU C Library is free software; you can redistribute it and/or 3024 // modify it under the terms of the GNU Lesser General Public 3025 // License as published by the Free Software Foundation; either 3026 // version 2.1 of the License, or (at your option) any later version. 3027 // 3028 // The GNU C Library is distributed in the hope that it will be useful, 3029 // but WITHOUT ANY WARRANTY; without even the implied warranty of 3030 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 3031 // Lesser General Public License for more details. 3032 // 3033 // You should have received a copy of the GNU Lesser General Public 3034 // License along with the GNU C Library; if not, see 3035 // <https://www.gnu.org/licenses/>. 3036 3037 // Bits in the third argument to `waitpid'. 3038 3039 // Bits in the fourth argument to `waitid'. 3040 3041 // The following values are used by the `waitid' function. 3042 3043 // The Linux kernel defines these bare, rather than an enum, 3044 // which causes a conflict if the include order is reversed. 3045 3046 type idtype_t = uint32 /* waitflags.h:57:3 */ 3047 // Definitions of status bits for `wait' et al. 3048 // Copyright (C) 1992-2020 Free Software Foundation, Inc. 3049 // This file is part of the GNU C Library. 3050 // 3051 // The GNU C Library is free software; you can redistribute it and/or 3052 // modify it under the terms of the GNU Lesser General Public 3053 // License as published by the Free Software Foundation; either 3054 // version 2.1 of the License, or (at your option) any later version. 3055 // 3056 // The GNU C Library is distributed in the hope that it will be useful, 3057 // but WITHOUT ANY WARRANTY; without even the implied warranty of 3058 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 3059 // Lesser General Public License for more details. 3060 // 3061 // You should have received a copy of the GNU Lesser General Public 3062 // License along with the GNU C Library; if not, see 3063 // <https://www.gnu.org/licenses/>. 3064 3065 // Everything extant so far uses these same bits. 3066 3067 // If WIFEXITED(STATUS), the low-order 8 bits of the status. 3068 3069 // If WIFSIGNALED(STATUS), the terminating signal. 3070 3071 // If WIFSTOPPED(STATUS), the signal that stopped the child. 3072 3073 // Nonzero if STATUS indicates normal termination. 3074 3075 // Nonzero if STATUS indicates termination by a signal. 3076 3077 // Nonzero if STATUS indicates the child is stopped. 3078 3079 // Nonzero if STATUS indicates the child continued after a stop. We only 3080 // define this if <bits/waitflags.h> provides the WCONTINUED flag bit. 3081 3082 // Nonzero if STATUS indicates the child dumped core. 3083 3084 // Macros for constructing status values. 3085 3086 // Define the macros <sys/wait.h> also would define this way. 3087 3088 // _FloatN API tests for enablement. 3089 // Macros to control TS 18661-3 glibc features on ldbl-128 platforms. 3090 // Copyright (C) 2017-2020 Free Software Foundation, Inc. 3091 // This file is part of the GNU C Library. 3092 // 3093 // The GNU C Library is free software; you can redistribute it and/or 3094 // modify it under the terms of the GNU Lesser General Public 3095 // License as published by the Free Software Foundation; either 3096 // version 2.1 of the License, or (at your option) any later version. 3097 // 3098 // The GNU C Library is distributed in the hope that it will be useful, 3099 // but WITHOUT ANY WARRANTY; without even the implied warranty of 3100 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 3101 // Lesser General Public License for more details. 3102 // 3103 // You should have received a copy of the GNU Lesser General Public 3104 // License along with the GNU C Library; if not, see 3105 // <https://www.gnu.org/licenses/>. 3106 3107 // Copyright (C) 1991-2020 Free Software Foundation, Inc. 3108 // This file is part of the GNU C Library. 3109 // 3110 // The GNU C Library is free software; you can redistribute it and/or 3111 // modify it under the terms of the GNU Lesser General Public 3112 // License as published by the Free Software Foundation; either 3113 // version 2.1 of the License, or (at your option) any later version. 3114 // 3115 // The GNU C Library is distributed in the hope that it will be useful, 3116 // but WITHOUT ANY WARRANTY; without even the implied warranty of 3117 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 3118 // Lesser General Public License for more details. 3119 // 3120 // You should have received a copy of the GNU Lesser General Public 3121 // License along with the GNU C Library; if not, see 3122 // <https://www.gnu.org/licenses/>. 3123 3124 // Properties of long double type. ldbl-opt version. 3125 // Copyright (C) 2016-2020 Free Software Foundation, Inc. 3126 // This file is part of the GNU C Library. 3127 // 3128 // The GNU C Library is free software; you can redistribute it and/or 3129 // modify it under the terms of the GNU Lesser General Public 3130 // License published by the Free Software Foundation; either 3131 // version 2.1 of the License, or (at your option) any later version. 3132 // 3133 // The GNU C Library is distributed in the hope that it will be useful, 3134 // but WITHOUT ANY WARRANTY; without even the implied warranty of 3135 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 3136 // Lesser General Public License for more details. 3137 // 3138 // You should have received a copy of the GNU Lesser General Public 3139 // License along with the GNU C Library; if not, see 3140 // <https://www.gnu.org/licenses/>. 3141 3142 // Defined to 1 if the current compiler invocation provides a 3143 // floating-point type with the IEEE 754 binary128 format, and this 3144 // glibc includes corresponding *f128 interfaces for it. 3145 3146 // Defined to 1 if __HAVE_FLOAT128 is 1 and the type is ABI-distinct 3147 // from the default float, double and long double types in this glibc. 3148 3149 // Defined to 1 if the current compiler invocation provides a 3150 // floating-point type with the right format for _Float64x, and this 3151 // glibc includes corresponding *f64x interfaces for it. 3152 3153 // Defined to 1 if __HAVE_FLOAT64X is 1 and _Float64x has the format 3154 // of long double. Otherwise, if __HAVE_FLOAT64X is 1, _Float64x has 3155 // the format of _Float128, which must be different from that of long 3156 // double. 3157 3158 // Defined to concatenate the literal suffix to be used with _Float128 3159 // types, if __HAVE_FLOAT128 is 1. 3160 3161 // Defined to a complex binary128 type if __HAVE_FLOAT128 is 1. 3162 3163 // The remaining of this file provides support for older compilers. 3164 3165 // The type _Float128 exists only since GCC 7.0. 3166 3167 // Various built-in functions do not exist before GCC 7.0. 3168 3169 // Macros to control TS 18661-3 glibc features where the same 3170 // definitions are appropriate for all platforms. 3171 // Copyright (C) 2017-2020 Free Software Foundation, Inc. 3172 // This file is part of the GNU C Library. 3173 // 3174 // The GNU C Library is free software; you can redistribute it and/or 3175 // modify it under the terms of the GNU Lesser General Public 3176 // License as published by the Free Software Foundation; either 3177 // version 2.1 of the License, or (at your option) any later version. 3178 // 3179 // The GNU C Library is distributed in the hope that it will be useful, 3180 // but WITHOUT ANY WARRANTY; without even the implied warranty of 3181 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 3182 // Lesser General Public License for more details. 3183 // 3184 // You should have received a copy of the GNU Lesser General Public 3185 // License along with the GNU C Library; if not, see 3186 // <https://www.gnu.org/licenses/>. 3187 3188 // Copyright (C) 1991-2020 Free Software Foundation, Inc. 3189 // This file is part of the GNU C Library. 3190 // 3191 // The GNU C Library is free software; you can redistribute it and/or 3192 // modify it under the terms of the GNU Lesser General Public 3193 // License as published by the Free Software Foundation; either 3194 // version 2.1 of the License, or (at your option) any later version. 3195 // 3196 // The GNU C Library is distributed in the hope that it will be useful, 3197 // but WITHOUT ANY WARRANTY; without even the implied warranty of 3198 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 3199 // Lesser General Public License for more details. 3200 // 3201 // You should have received a copy of the GNU Lesser General Public 3202 // License along with the GNU C Library; if not, see 3203 // <https://www.gnu.org/licenses/>. 3204 3205 // Properties of long double type. ldbl-opt version. 3206 // Copyright (C) 2016-2020 Free Software Foundation, Inc. 3207 // This file is part of the GNU C Library. 3208 // 3209 // The GNU C Library is free software; you can redistribute it and/or 3210 // modify it under the terms of the GNU Lesser General Public 3211 // License published by the Free Software Foundation; either 3212 // version 2.1 of the License, or (at your option) any later version. 3213 // 3214 // The GNU C Library is distributed in the hope that it will be useful, 3215 // but WITHOUT ANY WARRANTY; without even the implied warranty of 3216 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 3217 // Lesser General Public License for more details. 3218 // 3219 // You should have received a copy of the GNU Lesser General Public 3220 // License along with the GNU C Library; if not, see 3221 // <https://www.gnu.org/licenses/>. 3222 3223 // This header should be included at the bottom of each bits/floatn.h. 3224 // It defines the following macros for each _FloatN and _FloatNx type, 3225 // where the same definitions, or definitions based only on the macros 3226 // in bits/floatn.h, are appropriate for all glibc configurations. 3227 3228 // Defined to 1 if the current compiler invocation provides a 3229 // floating-point type with the right format for this type, and this 3230 // glibc includes corresponding *fN or *fNx interfaces for it. 3231 3232 // Defined to 1 if the corresponding __HAVE_<type> macro is 1 and the 3233 // type is the first with its format in the sequence of (the default 3234 // choices for) float, double, long double, _Float16, _Float32, 3235 // _Float64, _Float128, _Float32x, _Float64x, _Float128x for this 3236 // glibc; that is, if functions present once per floating-point format 3237 // rather than once per type are present for this type. 3238 // 3239 // All configurations supported by glibc have _Float32 the same format 3240 // as float, _Float64 and _Float32x the same format as double, the 3241 // _Float64x the same format as either long double or _Float128. No 3242 // configurations support _Float128x or, as of GCC 7, have compiler 3243 // support for a type meeting the requirements for _Float128x. 3244 3245 // Defined to 1 if the corresponding _FloatN type is not binary compatible 3246 // with the corresponding ISO C type in the current compilation unit as 3247 // opposed to __HAVE_DISTINCT_FLOATN, which indicates the default types built 3248 // in glibc. 3249 3250 // Defined to 1 if any _FloatN or _FloatNx types that are not 3251 // ABI-distinct are however distinct types at the C language level (so 3252 // for the purposes of __builtin_types_compatible_p and _Generic). 3253 3254 // Defined to concatenate the literal suffix to be used with _FloatN 3255 // or _FloatNx types, if __HAVE_<type> is 1. The corresponding 3256 // literal suffixes exist since GCC 7, for C only. 3257 3258 // Defined to a complex type if __HAVE_<type> is 1. 3259 3260 // The remaining of this file provides support for older compilers. 3261 3262 // If double, long double and _Float64 all have the same set of 3263 // values, TS 18661-3 requires the usual arithmetic conversions on 3264 // long double and _Float64 to produce _Float64. For this to be the 3265 // case when building with a compiler without a distinct _Float64 3266 // type, _Float64 must be a typedef for long double, not for 3267 // double. 3268 3269 // Returned by `div'. 3270 type div_t = struct { 3271 quot int32 3272 rem int32 3273 } /* stdlib.h:62:5 */ 3274 3275 // Returned by `ldiv'. 3276 type ldiv_t = struct { 3277 quot int64 3278 rem int64 3279 } /* stdlib.h:70:5 */ 3280 3281 // Returned by `lldiv'. 3282 type lldiv_t = struct { 3283 quot int64 3284 rem int64 3285 } /* stdlib.h:80:5 */ 3286 3287 // Reentrant versions of the `random' family of functions. 3288 // These functions all use the following data structure to contain 3289 // state, rather than global state variables. 3290 3291 type random_data = struct { 3292 fptr uintptr 3293 rptr uintptr 3294 state uintptr 3295 rand_type int32 3296 rand_deg int32 3297 rand_sep int32 3298 _ [4]byte 3299 end_ptr uintptr 3300 } /* stdlib.h:423:1 */ 3301 3302 // Data structure for communication with thread safe versions. This 3303 // type is to be regarded as opaque. It's only exported because users 3304 // have to allocate objects of this type. 3305 type drand48_data = struct { 3306 __x [3]uint16 3307 __old_x [3]uint16 3308 __c uint16 3309 __init uint16 3310 __a uint64 3311 } /* stdlib.h:490:1 */ 3312 3313 // Floating-point inline functions for stdlib.h. 3314 // Copyright (C) 2012-2020 Free Software Foundation, Inc. 3315 // This file is part of the GNU C Library. 3316 // 3317 // The GNU C Library is free software; you can redistribute it and/or 3318 // modify it under the terms of the GNU Lesser General Public 3319 // License as published by the Free Software Foundation; either 3320 // version 2.1 of the License, or (at your option) any later version. 3321 // 3322 // The GNU C Library is distributed in the hope that it will be useful, 3323 // but WITHOUT ANY WARRANTY; without even the implied warranty of 3324 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 3325 // Lesser General Public License for more details. 3326 // 3327 // You should have received a copy of the GNU Lesser General Public 3328 // License along with the GNU C Library; if not, see 3329 // <https://www.gnu.org/licenses/>. 3330 3331 // Define some macros helping to catch buffer overflows. 3332 3333 var prog uintptr /* minigzip.c:336:13: */ 3334 3335 // =========================================================================== 3336 // Display error message and exit 3337 func error(tls *libc.TLS, msg uintptr) { /* minigzip.c:351:6: */ 3338 bp := tls.Alloc(16) 3339 defer tls.Free(16) 3340 3341 libc.Xfprintf(tls, libc.Xstderr, ts /* "%s: %s\n" */, libc.VaList(bp, prog, msg)) 3342 libc.Xexit(tls, 1) 3343 } 3344 3345 // =========================================================================== 3346 // Compress input to output then close both files. 3347 3348 func gz_compress(tls *libc.TLS, in uintptr, out gzFile) { /* minigzip.c:362:6: */ 3349 bp := tls.Alloc(16388) 3350 defer tls.Free(16388) 3351 3352 // var buf [16384]uint8 at bp, 16384 3353 3354 var len int32 3355 // var err int32 at bp+16384, 4 3356 3357 for { 3358 len = int32(libc.Xfread(tls, bp /* &buf[0] */, uint64(1), uint64(unsafe.Sizeof([16384]uint8{})), in)) 3359 if libc.Xferror(tls, in) != 0 { 3360 libc.Xperror(tls, ts+8 /* "fread" */) 3361 libc.Xexit(tls, 1) 3362 } 3363 if len == 0 { 3364 break 3365 } 3366 3367 if z.Xgzwrite(tls, out, bp /* &buf[0] */, uint32(len)) != len { 3368 error(tls, z.Xgzerror(tls, out, bp+16384 /* &err */)) 3369 } 3370 } 3371 libc.Xfclose(tls, in) 3372 if z.Xgzclose(tls, out) != 0 { 3373 error(tls, ts+14 /* "failed gzclose" */) 3374 } 3375 } 3376 3377 // =========================================================================== 3378 // Uncompress input to output then close both files. 3379 func gz_uncompress(tls *libc.TLS, in gzFile, out uintptr) { /* minigzip.c:430:6: */ 3380 bp := tls.Alloc(16388) 3381 defer tls.Free(16388) 3382 3383 // var buf [16384]uint8 at bp, 16384 3384 3385 var len int32 3386 // var err int32 at bp+16384, 4 3387 3388 for { 3389 len = z.Xgzread(tls, in, bp /* &buf[0] */, uint32(unsafe.Sizeof([16384]uint8{}))) 3390 if len < 0 { 3391 error(tls, z.Xgzerror(tls, in, bp+16384 /* &err */)) 3392 } 3393 if len == 0 { 3394 break 3395 } 3396 3397 if int32(libc.Xfwrite(tls, bp /* &buf[0] */, uint64(1), uint64(uint32(len)), out)) != len { 3398 error(tls, ts+29 /* "failed fwrite" */) 3399 } 3400 } 3401 if libc.Xfclose(tls, out) != 0 { 3402 error(tls, ts+43 /* "failed fclose" */) 3403 } 3404 3405 if z.Xgzclose(tls, in) != 0 { 3406 error(tls, ts+14 /* "failed gzclose" */) 3407 } 3408 } 3409 3410 // =========================================================================== 3411 // Compress the given file: create a corresponding .gz file and remove the 3412 // original. 3413 func file_compress(tls *libc.TLS, file uintptr, mode uintptr) { /* minigzip.c:457:6: */ 3414 bp := tls.Alloc(1064) 3415 defer tls.Free(1064) 3416 3417 // var outfile [1024]uint8 at bp+40, 1024 3418 3419 var in uintptr 3420 var out gzFile 3421 3422 if (libc.Xstrlen(tls, file) + libc.Xstrlen(tls, ts+57 /* ".gz" */)) >= size_t(unsafe.Sizeof([1024]uint8{})) { 3423 libc.Xfprintf(tls, libc.Xstderr, ts+61 /* "%s: filename too..." */, libc.VaList(bp, prog)) 3424 libc.Xexit(tls, 1) 3425 } 3426 3427 libc.Xsnprintf(tls, bp+40 /* &outfile[0] */, uint64(unsafe.Sizeof([1024]uint8{})), ts+84 /* "%s%s" */, libc.VaList(bp+8, file, ts+57 /* ".gz" */)) 3428 3429 in = libc.Xfopen(tls, file, ts+89 /* "rb" */) 3430 if in == (uintptr(0)) { 3431 libc.Xperror(tls, file) 3432 libc.Xexit(tls, 1) 3433 } 3434 out = z.Xgzopen64(tls, bp+40 /* &outfile[0] */, mode) 3435 if out == (uintptr(0)) { 3436 libc.Xfprintf(tls, libc.Xstderr, ts+92 /* "%s: can't gzopen..." */, libc.VaList(bp+24, prog, bp+40 /* &outfile[0] */)) 3437 libc.Xexit(tls, 1) 3438 } 3439 gz_compress(tls, in, out) 3440 3441 libc.Xunlink(tls, file) 3442 } 3443 3444 // =========================================================================== 3445 // Uncompress the given file and remove the original. 3446 func file_uncompress(tls *libc.TLS, file uintptr) { /* minigzip.c:496:6: */ 3447 bp := tls.Alloc(1064) 3448 defer tls.Free(1064) 3449 3450 // var buf [1024]uint8 at bp+40, 1024 3451 3452 var infile uintptr 3453 var outfile uintptr 3454 var out uintptr 3455 var in gzFile 3456 var len uint32 = uint32(libc.Xstrlen(tls, file)) 3457 3458 if (size_t(len) + libc.Xstrlen(tls, ts+57 /* ".gz" */)) >= size_t(unsafe.Sizeof([1024]uint8{})) { 3459 libc.Xfprintf(tls, libc.Xstderr, ts+61 /* "%s: filename too..." */, libc.VaList(bp, prog)) 3460 libc.Xexit(tls, 1) 3461 } 3462 3463 libc.Xsnprintf(tls, bp+40 /* &buf[0] */, uint64(unsafe.Sizeof([1024]uint8{})), ts+113 /* "%s" */, libc.VaList(bp+8, file)) 3464 3465 if (uint64(len) > (uint64(unsafe.Sizeof([4]uint8{})) - uint64(1))) && (libc.Xstrcmp(tls, ((file+uintptr(len))-uintptr((uint64(unsafe.Sizeof([4]uint8{}))-uint64(1)))), ts+57 /* ".gz" */) == 0) { 3466 infile = file 3467 outfile = bp + 40 /* &buf[0] */ 3468 *(*uint8)(unsafe.Pointer(outfile + uintptr((len - uint32(3))))) = uint8(0) 3469 } else { 3470 outfile = file 3471 infile = bp + 40 /* &buf[0] */ 3472 libc.Xsnprintf(tls, (bp + 40 /* &buf[0] */ + uintptr(len)), (uint64(unsafe.Sizeof([1024]uint8{})) - uint64(len)), ts+113 /* "%s" */, libc.VaList(bp+16, ts+57 /* ".gz" */)) 3473 } 3474 in = z.Xgzopen64(tls, infile, ts+89 /* "rb" */) 3475 if in == (uintptr(0)) { 3476 libc.Xfprintf(tls, libc.Xstderr, ts+92 /* "%s: can't gzopen..." */, libc.VaList(bp+24, prog, infile)) 3477 libc.Xexit(tls, 1) 3478 } 3479 out = libc.Xfopen(tls, outfile, ts+116 /* "wb" */) 3480 if out == (uintptr(0)) { 3481 libc.Xperror(tls, file) 3482 libc.Xexit(tls, 1) 3483 } 3484 3485 gz_uncompress(tls, in, out) 3486 3487 libc.Xunlink(tls, infile) 3488 } 3489 3490 // =========================================================================== 3491 // Usage: minigzip [-c] [-d] [-f] [-h] [-r] [-1 to -9] [files...] 3492 // -c : write to standard output 3493 // -d : decompress 3494 // -f : compress with Z_FILTERED 3495 // -h : compress with Z_HUFFMAN_ONLY 3496 // -r : compress with Z_RLE 3497 // -1 to -9 : compression level 3498 3499 func main1(tls *libc.TLS, argc int32, argv uintptr) int32 { /* minigzip.c:556:5: */ 3500 bp := tls.Alloc(44) 3501 defer tls.Free(44) 3502 3503 var copyout int32 = 0 3504 var uncompr int32 = 0 3505 var file gzFile 3506 var bname uintptr 3507 // var outmode [20]uint8 at bp+24, 20 3508 3509 libc.Xsnprintf(tls, bp+24 /* &outmode[0] */, uint64(unsafe.Sizeof([20]uint8{})), ts+113 /* "%s" */, libc.VaList(bp, ts+119 /* "wb6 " */)) 3510 3511 prog = *(*uintptr)(unsafe.Pointer(argv)) 3512 bname = libc.Xstrrchr(tls, *(*uintptr)(unsafe.Pointer(argv)), '/') 3513 if bname != 0 { 3514 bname++ 3515 } else { 3516 bname = *(*uintptr)(unsafe.Pointer(argv)) 3517 } 3518 argc-- 3519 argv += 8 3520 3521 if !(libc.Xstrcmp(tls, bname, ts+124 /* "gunzip" */) != 0) { 3522 uncompr = 1 3523 } else if !(libc.Xstrcmp(tls, bname, ts+131 /* "zcat" */) != 0) { 3524 copyout = libc.AssignInt32(&uncompr, 1) 3525 } 3526 3527 for argc > 0 { 3528 if libc.Xstrcmp(tls, *(*uintptr)(unsafe.Pointer(argv)), ts+136 /* "-c" */) == 0 { 3529 copyout = 1 3530 } else if libc.Xstrcmp(tls, *(*uintptr)(unsafe.Pointer(argv)), ts+139 /* "-d" */) == 0 { 3531 uncompr = 1 3532 } else if libc.Xstrcmp(tls, *(*uintptr)(unsafe.Pointer(argv)), ts+142 /* "-f" */) == 0 { 3533 *(*uint8)(unsafe.Pointer(bp + 24 /* &outmode[0] */ + 3)) = uint8('f') 3534 } else if libc.Xstrcmp(tls, *(*uintptr)(unsafe.Pointer(argv)), ts+145 /* "-h" */) == 0 { 3535 *(*uint8)(unsafe.Pointer(bp + 24 /* &outmode[0] */ + 3)) = uint8('h') 3536 } else if libc.Xstrcmp(tls, *(*uintptr)(unsafe.Pointer(argv)), ts+148 /* "-r" */) == 0 { 3537 *(*uint8)(unsafe.Pointer(bp + 24 /* &outmode[0] */ + 3)) = uint8('R') 3538 } else if (((int32(*(*uint8)(unsafe.Pointer((*(*uintptr)(unsafe.Pointer(argv)))))) == '-') && (int32(*(*uint8)(unsafe.Pointer((*(*uintptr)(unsafe.Pointer(argv))) + 1))) >= '1')) && (int32(*(*uint8)(unsafe.Pointer((*(*uintptr)(unsafe.Pointer(argv))) + 1))) <= '9')) && (int32(*(*uint8)(unsafe.Pointer((*(*uintptr)(unsafe.Pointer(argv))) + 2))) == 0) { 3539 *(*uint8)(unsafe.Pointer(bp + 24 /* &outmode[0] */ + 2)) = *(*uint8)(unsafe.Pointer((*(*uintptr)(unsafe.Pointer(argv))) + 1)) 3540 } else { 3541 break 3542 } 3543 argc-- 3544 argv += 8 3545 } 3546 if int32(*(*uint8)(unsafe.Pointer(bp + 24 /* &outmode[0] */ + 3))) == ' ' { 3547 *(*uint8)(unsafe.Pointer(bp + 24 /* &outmode[0] */ + 3)) = uint8(0) 3548 } 3549 if argc == 0 { 3550 3551 if uncompr != 0 { 3552 file = z.Xgzdopen(tls, libc.Xfileno(tls, libc.Xstdin), ts+89 /* "rb" */) 3553 if file == (uintptr(0)) { 3554 error(tls, ts+151 /* "can't gzdopen st..." */) 3555 } 3556 gz_uncompress(tls, file, libc.Xstdout) 3557 } else { 3558 file = z.Xgzdopen(tls, libc.Xfileno(tls, libc.Xstdout), bp+24 /* &outmode[0] */) 3559 if file == (uintptr(0)) { 3560 error(tls, ts+171 /* "can't gzdopen st..." */) 3561 } 3562 gz_compress(tls, libc.Xstdin, file) 3563 } 3564 } else { 3565 if copyout != 0 { 3566 3567 } 3568 for ok := true; ok; ok = func() bool { argv += 8; return libc.PreDecInt32(&argc, 1) != 0 }() { 3569 if uncompr != 0 { 3570 if copyout != 0 { 3571 file = z.Xgzopen64(tls, *(*uintptr)(unsafe.Pointer(argv)), ts+89 /* "rb" */) 3572 if file == (uintptr(0)) { 3573 libc.Xfprintf(tls, libc.Xstderr, ts+92 /* "%s: can't gzopen..." */, libc.VaList(bp+8, prog, *(*uintptr)(unsafe.Pointer(argv)))) 3574 } else { 3575 gz_uncompress(tls, file, libc.Xstdout) 3576 } 3577 } else { 3578 file_uncompress(tls, *(*uintptr)(unsafe.Pointer(argv))) 3579 } 3580 } else { 3581 if copyout != 0 { 3582 var in uintptr = libc.Xfopen(tls, *(*uintptr)(unsafe.Pointer(argv)), ts+89 /* "rb" */) 3583 3584 if in == (uintptr(0)) { 3585 libc.Xperror(tls, *(*uintptr)(unsafe.Pointer(argv))) 3586 } else { 3587 file = z.Xgzdopen(tls, libc.Xfileno(tls, libc.Xstdout), bp+24 /* &outmode[0] */) 3588 if file == (uintptr(0)) { 3589 error(tls, ts+171 /* "can't gzdopen st..." */) 3590 } 3591 3592 gz_compress(tls, in, file) 3593 } 3594 3595 } else { 3596 file_compress(tls, *(*uintptr)(unsafe.Pointer(argv)), bp+24 /* &outmode[0] */) 3597 } 3598 } 3599 } 3600 } 3601 return 0 3602 } 3603 3604 var ts1 = "%s: %s\n\x00fread\x00failed gzclose\x00failed fwrite\x00failed fclose\x00.gz\x00%s: filename too long\n\x00%s%s\x00rb\x00%s: can't gzopen %s\n\x00%s\x00wb\x00wb6 \x00gunzip\x00zcat\x00-c\x00-d\x00-f\x00-h\x00-r\x00can't gzdopen stdin\x00can't gzdopen stdout\x00" 3605 var ts = (*reflect.StringHeader)(unsafe.Pointer(&ts1)).Data