grp_linux_riscv64.go (43638B)
1 // Code generated by 'ccgo grp/gen.c -crt-import-path "" -export-defines "" -export-enums "" -export-externs X -export-fields F -export-structs "" -export-typedefs "" -header -hide _OSSwapInt16,_OSSwapInt32,_OSSwapInt64 -o grp/grp_linux_riscv64.go -pkgname grp', DO NOT EDIT. 2 3 package grp 4 5 import ( 6 "math" 7 "reflect" 8 "sync/atomic" 9 "unsafe" 10 ) 11 12 var _ = math.Pi 13 var _ reflect.Kind 14 var _ atomic.Value 15 var _ unsafe.Pointer 16 17 const ( 18 NSS_BUFLEN_GROUP = 1024 19 X_ATFILE_SOURCE = 1 20 X_BITS_TIME64_H = 1 21 X_BITS_TYPESIZES_H = 1 22 X_BITS_TYPES_H = 1 23 X_BSD_SIZE_T_ = 0 24 X_BSD_SIZE_T_DEFINED_ = 0 25 X_DEFAULT_SOURCE = 1 26 X_FEATURES_H = 1 27 X_FILE_OFFSET_BITS = 64 28 X_GCC_SIZE_T = 0 29 X_GRP_H = 1 30 X_LP64 = 1 31 X_POSIX_C_SOURCE = 200809 32 X_POSIX_SOURCE = 1 33 X_SIZET_ = 0 34 X_SIZE_T = 0 35 X_SIZE_T_ = 0 36 X_SIZE_T_DECLARED = 0 37 X_SIZE_T_DEFINED = 0 38 X_SIZE_T_DEFINED_ = 0 39 X_STDC_PREDEF_H = 1 40 X_SYS_CDEFS_H = 1 41 X_SYS_SIZE_T_H = 0 42 X_T_SIZE = 0 43 X_T_SIZE_ = 0 44 Linux = 1 45 Unix = 1 46 ) 47 48 type Ptrdiff_t = int64 /* <builtin>:3:26 */ 49 50 type Size_t = uint64 /* <builtin>:9:23 */ 51 52 type Wchar_t = int32 /* <builtin>:15:24 */ 53 54 type X__int128_t = struct { 55 Flo int64 56 Fhi int64 57 } /* <builtin>:21:43 */ // must match modernc.org/mathutil.Int128 58 type X__uint128_t = struct { 59 Flo uint64 60 Fhi uint64 61 } /* <builtin>:22:44 */ // must match modernc.org/mathutil.Int128 62 63 type X__builtin_va_list = uintptr /* <builtin>:46:14 */ 64 type X__float128 = float64 /* <builtin>:47:21 */ 65 66 // Copyright (C) 1991-2021 Free Software Foundation, Inc. 67 // This file is part of the GNU C Library. 68 // 69 // The GNU C Library is free software; you can redistribute it and/or 70 // modify it under the terms of the GNU Lesser General Public 71 // License as published by the Free Software Foundation; either 72 // version 2.1 of the License, or (at your option) any later version. 73 // 74 // The GNU C Library is distributed in the hope that it will be useful, 75 // but WITHOUT ANY WARRANTY; without even the implied warranty of 76 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 77 // Lesser General Public License for more details. 78 // 79 // You should have received a copy of the GNU Lesser General Public 80 // License along with the GNU C Library; if not, see 81 // <https://www.gnu.org/licenses/>. 82 83 // POSIX Standard: 9.2.1 Group Database Access <grp.h> 84 85 // Copyright (C) 1991-2021 Free Software Foundation, Inc. 86 // This file is part of the GNU C Library. 87 // 88 // The GNU C Library is free software; you can redistribute it and/or 89 // modify it under the terms of the GNU Lesser General Public 90 // License as published by the Free Software Foundation; either 91 // version 2.1 of the License, or (at your option) any later version. 92 // 93 // The GNU C Library is distributed in the hope that it will be useful, 94 // but WITHOUT ANY WARRANTY; without even the implied warranty of 95 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 96 // Lesser General Public License for more details. 97 // 98 // You should have received a copy of the GNU Lesser General Public 99 // License along with the GNU C Library; if not, see 100 // <https://www.gnu.org/licenses/>. 101 102 // These are defined by the user (or the compiler) 103 // to specify the desired environment: 104 // 105 // __STRICT_ANSI__ ISO Standard C. 106 // _ISOC99_SOURCE Extensions to ISO C89 from ISO C99. 107 // _ISOC11_SOURCE Extensions to ISO C99 from ISO C11. 108 // _ISOC2X_SOURCE Extensions to ISO C99 from ISO C2X. 109 // __STDC_WANT_LIB_EXT2__ 110 // Extensions to ISO C99 from TR 27431-2:2010. 111 // __STDC_WANT_IEC_60559_BFP_EXT__ 112 // Extensions to ISO C11 from TS 18661-1:2014. 113 // __STDC_WANT_IEC_60559_FUNCS_EXT__ 114 // Extensions to ISO C11 from TS 18661-4:2015. 115 // __STDC_WANT_IEC_60559_TYPES_EXT__ 116 // Extensions to ISO C11 from TS 18661-3:2015. 117 // __STDC_WANT_IEC_60559_EXT__ 118 // ISO C2X interfaces defined only in Annex F. 119 // 120 // _POSIX_SOURCE IEEE Std 1003.1. 121 // _POSIX_C_SOURCE If ==1, like _POSIX_SOURCE; if >=2 add IEEE Std 1003.2; 122 // if >=199309L, add IEEE Std 1003.1b-1993; 123 // if >=199506L, add IEEE Std 1003.1c-1995; 124 // if >=200112L, all of IEEE 1003.1-2004 125 // if >=200809L, all of IEEE 1003.1-2008 126 // _XOPEN_SOURCE Includes POSIX and XPG things. Set to 500 if 127 // Single Unix conformance is wanted, to 600 for the 128 // sixth revision, to 700 for the seventh revision. 129 // _XOPEN_SOURCE_EXTENDED XPG things and X/Open Unix extensions. 130 // _LARGEFILE_SOURCE Some more functions for correct standard I/O. 131 // _LARGEFILE64_SOURCE Additional functionality from LFS for large files. 132 // _FILE_OFFSET_BITS=N Select default filesystem interface. 133 // _ATFILE_SOURCE Additional *at interfaces. 134 // _DYNAMIC_STACK_SIZE_SOURCE Select correct (but non compile-time constant) 135 // MINSIGSTKSZ, SIGSTKSZ and PTHREAD_STACK_MIN. 136 // _GNU_SOURCE All of the above, plus GNU extensions. 137 // _DEFAULT_SOURCE The default set of features (taking precedence over 138 // __STRICT_ANSI__). 139 // 140 // _FORTIFY_SOURCE Add security hardening to many library functions. 141 // Set to 1 or 2; 2 performs stricter checks than 1. 142 // 143 // _REENTRANT, _THREAD_SAFE 144 // Obsolete; equivalent to _POSIX_C_SOURCE=199506L. 145 // 146 // The `-ansi' switch to the GNU C compiler, and standards conformance 147 // options such as `-std=c99', define __STRICT_ANSI__. If none of 148 // these are defined, or if _DEFAULT_SOURCE is defined, the default is 149 // to have _POSIX_SOURCE set to one and _POSIX_C_SOURCE set to 150 // 200809L, as well as enabling miscellaneous functions from BSD and 151 // SVID. If more than one of these are defined, they accumulate. For 152 // example __STRICT_ANSI__, _POSIX_SOURCE and _POSIX_C_SOURCE together 153 // give you ISO C, 1003.1, and 1003.2, but nothing else. 154 // 155 // These are defined by this file and are used by the 156 // header files to decide what to declare or define: 157 // 158 // __GLIBC_USE (F) Define things from feature set F. This is defined 159 // to 1 or 0; the subsequent macros are either defined 160 // or undefined, and those tests should be moved to 161 // __GLIBC_USE. 162 // __USE_ISOC11 Define ISO C11 things. 163 // __USE_ISOC99 Define ISO C99 things. 164 // __USE_ISOC95 Define ISO C90 AMD1 (C95) things. 165 // __USE_ISOCXX11 Define ISO C++11 things. 166 // __USE_POSIX Define IEEE Std 1003.1 things. 167 // __USE_POSIX2 Define IEEE Std 1003.2 things. 168 // __USE_POSIX199309 Define IEEE Std 1003.1, and .1b things. 169 // __USE_POSIX199506 Define IEEE Std 1003.1, .1b, .1c and .1i things. 170 // __USE_XOPEN Define XPG things. 171 // __USE_XOPEN_EXTENDED Define X/Open Unix things. 172 // __USE_UNIX98 Define Single Unix V2 things. 173 // __USE_XOPEN2K Define XPG6 things. 174 // __USE_XOPEN2KXSI Define XPG6 XSI things. 175 // __USE_XOPEN2K8 Define XPG7 things. 176 // __USE_XOPEN2K8XSI Define XPG7 XSI things. 177 // __USE_LARGEFILE Define correct standard I/O things. 178 // __USE_LARGEFILE64 Define LFS things with separate names. 179 // __USE_FILE_OFFSET64 Define 64bit interface as default. 180 // __USE_MISC Define things from 4.3BSD or System V Unix. 181 // __USE_ATFILE Define *at interfaces and AT_* constants for them. 182 // __USE_DYNAMIC_STACK_SIZE Define correct (but non compile-time constant) 183 // MINSIGSTKSZ, SIGSTKSZ and PTHREAD_STACK_MIN. 184 // __USE_GNU Define GNU extensions. 185 // __USE_FORTIFY_LEVEL Additional security measures used, according to level. 186 // 187 // The macros `__GNU_LIBRARY__', `__GLIBC__', and `__GLIBC_MINOR__' are 188 // defined by this file unconditionally. `__GNU_LIBRARY__' is provided 189 // only for compatibility. All new code should use the other symbols 190 // to test for features. 191 // 192 // All macros listed above as possibly being defined by this file are 193 // explicitly undefined if they are not explicitly defined. 194 // Feature-test macros that are not defined by the user or compiler 195 // but are implied by the other feature-test macros defined (or by the 196 // lack of any definitions) are defined by the file. 197 // 198 // ISO C feature test macros depend on the definition of the macro 199 // when an affected header is included, not when the first system 200 // header is included, and so they are handled in 201 // <bits/libc-header-start.h>, which does not have a multiple include 202 // guard. Feature test macros that can be handled from the first 203 // system header included are handled here. 204 205 // Undefine everything, so we get a clean slate. 206 207 // Suppress kernel-name space pollution unless user expressedly asks 208 // for it. 209 210 // Convenience macro to test the version of gcc. 211 // Use like this: 212 // #if __GNUC_PREREQ (2,8) 213 // ... code requiring gcc 2.8 or later ... 214 // #endif 215 // Note: only works for GCC 2.0 and later, because __GNUC_MINOR__ was 216 // added in 2.0. 217 218 // Similarly for clang. Features added to GCC after version 4.2 may 219 // or may not also be available in clang, and clang's definitions of 220 // __GNUC(_MINOR)__ are fixed at 4 and 2 respectively. Not all such 221 // features can be queried via __has_extension/__has_feature. 222 223 // Whether to use feature set F. 224 225 // _BSD_SOURCE and _SVID_SOURCE are deprecated aliases for 226 // _DEFAULT_SOURCE. If _DEFAULT_SOURCE is present we do not 227 // issue a warning; the expectation is that the source is being 228 // transitioned to use the new macro. 229 230 // If _GNU_SOURCE was defined by the user, turn on all the other features. 231 232 // If nothing (other than _GNU_SOURCE and _DEFAULT_SOURCE) is defined, 233 // define _DEFAULT_SOURCE. 234 235 // This is to enable the ISO C2X extension. 236 237 // This is to enable the ISO C11 extension. 238 239 // This is to enable the ISO C99 extension. 240 241 // This is to enable the ISO C90 Amendment 1:1995 extension. 242 243 // If none of the ANSI/POSIX macros are defined, or if _DEFAULT_SOURCE 244 // is defined, use POSIX.1-2008 (or another version depending on 245 // _XOPEN_SOURCE). 246 247 // Some C libraries once required _REENTRANT and/or _THREAD_SAFE to be 248 // defined in all multithreaded code. GNU libc has not required this 249 // for many years. We now treat them as compatibility synonyms for 250 // _POSIX_C_SOURCE=199506L, which is the earliest level of POSIX with 251 // comprehensive support for multithreaded code. Using them never 252 // lowers the selected level of POSIX conformance, only raises it. 253 254 // Features part to handle 64-bit time_t support. 255 // Copyright (C) 2021 Free Software Foundation, Inc. 256 // This file is part of the GNU C Library. 257 // 258 // The GNU C Library is free software; you can redistribute it and/or 259 // modify it under the terms of the GNU Lesser General Public 260 // License as published by the Free Software Foundation; either 261 // version 2.1 of the License, or (at your option) any later version. 262 // 263 // The GNU C Library is distributed in the hope that it will be useful, 264 // but WITHOUT ANY WARRANTY; without even the implied warranty of 265 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 266 // Lesser General Public License for more details. 267 // 268 // You should have received a copy of the GNU Lesser General Public 269 // License along with the GNU C Library; if not, see 270 // <https://www.gnu.org/licenses/>. 271 272 // We need to know the word size in order to check the time size. 273 // Determine the wordsize from the preprocessor defines. RISC-V version. 274 // Copyright (C) 2002-2021 Free Software Foundation, Inc. 275 // This file is part of the GNU C Library. 276 // 277 // The GNU C Library is free software; you can redistribute it and/or 278 // modify it under the terms of the GNU Lesser General Public 279 // License as published by the Free Software Foundation; either 280 // version 2.1 of the License, or (at your option) any later version. 281 // 282 // The GNU C Library is distributed in the hope that it will be useful, 283 // but WITHOUT ANY WARRANTY; without even the implied warranty of 284 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 285 // Lesser General Public License for more details. 286 // 287 // You should have received a copy of the GNU Lesser General Public 288 // License along with the GNU C Library. If not, see 289 // <https://www.gnu.org/licenses/>. 290 291 // Bit size of the time_t type at glibc build time, RISC-V case. 292 // Copyright (C) 2020-2021 Free Software Foundation, Inc. 293 // This file is part of the GNU C Library. 294 // 295 // The GNU C Library is free software; you can redistribute it and/or 296 // modify it under the terms of the GNU Lesser General Public 297 // License as published by the Free Software Foundation; either 298 // version 2.1 of the License, or (at your option) any later version. 299 // 300 // The GNU C Library is distributed in the hope that it will be useful, 301 // but WITHOUT ANY WARRANTY; without even the implied warranty of 302 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 303 // Lesser General Public License for more details. 304 // 305 // You should have received a copy of the GNU Lesser General Public 306 // License along with the GNU C Library; if not, see 307 // <https://www.gnu.org/licenses/>. 308 309 // Determine the wordsize from the preprocessor defines. RISC-V version. 310 // Copyright (C) 2002-2021 Free Software Foundation, Inc. 311 // This file is part of the GNU C Library. 312 // 313 // The GNU C Library is free software; you can redistribute it and/or 314 // modify it under the terms of the GNU Lesser General Public 315 // License as published by the Free Software Foundation; either 316 // version 2.1 of the License, or (at your option) any later version. 317 // 318 // The GNU C Library is distributed in the hope that it will be useful, 319 // but WITHOUT ANY WARRANTY; without even the implied warranty of 320 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 321 // Lesser General Public License for more details. 322 // 323 // You should have received a copy of the GNU Lesser General Public 324 // License along with the GNU C Library. If not, see 325 // <https://www.gnu.org/licenses/>. 326 327 // RV32 and RV64 both use 64-bit time_t 328 329 // The function 'gets' existed in C89, but is impossible to use 330 // safely. It has been removed from ISO C11 and ISO C++14. Note: for 331 // compatibility with various implementations of <cstdio>, this test 332 // must consider only the value of __cplusplus when compiling C++. 333 334 // GNU formerly extended the scanf functions with modified format 335 // specifiers %as, %aS, and %a[...] that allocate a buffer for the 336 // input using malloc. This extension conflicts with ISO C99, which 337 // defines %a as a standalone format specifier that reads a floating- 338 // point number; moreover, POSIX.1-2008 provides the same feature 339 // using the modifier letter 'm' instead (%ms, %mS, %m[...]). 340 // 341 // We now follow C99 unless GNU extensions are active and the compiler 342 // is specifically in C89 or C++98 mode (strict or not). For 343 // instance, with GCC, -std=gnu11 will have C99-compliant scanf with 344 // or without -D_GNU_SOURCE, but -std=c89 -D_GNU_SOURCE will have the 345 // old extension. 346 347 // Get definitions of __STDC_* predefined macros, if the compiler has 348 // not preincluded this header automatically. 349 // Copyright (C) 1991-2021 Free Software Foundation, Inc. 350 // This file is part of the GNU C Library. 351 // 352 // The GNU C Library is free software; you can redistribute it and/or 353 // modify it under the terms of the GNU Lesser General Public 354 // License as published by the Free Software Foundation; either 355 // version 2.1 of the License, or (at your option) any later version. 356 // 357 // The GNU C Library is distributed in the hope that it will be useful, 358 // but WITHOUT ANY WARRANTY; without even the implied warranty of 359 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 360 // Lesser General Public License for more details. 361 // 362 // You should have received a copy of the GNU Lesser General Public 363 // License along with the GNU C Library; if not, see 364 // <https://www.gnu.org/licenses/>. 365 366 // This macro indicates that the installed library is the GNU C Library. 367 // For historic reasons the value now is 6 and this will stay from now 368 // on. The use of this variable is deprecated. Use __GLIBC__ and 369 // __GLIBC_MINOR__ now (see below) when you want to test for a specific 370 // GNU C library version and use the values in <gnu/lib-names.h> to get 371 // the sonames of the shared libraries. 372 373 // Major and minor version number of the GNU C library package. Use 374 // these macros to test for features in specific releases. 375 376 // This is here only because every header file already includes this one. 377 // Copyright (C) 1992-2021 Free Software Foundation, Inc. 378 // This file is part of the GNU C Library. 379 // 380 // The GNU C Library is free software; you can redistribute it and/or 381 // modify it under the terms of the GNU Lesser General Public 382 // License as published by the Free Software Foundation; either 383 // version 2.1 of the License, or (at your option) any later version. 384 // 385 // The GNU C Library is distributed in the hope that it will be useful, 386 // but WITHOUT ANY WARRANTY; without even the implied warranty of 387 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 388 // Lesser General Public License for more details. 389 // 390 // You should have received a copy of the GNU Lesser General Public 391 // License along with the GNU C Library; if not, see 392 // <https://www.gnu.org/licenses/>. 393 394 // We are almost always included from features.h. 395 396 // The GNU libc does not support any K&R compilers or the traditional mode 397 // of ISO C compilers anymore. Check for some of the combinations not 398 // supported anymore. 399 400 // Some user header file might have defined this before. 401 402 // Compilers that lack __has_attribute may object to 403 // #if defined __has_attribute && __has_attribute (...) 404 // even though they do not need to evaluate the right-hand side of the &&. 405 // Similarly for __has_builtin, etc. 406 407 // All functions, except those with callbacks or those that 408 // synchronize memory, are leaf functions. 409 410 // GCC can always grok prototypes. For C++ programs we add throw() 411 // to help it optimize the function calls. But this only works with 412 // gcc 2.8.x and egcs. For gcc 3.4 and up we even mark C functions 413 // as non-throwing using a function attribute since programs can use 414 // the -fexceptions options for C code as well. 415 416 // These two macros are not used in glibc anymore. They are kept here 417 // only because some other projects expect the macros to be defined. 418 419 // For these things, GCC behaves the ANSI way normally, 420 // and the non-ANSI way under -traditional. 421 422 // This is not a typedef so `const __ptr_t' does the right thing. 423 424 // C++ needs to know that types and declarations are C, not C++. 425 426 // Fortify support. 427 428 // Use __builtin_dynamic_object_size at _FORTIFY_SOURCE=3 when available. 429 430 // Support for flexible arrays. 431 // Headers that should use flexible arrays only if they're "real" 432 // (e.g. only if they won't affect sizeof()) should test 433 // #if __glibc_c99_flexarr_available. 434 435 // __asm__ ("xyz") is used throughout the headers to rename functions 436 // at the assembly language level. This is wrapped by the __REDIRECT 437 // macro, in order to support compilers that can do this some other 438 // way. When compilers don't support asm-names at all, we have to do 439 // preprocessor tricks instead (which don't have exactly the right 440 // semantics, but it's the best we can do). 441 // 442 // Example: 443 // int __REDIRECT(setpgrp, (__pid_t pid, __pid_t pgrp), setpgid); 444 445 // 446 // #elif __SOME_OTHER_COMPILER__ 447 // 448 // # define __REDIRECT(name, proto, alias) name proto; _Pragma("let " #name " = " #alias) 449 450 // GCC and clang have various useful declarations that can be made with 451 // the '__attribute__' syntax. All of the ways we use this do fine if 452 // they are omitted for compilers that don't understand it. 453 454 // At some point during the gcc 2.96 development the `malloc' attribute 455 // for functions was introduced. We don't want to use it unconditionally 456 // (although this would be possible) since it generates warnings. 457 458 // Tell the compiler which arguments to an allocation function 459 // indicate the size of the allocation. 460 461 // At some point during the gcc 2.96 development the `pure' attribute 462 // for functions was introduced. We don't want to use it unconditionally 463 // (although this would be possible) since it generates warnings. 464 465 // This declaration tells the compiler that the value is constant. 466 467 // At some point during the gcc 3.1 development the `used' attribute 468 // for functions was introduced. We don't want to use it unconditionally 469 // (although this would be possible) since it generates warnings. 470 471 // Since version 3.2, gcc allows marking deprecated functions. 472 473 // Since version 4.5, gcc also allows one to specify the message printed 474 // when a deprecated function is used. clang claims to be gcc 4.2, but 475 // may also support this feature. 476 477 // At some point during the gcc 2.8 development the `format_arg' attribute 478 // for functions was introduced. We don't want to use it unconditionally 479 // (although this would be possible) since it generates warnings. 480 // If several `format_arg' attributes are given for the same function, in 481 // gcc-3.0 and older, all but the last one are ignored. In newer gccs, 482 // all designated arguments are considered. 483 484 // At some point during the gcc 2.97 development the `strfmon' format 485 // attribute for functions was introduced. We don't want to use it 486 // unconditionally (although this would be possible) since it 487 // generates warnings. 488 489 // The nonnull function attribute marks pointer parameters that 490 // must not be NULL. 491 492 // The returns_nonnull function attribute marks the return type of the function 493 // as always being non-null. 494 495 // If fortification mode, we warn about unused results of certain 496 // function calls which can lead to problems. 497 498 // Forces a function to be always inlined. 499 // The Linux kernel defines __always_inline in stddef.h (283d7573), and 500 // it conflicts with this definition. Therefore undefine it first to 501 // allow either header to be included first. 502 503 // Associate error messages with the source location of the call site rather 504 // than with the source location inside the function. 505 506 // GCC 4.3 and above with -std=c99 or -std=gnu99 implements ISO C99 507 // inline semantics, unless -fgnu89-inline is used. Using __GNUC_STDC_INLINE__ 508 // or __GNUC_GNU_INLINE is not a good enough check for gcc because gcc versions 509 // older than 4.3 may define these macros and still not guarantee GNU inlining 510 // semantics. 511 // 512 // clang++ identifies itself as gcc-4.2, but has support for GNU inlining 513 // semantics, that can be checked for by using the __GNUC_STDC_INLINE_ and 514 // __GNUC_GNU_INLINE__ macro definitions. 515 516 // GCC 4.3 and above allow passing all anonymous arguments of an 517 // __extern_always_inline function to some other vararg function. 518 519 // It is possible to compile containing GCC extensions even if GCC is 520 // run in pedantic mode if the uses are carefully marked using the 521 // `__extension__' keyword. But this is not generally available before 522 // version 2.8. 523 524 // __restrict is known in EGCS 1.2 and above, and in clang. 525 // It works also in C++ mode (outside of arrays), but only when spelled 526 // as '__restrict', not 'restrict'. 527 528 // ISO C99 also allows to declare arrays as non-overlapping. The syntax is 529 // array_name[restrict] 530 // GCC 3.1 and clang support this. 531 // This syntax is not usable in C++ mode. 532 533 // Describes a char array whose address can safely be passed as the first 534 // argument to strncpy and strncat, as the char array is not necessarily 535 // a NUL-terminated string. 536 537 // Undefine (also defined in libc-symbols.h). 538 // Copies attributes from the declaration or type referenced by 539 // the argument. 540 541 // The #ifndef lets Gnulib avoid including these on non-glibc 542 // platforms, where the includes typically do not exist. 543 // Determine the wordsize from the preprocessor defines. RISC-V version. 544 // Copyright (C) 2002-2021 Free Software Foundation, Inc. 545 // This file is part of the GNU C Library. 546 // 547 // The GNU C Library is free software; you can redistribute it and/or 548 // modify it under the terms of the GNU Lesser General Public 549 // License as published by the Free Software Foundation; either 550 // version 2.1 of the License, or (at your option) any later version. 551 // 552 // The GNU C Library is distributed in the hope that it will be useful, 553 // but WITHOUT ANY WARRANTY; without even the implied warranty of 554 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 555 // Lesser General Public License for more details. 556 // 557 // You should have received a copy of the GNU Lesser General Public 558 // License along with the GNU C Library. If not, see 559 // <https://www.gnu.org/licenses/>. 560 561 // Properties of long double type. ldbl-128 version. 562 // Copyright (C) 2016-2021 Free Software Foundation, Inc. 563 // This file is part of the GNU C Library. 564 // 565 // The GNU C Library is free software; you can redistribute it and/or 566 // modify it under the terms of the GNU Lesser General Public 567 // License published by the Free Software Foundation; either 568 // version 2.1 of the License, or (at your option) any later version. 569 // 570 // The GNU C Library is distributed in the hope that it will be useful, 571 // but WITHOUT ANY WARRANTY; without even the implied warranty of 572 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 573 // Lesser General Public License for more details. 574 // 575 // You should have received a copy of the GNU Lesser General Public 576 // License along with the GNU C Library; if not, see 577 // <https://www.gnu.org/licenses/>. 578 579 // long double is distinct from double, so there is nothing to 580 // define here. 581 582 // __glibc_macro_warning (MESSAGE) issues warning MESSAGE. This is 583 // intended for use in preprocessor macros. 584 // 585 // Note: MESSAGE must be a _single_ string; concatenation of string 586 // literals is not supported. 587 588 // Generic selection (ISO C11) is a C-only feature, available in GCC 589 // since version 4.9. Previous versions do not provide generic 590 // selection, even though they might set __STDC_VERSION__ to 201112L, 591 // when in -std=c11 mode. Thus, we must check for !defined __GNUC__ 592 // when testing __STDC_VERSION__ for generic selection support. 593 // On the other hand, Clang also defines __GNUC__, so a clang-specific 594 // check is required to enable the use of generic selection. 595 596 // Designates a 1-based positional argument ref-index of pointer type 597 // that can be used to access size-index elements of the pointed-to 598 // array according to access mode, or at least one element when 599 // size-index is not provided: 600 // access (access-mode, <ref-index> [, <size-index>]) 601 602 // Designates dealloc as a function to call to deallocate objects 603 // allocated by the declared function. 604 605 // Specify that a function such as setjmp or vfork may return 606 // twice. 607 608 // If we don't have __REDIRECT, prototypes will be missing if 609 // __USE_FILE_OFFSET64 but not __USE_LARGEFILE[64]. 610 611 // Decide whether we can define 'extern inline' functions in headers. 612 613 // This is here only because every header file already includes this one. 614 // Get the definitions of all the appropriate `__stub_FUNCTION' symbols. 615 // <gnu/stubs.h> contains `#define __stub_FUNCTION' when FUNCTION is a stub 616 // that will always return failure (and set errno to ENOSYS). 617 // This file is automatically generated. 618 // This file selects the right generated file of `__stub_FUNCTION' macros 619 // based on the architecture being compiled for. 620 621 // Determine the wordsize from the preprocessor defines. RISC-V version. 622 // Copyright (C) 2002-2021 Free Software Foundation, Inc. 623 // This file is part of the GNU C Library. 624 // 625 // The GNU C Library is free software; you can redistribute it and/or 626 // modify it under the terms of the GNU Lesser General Public 627 // License as published by the Free Software Foundation; either 628 // version 2.1 of the License, or (at your option) any later version. 629 // 630 // The GNU C Library is distributed in the hope that it will be useful, 631 // but WITHOUT ANY WARRANTY; without even the implied warranty of 632 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 633 // Lesser General Public License for more details. 634 // 635 // You should have received a copy of the GNU Lesser General Public 636 // License along with the GNU C Library. If not, see 637 // <https://www.gnu.org/licenses/>. 638 639 // This file is automatically generated. 640 // It defines a symbol `__stub_FUNCTION' for each function 641 // in the C library which is a stub, meaning it will fail 642 // every time called, usually setting errno to ENOSYS. 643 644 // bits/types.h -- definitions of __*_t types underlying *_t types. 645 // Copyright (C) 2002-2021 Free Software Foundation, Inc. 646 // This file is part of the GNU C Library. 647 // 648 // The GNU C Library is free software; you can redistribute it and/or 649 // modify it under the terms of the GNU Lesser General Public 650 // License as published by the Free Software Foundation; either 651 // version 2.1 of the License, or (at your option) any later version. 652 // 653 // The GNU C Library is distributed in the hope that it will be useful, 654 // but WITHOUT ANY WARRANTY; without even the implied warranty of 655 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 656 // Lesser General Public License for more details. 657 // 658 // You should have received a copy of the GNU Lesser General Public 659 // License along with the GNU C Library; if not, see 660 // <https://www.gnu.org/licenses/>. 661 662 // Never include this file directly; use <sys/types.h> instead. 663 664 // Copyright (C) 1991-2021 Free Software Foundation, Inc. 665 // This file is part of the GNU C Library. 666 // 667 // The GNU C Library is free software; you can redistribute it and/or 668 // modify it under the terms of the GNU Lesser General Public 669 // License as published by the Free Software Foundation; either 670 // version 2.1 of the License, or (at your option) any later version. 671 // 672 // The GNU C Library is distributed in the hope that it will be useful, 673 // but WITHOUT ANY WARRANTY; without even the implied warranty of 674 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 675 // Lesser General Public License for more details. 676 // 677 // You should have received a copy of the GNU Lesser General Public 678 // License along with the GNU C Library; if not, see 679 // <https://www.gnu.org/licenses/>. 680 681 // Determine the wordsize from the preprocessor defines. RISC-V version. 682 // Copyright (C) 2002-2021 Free Software Foundation, Inc. 683 // This file is part of the GNU C Library. 684 // 685 // The GNU C Library is free software; you can redistribute it and/or 686 // modify it under the terms of the GNU Lesser General Public 687 // License as published by the Free Software Foundation; either 688 // version 2.1 of the License, or (at your option) any later version. 689 // 690 // The GNU C Library is distributed in the hope that it will be useful, 691 // but WITHOUT ANY WARRANTY; without even the implied warranty of 692 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 693 // Lesser General Public License for more details. 694 // 695 // You should have received a copy of the GNU Lesser General Public 696 // License along with the GNU C Library. If not, see 697 // <https://www.gnu.org/licenses/>. 698 699 // Bit size of the time_t type at glibc build time, RISC-V case. 700 // Copyright (C) 2020-2021 Free Software Foundation, Inc. 701 // This file is part of the GNU C Library. 702 // 703 // The GNU C Library is free software; you can redistribute it and/or 704 // modify it under the terms of the GNU Lesser General Public 705 // License as published by the Free Software Foundation; either 706 // version 2.1 of the License, or (at your option) any later version. 707 // 708 // The GNU C Library is distributed in the hope that it will be useful, 709 // but WITHOUT ANY WARRANTY; without even the implied warranty of 710 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 711 // Lesser General Public License for more details. 712 // 713 // You should have received a copy of the GNU Lesser General Public 714 // License along with the GNU C Library; if not, see 715 // <https://www.gnu.org/licenses/>. 716 717 // Determine the wordsize from the preprocessor defines. RISC-V version. 718 // Copyright (C) 2002-2021 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 // RV32 and RV64 both use 64-bit time_t 736 737 // Convenience types. 738 type X__u_char = uint8 /* types.h:31:23 */ 739 type X__u_short = uint16 /* types.h:32:28 */ 740 type X__u_int = uint32 /* types.h:33:22 */ 741 type X__u_long = uint64 /* types.h:34:27 */ 742 743 // Fixed-size types, underlying types depend on word size and compiler. 744 type X__int8_t = int8 /* types.h:37:21 */ 745 type X__uint8_t = uint8 /* types.h:38:23 */ 746 type X__int16_t = int16 /* types.h:39:26 */ 747 type X__uint16_t = uint16 /* types.h:40:28 */ 748 type X__int32_t = int32 /* types.h:41:20 */ 749 type X__uint32_t = uint32 /* types.h:42:22 */ 750 type X__int64_t = int64 /* types.h:44:25 */ 751 type X__uint64_t = uint64 /* types.h:45:27 */ 752 753 // Smallest types with at least a given width. 754 type X__int_least8_t = X__int8_t /* types.h:52:18 */ 755 type X__uint_least8_t = X__uint8_t /* types.h:53:19 */ 756 type X__int_least16_t = X__int16_t /* types.h:54:19 */ 757 type X__uint_least16_t = X__uint16_t /* types.h:55:20 */ 758 type X__int_least32_t = X__int32_t /* types.h:56:19 */ 759 type X__uint_least32_t = X__uint32_t /* types.h:57:20 */ 760 type X__int_least64_t = X__int64_t /* types.h:58:19 */ 761 type X__uint_least64_t = X__uint64_t /* types.h:59:20 */ 762 763 // quad_t is also 64 bits. 764 type X__quad_t = int64 /* types.h:63:18 */ 765 type X__u_quad_t = uint64 /* types.h:64:27 */ 766 767 // Largest integral types. 768 type X__intmax_t = int64 /* types.h:72:18 */ 769 type X__uintmax_t = uint64 /* types.h:73:27 */ 770 771 // The machine-dependent file <bits/typesizes.h> defines __*_T_TYPE 772 // macros for each of the OS types we define below. The definitions 773 // of those macros must use the following macros for underlying types. 774 // We define __S<SIZE>_TYPE and __U<SIZE>_TYPE for the signed and unsigned 775 // variants of each of the following integer types on this machine. 776 // 777 // 16 -- "natural" 16-bit type (always short) 778 // 32 -- "natural" 32-bit type (always int) 779 // 64 -- "natural" 64-bit type (long or long long) 780 // LONG32 -- 32-bit type, traditionally long 781 // QUAD -- 64-bit type, traditionally long long 782 // WORD -- natural type of __WORDSIZE bits (int or long) 783 // LONGWORD -- type of __WORDSIZE bits, traditionally long 784 // 785 // We distinguish WORD/LONGWORD, 32/LONG32, and 64/QUAD so that the 786 // conventional uses of `long' or `long long' type modifiers match the 787 // types we define, even when a less-adorned type would be the same size. 788 // This matters for (somewhat) portably writing printf/scanf formats for 789 // these types, where using the appropriate l or ll format modifiers can 790 // make the typedefs and the formats match up across all GNU platforms. If 791 // we used `long' when it's 64 bits where `long long' is expected, then the 792 // compiler would warn about the formats not matching the argument types, 793 // and the programmer changing them to shut up the compiler would break the 794 // program's portability. 795 // 796 // Here we assume what is presently the case in all the GCC configurations 797 // we support: long long is always 64 bits, long is always word/address size, 798 // and int is always 32 bits. 799 800 // No need to mark the typedef with __extension__. 801 // bits/typesizes.h -- underlying types for *_t. For the generic Linux ABI. 802 // Copyright (C) 2011-2021 Free Software Foundation, Inc. 803 // This file is part of the GNU C Library. 804 // Contributed by Chris Metcalf <cmetcalf@tilera.com>, 2011. 805 // 806 // The GNU C Library is free software; you can redistribute it and/or 807 // modify it under the terms of the GNU Lesser General Public 808 // License as published by the Free Software Foundation; either 809 // version 2.1 of the License, or (at your option) any later version. 810 // 811 // The GNU C Library is distributed in the hope that it will be useful, 812 // but WITHOUT ANY WARRANTY; without even the implied warranty of 813 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 814 // Lesser General Public License for more details. 815 // 816 // You should have received a copy of the GNU Lesser General Public 817 // License along with the GNU C Library. If not, see 818 // <https://www.gnu.org/licenses/>. 819 820 // See <bits/types.h> for the meaning of these macros. This file exists so 821 // that <bits/types.h> need not vary across different GNU platforms. 822 823 // Tell the libc code that off_t and off64_t are actually the same type 824 // for all ABI purposes, even if possibly expressed as different base types 825 // for C type-checking purposes. 826 827 // Same for ino_t and ino64_t. 828 829 // And for __rlim_t and __rlim64_t. 830 831 // And for fsblkcnt_t, fsblkcnt64_t, fsfilcnt_t and fsfilcnt64_t. 832 833 // And for getitimer, setitimer and rusage 834 835 // Number of descriptors that can fit in an `fd_set'. 836 837 // bits/time64.h -- underlying types for __time64_t. RISC-V version. 838 // Copyright (C) 2020-2021 Free Software Foundation, Inc. 839 // This file is part of the GNU C Library. 840 // 841 // The GNU C Library is free software; you can redistribute it and/or 842 // modify it under the terms of the GNU Lesser General Public 843 // License as published by the Free Software Foundation; either 844 // version 2.1 of the License, or (at your option) any later version. 845 // 846 // The GNU C Library is distributed in the hope that it will be useful, 847 // but WITHOUT ANY WARRANTY; without even the implied warranty of 848 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 849 // Lesser General Public License for more details. 850 // 851 // You should have received a copy of the GNU Lesser General Public 852 // License along with the GNU C Library; if not, see 853 // <https://www.gnu.org/licenses/>. 854 855 // Define __TIME64_T_TYPE so that it is always a 64-bit type. 856 857 // If we already have 64-bit time type then use it. 858 859 type X__dev_t = uint64 /* types.h:145:25 */ // Type of device numbers. 860 type X__uid_t = uint32 /* types.h:146:25 */ // Type of user identifications. 861 type X__gid_t = uint32 /* types.h:147:25 */ // Type of group identifications. 862 type X__ino_t = uint64 /* types.h:148:25 */ // Type of file serial numbers. 863 type X__ino64_t = uint64 /* types.h:149:27 */ // Type of file serial numbers (LFS). 864 type X__mode_t = uint32 /* types.h:150:26 */ // Type of file attribute bitmasks. 865 type X__nlink_t = uint32 /* types.h:151:27 */ // Type of file link counts. 866 type X__off_t = int64 /* types.h:152:25 */ // Type of file sizes and offsets. 867 type X__off64_t = int64 /* types.h:153:27 */ // Type of file sizes and offsets (LFS). 868 type X__pid_t = int32 /* types.h:154:25 */ // Type of process identifications. 869 type X__fsid_t = struct{ F__val [2]int32 } /* types.h:155:26 */ // Type of file system IDs. 870 type X__clock_t = int64 /* types.h:156:27 */ // Type of CPU usage counts. 871 type X__rlim_t = uint64 /* types.h:157:26 */ // Type for resource measurement. 872 type X__rlim64_t = uint64 /* types.h:158:28 */ // Type for resource measurement (LFS). 873 type X__id_t = uint32 /* types.h:159:24 */ // General type for IDs. 874 type X__time_t = int64 /* types.h:160:26 */ // Seconds since the Epoch. 875 type X__useconds_t = uint32 /* types.h:161:30 */ // Count of microseconds. 876 type X__suseconds_t = int64 /* types.h:162:31 */ // Signed count of microseconds. 877 type X__suseconds64_t = int64 /* types.h:163:33 */ 878 879 type X__daddr_t = int32 /* types.h:165:27 */ // The type of a disk address. 880 type X__key_t = int32 /* types.h:166:25 */ // Type of an IPC key. 881 882 // Clock ID used in clock and timer functions. 883 type X__clockid_t = int32 /* types.h:169:29 */ 884 885 // Timer ID returned by `timer_create'. 886 type X__timer_t = uintptr /* types.h:172:12 */ 887 888 // Type to represent block size. 889 type X__blksize_t = int32 /* types.h:175:29 */ 890 891 // Types from the Large File Support interface. 892 893 // Type to count number of disk blocks. 894 type X__blkcnt_t = int64 /* types.h:180:28 */ 895 type X__blkcnt64_t = int64 /* types.h:181:30 */ 896 897 // Type to count file system blocks. 898 type X__fsblkcnt_t = uint64 /* types.h:184:30 */ 899 type X__fsblkcnt64_t = uint64 /* types.h:185:32 */ 900 901 // Type to count file system nodes. 902 type X__fsfilcnt_t = uint64 /* types.h:188:30 */ 903 type X__fsfilcnt64_t = uint64 /* types.h:189:32 */ 904 905 // Type of miscellaneous file system fields. 906 type X__fsword_t = int64 /* types.h:192:28 */ 907 908 type X__ssize_t = int64 /* types.h:194:27 */ // Type of a byte count, or error. 909 910 // Signed long type used in system calls. 911 type X__syscall_slong_t = int64 /* types.h:197:33 */ 912 // Unsigned long type used in system calls. 913 type X__syscall_ulong_t = uint64 /* types.h:199:33 */ 914 915 // These few don't really vary by system, they always correspond 916 // 917 // to one of the other defined types. 918 type X__loff_t = X__off64_t /* types.h:203:19 */ // Type of file sizes and offsets (LFS). 919 type X__caddr_t = uintptr /* types.h:204:14 */ 920 921 // Duplicates info from stdint.h but this is used in unistd.h. 922 type X__intptr_t = int64 /* types.h:207:25 */ 923 924 // Duplicate info from sys/socket.h. 925 type X__socklen_t = uint32 /* types.h:210:23 */ 926 927 // C99: An integer type that can be accessed as an atomic entity, 928 // 929 // even in the presence of asynchronous interrupts. 930 // It is not currently necessary for this to be machine-specific. 931 type X__sig_atomic_t = int32 /* types.h:215:13 */ 932 933 // Wide character type. 934 // Locale-writers should change this as necessary to 935 // be big enough to hold unique values not between 0 and 127, 936 // and not (wchar_t) -1, for each defined multibyte character. 937 938 // Define this type if we are doing the whole job, 939 // or if we want this type in particular. 940 941 // A null pointer constant. 942 943 // For the Single Unix specification we must define this type here. 944 type Gid_t = X__gid_t /* grp.h:37:17 */ 945 946 // The group structure. 947 type Group = struct { 948 Fgr_name uintptr 949 Fgr_passwd uintptr 950 Fgr_gid X__gid_t 951 F__ccgo_pad1 [4]byte 952 Fgr_mem uintptr 953 } /* grp.h:42:1 */ 954 955 var _ uint8 /* gen.c:2:13: */