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