modernc.org/xdmcp@v1.0.17/lib/xdmcp_linux_arm64.go (about) 1 // Code generated by 'ccgo -export-defines "" -export-enums "" -export-externs X -export-fields F -export-structs "" -export-typedefs "" -o lib/xdmcp_linux_arm64.go -pkgname xdmcp -trace-translation-units /tmp/go-generate-4081970075/cdb.json .libs/libXdmcp.a', DO NOT EDIT. 2 3 package xdmcp 4 5 import ( 6 "math" 7 "reflect" 8 "sync/atomic" 9 "unsafe" 10 11 "modernc.org/libc" 12 "modernc.org/libc/sys/types" 13 ) 14 15 var _ = math.Pi 16 var _ reflect.Kind 17 var _ atomic.Value 18 var _ unsafe.Pointer 19 var _ *libc.TLS 20 var _ types.Size_t 21 22 const ( 23 ADJ_ESTERROR = 0x0008 24 ADJ_FREQUENCY = 0x0002 25 ADJ_MAXERROR = 0x0004 26 ADJ_MICRO = 0x1000 27 ADJ_NANO = 0x2000 28 ADJ_OFFSET = 0x0001 29 ADJ_OFFSET_SINGLESHOT = 0x8001 30 ADJ_OFFSET_SS_READ = 0xa001 31 ADJ_SETOFFSET = 0x0100 32 ADJ_STATUS = 0x0010 33 ADJ_TAI = 0x0080 34 ADJ_TICK = 0x4000 35 ADJ_TIMECONST = 0x0020 36 AT_EACCESS = 0x200 37 AT_EMPTY_PATH = 0x1000 38 AT_FDCWD = -100 39 AT_NO_AUTOMOUNT = 0x800 40 AT_RECURSIVE = 0x8000 41 AT_REMOVEDIR = 0x200 42 AT_STATX_DONT_SYNC = 0x4000 43 AT_STATX_FORCE_SYNC = 0x2000 44 AT_STATX_SYNC_AS_STAT = 0x0000 45 AT_STATX_SYNC_TYPE = 0x6000 46 AT_SYMLINK_FOLLOW = 0x400 47 AT_SYMLINK_NOFOLLOW = 0x100 48 Above = 0 49 AllTemporary = 0 50 AllocAll = 1 51 AllocNone = 0 52 AllowExposures = 1 53 AlreadyGrabbed = 1 54 Always = 2 55 AnyButton = 0 56 AnyKey = 0 57 AnyModifier = 32768 58 AnyPropertyType = 0 59 ArcChord = 0 60 ArcPieSlice = 1 61 AsyncBoth = 6 62 AsyncKeyboard = 3 63 AsyncPointer = 0 64 AutoRepeatModeDefault = 2 65 AutoRepeatModeOff = 0 66 AutoRepeatModeOn = 1 67 B16 = 0 68 B32 = 0 69 BIG_ENDIAN = 4321 70 BYTE_ORDER = 1234 71 BadAccess = 10 72 BadAlloc = 11 73 BadAtom = 5 74 BadColor = 12 75 BadCursor = 6 76 BadDrawable = 9 77 BadFont = 7 78 BadGC = 13 79 BadIDChoice = 14 80 BadImplementation = 17 81 BadLength = 16 82 BadMatch = 8 83 BadName = 15 84 BadPixmap = 4 85 BadRequest = 1 86 BadValue = 2 87 BadWindow = 3 88 Below = 1 89 BottomIf = 3 90 Button1 = 1 91 Button1Mask = 256 92 Button1MotionMask = 256 93 Button2 = 2 94 Button2Mask = 512 95 Button2MotionMask = 512 96 Button3 = 3 97 Button3Mask = 1024 98 Button3MotionMask = 1024 99 Button4 = 4 100 Button4Mask = 2048 101 Button4MotionMask = 2048 102 Button5 = 5 103 Button5Mask = 4096 104 Button5MotionMask = 4096 105 ButtonMotionMask = 8192 106 ButtonPress = 4 107 ButtonPressMask = 4 108 ButtonRelease = 5 109 ButtonReleaseMask = 8 110 CLOCK_BOOTTIME = 7 111 CLOCK_BOOTTIME_ALARM = 9 112 CLOCK_MONOTONIC = 1 113 CLOCK_MONOTONIC_COARSE = 6 114 CLOCK_MONOTONIC_RAW = 4 115 CLOCK_PROCESS_CPUTIME_ID = 2 116 CLOCK_REALTIME = 0 117 CLOCK_REALTIME_ALARM = 8 118 CLOCK_REALTIME_COARSE = 5 119 CLOCK_TAI = 11 120 CLOCK_THREAD_CPUTIME_ID = 3 121 CWBackPixel = 2 122 CWBackPixmap = 1 123 CWBackingPixel = 256 124 CWBackingPlanes = 128 125 CWBackingStore = 64 126 CWBitGravity = 16 127 CWBorderPixel = 8 128 CWBorderPixmap = 4 129 CWBorderWidth = 16 130 CWColormap = 8192 131 CWCursor = 16384 132 CWDontPropagate = 4096 133 CWEventMask = 2048 134 CWHeight = 8 135 CWOverrideRedirect = 512 136 CWSaveUnder = 1024 137 CWSibling = 32 138 CWStackMode = 64 139 CWWidth = 4 140 CWWinGravity = 32 141 CWX = 1 142 CWY = 2 143 CapButt = 1 144 CapNotLast = 0 145 CapProjecting = 3 146 CapRound = 2 147 CenterGravity = 5 148 CirculateNotify = 26 149 CirculateRequest = 27 150 ClientMessage = 33 151 ClipByChildren = 0 152 ColormapChangeMask = 8388608 153 ColormapInstalled = 1 154 ColormapNotify = 32 155 ColormapUninstalled = 0 156 Complex = 0 157 ConfigureNotify = 22 158 ConfigureRequest = 23 159 ControlMapIndex = 2 160 ControlMask = 4 161 Convex = 2 162 CoordModeOrigin = 0 163 CoordModePrevious = 1 164 CopyFromParent = 0 165 CreateNotify = 16 166 CurrentTime = 0 167 CursorShape = 0 168 DN_ACCESS = 0x00000001 169 DN_ATTRIB = 0x00000020 170 DN_CREATE = 0x00000004 171 DN_DELETE = 0x00000008 172 DN_MODIFY = 0x00000002 173 DN_MULTISHOT = 0x80000000 174 DN_RENAME = 0x00000010 175 DefaultBlanking = 2 176 DefaultExposures = 2 177 DestroyAll = 0 178 DestroyNotify = 17 179 DirectColor = 5 180 DisableAccess = 0 181 DisableScreenInterval = 0 182 DisableScreenSaver = 0 183 DoBlue = 4 184 DoGreen = 2 185 DoRed = 1 186 DontAllowExposures = 0 187 DontPreferBlanking = 0 188 EXIT_FAILURE = 1 189 EXIT_SUCCESS = 0 190 EastGravity = 6 191 EnableAccess = 1 192 EnterNotify = 7 193 EnterWindowMask = 16 194 EvenOddRule = 0 195 Expose = 12 196 ExposureMask = 32768 197 FALLOC_FL_COLLAPSE_RANGE = 0x08 198 FALLOC_FL_INSERT_RANGE = 0x20 199 FALLOC_FL_KEEP_SIZE = 0x01 200 FALLOC_FL_NO_HIDE_STALE = 0x04 201 FALLOC_FL_PUNCH_HOLE = 0x02 202 FALLOC_FL_UNSHARE_RANGE = 0x40 203 FALLOC_FL_ZERO_RANGE = 0x10 204 FALSE = 0 205 FAPPEND = 1024 206 FASYNC = 8192 207 FD_CLOEXEC = 1 208 FD_SETSIZE = 1024 209 FFSYNC = 1052672 210 FNDELAY = 2048 211 FNONBLOCK = 2048 212 FUNCPROTO = 15 213 F_ADD_SEALS = 1033 214 F_DUPFD = 0 215 F_DUPFD_CLOEXEC = 1030 216 F_EXLCK = 4 217 F_GETFD = 1 218 F_GETFL = 3 219 F_GETLEASE = 1025 220 F_GETLK = 5 221 F_GETLK64 = 5 222 F_GETOWN = 9 223 F_GETOWN_EX = 16 224 F_GETPIPE_SZ = 1032 225 F_GETSIG = 11 226 F_GET_FILE_RW_HINT = 1037 227 F_GET_RW_HINT = 1035 228 F_GET_SEALS = 1034 229 F_LOCK = 1 230 F_NOTIFY = 1026 231 F_OFD_GETLK = 36 232 F_OFD_SETLK = 37 233 F_OFD_SETLKW = 38 234 F_OK = 0 235 F_RDLCK = 0 236 F_SEAL_FUTURE_WRITE = 0x0010 237 F_SEAL_GROW = 0x0004 238 F_SEAL_SEAL = 0x0001 239 F_SEAL_SHRINK = 0x0002 240 F_SEAL_WRITE = 0x0008 241 F_SETFD = 2 242 F_SETFL = 4 243 F_SETLEASE = 1024 244 F_SETLK = 6 245 F_SETLK64 = 6 246 F_SETLKW = 7 247 F_SETLKW64 = 7 248 F_SETOWN = 8 249 F_SETOWN_EX = 15 250 F_SETPIPE_SZ = 1031 251 F_SETSIG = 10 252 F_SET_FILE_RW_HINT = 1038 253 F_SET_RW_HINT = 1036 254 F_SHLCK = 8 255 F_TEST = 3 256 F_TLOCK = 2 257 F_ULOCK = 0 258 F_UNLCK = 2 259 F_WRLCK = 1 260 FamilyChaos = 2 261 FamilyDECnet = 1 262 FamilyInternet = 0 263 FamilyInternet6 = 6 264 FamilyServerInterpreted = 5 265 FillOpaqueStippled = 3 266 FillSolid = 0 267 FillStippled = 2 268 FillTiled = 1 269 FirstExtensionError = 128 270 FocusChangeMask = 2097152 271 FocusIn = 9 272 FocusOut = 10 273 FontChange = 255 274 FontLeftToRight = 0 275 FontRightToLeft = 1 276 ForgetGravity = 0 277 GCArcMode = 4194304 278 GCBackground = 8 279 GCCapStyle = 64 280 GCClipMask = 524288 281 GCClipXOrigin = 131072 282 GCClipYOrigin = 262144 283 GCDashList = 2097152 284 GCDashOffset = 1048576 285 GCFillRule = 512 286 GCFillStyle = 256 287 GCFont = 16384 288 GCForeground = 4 289 GCFunction = 1 290 GCGraphicsExposures = 65536 291 GCJoinStyle = 128 292 GCLastBit = 22 293 GCLineStyle = 32 294 GCLineWidth = 16 295 GCPlaneMask = 2 296 GCStipple = 2048 297 GCSubwindowMode = 32768 298 GCTile = 1024 299 GCTileStipXOrigin = 4096 300 GCTileStipYOrigin = 8192 301 GXand = 0x1 302 GXandInverted = 0x4 303 GXandReverse = 0x2 304 GXclear = 0x0 305 GXcopy = 0x3 306 GXcopyInverted = 0xc 307 GXequiv = 0x9 308 GXinvert = 0xa 309 GXnand = 0xe 310 GXnoop = 0x5 311 GXnor = 0x8 312 GXor = 0x7 313 GXorInverted = 0xd 314 GXorReverse = 0xb 315 GXset = 0xf 316 GXxor = 0x6 317 GenericEvent = 35 318 GrabFrozen = 4 319 GrabInvalidTime = 2 320 GrabModeAsync = 1 321 GrabModeSync = 0 322 GrabNotViewable = 3 323 GrabSuccess = 0 324 GraphicsExpose = 13 325 GravityNotify = 24 326 GrayScale = 1 327 HASXDMAUTH = 1 328 HAVE_CONFIG_H = 1 329 HAVE_DLFCN_H = 1 330 HAVE_INTTYPES_H = 1 331 HAVE_LRAND48 = 1 332 HAVE_MEMORY_H = 1 333 HAVE_SRAND48 = 1 334 HAVE_STDINT_H = 1 335 HAVE_STDLIB_H = 1 336 HAVE_STRINGS_H = 1 337 HAVE_STRING_H = 1 338 HAVE_SYS_STAT_H = 1 339 HAVE_SYS_TYPES_H = 1 340 HAVE_UNISTD_H = 1 341 HostDelete = 1 342 HostInsert = 0 343 INT16_MAX = 32767 344 INT16_MIN = -32768 345 INT16_WIDTH = 16 346 INT32_MAX = 2147483647 347 INT32_MIN = -2147483648 348 INT32_WIDTH = 32 349 INT64_MAX = 9223372036854775807 350 INT64_MIN = -9223372036854775808 351 INT64_WIDTH = 64 352 INT8_MAX = 127 353 INT8_MIN = -128 354 INT8_WIDTH = 8 355 INTMAX_MAX = 9223372036854775807 356 INTMAX_MIN = -9223372036854775808 357 INTMAX_WIDTH = 64 358 INTPTR_MAX = 9223372036854775807 359 INTPTR_MIN = -9223372036854775808 360 INTPTR_WIDTH = 64 361 INT_FAST16_MAX = 9223372036854775807 362 INT_FAST16_MIN = -9223372036854775808 363 INT_FAST16_WIDTH = 64 364 INT_FAST32_MAX = 9223372036854775807 365 INT_FAST32_MIN = -9223372036854775808 366 INT_FAST32_WIDTH = 64 367 INT_FAST64_MAX = 9223372036854775807 368 INT_FAST64_MIN = -9223372036854775808 369 INT_FAST64_WIDTH = 64 370 INT_FAST8_MAX = 127 371 INT_FAST8_MIN = -128 372 INT_FAST8_WIDTH = 8 373 INT_LEAST16_MAX = 32767 374 INT_LEAST16_MIN = -32768 375 INT_LEAST16_WIDTH = 16 376 INT_LEAST32_MAX = 2147483647 377 INT_LEAST32_MIN = -2147483648 378 INT_LEAST32_WIDTH = 32 379 INT_LEAST64_MAX = 9223372036854775807 380 INT_LEAST64_MIN = -9223372036854775808 381 INT_LEAST64_WIDTH = 64 382 INT_LEAST8_MAX = 127 383 INT_LEAST8_MIN = -128 384 INT_LEAST8_WIDTH = 8 385 IncludeInferiors = 1 386 InputFocus = 1 387 InputOnly = 2 388 InputOutput = 1 389 IsUnmapped = 0 390 IsUnviewable = 1 391 IsViewable = 2 392 JoinBevel = 2 393 JoinMiter = 0 394 JoinRound = 1 395 KBAutoRepeatMode = 128 396 KBBellDuration = 8 397 KBBellPercent = 2 398 KBBellPitch = 4 399 KBKey = 64 400 KBKeyClickPercent = 1 401 KBLed = 16 402 KBLedMode = 32 403 KeyPress = 2 404 KeyPressMask = 1 405 KeyRelease = 3 406 KeyReleaseMask = 2 407 KeymapNotify = 11 408 KeymapStateMask = 16384 409 LASTEvent = 36 410 LITTLE_ENDIAN = 1234 411 LOCK_EX = 2 412 LOCK_MAND = 32 413 LOCK_NB = 4 414 LOCK_READ = 64 415 LOCK_RW = 192 416 LOCK_SH = 1 417 LOCK_UN = 8 418 LOCK_WRITE = 128 419 LONG64 = 0 420 LSBFirst = 0 421 LT_OBJDIR = ".libs/" 422 L_INCR = 1 423 L_SET = 0 424 L_XTND = 2 425 LastExtensionError = 255 426 LeaveNotify = 8 427 LeaveWindowMask = 32 428 LedModeOff = 0 429 LedModeOn = 1 430 LineDoubleDash = 2 431 LineOnOffDash = 1 432 LineSolid = 0 433 LockMapIndex = 1 434 LockMask = 2 435 LowerHighest = 1 436 MAX_HANDLE_SZ = 128 437 MOD_CLKA = 32769 438 MOD_CLKB = 16384 439 MOD_ESTERROR = 8 440 MOD_FREQUENCY = 2 441 MOD_MAXERROR = 4 442 MOD_MICRO = 4096 443 MOD_NANO = 8192 444 MOD_OFFSET = 1 445 MOD_STATUS = 16 446 MOD_TAI = 128 447 MOD_TIMECONST = 32 448 MSBFirst = 1 449 MapNotify = 19 450 MapRequest = 20 451 MappingBusy = 1 452 MappingFailed = 2 453 MappingKeyboard = 1 454 MappingModifier = 0 455 MappingNotify = 34 456 MappingPointer = 2 457 MappingSuccess = 0 458 Mod1MapIndex = 3 459 Mod1Mask = 8 460 Mod2MapIndex = 4 461 Mod2Mask = 16 462 Mod3MapIndex = 5 463 Mod3Mask = 32 464 Mod4MapIndex = 6 465 Mod4Mask = 64 466 Mod5MapIndex = 7 467 Mod5Mask = 128 468 MotionNotify = 6 469 NARROWPROTO = 0 470 NeedFunctionPrototypes = 1 471 NeedNestedPrototypes = 1 472 NeedVarargsPrototypes = 1 473 NeedWidePrototypes = 0 474 NoEventMask = 0 475 NoExpose = 14 476 NoSymbol = 0 477 Nonconvex = 1 478 None = 0 479 NorthEastGravity = 3 480 NorthGravity = 2 481 NorthWestGravity = 1 482 NotUseful = 0 483 NotifyAncestor = 0 484 NotifyDetailNone = 7 485 NotifyGrab = 1 486 NotifyHint = 1 487 NotifyInferior = 2 488 NotifyNonlinear = 3 489 NotifyNonlinearVirtual = 4 490 NotifyNormal = 0 491 NotifyPointer = 5 492 NotifyPointerRoot = 6 493 NotifyUngrab = 2 494 NotifyVirtual = 1 495 NotifyWhileGrabbed = 3 496 O_ACCMODE = 0003 497 O_APPEND = 02000 498 O_ASYNC = 020000 499 O_CLOEXEC = 524288 500 O_CREAT = 0100 501 O_DIRECT = 65536 502 O_DIRECTORY = 16384 503 O_DSYNC = 4096 504 O_EXCL = 0200 505 O_FSYNC = 1052672 506 O_LARGEFILE = 0 507 O_NDELAY = 2048 508 O_NOATIME = 262144 509 O_NOCTTY = 0400 510 O_NOFOLLOW = 32768 511 O_NONBLOCK = 04000 512 O_PATH = 2097152 513 O_RDONLY = 00 514 O_RDWR = 02 515 O_RSYNC = 1052672 516 O_SYNC = 04010000 517 O_TMPFILE = 4210688 518 O_TRUNC = 01000 519 O_WRONLY = 01 520 Opposite = 4 521 OwnerGrabButtonMask = 16777216 522 PACKAGE = "libXdmcp" 523 PACKAGE_BUGREPORT = "https://bugs.freedesktop.org/enter_bug.cgi?product=xorg" 524 PACKAGE_NAME = "libXdmcp" 525 PACKAGE_STRING = "libXdmcp 1.1.2" 526 PACKAGE_TARNAME = "libXdmcp" 527 PACKAGE_URL = "" 528 PACKAGE_VERSION = "1.1.2" 529 PACKAGE_VERSION_MAJOR = 1 530 PACKAGE_VERSION_MINOR = 1 531 PACKAGE_VERSION_PATCHLEVEL = 2 532 PDP_ENDIAN = 3412 533 POSIX_FADV_DONTNEED = 4 534 POSIX_FADV_NOREUSE = 5 535 POSIX_FADV_NORMAL = 0 536 POSIX_FADV_RANDOM = 1 537 POSIX_FADV_SEQUENTIAL = 2 538 POSIX_FADV_WILLNEED = 3 539 PTRDIFF_MAX = 9223372036854775807 540 PTRDIFF_MIN = -9223372036854775808 541 PTRDIFF_WIDTH = 64 542 ParentRelative = 1 543 PlaceOnBottom = 1 544 PlaceOnTop = 0 545 PointerMotionHintMask = 128 546 PointerMotionMask = 64 547 PointerRoot = 1 548 PointerWindow = 0 549 PreferBlanking = 1 550 PropModeAppend = 2 551 PropModePrepend = 1 552 PropModeReplace = 0 553 PropertyChangeMask = 4194304 554 PropertyDelete = 1 555 PropertyNewValue = 0 556 PropertyNotify = 28 557 PseudoColor = 3 558 RAND_MAX = 2147483647 559 RWF_WRITE_LIFE_NOT_SET = 0 560 RWH_WRITE_LIFE_EXTREME = 5 561 RWH_WRITE_LIFE_LONG = 4 562 RWH_WRITE_LIFE_MEDIUM = 3 563 RWH_WRITE_LIFE_NONE = 1 564 RWH_WRITE_LIFE_NOT_SET = 0 565 RWH_WRITE_LIFE_SHORT = 2 566 R_OK = 4 567 RaiseLowest = 0 568 ReparentNotify = 21 569 ReplayKeyboard = 5 570 ReplayPointer = 2 571 ResizeRedirectMask = 262144 572 ResizeRequest = 25 573 RetainPermanent = 1 574 RetainTemporary = 2 575 RevertToParent = 2 576 SEEK_CUR = 1 577 SEEK_DATA = 3 578 SEEK_END = 2 579 SEEK_HOLE = 4 580 SEEK_SET = 0 581 SIG_ATOMIC_MAX = 2147483647 582 SIG_ATOMIC_MIN = -2147483648 583 SIG_ATOMIC_WIDTH = 32 584 SIZE_MAX = 18446744073709551615 585 SIZE_WIDTH = 64 586 SPLICE_F_GIFT = 8 587 SPLICE_F_MORE = 4 588 SPLICE_F_MOVE = 1 589 SPLICE_F_NONBLOCK = 2 590 STA_CLK = 0x8000 591 STA_CLOCKERR = 0x1000 592 STA_DEL = 0x0020 593 STA_FLL = 0x0008 594 STA_FREQHOLD = 0x0080 595 STA_INS = 0x0010 596 STA_MODE = 0x4000 597 STA_NANO = 0x2000 598 STA_PLL = 0x0001 599 STA_PPSERROR = 0x0800 600 STA_PPSFREQ = 0x0002 601 STA_PPSJITTER = 0x0200 602 STA_PPSSIGNAL = 0x0100 603 STA_PPSTIME = 0x0004 604 STA_PPSWANDER = 0x0400 605 STA_RONLY = 65280 606 STA_UNSYNC = 0x0040 607 STDC_HEADERS = 1 608 STDERR_FILENO = 2 609 STDIN_FILENO = 0 610 STDOUT_FILENO = 1 611 SYNC_FILE_RANGE_WAIT_AFTER = 4 612 SYNC_FILE_RANGE_WAIT_BEFORE = 1 613 SYNC_FILE_RANGE_WRITE = 2 614 SYNC_FILE_RANGE_WRITE_AND_WAIT = 7 615 S_IFBLK = 24576 616 S_IFCHR = 8192 617 S_IFDIR = 16384 618 S_IFIFO = 4096 619 S_IFLNK = 40960 620 S_IFMT = 61440 621 S_IFREG = 32768 622 S_IFSOCK = 49152 623 S_IRGRP = 32 624 S_IROTH = 4 625 S_IRUSR = 256 626 S_IRWXG = 56 627 S_IRWXO = 7 628 S_IRWXU = 448 629 S_ISGID = 1024 630 S_ISUID = 2048 631 S_ISVTX = 512 632 S_IWGRP = 16 633 S_IWOTH = 2 634 S_IWUSR = 128 635 S_IXGRP = 8 636 S_IXOTH = 1 637 S_IXUSR = 64 638 ScreenSaverActive = 1 639 ScreenSaverReset = 0 640 SelectionClear = 29 641 SelectionNotify = 31 642 SelectionRequest = 30 643 SetModeDelete = 1 644 SetModeInsert = 0 645 ShiftMapIndex = 0 646 ShiftMask = 1 647 SouthEastGravity = 9 648 SouthGravity = 8 649 SouthWestGravity = 7 650 StaticColor = 2 651 StaticGravity = 10 652 StaticGray = 0 653 StippleShape = 2 654 StructureNotifyMask = 131072 655 SubstructureNotifyMask = 524288 656 SubstructureRedirectMask = 1048576 657 Success = 0 658 SyncBoth = 7 659 SyncKeyboard = 4 660 SyncPointer = 1 661 TIMER_ABSTIME = 1 662 TIME_UTC = 1 663 TRUE = 1 664 TileShape = 1 665 TopIf = 2 666 TrueColor = 4 667 UINT16_MAX = 65535 668 UINT16_WIDTH = 16 669 UINT32_MAX = 4294967295 670 UINT32_WIDTH = 32 671 UINT64_MAX = 18446744073709551615 672 UINT64_WIDTH = 64 673 UINT8_MAX = 255 674 UINT8_WIDTH = 8 675 UINTMAX_MAX = 18446744073709551615 676 UINTMAX_WIDTH = 64 677 UINTPTR_MAX = 18446744073709551615 678 UINTPTR_WIDTH = 64 679 UINT_FAST16_MAX = 18446744073709551615 680 UINT_FAST16_WIDTH = 64 681 UINT_FAST32_MAX = 18446744073709551615 682 UINT_FAST32_WIDTH = 64 683 UINT_FAST64_MAX = 18446744073709551615 684 UINT_FAST64_WIDTH = 64 685 UINT_FAST8_MAX = 255 686 UINT_FAST8_WIDTH = 8 687 UINT_LEAST16_MAX = 65535 688 UINT_LEAST16_WIDTH = 16 689 UINT_LEAST32_MAX = 4294967295 690 UINT_LEAST32_WIDTH = 32 691 UINT_LEAST64_MAX = 18446744073709551615 692 UINT_LEAST64_WIDTH = 64 693 UINT_LEAST8_MAX = 255 694 UINT_LEAST8_WIDTH = 8 695 UTIME_NOW = 1073741823 696 UTIME_OMIT = 1073741822 697 UnmapGravity = 0 698 UnmapNotify = 18 699 Unsorted = 0 700 VERSION = "1.1.2" 701 VisibilityChangeMask = 65536 702 VisibilityFullyObscured = 2 703 VisibilityNotify = 15 704 VisibilityPartiallyObscured = 1 705 VisibilityUnobscured = 0 706 WCHAR_MAX = 4294967295 707 WCHAR_MIN = 0 708 WCHAR_WIDTH = 32 709 WCONTINUED = 8 710 WEXITED = 4 711 WINT_MAX = 4294967295 712 WINT_MIN = 0 713 WINT_WIDTH = 32 714 WNOHANG = 1 715 WNOWAIT = 0x01000000 716 WSTOPPED = 2 717 WUNTRACED = 2 718 W_OK = 2 719 WestGravity = 4 720 WhenMapped = 1 721 WindingRule = 1 722 XDM_DEFAULT_MCAST_ADDR6 = "ff02:0:0:0:0:0:0:12b" 723 XDM_DEF_DORMANCY = 180 724 XDM_KA_RTX_LIMIT = 4 725 XDM_MAX_DORMANCY = 86400 726 XDM_MAX_MSGLEN = 8192 727 XDM_MAX_RTX = 32 728 XDM_MIN_RTX = 2 729 XDM_PROTOCOL_VERSION = 1 730 XDM_RTX_LIMIT = 7 731 XDM_UDP_PORT = 177 732 XMD_H = 1 733 XYBitmap = 0 734 XYPixmap = 1 735 X_BIG_ENDIAN = 4321 736 X_BYTE_ORDER = 1234 737 X_H = 0 738 X_LITTLE_ENDIAN = 1234 739 X_OK = 1 740 X_PROTOCOL = 11 741 X_PROTOCOL_REVISION = 0 742 YSorted = 1 743 YXBanded = 3 744 YXSorted = 2 745 ZPixmap = 2 746 X_ALLOCA_H = 1 747 X_ALL_SOURCE = 1 748 X_ATFILE_SOURCE = 1 749 X_BITS_BYTESWAP_H = 1 750 X_BITS_ENDIANNESS_H = 1 751 X_BITS_ENDIAN_H = 1 752 X_BITS_FLOATN_COMMON_H = 0 753 X_BITS_FLOATN_H = 0 754 X_BITS_POSIX_OPT_H = 1 755 X_BITS_PTHREADTYPES_ARCH_H = 1 756 X_BITS_PTHREADTYPES_COMMON_H = 1 757 X_BITS_STAT_H = 1 758 X_BITS_STDINT_INTN_H = 1 759 X_BITS_STDINT_UINTN_H = 1 760 X_BITS_TIME64_H = 1 761 X_BITS_TIMEX_H = 1 762 X_BITS_TIME_H = 1 763 X_BITS_TYPESIZES_H = 1 764 X_BITS_TYPES_H = 1 765 X_BITS_TYPES_LOCALE_T_H = 1 766 X_BITS_TYPES___LOCALE_T_H = 1 767 X_BITS_UINTN_IDENTITY_H = 1 768 X_BITS_WCHAR_H = 1 769 X_BSD_SIZE_T_ = 0 770 X_BSD_SIZE_T_DEFINED_ = 0 771 X_DEFAULT_SOURCE = 1 772 X_ENDIAN_H = 1 773 X_FALLOC_H_ = 0 774 X_FCNTL_H = 1 775 X_FEATURES_H = 1 776 X_FILE_OFFSET_BITS = 64 777 X_GCC_SIZE_T = 0 778 X_GCC_WCHAR_T = 0 779 X_GCC_WRAP_STDINT_H = 0 780 X_GETOPT_CORE_H = 1 781 X_GETOPT_POSIX_H = 1 782 X_GNU_SOURCE = 1 783 X_ISOC11_SOURCE = 1 784 X_ISOC2X_SOURCE = 1 785 X_ISOC95_SOURCE = 1 786 X_ISOC99_SOURCE = 1 787 X_LARGEFILE64_SOURCE = 1 788 X_LARGEFILE_SOURCE = 1 789 X_LFS64_ASYNCHRONOUS_IO = 1 790 X_LFS64_LARGEFILE = 1 791 X_LFS64_STDIO = 1 792 X_LFS_ASYNCHRONOUS_IO = 1 793 X_LFS_LARGEFILE = 1 794 X_LP64 = 1 795 X_MKNOD_VER_LINUX = 0 796 X_POSIX2_CHAR_TERM = 200809 797 X_POSIX2_C_BIND = 200809 798 X_POSIX2_C_DEV = 200809 799 X_POSIX2_C_VERSION = 200809 800 X_POSIX2_LOCALEDEF = 200809 801 X_POSIX2_SW_DEV = 200809 802 X_POSIX2_VERSION = 200809 803 X_POSIX_ADVISORY_INFO = 200809 804 X_POSIX_ASYNCHRONOUS_IO = 200809 805 X_POSIX_ASYNC_IO = 1 806 X_POSIX_BARRIERS = 200809 807 X_POSIX_CHOWN_RESTRICTED = 0 808 X_POSIX_CLOCK_SELECTION = 200809 809 X_POSIX_CPUTIME = 0 810 X_POSIX_C_SOURCE = 200809 811 X_POSIX_FSYNC = 200809 812 X_POSIX_IPV6 = 200809 813 X_POSIX_JOB_CONTROL = 1 814 X_POSIX_MAPPED_FILES = 200809 815 X_POSIX_MEMLOCK = 200809 816 X_POSIX_MEMLOCK_RANGE = 200809 817 X_POSIX_MEMORY_PROTECTION = 200809 818 X_POSIX_MESSAGE_PASSING = 200809 819 X_POSIX_MONOTONIC_CLOCK = 0 820 X_POSIX_NO_TRUNC = 1 821 X_POSIX_PRIORITIZED_IO = 200809 822 X_POSIX_PRIORITY_SCHEDULING = 200809 823 X_POSIX_PTHREAD_SEMANTICS = 1 824 X_POSIX_RAW_SOCKETS = 200809 825 X_POSIX_READER_WRITER_LOCKS = 200809 826 X_POSIX_REALTIME_SIGNALS = 200809 827 X_POSIX_REENTRANT_FUNCTIONS = 1 828 X_POSIX_REGEXP = 1 829 X_POSIX_SAVED_IDS = 1 830 X_POSIX_SEMAPHORES = 200809 831 X_POSIX_SHARED_MEMORY_OBJECTS = 200809 832 X_POSIX_SHELL = 1 833 X_POSIX_SOURCE = 1 834 X_POSIX_SPAWN = 200809 835 X_POSIX_SPIN_LOCKS = 200809 836 X_POSIX_SPORADIC_SERVER = -1 837 X_POSIX_SYNCHRONIZED_IO = 200809 838 X_POSIX_THREADS = 200809 839 X_POSIX_THREAD_ATTR_STACKADDR = 200809 840 X_POSIX_THREAD_ATTR_STACKSIZE = 200809 841 X_POSIX_THREAD_CPUTIME = 0 842 X_POSIX_THREAD_PRIORITY_SCHEDULING = 200809 843 X_POSIX_THREAD_PRIO_INHERIT = 200809 844 X_POSIX_THREAD_PRIO_PROTECT = 200809 845 X_POSIX_THREAD_PROCESS_SHARED = 200809 846 X_POSIX_THREAD_ROBUST_PRIO_INHERIT = 200809 847 X_POSIX_THREAD_ROBUST_PRIO_PROTECT = -1 848 X_POSIX_THREAD_SAFE_FUNCTIONS = 200809 849 X_POSIX_THREAD_SPORADIC_SERVER = -1 850 X_POSIX_TIMEOUTS = 200809 851 X_POSIX_TIMERS = 200809 852 X_POSIX_TRACE = -1 853 X_POSIX_TRACE_EVENT_FILTER = -1 854 X_POSIX_TRACE_INHERIT = -1 855 X_POSIX_TRACE_LOG = -1 856 X_POSIX_TYPED_MEMORY_OBJECTS = -1 857 X_POSIX_V6_ILP32_OFF32 = -1 858 X_POSIX_V6_ILP32_OFFBIG = -1 859 X_POSIX_V6_LP64_OFF64 = 1 860 X_POSIX_V6_LPBIG_OFFBIG = -1 861 X_POSIX_V7_ILP32_OFF32 = -1 862 X_POSIX_V7_ILP32_OFFBIG = -1 863 X_POSIX_V7_LP64_OFF64 = 1 864 X_POSIX_V7_LPBIG_OFFBIG = -1 865 X_POSIX_VDISABLE = 0 866 X_POSIX_VERSION = 200809 867 X_RWLOCK_INTERNAL_H = 0 868 X_SIZET_ = 0 869 X_SIZE_T = 0 870 X_SIZE_T_ = 0 871 X_SIZE_T_DECLARED = 0 872 X_SIZE_T_DEFINED = 0 873 X_SIZE_T_DEFINED_ = 0 874 X_STATBUF_ST_BLKSIZE = 0 875 X_STATBUF_ST_NSEC = 0 876 X_STATBUF_ST_RDEV = 0 877 X_STAT_VER = 0 878 X_STAT_VER_KERNEL = 0 879 X_STAT_VER_LINUX = 0 880 X_STDC_PREDEF_H = 1 881 X_STDINT_H = 1 882 X_STDLIB_H = 1 883 X_STRINGS_H = 1 884 X_STRING_H = 1 885 X_STRUCT_TIMESPEC = 1 886 X_SYS_CDEFS_H = 1 887 X_SYS_SELECT_H = 1 888 X_SYS_SIZE_T_H = 0 889 X_SYS_TIME_H = 1 890 X_SYS_TYPES_H = 1 891 X_TANDEM_SOURCE = 1 892 X_THREAD_MUTEX_INTERNAL_H = 1 893 X_THREAD_SHARED_TYPES_H = 1 894 X_TIME_H = 1 895 X_T_SIZE = 0 896 X_T_SIZE_ = 0 897 X_T_WCHAR = 0 898 X_T_WCHAR_ = 0 899 X_UNISTD_H = 1 900 X_WCHAR_T = 0 901 X_WCHAR_T_ = 0 902 X_WCHAR_T_DECLARED = 0 903 X_WCHAR_T_DEFINED = 0 904 X_WCHAR_T_DEFINED_ = 0 905 X_WCHAR_T_H = 0 906 X_XARCH_H_ = 0 907 X_XBS5_ILP32_OFF32 = -1 908 X_XBS5_ILP32_OFFBIG = -1 909 X_XBS5_LP64_OFF64 = 1 910 X_XBS5_LPBIG_OFFBIG = -1 911 X_XDMCP_H_ = 0 912 X_XFUNCPROTOBEGIN = 0 913 X_XFUNCPROTOEND = 0 914 X_XFUNCPROTO_H_ = 0 915 X_XOPEN_ENH_I18N = 1 916 X_XOPEN_LEGACY = 1 917 X_XOPEN_REALTIME = 1 918 X_XOPEN_REALTIME_THREADS = 1 919 X_XOPEN_SHM = 1 920 X_XOPEN_SOURCE = 700 921 X_XOPEN_SOURCE_EXTENDED = 1 922 X_XOPEN_UNIX = 1 923 X_XOPEN_VERSION = 700 924 X_XOPEN_XCU_VERSION = 4 925 X_XOPEN_XPG2 = 1 926 X_XOPEN_XPG3 = 1 927 X_XOPEN_XPG4 = 1 928 X_XOSDEFS_H_ = 0 929 X_XOS_H_ = 0 930 X_XTYPEDEF_ATOM = 0 931 X_XTYPEDEF_FONT = 0 932 X_XTYPEDEF_MASK = 0 933 X_XTYPEDEF_XID = 0 934 X_X_NOTSAN = 0 935 Linux = 1 936 Unix = 1 937 AF_ALG = 38 938 AF_APPLETALK = 5 939 AF_ASH = 18 940 AF_ATMPVC = 8 941 AF_ATMSVC = 20 942 AF_AX25 = 3 943 AF_BLUETOOTH = 31 944 AF_BRIDGE = 7 945 AF_CAIF = 37 946 AF_CAN = 29 947 AF_DECnet = 12 948 AF_ECONET = 19 949 AF_FILE = 1 950 AF_IB = 27 951 AF_IEEE802154 = 36 952 AF_INET = 2 953 AF_INET6 = 10 954 AF_IPX = 4 955 AF_IRDA = 23 956 AF_ISDN = 34 957 AF_IUCV = 32 958 AF_KCM = 41 959 AF_KEY = 15 960 AF_LLC = 26 961 AF_LOCAL = 1 962 AF_MAX = 45 963 AF_MPLS = 28 964 AF_NETBEUI = 13 965 AF_NETLINK = 16 966 AF_NETROM = 6 967 AF_NFC = 39 968 AF_PACKET = 17 969 AF_PHONET = 35 970 AF_PPPOX = 24 971 AF_QIPCRTR = 42 972 AF_RDS = 21 973 AF_ROSE = 11 974 AF_ROUTE = 16 975 AF_RXRPC = 33 976 AF_SECURITY = 14 977 AF_SMC = 43 978 AF_SNA = 22 979 AF_TIPC = 30 980 AF_UNIX = 1 981 AF_UNSPEC = 0 982 AF_VSOCK = 40 983 AF_WANPIPE = 25 984 AF_X25 = 9 985 AF_XDP = 44 986 FIOGETOWN = 0x8903 987 FIOSETOWN = 0x8901 988 PF_ALG = 38 989 PF_APPLETALK = 5 990 PF_ASH = 18 991 PF_ATMPVC = 8 992 PF_ATMSVC = 20 993 PF_AX25 = 3 994 PF_BLUETOOTH = 31 995 PF_BRIDGE = 7 996 PF_CAIF = 37 997 PF_CAN = 29 998 PF_DECnet = 12 999 PF_ECONET = 19 1000 PF_FILE = 1 1001 PF_IB = 27 1002 PF_IEEE802154 = 36 1003 PF_INET = 2 1004 PF_INET6 = 10 1005 PF_IPX = 4 1006 PF_IRDA = 23 1007 PF_ISDN = 34 1008 PF_IUCV = 32 1009 PF_KCM = 41 1010 PF_KEY = 15 1011 PF_LLC = 26 1012 PF_LOCAL = 1 1013 PF_MAX = 45 1014 PF_MPLS = 28 1015 PF_NETBEUI = 13 1016 PF_NETLINK = 16 1017 PF_NETROM = 6 1018 PF_NFC = 39 1019 PF_PACKET = 17 1020 PF_PHONET = 35 1021 PF_PPPOX = 24 1022 PF_QIPCRTR = 42 1023 PF_RDS = 21 1024 PF_ROSE = 11 1025 PF_ROUTE = 16 1026 PF_RXRPC = 33 1027 PF_SECURITY = 14 1028 PF_SMC = 43 1029 PF_SNA = 22 1030 PF_TIPC = 30 1031 PF_UNIX = 1 1032 PF_UNSPEC = 0 1033 PF_VSOCK = 40 1034 PF_WANPIPE = 25 1035 PF_X25 = 9 1036 PF_XDP = 44 1037 SCM_TIMESTAMP = 29 1038 SCM_TIMESTAMPING = 37 1039 SCM_TIMESTAMPING_OPT_STATS = 54 1040 SCM_TIMESTAMPING_PKTINFO = 58 1041 SCM_TIMESTAMPNS = 35 1042 SCM_TXTIME = 61 1043 SCM_WIFI_STATUS = 41 1044 SIOCATMARK = 0x8905 1045 SIOCGPGRP = 0x8904 1046 SIOCGSTAMPNS_OLD = 0x8907 1047 SIOCGSTAMP_OLD = 0x8906 1048 SIOCSPGRP = 0x8902 1049 SOL_AAL = 265 1050 SOL_ALG = 279 1051 SOL_ATM = 264 1052 SOL_BLUETOOTH = 274 1053 SOL_CAIF = 278 1054 SOL_DCCP = 269 1055 SOL_DECNET = 261 1056 SOL_IRDA = 266 1057 SOL_IUCV = 277 1058 SOL_KCM = 281 1059 SOL_LLC = 268 1060 SOL_NETBEUI = 267 1061 SOL_NETLINK = 270 1062 SOL_NFC = 280 1063 SOL_PACKET = 263 1064 SOL_PNPIPE = 275 1065 SOL_PPPOL2TP = 273 1066 SOL_RAW = 255 1067 SOL_RDS = 276 1068 SOL_RXRPC = 272 1069 SOL_SOCKET = 1 1070 SOL_TIPC = 271 1071 SOL_TLS = 282 1072 SOL_X25 = 262 1073 SOL_XDP = 283 1074 SOMAXCONN = 4096 1075 SO_ACCEPTCONN = 30 1076 SO_ATTACH_BPF = 50 1077 SO_ATTACH_FILTER = 26 1078 SO_ATTACH_REUSEPORT_CBPF = 51 1079 SO_ATTACH_REUSEPORT_EBPF = 52 1080 SO_BINDTODEVICE = 25 1081 SO_BINDTOIFINDEX = 62 1082 SO_BPF_EXTENSIONS = 48 1083 SO_BROADCAST = 6 1084 SO_BSDCOMPAT = 14 1085 SO_BUSY_POLL = 46 1086 SO_CNX_ADVICE = 53 1087 SO_COOKIE = 57 1088 SO_DEBUG = 1 1089 SO_DETACH_BPF = 27 1090 SO_DETACH_FILTER = 27 1091 SO_DETACH_REUSEPORT_BPF = 68 1092 SO_DOMAIN = 39 1093 SO_DONTROUTE = 5 1094 SO_ERROR = 4 1095 SO_GET_FILTER = 26 1096 SO_INCOMING_CPU = 49 1097 SO_INCOMING_NAPI_ID = 56 1098 SO_KEEPALIVE = 9 1099 SO_LINGER = 13 1100 SO_LOCK_FILTER = 44 1101 SO_MARK = 36 1102 SO_MAX_PACING_RATE = 47 1103 SO_MEMINFO = 55 1104 SO_NOFCS = 43 1105 SO_NO_CHECK = 11 1106 SO_OOBINLINE = 10 1107 SO_PASSCRED = 16 1108 SO_PASSSEC = 34 1109 SO_PEEK_OFF = 42 1110 SO_PEERCRED = 17 1111 SO_PEERGROUPS = 59 1112 SO_PEERNAME = 28 1113 SO_PEERSEC = 31 1114 SO_PRIORITY = 12 1115 SO_PROTOCOL = 38 1116 SO_RCVBUF = 8 1117 SO_RCVBUFFORCE = 33 1118 SO_RCVLOWAT = 18 1119 SO_RCVTIMEO = 20 1120 SO_RCVTIMEO_NEW = 66 1121 SO_RCVTIMEO_OLD = 20 1122 SO_REUSEADDR = 2 1123 SO_REUSEPORT = 15 1124 SO_RXQ_OVFL = 40 1125 SO_SECURITY_AUTHENTICATION = 22 1126 SO_SECURITY_ENCRYPTION_NETWORK = 24 1127 SO_SECURITY_ENCRYPTION_TRANSPORT = 23 1128 SO_SELECT_ERR_QUEUE = 45 1129 SO_SNDBUF = 7 1130 SO_SNDBUFFORCE = 32 1131 SO_SNDLOWAT = 19 1132 SO_SNDTIMEO = 21 1133 SO_SNDTIMEO_NEW = 67 1134 SO_SNDTIMEO_OLD = 21 1135 SO_TIMESTAMP = 29 1136 SO_TIMESTAMPING = 37 1137 SO_TIMESTAMPING_NEW = 65 1138 SO_TIMESTAMPING_OLD = 37 1139 SO_TIMESTAMPNS = 35 1140 SO_TIMESTAMPNS_NEW = 64 1141 SO_TIMESTAMPNS_OLD = 35 1142 SO_TIMESTAMP_NEW = 63 1143 SO_TIMESTAMP_OLD = 29 1144 SO_TXTIME = 61 1145 SO_TYPE = 3 1146 SO_WIFI_STATUS = 41 1147 SO_ZEROCOPY = 60 1148 X_BITS_SOCKADDR_H = 1 1149 X_LINUX_POSIX_TYPES_H = 0 1150 X_SS_SIZE = 128 1151 X_SYS_SOCKET_H = 1 1152 HALF_ITERATIONS = 8 1153 ITERATIONS = 16 1154 ) 1155 1156 // Get the `_PC_*' symbols for the NAME argument to `pathconf' and `fpathconf'; 1157 // the `_SC_*' symbols for the NAME argument to `sysconf'; 1158 // and the `_CS_*' symbols for the NAME argument to `confstr'. 1159 // `sysconf', `pathconf', and `confstr' NAME values. Generic version. 1160 // Copyright (C) 1993-2020 Free Software Foundation, Inc. 1161 // This file is part of the GNU C Library. 1162 // 1163 // The GNU C Library is free software; you can redistribute it and/or 1164 // modify it under the terms of the GNU Lesser General Public 1165 // License as published by the Free Software Foundation; either 1166 // version 2.1 of the License, or (at your option) any later version. 1167 // 1168 // The GNU C Library is distributed in the hope that it will be useful, 1169 // but WITHOUT ANY WARRANTY; without even the implied warranty of 1170 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 1171 // Lesser General Public License for more details. 1172 // 1173 // You should have received a copy of the GNU Lesser General Public 1174 // License along with the GNU C Library; if not, see 1175 // <https://www.gnu.org/licenses/>. 1176 1177 // Values for the NAME argument to `pathconf' and `fpathconf'. 1178 const ( /* confname.h:24:1: */ 1179 X_PC_LINK_MAX = 0 1180 X_PC_MAX_CANON = 1 1181 X_PC_MAX_INPUT = 2 1182 X_PC_NAME_MAX = 3 1183 X_PC_PATH_MAX = 4 1184 X_PC_PIPE_BUF = 5 1185 X_PC_CHOWN_RESTRICTED = 6 1186 X_PC_NO_TRUNC = 7 1187 X_PC_VDISABLE = 8 1188 X_PC_SYNC_IO = 9 1189 X_PC_ASYNC_IO = 10 1190 X_PC_PRIO_IO = 11 1191 X_PC_SOCK_MAXBUF = 12 1192 X_PC_FILESIZEBITS = 13 1193 X_PC_REC_INCR_XFER_SIZE = 14 1194 X_PC_REC_MAX_XFER_SIZE = 15 1195 X_PC_REC_MIN_XFER_SIZE = 16 1196 X_PC_REC_XFER_ALIGN = 17 1197 X_PC_ALLOC_SIZE_MIN = 18 1198 X_PC_SYMLINK_MAX = 19 1199 X_PC_2_SYMLINKS = 20 1200 ) 1201 1202 // Values for the NAME argument to `confstr'. 1203 const ( /* confname.h:533:1: */ 1204 X_CS_PATH = 0 // The default search path. 1205 1206 X_CS_V6_WIDTH_RESTRICTED_ENVS = 1 1207 1208 X_CS_GNU_LIBC_VERSION = 2 1209 X_CS_GNU_LIBPTHREAD_VERSION = 3 1210 1211 X_CS_V5_WIDTH_RESTRICTED_ENVS = 4 1212 1213 X_CS_V7_WIDTH_RESTRICTED_ENVS = 5 1214 1215 X_CS_LFS_CFLAGS = 1000 1216 X_CS_LFS_LDFLAGS = 1001 1217 X_CS_LFS_LIBS = 1002 1218 X_CS_LFS_LINTFLAGS = 1003 1219 X_CS_LFS64_CFLAGS = 1004 1220 X_CS_LFS64_LDFLAGS = 1005 1221 X_CS_LFS64_LIBS = 1006 1222 X_CS_LFS64_LINTFLAGS = 1007 1223 1224 X_CS_XBS5_ILP32_OFF32_CFLAGS = 1100 1225 X_CS_XBS5_ILP32_OFF32_LDFLAGS = 1101 1226 X_CS_XBS5_ILP32_OFF32_LIBS = 1102 1227 X_CS_XBS5_ILP32_OFF32_LINTFLAGS = 1103 1228 X_CS_XBS5_ILP32_OFFBIG_CFLAGS = 1104 1229 X_CS_XBS5_ILP32_OFFBIG_LDFLAGS = 1105 1230 X_CS_XBS5_ILP32_OFFBIG_LIBS = 1106 1231 X_CS_XBS5_ILP32_OFFBIG_LINTFLAGS = 1107 1232 X_CS_XBS5_LP64_OFF64_CFLAGS = 1108 1233 X_CS_XBS5_LP64_OFF64_LDFLAGS = 1109 1234 X_CS_XBS5_LP64_OFF64_LIBS = 1110 1235 X_CS_XBS5_LP64_OFF64_LINTFLAGS = 1111 1236 X_CS_XBS5_LPBIG_OFFBIG_CFLAGS = 1112 1237 X_CS_XBS5_LPBIG_OFFBIG_LDFLAGS = 1113 1238 X_CS_XBS5_LPBIG_OFFBIG_LIBS = 1114 1239 X_CS_XBS5_LPBIG_OFFBIG_LINTFLAGS = 1115 1240 1241 X_CS_POSIX_V6_ILP32_OFF32_CFLAGS = 1116 1242 X_CS_POSIX_V6_ILP32_OFF32_LDFLAGS = 1117 1243 X_CS_POSIX_V6_ILP32_OFF32_LIBS = 1118 1244 X_CS_POSIX_V6_ILP32_OFF32_LINTFLAGS = 1119 1245 X_CS_POSIX_V6_ILP32_OFFBIG_CFLAGS = 1120 1246 X_CS_POSIX_V6_ILP32_OFFBIG_LDFLAGS = 1121 1247 X_CS_POSIX_V6_ILP32_OFFBIG_LIBS = 1122 1248 X_CS_POSIX_V6_ILP32_OFFBIG_LINTFLAGS = 1123 1249 X_CS_POSIX_V6_LP64_OFF64_CFLAGS = 1124 1250 X_CS_POSIX_V6_LP64_OFF64_LDFLAGS = 1125 1251 X_CS_POSIX_V6_LP64_OFF64_LIBS = 1126 1252 X_CS_POSIX_V6_LP64_OFF64_LINTFLAGS = 1127 1253 X_CS_POSIX_V6_LPBIG_OFFBIG_CFLAGS = 1128 1254 X_CS_POSIX_V6_LPBIG_OFFBIG_LDFLAGS = 1129 1255 X_CS_POSIX_V6_LPBIG_OFFBIG_LIBS = 1130 1256 X_CS_POSIX_V6_LPBIG_OFFBIG_LINTFLAGS = 1131 1257 1258 X_CS_POSIX_V7_ILP32_OFF32_CFLAGS = 1132 1259 X_CS_POSIX_V7_ILP32_OFF32_LDFLAGS = 1133 1260 X_CS_POSIX_V7_ILP32_OFF32_LIBS = 1134 1261 X_CS_POSIX_V7_ILP32_OFF32_LINTFLAGS = 1135 1262 X_CS_POSIX_V7_ILP32_OFFBIG_CFLAGS = 1136 1263 X_CS_POSIX_V7_ILP32_OFFBIG_LDFLAGS = 1137 1264 X_CS_POSIX_V7_ILP32_OFFBIG_LIBS = 1138 1265 X_CS_POSIX_V7_ILP32_OFFBIG_LINTFLAGS = 1139 1266 X_CS_POSIX_V7_LP64_OFF64_CFLAGS = 1140 1267 X_CS_POSIX_V7_LP64_OFF64_LDFLAGS = 1141 1268 X_CS_POSIX_V7_LP64_OFF64_LIBS = 1142 1269 X_CS_POSIX_V7_LP64_OFF64_LINTFLAGS = 1143 1270 X_CS_POSIX_V7_LPBIG_OFFBIG_CFLAGS = 1144 1271 X_CS_POSIX_V7_LPBIG_OFFBIG_LDFLAGS = 1145 1272 X_CS_POSIX_V7_LPBIG_OFFBIG_LIBS = 1146 1273 X_CS_POSIX_V7_LPBIG_OFFBIG_LINTFLAGS = 1147 1274 1275 X_CS_V6_ENV = 1148 1276 X_CS_V7_ENV = 1149 1277 ) 1278 1279 // Values for the argument to `sysconf'. 1280 const ( /* confname.h:71:1: */ 1281 X_SC_ARG_MAX = 0 1282 X_SC_CHILD_MAX = 1 1283 X_SC_CLK_TCK = 2 1284 X_SC_NGROUPS_MAX = 3 1285 X_SC_OPEN_MAX = 4 1286 X_SC_STREAM_MAX = 5 1287 X_SC_TZNAME_MAX = 6 1288 X_SC_JOB_CONTROL = 7 1289 X_SC_SAVED_IDS = 8 1290 X_SC_REALTIME_SIGNALS = 9 1291 X_SC_PRIORITY_SCHEDULING = 10 1292 X_SC_TIMERS = 11 1293 X_SC_ASYNCHRONOUS_IO = 12 1294 X_SC_PRIORITIZED_IO = 13 1295 X_SC_SYNCHRONIZED_IO = 14 1296 X_SC_FSYNC = 15 1297 X_SC_MAPPED_FILES = 16 1298 X_SC_MEMLOCK = 17 1299 X_SC_MEMLOCK_RANGE = 18 1300 X_SC_MEMORY_PROTECTION = 19 1301 X_SC_MESSAGE_PASSING = 20 1302 X_SC_SEMAPHORES = 21 1303 X_SC_SHARED_MEMORY_OBJECTS = 22 1304 X_SC_AIO_LISTIO_MAX = 23 1305 X_SC_AIO_MAX = 24 1306 X_SC_AIO_PRIO_DELTA_MAX = 25 1307 X_SC_DELAYTIMER_MAX = 26 1308 X_SC_MQ_OPEN_MAX = 27 1309 X_SC_MQ_PRIO_MAX = 28 1310 X_SC_VERSION = 29 1311 X_SC_PAGESIZE = 30 1312 X_SC_RTSIG_MAX = 31 1313 X_SC_SEM_NSEMS_MAX = 32 1314 X_SC_SEM_VALUE_MAX = 33 1315 X_SC_SIGQUEUE_MAX = 34 1316 X_SC_TIMER_MAX = 35 1317 1318 // Values for the argument to `sysconf' 1319 // corresponding to _POSIX2_* symbols. 1320 X_SC_BC_BASE_MAX = 36 1321 X_SC_BC_DIM_MAX = 37 1322 X_SC_BC_SCALE_MAX = 38 1323 X_SC_BC_STRING_MAX = 39 1324 X_SC_COLL_WEIGHTS_MAX = 40 1325 X_SC_EQUIV_CLASS_MAX = 41 1326 X_SC_EXPR_NEST_MAX = 42 1327 X_SC_LINE_MAX = 43 1328 X_SC_RE_DUP_MAX = 44 1329 X_SC_CHARCLASS_NAME_MAX = 45 1330 1331 X_SC_2_VERSION = 46 1332 X_SC_2_C_BIND = 47 1333 X_SC_2_C_DEV = 48 1334 X_SC_2_FORT_DEV = 49 1335 X_SC_2_FORT_RUN = 50 1336 X_SC_2_SW_DEV = 51 1337 X_SC_2_LOCALEDEF = 52 1338 1339 X_SC_PII = 53 1340 X_SC_PII_XTI = 54 1341 X_SC_PII_SOCKET = 55 1342 X_SC_PII_INTERNET = 56 1343 X_SC_PII_OSI = 57 1344 X_SC_POLL = 58 1345 X_SC_SELECT = 59 1346 X_SC_UIO_MAXIOV = 60 1347 X_SC_IOV_MAX = 60 1348 X_SC_PII_INTERNET_STREAM = 61 1349 X_SC_PII_INTERNET_DGRAM = 62 1350 X_SC_PII_OSI_COTS = 63 1351 X_SC_PII_OSI_CLTS = 64 1352 X_SC_PII_OSI_M = 65 1353 X_SC_T_IOV_MAX = 66 1354 1355 // Values according to POSIX 1003.1c (POSIX threads). 1356 X_SC_THREADS = 67 1357 X_SC_THREAD_SAFE_FUNCTIONS = 68 1358 X_SC_GETGR_R_SIZE_MAX = 69 1359 X_SC_GETPW_R_SIZE_MAX = 70 1360 X_SC_LOGIN_NAME_MAX = 71 1361 X_SC_TTY_NAME_MAX = 72 1362 X_SC_THREAD_DESTRUCTOR_ITERATIONS = 73 1363 X_SC_THREAD_KEYS_MAX = 74 1364 X_SC_THREAD_STACK_MIN = 75 1365 X_SC_THREAD_THREADS_MAX = 76 1366 X_SC_THREAD_ATTR_STACKADDR = 77 1367 X_SC_THREAD_ATTR_STACKSIZE = 78 1368 X_SC_THREAD_PRIORITY_SCHEDULING = 79 1369 X_SC_THREAD_PRIO_INHERIT = 80 1370 X_SC_THREAD_PRIO_PROTECT = 81 1371 X_SC_THREAD_PROCESS_SHARED = 82 1372 1373 X_SC_NPROCESSORS_CONF = 83 1374 X_SC_NPROCESSORS_ONLN = 84 1375 X_SC_PHYS_PAGES = 85 1376 X_SC_AVPHYS_PAGES = 86 1377 X_SC_ATEXIT_MAX = 87 1378 X_SC_PASS_MAX = 88 1379 1380 X_SC_XOPEN_VERSION = 89 1381 X_SC_XOPEN_XCU_VERSION = 90 1382 X_SC_XOPEN_UNIX = 91 1383 X_SC_XOPEN_CRYPT = 92 1384 X_SC_XOPEN_ENH_I18N = 93 1385 X_SC_XOPEN_SHM = 94 1386 1387 X_SC_2_CHAR_TERM = 95 1388 X_SC_2_C_VERSION = 96 1389 X_SC_2_UPE = 97 1390 1391 X_SC_XOPEN_XPG2 = 98 1392 X_SC_XOPEN_XPG3 = 99 1393 X_SC_XOPEN_XPG4 = 100 1394 1395 X_SC_CHAR_BIT = 101 1396 X_SC_CHAR_MAX = 102 1397 X_SC_CHAR_MIN = 103 1398 X_SC_INT_MAX = 104 1399 X_SC_INT_MIN = 105 1400 X_SC_LONG_BIT = 106 1401 X_SC_WORD_BIT = 107 1402 X_SC_MB_LEN_MAX = 108 1403 X_SC_NZERO = 109 1404 X_SC_SSIZE_MAX = 110 1405 X_SC_SCHAR_MAX = 111 1406 X_SC_SCHAR_MIN = 112 1407 X_SC_SHRT_MAX = 113 1408 X_SC_SHRT_MIN = 114 1409 X_SC_UCHAR_MAX = 115 1410 X_SC_UINT_MAX = 116 1411 X_SC_ULONG_MAX = 117 1412 X_SC_USHRT_MAX = 118 1413 1414 X_SC_NL_ARGMAX = 119 1415 X_SC_NL_LANGMAX = 120 1416 X_SC_NL_MSGMAX = 121 1417 X_SC_NL_NMAX = 122 1418 X_SC_NL_SETMAX = 123 1419 X_SC_NL_TEXTMAX = 124 1420 1421 X_SC_XBS5_ILP32_OFF32 = 125 1422 X_SC_XBS5_ILP32_OFFBIG = 126 1423 X_SC_XBS5_LP64_OFF64 = 127 1424 X_SC_XBS5_LPBIG_OFFBIG = 128 1425 1426 X_SC_XOPEN_LEGACY = 129 1427 X_SC_XOPEN_REALTIME = 130 1428 X_SC_XOPEN_REALTIME_THREADS = 131 1429 1430 X_SC_ADVISORY_INFO = 132 1431 X_SC_BARRIERS = 133 1432 X_SC_BASE = 134 1433 X_SC_C_LANG_SUPPORT = 135 1434 X_SC_C_LANG_SUPPORT_R = 136 1435 X_SC_CLOCK_SELECTION = 137 1436 X_SC_CPUTIME = 138 1437 X_SC_THREAD_CPUTIME = 139 1438 X_SC_DEVICE_IO = 140 1439 X_SC_DEVICE_SPECIFIC = 141 1440 X_SC_DEVICE_SPECIFIC_R = 142 1441 X_SC_FD_MGMT = 143 1442 X_SC_FIFO = 144 1443 X_SC_PIPE = 145 1444 X_SC_FILE_ATTRIBUTES = 146 1445 X_SC_FILE_LOCKING = 147 1446 X_SC_FILE_SYSTEM = 148 1447 X_SC_MONOTONIC_CLOCK = 149 1448 X_SC_MULTI_PROCESS = 150 1449 X_SC_SINGLE_PROCESS = 151 1450 X_SC_NETWORKING = 152 1451 X_SC_READER_WRITER_LOCKS = 153 1452 X_SC_SPIN_LOCKS = 154 1453 X_SC_REGEXP = 155 1454 X_SC_REGEX_VERSION = 156 1455 X_SC_SHELL = 157 1456 X_SC_SIGNALS = 158 1457 X_SC_SPAWN = 159 1458 X_SC_SPORADIC_SERVER = 160 1459 X_SC_THREAD_SPORADIC_SERVER = 161 1460 X_SC_SYSTEM_DATABASE = 162 1461 X_SC_SYSTEM_DATABASE_R = 163 1462 X_SC_TIMEOUTS = 164 1463 X_SC_TYPED_MEMORY_OBJECTS = 165 1464 X_SC_USER_GROUPS = 166 1465 X_SC_USER_GROUPS_R = 167 1466 X_SC_2_PBS = 168 1467 X_SC_2_PBS_ACCOUNTING = 169 1468 X_SC_2_PBS_LOCATE = 170 1469 X_SC_2_PBS_MESSAGE = 171 1470 X_SC_2_PBS_TRACK = 172 1471 X_SC_SYMLOOP_MAX = 173 1472 X_SC_STREAMS = 174 1473 X_SC_2_PBS_CHECKPOINT = 175 1474 1475 X_SC_V6_ILP32_OFF32 = 176 1476 X_SC_V6_ILP32_OFFBIG = 177 1477 X_SC_V6_LP64_OFF64 = 178 1478 X_SC_V6_LPBIG_OFFBIG = 179 1479 1480 X_SC_HOST_NAME_MAX = 180 1481 X_SC_TRACE = 181 1482 X_SC_TRACE_EVENT_FILTER = 182 1483 X_SC_TRACE_INHERIT = 183 1484 X_SC_TRACE_LOG = 184 1485 1486 X_SC_LEVEL1_ICACHE_SIZE = 185 1487 X_SC_LEVEL1_ICACHE_ASSOC = 186 1488 X_SC_LEVEL1_ICACHE_LINESIZE = 187 1489 X_SC_LEVEL1_DCACHE_SIZE = 188 1490 X_SC_LEVEL1_DCACHE_ASSOC = 189 1491 X_SC_LEVEL1_DCACHE_LINESIZE = 190 1492 X_SC_LEVEL2_CACHE_SIZE = 191 1493 X_SC_LEVEL2_CACHE_ASSOC = 192 1494 X_SC_LEVEL2_CACHE_LINESIZE = 193 1495 X_SC_LEVEL3_CACHE_SIZE = 194 1496 X_SC_LEVEL3_CACHE_ASSOC = 195 1497 X_SC_LEVEL3_CACHE_LINESIZE = 196 1498 X_SC_LEVEL4_CACHE_SIZE = 197 1499 X_SC_LEVEL4_CACHE_ASSOC = 198 1500 X_SC_LEVEL4_CACHE_LINESIZE = 199 1501 // Leave room here, maybe we need a few more cache levels some day. 1502 1503 X_SC_IPV6 = 235 1504 X_SC_RAW_SOCKETS = 236 1505 1506 X_SC_V7_ILP32_OFF32 = 237 1507 X_SC_V7_ILP32_OFFBIG = 238 1508 X_SC_V7_LP64_OFF64 = 239 1509 X_SC_V7_LPBIG_OFFBIG = 240 1510 1511 X_SC_SS_REPL_MAX = 241 1512 1513 X_SC_TRACE_EVENT_NAME_MAX = 242 1514 X_SC_TRACE_NAME_MAX = 243 1515 X_SC_TRACE_SYS_MAX = 244 1516 X_SC_TRACE_USER_EVENT_MAX = 245 1517 1518 X_SC_XOPEN_STREAMS = 246 1519 1520 X_SC_THREAD_ROBUST_PRIO_INHERIT = 247 1521 X_SC_THREAD_ROBUST_PRIO_PROTECT = 248 1522 ) 1523 1524 // open/fcntl. 1525 1526 // open file description locks. 1527 // 1528 // Usually record locks held by a process are released on *any* close and are 1529 // not inherited across a fork. 1530 // 1531 // These cmd values will set locks that conflict with process-associated record 1532 // locks, but are "owned" by the opened file description, not the process. 1533 // This means that they are inherited across fork or clone with CLONE_FILES 1534 // like BSD (flock) locks, and they are only released automatically when the 1535 // last reference to the the file description against which they were acquired 1536 // is put. 1537 1538 // For now, Linux has no separate synchronicity options for read 1539 // operations. We define O_RSYNC therefore as the same as O_SYNC 1540 // since this is a superset. 1541 1542 // Values for the second argument to `fcntl'. 1543 1544 // Set / get write life time hints. 1545 1546 // For F_[GET|SET]FD. 1547 1548 // For posix fcntl() and `l_type' field of a `struct flock' for lockf(). 1549 1550 // For old implementation of BSD flock. 1551 1552 // Operations for BSD flock, also used by the kernel implementation. 1553 1554 // Types of directory notifications that may be requested with F_NOTIFY. 1555 1556 // Owner types. 1557 const ( /* fcntl-linux.h:265:1: */ 1558 F_OWNER_TID = 0 // Kernel thread. 1559 F_OWNER_PID = 1 // Process. 1560 F_OWNER_PGRP = 2 // Process group. 1561 F_OWNER_GID = 2 1562 ) 1563 1564 // Bits in the FLAGS argument to `send', `recv', et al. 1565 const ( /* socket.h:200:1: */ 1566 MSG_OOB = 1 // Process out-of-band data. 1567 MSG_PEEK = 2 // Peek at incoming messages. 1568 MSG_DONTROUTE = 4 // Don't use local routing. 1569 // DECnet uses a different name. 1570 MSG_TRYHARD = 4 1571 MSG_CTRUNC = 8 // Control data lost before delivery. 1572 MSG_PROXY = 16 // Supply or ask second address. 1573 MSG_TRUNC = 32 1574 MSG_DONTWAIT = 64 // Nonblocking IO. 1575 MSG_EOR = 128 // End of record. 1576 MSG_WAITALL = 256 // Wait for a full request. 1577 MSG_FIN = 512 1578 MSG_SYN = 1024 1579 MSG_CONFIRM = 2048 // Confirm path validity. 1580 MSG_RST = 4096 1581 MSG_ERRQUEUE = 8192 // Fetch message from error queue. 1582 MSG_NOSIGNAL = 16384 // Do not generate SIGPIPE. 1583 MSG_MORE = 32768 // Sender will send more. 1584 MSG_WAITFORONE = 65536 // Wait for at least one packet to return. 1585 MSG_BATCH = 262144 // sendmmsg: more messages coming. 1586 MSG_ZEROCOPY = 67108864 // Use user data in kernel path. 1587 MSG_FASTOPEN = 536870912 // Send data in TCP SYN. 1588 1589 MSG_CMSG_CLOEXEC = 1073741824 1590 ) 1591 1592 // Socket level message types. This must match the definitions in 1593 // <linux/socket.h>. 1594 const ( /* socket.h:332:1: */ 1595 SCM_RIGHTS = 1 1596 SCM_CREDENTIALS = 2 1597 ) 1598 1599 // Floating-point inline functions for stdlib.h. 1600 // Copyright (C) 2012-2020 Free Software Foundation, Inc. 1601 // This file is part of the GNU C Library. 1602 // 1603 // The GNU C Library is free software; you can redistribute it and/or 1604 // modify it under the terms of the GNU Lesser General Public 1605 // License as published by the Free Software Foundation; either 1606 // version 2.1 of the License, or (at your option) any later version. 1607 // 1608 // The GNU C Library is distributed in the hope that it will be useful, 1609 // but WITHOUT ANY WARRANTY; without even the implied warranty of 1610 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 1611 // Lesser General Public License for more details. 1612 // 1613 // You should have received a copy of the GNU Lesser General Public 1614 // License along with the GNU C Library; if not, see 1615 // <https://www.gnu.org/licenses/>. 1616 1617 // Define some macros helping to catch buffer overflows. 1618 1619 // Macros to control TS 18661-3 glibc features on ldbl-128 platforms. 1620 // Copyright (C) 2017-2020 Free Software Foundation, Inc. 1621 // This file is part of the GNU C Library. 1622 // 1623 // The GNU C Library is free software; you can redistribute it and/or 1624 // modify it under the terms of the GNU Lesser General Public 1625 // License as published by the Free Software Foundation; either 1626 // version 2.1 of the License, or (at your option) any later version. 1627 // 1628 // The GNU C Library is distributed in the hope that it will be useful, 1629 // but WITHOUT ANY WARRANTY; without even the implied warranty of 1630 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 1631 // Lesser General Public License for more details. 1632 // 1633 // You should have received a copy of the GNU Lesser General Public 1634 // License along with the GNU C Library; if not, see 1635 // <https://www.gnu.org/licenses/>. 1636 1637 // Declarations of socket constants, types, and functions. 1638 // Copyright (C) 1991-2020 Free Software Foundation, Inc. 1639 // This file is part of the GNU C Library. 1640 // 1641 // The GNU C Library is free software; you can redistribute it and/or 1642 // modify it under the terms of the GNU Lesser General Public 1643 // License as published by the Free Software Foundation; either 1644 // version 2.1 of the License, or (at your option) any later version. 1645 // 1646 // The GNU C Library is distributed in the hope that it will be useful, 1647 // but WITHOUT ANY WARRANTY; without even the implied warranty of 1648 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 1649 // Lesser General Public License for more details. 1650 // 1651 // You should have received a copy of the GNU Lesser General Public 1652 // License along with the GNU C Library; if not, see 1653 // <https://www.gnu.org/licenses/>. 1654 1655 // Copyright (C) 1991-2020 Free Software Foundation, Inc. 1656 // This file is part of the GNU C Library. 1657 // 1658 // The GNU C Library is free software; you can redistribute it and/or 1659 // modify it under the terms of the GNU Lesser General Public 1660 // License as published by the Free Software Foundation; either 1661 // version 2.1 of the License, or (at your option) any later version. 1662 // 1663 // The GNU C Library is distributed in the hope that it will be useful, 1664 // but WITHOUT ANY WARRANTY; without even the implied warranty of 1665 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 1666 // Lesser General Public License for more details. 1667 // 1668 // You should have received a copy of the GNU Lesser General Public 1669 // License along with the GNU C Library; if not, see 1670 // <https://www.gnu.org/licenses/>. 1671 1672 // Define struct iovec. 1673 // Copyright (C) 1996-2020 Free Software Foundation, Inc. 1674 // This file is part of the GNU C Library. 1675 // 1676 // The GNU C Library is free software; you can redistribute it and/or 1677 // modify it under the terms of the GNU Lesser General Public 1678 // License as published by the Free Software Foundation; either 1679 // version 2.1 of the License, or (at your option) any later version. 1680 // 1681 // The GNU C Library is distributed in the hope that it will be useful, 1682 // but WITHOUT ANY WARRANTY; without even the implied warranty of 1683 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 1684 // Lesser General Public License for more details. 1685 // 1686 // You should have received a copy of the GNU Lesser General Public 1687 // License along with the GNU C Library; if not, see 1688 // <https://www.gnu.org/licenses/>. 1689 1690 // Copyright (C) 1989-2020 Free Software Foundation, Inc. 1691 // 1692 // This file is part of GCC. 1693 // 1694 // GCC is free software; you can redistribute it and/or modify 1695 // it under the terms of the GNU General Public License as published by 1696 // the Free Software Foundation; either version 3, or (at your option) 1697 // any later version. 1698 // 1699 // GCC is distributed in the hope that it will be useful, 1700 // but WITHOUT ANY WARRANTY; without even the implied warranty of 1701 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 1702 // GNU General Public License for more details. 1703 // 1704 // Under Section 7 of GPL version 3, you are granted additional 1705 // permissions described in the GCC Runtime Library Exception, version 1706 // 3.1, as published by the Free Software Foundation. 1707 // 1708 // You should have received a copy of the GNU General Public License and 1709 // a copy of the GCC Runtime Library Exception along with this program; 1710 // see the files COPYING3 and COPYING.RUNTIME respectively. If not, see 1711 // <http://www.gnu.org/licenses/>. 1712 1713 // ISO C Standard: 7.17 Common definitions <stddef.h> 1714 1715 // Any one of these symbols __need_* means that GNU libc 1716 // wants us just to define one data type. So don't define 1717 // the symbols that indicate this file's entire job has been done. 1718 1719 // This avoids lossage on SunOS but only if stdtypes.h comes first. 1720 // There's no way to win with the other order! Sun lossage. 1721 1722 // Sequent's header files use _PTRDIFF_T_ in some conflicting way. 1723 // Just ignore it. 1724 1725 // On VxWorks, <type/vxTypesBase.h> may have defined macros like 1726 // _TYPE_size_t which will typedef size_t. fixincludes patched the 1727 // vxTypesBase.h so that this macro is only defined if _GCC_SIZE_T is 1728 // not defined, and so that defining this macro defines _GCC_SIZE_T. 1729 // If we find that the macros are still defined at this point, we must 1730 // invoke them so that the type is defined as expected. 1731 1732 // In case nobody has defined these types, but we aren't running under 1733 // GCC 2.00, make sure that __PTRDIFF_TYPE__, __SIZE_TYPE__, and 1734 // __WCHAR_TYPE__ have reasonable values. This can happen if the 1735 // parts of GCC is compiled by an older compiler, that actually 1736 // include gstddef.h, such as collect2. 1737 1738 // Signed type of difference of two pointers. 1739 1740 // Define this type if we are doing the whole job, 1741 // or if we want this type in particular. 1742 1743 // Unsigned type of `sizeof' something. 1744 1745 // Define this type if we are doing the whole job, 1746 // or if we want this type in particular. 1747 1748 // Wide character type. 1749 // Locale-writers should change this as necessary to 1750 // be big enough to hold unique values not between 0 and 127, 1751 // and not (wchar_t) -1, for each defined multibyte character. 1752 1753 // Define this type if we are doing the whole job, 1754 // or if we want this type in particular. 1755 1756 // A null pointer constant. 1757 1758 // This operating system-specific header file defines the SOCK_*, PF_*, 1759 // AF_*, MSG_*, SOL_*, and SO_* constants, and the `struct sockaddr', 1760 // `struct msghdr', and `struct linger' types. 1761 // System-specific socket constants and types. Linux version. 1762 // Copyright (C) 1991-2020 Free Software Foundation, Inc. 1763 // This file is part of the GNU C Library. 1764 // 1765 // The GNU C Library is free software; you can redistribute it and/or 1766 // modify it under the terms of the GNU Lesser General Public 1767 // License as published by the Free Software Foundation; either 1768 // version 2.1 of the License, or (at your option) any later version. 1769 // 1770 // The GNU C Library is distributed in the hope that it will be useful, 1771 // but WITHOUT ANY WARRANTY; without even the implied warranty of 1772 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 1773 // Lesser General Public License for more details. 1774 // 1775 // You should have received a copy of the GNU Lesser General Public 1776 // License along with the GNU C Library; if not, see 1777 // <https://www.gnu.org/licenses/>. 1778 1779 // Copyright (C) 1989-2020 Free Software Foundation, Inc. 1780 // 1781 // This file is part of GCC. 1782 // 1783 // GCC is free software; you can redistribute it and/or modify 1784 // it under the terms of the GNU General Public License as published by 1785 // the Free Software Foundation; either version 3, or (at your option) 1786 // any later version. 1787 // 1788 // GCC is distributed in the hope that it will be useful, 1789 // but WITHOUT ANY WARRANTY; without even the implied warranty of 1790 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 1791 // GNU General Public License for more details. 1792 // 1793 // Under Section 7 of GPL version 3, you are granted additional 1794 // permissions described in the GCC Runtime Library Exception, version 1795 // 3.1, as published by the Free Software Foundation. 1796 // 1797 // You should have received a copy of the GNU General Public License and 1798 // a copy of the GCC Runtime Library Exception along with this program; 1799 // see the files COPYING3 and COPYING.RUNTIME respectively. If not, see 1800 // <http://www.gnu.org/licenses/>. 1801 1802 // ISO C Standard: 7.17 Common definitions <stddef.h> 1803 1804 // Any one of these symbols __need_* means that GNU libc 1805 // wants us just to define one data type. So don't define 1806 // the symbols that indicate this file's entire job has been done. 1807 1808 // This avoids lossage on SunOS but only if stdtypes.h comes first. 1809 // There's no way to win with the other order! Sun lossage. 1810 1811 // Sequent's header files use _PTRDIFF_T_ in some conflicting way. 1812 // Just ignore it. 1813 1814 // On VxWorks, <type/vxTypesBase.h> may have defined macros like 1815 // _TYPE_size_t which will typedef size_t. fixincludes patched the 1816 // vxTypesBase.h so that this macro is only defined if _GCC_SIZE_T is 1817 // not defined, and so that defining this macro defines _GCC_SIZE_T. 1818 // If we find that the macros are still defined at this point, we must 1819 // invoke them so that the type is defined as expected. 1820 1821 // In case nobody has defined these types, but we aren't running under 1822 // GCC 2.00, make sure that __PTRDIFF_TYPE__, __SIZE_TYPE__, and 1823 // __WCHAR_TYPE__ have reasonable values. This can happen if the 1824 // parts of GCC is compiled by an older compiler, that actually 1825 // include gstddef.h, such as collect2. 1826 1827 // Signed type of difference of two pointers. 1828 1829 // Define this type if we are doing the whole job, 1830 // or if we want this type in particular. 1831 1832 // Unsigned type of `sizeof' something. 1833 1834 // Define this type if we are doing the whole job, 1835 // or if we want this type in particular. 1836 1837 // Wide character type. 1838 // Locale-writers should change this as necessary to 1839 // be big enough to hold unique values not between 0 and 127, 1840 // and not (wchar_t) -1, for each defined multibyte character. 1841 1842 // Define this type if we are doing the whole job, 1843 // or if we want this type in particular. 1844 1845 // A null pointer constant. 1846 1847 // Copyright (C) 1991-2020 Free Software Foundation, Inc. 1848 // This file is part of the GNU C Library. 1849 // 1850 // The GNU C Library is free software; you can redistribute it and/or 1851 // modify it under the terms of the GNU Lesser General Public 1852 // License as published by the Free Software Foundation; either 1853 // version 2.1 of the License, or (at your option) any later version. 1854 // 1855 // The GNU C Library is distributed in the hope that it will be useful, 1856 // but WITHOUT ANY WARRANTY; without even the implied warranty of 1857 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 1858 // Lesser General Public License for more details. 1859 // 1860 // You should have received a copy of the GNU Lesser General Public 1861 // License along with the GNU C Library; if not, see 1862 // <https://www.gnu.org/licenses/>. 1863 1864 // POSIX Standard: 2.6 Primitive System Data Types <sys/types.h> 1865 1866 // Type for length arguments in socket calls. 1867 1868 // Get the architecture-dependent definition of enum __socket_type. 1869 // Define enum __socket_type for generic Linux. 1870 // Copyright (C) 1991-2020 Free Software Foundation, Inc. 1871 // This file is part of the GNU C Library. 1872 // 1873 // The GNU C Library is free software; you can redistribute it and/or 1874 // modify it under the terms of the GNU Lesser General Public 1875 // License as published by the Free Software Foundation; either 1876 // version 2.1 of the License, or (at your option) any later version. 1877 // 1878 // The GNU C Library is distributed in the hope that it will be useful, 1879 // but WITHOUT ANY WARRANTY; without even the implied warranty of 1880 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 1881 // Lesser General Public License for more details. 1882 // 1883 // You should have received a copy of the GNU Lesser General Public 1884 // License along with the GNU C Library; if not, see 1885 // <https://www.gnu.org/licenses/>. 1886 1887 // Types of sockets. 1888 const ( /* socket_type.h:24:1: */ 1889 SOCK_STREAM = 1 // Sequenced, reliable, connection-based 1890 // byte streams. 1891 SOCK_DGRAM = 2 // Connectionless, unreliable datagrams 1892 // of fixed maximum length. 1893 SOCK_RAW = 3 // Raw protocol interface. 1894 SOCK_RDM = 4 // Reliably-delivered messages. 1895 SOCK_SEQPACKET = 5 // Sequenced, reliable, connection-based, 1896 // datagrams of fixed maximum length. 1897 SOCK_DCCP = 6 // Datagram Congestion Control Protocol. 1898 SOCK_PACKET = 10 // Linux specific way of getting packets 1899 // at the dev level. For writing rarp and 1900 // other similar things on the user level. 1901 1902 // Flags to be ORed into the type parameter of socket and socketpair and 1903 // used for the flags parameter of paccept. 1904 1905 SOCK_CLOEXEC = 524288 // Atomically set close-on-exec flag for the 1906 // new descriptor(s). 1907 SOCK_NONBLOCK = 2048 1908 ) 1909 1910 // A null pointer constant. 1911 1912 // XPG requires a few symbols from <sys/wait.h> being defined. 1913 // Definitions of flag bits for `waitpid' et al. 1914 // Copyright (C) 1992-2020 Free Software Foundation, Inc. 1915 // This file is part of the GNU C Library. 1916 // 1917 // The GNU C Library is free software; you can redistribute it and/or 1918 // modify it under the terms of the GNU Lesser General Public 1919 // License as published by the Free Software Foundation; either 1920 // version 2.1 of the License, or (at your option) any later version. 1921 // 1922 // The GNU C Library is distributed in the hope that it will be useful, 1923 // but WITHOUT ANY WARRANTY; without even the implied warranty of 1924 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 1925 // Lesser General Public License for more details. 1926 // 1927 // You should have received a copy of the GNU Lesser General Public 1928 // License along with the GNU C Library; if not, see 1929 // <https://www.gnu.org/licenses/>. 1930 1931 // Bits in the third argument to `waitpid'. 1932 1933 // Bits in the fourth argument to `waitid'. 1934 1935 // The following values are used by the `waitid' function. 1936 1937 // The Linux kernel defines these bare, rather than an enum, 1938 // which causes a conflict if the include order is reversed. 1939 1940 const ( /* waitflags.h:52:1: */ 1941 P_ALL = 0 // Wait for any child. 1942 P_PID = 1 // Wait for specified process. 1943 P_PGID = 2 1944 ) 1945 1946 // The following constants should be used for the second parameter of 1947 // `shutdown'. 1948 const ( /* socket.h:41:1: */ 1949 SHUT_RD = 0 // No more receptions. 1950 SHUT_WR = 1 // No more transmissions. 1951 SHUT_RDWR = 2 1952 ) 1953 1954 // Values for the first argument to `getitimer' and `setitimer'. 1955 const ( /* time.h:89:1: */ 1956 // Timers run in real time. 1957 ITIMER_REAL = 0 1958 // Timers run only when the process is executing. 1959 ITIMER_VIRTUAL = 1 1960 // Timers run when the process is executing and when 1961 // the system is executing on behalf of the process. 1962 ITIMER_PROF = 2 1963 ) 1964 1965 // was definitions for sign-extending bitfields on architectures without 1966 // native types smaller than 64-bit, now just backwards compatibility 1967 1968 // this version should leave result of type (t *), but that should only be 1969 // used when not in MUSTCOPY 1970 1971 // Copyright 1989 Network Computing Devices, Inc., Mountain View, California. 1972 // 1973 // Permission to use, copy, modify, and distribute this software and its 1974 // documentation for any purpose and without fee is hereby granted, provided 1975 // that the above copyright notice appear in all copies and that both that 1976 // copyright notice and this permission notice appear in supporting 1977 // documentation, and that the name of N.C.D. not be used in advertising or 1978 // publicity pertaining to distribution of the software without specific, 1979 // written prior permission. N.C.D. makes no representations about the 1980 // suitability of this software for any purpose. It is provided "as is" 1981 // without express or implied warranty. 1982 // 1983 1984 //********************************************************** 1985 // 1986 // Copyright 1987, 1998 The Open Group 1987 // 1988 // Permission to use, copy, modify, distribute, and sell this software and its 1989 // documentation for any purpose is hereby granted without fee, provided that 1990 // the above copyright notice appear in all copies and that both that 1991 // copyright notice and this permission notice appear in supporting 1992 // documentation. 1993 // 1994 // The above copyright notice and this permission notice shall be included in 1995 // all copies or substantial portions of the Software. 1996 // 1997 // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 1998 // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 1999 // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 2000 // OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN 2001 // AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN 2002 // CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 2003 // 2004 // Except as contained in this notice, the name of The Open Group shall not be 2005 // used in advertising or otherwise to promote the sale, use or other dealings 2006 // in this Software without prior written authorization from The Open Group. 2007 // 2008 // 2009 // Copyright 1987 by Digital Equipment Corporation, Maynard, Massachusetts. 2010 // 2011 // All Rights Reserved 2012 // 2013 // Permission to use, copy, modify, and distribute this software and its 2014 // documentation for any purpose and without fee is hereby granted, 2015 // provided that the above copyright notice appear in all copies and that 2016 // both that copyright notice and this permission notice appear in 2017 // supporting documentation, and that the name of Digital not be 2018 // used in advertising or publicity pertaining to distribution of the 2019 // software without specific, written prior permission. 2020 // 2021 // DIGITAL DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING 2022 // ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL 2023 // DIGITAL BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR 2024 // ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, 2025 // WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, 2026 // ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS 2027 // SOFTWARE. 2028 // 2029 // ***************************************************************** 2030 2031 // 2032 // 2033 // Copyright 1989, 1991, 1998 The Open Group 2034 // 2035 // Permission to use, copy, modify, distribute, and sell this software and its 2036 // documentation for any purpose is hereby granted without fee, provided that 2037 // the above copyright notice appear in all copies and that both that 2038 // copyright notice and this permission notice appear in supporting 2039 // documentation. 2040 // 2041 // The above copyright notice and this permission notice shall be included in 2042 // all copies or substantial portions of the Software. 2043 // 2044 // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 2045 // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 2046 // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 2047 // OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN 2048 // AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN 2049 // CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 2050 // 2051 // Except as contained in this notice, the name of The Open Group shall not be 2052 // used in advertising or otherwise to promote the sale, use or other dealings 2053 // in this Software without prior written authorization from The Open Group. 2054 // * 2055 // 2056 2057 // Definitions to make function prototypes manageable 2058 2059 // Function prototype configuration (see configure for more info) 2060 2061 // http://clang.llvm.org/docs/LanguageExtensions.html#has-attribute 2062 2063 // Added in X11R6.9, so available in any version of modular xproto 2064 2065 // Added in X11R6.9, so available in any version of modular xproto 2066 2067 // Branch prediction hints for individual conditionals 2068 // requires xproto >= 7.0.9 2069 2070 // Bulk branch prediction hints via marking error path functions as "cold" 2071 // requires xproto >= 7.0.25 2072 2073 // Added in X11R6.9, so available in any version of modular xproto 2074 2075 // requires xproto >= 7.0.30 2076 2077 // requires xproto >= 7.0.17 2078 2079 // Added in X11R6.9, so available in any version of modular xproto 2080 2081 // requires xproto >= 7.0.22 - since this uses either gcc or C99 variable 2082 // argument macros, must be only used inside #ifdef _X_NONNULL guards, as 2083 // many legacy X clients are compiled in C89 mode still. 2084 2085 // requires xproto >= 7.0.22 2086 2087 // C99 keyword "inline" or equivalent extensions in pre-C99 compilers 2088 // requires xproto >= 7.0.9 2089 // (introduced in 7.0.8 but didn't support all compilers until 7.0.9) 2090 2091 // C99 keyword "restrict" or equivalent extensions in pre-C99 compilers 2092 // requires xproto >= 7.0.21 2093 2094 // requires xproto >= 7.0.30 2095 2096 // IANA has assigned FF0X:0:0:0:0:0:0:12B as the permanently assigned 2097 // multicast addresses for XDMCP, where X in the prefix may be replaced 2098 // by any valid scope identifier, such as 1 for Node-Local, 2 for Link-Local, 2099 // 5 for Site-Local, and so on. We set the default here to the Link-Local 2100 // version to most closely match the old IPv4 subnet broadcast behavior. 2101 // Both xdm and X -query allow specifying a different address if a different 2102 // scope is defined. 2103 2104 const ( /* Xdmcp.h:46:1: */ 2105 BROADCAST_QUERY = 1 2106 QUERY = 2 2107 INDIRECT_QUERY = 3 2108 FORWARD_QUERY = 4 2109 WILLING = 5 2110 UNWILLING = 6 2111 REQUEST = 7 2112 ACCEPT = 8 2113 DECLINE = 9 2114 MANAGE = 10 2115 REFUSE = 11 2116 FAILED = 12 2117 KEEPALIVE = 13 2118 ALIVE = 14 2119 ) 2120 2121 const ( /* Xdmcp.h:52:1: */ 2122 XDM_QUERY = 0 2123 XDM_BROADCAST = 1 2124 XDM_INDIRECT = 2 2125 XDM_COLLECT_QUERY = 3 2126 XDM_COLLECT_BROADCAST_QUERY = 4 2127 XDM_COLLECT_INDIRECT_QUERY = 5 2128 XDM_START_CONNECTION = 6 2129 XDM_AWAIT_REQUEST_RESPONSE = 7 2130 XDM_AWAIT_MANAGE_RESPONSE = 8 2131 XDM_MANAGE = 9 2132 XDM_RUN_SESSION = 10 2133 XDM_OFF = 11 2134 XDM_AWAIT_USER_INPUT = 12 2135 XDM_KEEPALIVE = 13 2136 XDM_AWAIT_ALIVE_RESPONSE = 14 2137 XDM_KEEP_ME_LAST = 15 2138 ) 2139 2140 type Ptrdiff_t = int64 /* <builtin>:3:26 */ 2141 2142 type Size_t = uint64 /* <builtin>:9:23 */ 2143 2144 type Wchar_t = uint32 /* <builtin>:15:24 */ 2145 2146 type X__int128_t = struct { 2147 Flo int64 2148 Fhi int64 2149 } /* <builtin>:21:43 */ // must match modernc.org/mathutil.Int128 2150 type X__uint128_t = struct { 2151 Flo uint64 2152 Fhi uint64 2153 } /* <builtin>:22:44 */ // must match modernc.org/mathutil.Int128 2154 2155 type X__builtin_va_list = uintptr /* <builtin>:46:14 */ 2156 type X__float128 = float64 /* <builtin>:47:21 */ 2157 2158 // 2159 // Copyright 1989, 1998 The Open Group 2160 // 2161 // Permission to use, copy, modify, distribute, and sell this software and its 2162 // documentation for any purpose is hereby granted without fee, provided that 2163 // the above copyright notice appear in all copies and that both that 2164 // copyright notice and this permission notice appear in supporting 2165 // documentation. 2166 // 2167 // The above copyright notice and this permission notice shall be included in 2168 // all copies or substantial portions of the Software. 2169 // 2170 // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 2171 // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 2172 // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 2173 // OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN 2174 // AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN 2175 // CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 2176 // 2177 // Except as contained in this notice, the name of The Open Group shall not be 2178 // used in advertising or otherwise to promote the sale, use or other dealings 2179 // in this Software without prior written authorization from The Open Group. 2180 // * 2181 // * Author: Keith Packard, MIT X Consortium 2182 // 2183 2184 // config.h. Generated from config.h.in by configure. 2185 // config.h.in. Generated from configure.ac by autoheader. 2186 2187 // Has Wraphelp.c needed for XDM AUTH protocols 2188 2189 // Define to 1 if you have the `arc4random_buf' function. 2190 // #undef HAVE_ARC4RANDOM_BUF 2191 2192 // Define to 1 if you have the <dlfcn.h> header file. 2193 2194 // Define to 1 if you have the <inttypes.h> header file. 2195 2196 // Define to 1 if you have the `bsd' library (-lbsd). 2197 // #undef HAVE_LIBBSD 2198 2199 // Define to 1 if you have the `lrand48' function. 2200 2201 // Define to 1 if you have the <memory.h> header file. 2202 2203 // Define to 1 if you have the `srand48' function. 2204 2205 // Define to 1 if you have the <stdint.h> header file. 2206 2207 // Define to 1 if you have the <stdlib.h> header file. 2208 2209 // Define to 1 if you have the <strings.h> header file. 2210 2211 // Define to 1 if you have the <string.h> header file. 2212 2213 // Define to 1 if you have the <sys/stat.h> header file. 2214 2215 // Define to 1 if you have the <sys/types.h> header file. 2216 2217 // Define to 1 if you have the <unistd.h> header file. 2218 2219 // Define to the sub-directory in which libtool stores uninstalled libraries. 2220 2221 // Name of package 2222 2223 // Define to the address where bug reports for this package should be sent. 2224 2225 // Define to the full name of this package. 2226 2227 // Define to the full name and version of this package. 2228 2229 // Define to the one symbol short name of this package. 2230 2231 // Define to the home page for this package. 2232 2233 // Define to the version of this package. 2234 2235 // Major version of this package 2236 2237 // Minor version of this package 2238 2239 // Patch version of this package 2240 2241 // Define to 1 if you have the ANSI C header files. 2242 2243 // Enable extensions on AIX 3, Interix. 2244 // Enable GNU extensions on systems that have them. 2245 // Enable threading extensions on Solaris. 2246 // Enable extensions on HP NonStop. 2247 // Enable general extensions on Solaris. 2248 2249 // Version number of package 2250 2251 // Define to 1 if on MINIX. 2252 // #undef _MINIX 2253 2254 // Define to 2 if the system does not provide POSIX.1 features except with 2255 // this defined. 2256 // #undef _POSIX_1_SOURCE 2257 2258 // Define to 1 if you need to in order for `stat' and other things to work. 2259 // #undef _POSIX_SOURCE 2260 // 2261 // 2262 // Copyright 1987, 1998 The Open Group 2263 // 2264 // Permission to use, copy, modify, distribute, and sell this software and its 2265 // documentation for any purpose is hereby granted without fee, provided that 2266 // the above copyright notice appear in all copies and that both that 2267 // copyright notice and this permission notice appear in supporting 2268 // documentation. 2269 // 2270 // The above copyright notice and this permission notice shall be included in 2271 // all copies or substantial portions of the Software. 2272 // 2273 // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 2274 // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 2275 // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 2276 // OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN 2277 // AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN 2278 // CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 2279 // 2280 // Except as contained in this notice, the name of The Open Group shall not be 2281 // used in advertising or otherwise to promote the sale, use or other dealings 2282 // in this Software without prior written authorization from The Open Group. 2283 // * 2284 // * The X Window System is a Trademark of The Open Group. 2285 // * 2286 // 2287 2288 // This is a collection of things to try and minimize system dependencies 2289 // in a "significant" number of source files. 2290 2291 // 2292 // O/S-dependent (mis)feature macro definitions 2293 // 2294 // Copyright 1991, 1998 The Open Group 2295 // 2296 // Permission to use, copy, modify, distribute, and sell this software and its 2297 // documentation for any purpose is hereby granted without fee, provided that 2298 // the above copyright notice appear in all copies and that both that 2299 // copyright notice and this permission notice appear in supporting 2300 // documentation. 2301 // 2302 // The above copyright notice and this permission notice shall be included in 2303 // all copies or substantial portions of the Software. 2304 // 2305 // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 2306 // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 2307 // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 2308 // OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN 2309 // AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN 2310 // CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 2311 // 2312 // Except as contained in this notice, the name of The Open Group shall not be 2313 // used in advertising or otherwise to promote the sale, use or other dealings 2314 // in this Software without prior written authorization from The Open Group. 2315 // 2316 2317 // X_NOT_POSIX means does not have POSIX header files. Lack of this 2318 // symbol does NOT mean that the POSIX environment is the default. 2319 // You may still have to define _POSIX_SOURCE to get it. 2320 2321 // Get major data types (esp. caddr_t) 2322 2323 // Copyright (C) 1991-2020 Free Software Foundation, Inc. 2324 // This file is part of the GNU C Library. 2325 // 2326 // The GNU C Library is free software; you can redistribute it and/or 2327 // modify it under the terms of the GNU Lesser General Public 2328 // License as published by the Free Software Foundation; either 2329 // version 2.1 of the License, or (at your option) any later version. 2330 // 2331 // The GNU C Library is distributed in the hope that it will be useful, 2332 // but WITHOUT ANY WARRANTY; without even the implied warranty of 2333 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 2334 // Lesser General Public License for more details. 2335 // 2336 // You should have received a copy of the GNU Lesser General Public 2337 // License along with the GNU C Library; if not, see 2338 // <https://www.gnu.org/licenses/>. 2339 2340 // POSIX Standard: 2.6 Primitive System Data Types <sys/types.h> 2341 2342 // Copyright (C) 1991-2020 Free Software Foundation, Inc. 2343 // This file is part of the GNU C Library. 2344 // 2345 // The GNU C Library is free software; you can redistribute it and/or 2346 // modify it under the terms of the GNU Lesser General Public 2347 // License as published by the Free Software Foundation; either 2348 // version 2.1 of the License, or (at your option) any later version. 2349 // 2350 // The GNU C Library is distributed in the hope that it will be useful, 2351 // but WITHOUT ANY WARRANTY; without even the implied warranty of 2352 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 2353 // Lesser General Public License for more details. 2354 // 2355 // You should have received a copy of the GNU Lesser General Public 2356 // License along with the GNU C Library; if not, see 2357 // <https://www.gnu.org/licenses/>. 2358 2359 // These are defined by the user (or the compiler) 2360 // to specify the desired environment: 2361 // 2362 // __STRICT_ANSI__ ISO Standard C. 2363 // _ISOC99_SOURCE Extensions to ISO C89 from ISO C99. 2364 // _ISOC11_SOURCE Extensions to ISO C99 from ISO C11. 2365 // _ISOC2X_SOURCE Extensions to ISO C99 from ISO C2X. 2366 // __STDC_WANT_LIB_EXT2__ 2367 // Extensions to ISO C99 from TR 27431-2:2010. 2368 // __STDC_WANT_IEC_60559_BFP_EXT__ 2369 // Extensions to ISO C11 from TS 18661-1:2014. 2370 // __STDC_WANT_IEC_60559_FUNCS_EXT__ 2371 // Extensions to ISO C11 from TS 18661-4:2015. 2372 // __STDC_WANT_IEC_60559_TYPES_EXT__ 2373 // Extensions to ISO C11 from TS 18661-3:2015. 2374 // 2375 // _POSIX_SOURCE IEEE Std 1003.1. 2376 // _POSIX_C_SOURCE If ==1, like _POSIX_SOURCE; if >=2 add IEEE Std 1003.2; 2377 // if >=199309L, add IEEE Std 1003.1b-1993; 2378 // if >=199506L, add IEEE Std 1003.1c-1995; 2379 // if >=200112L, all of IEEE 1003.1-2004 2380 // if >=200809L, all of IEEE 1003.1-2008 2381 // _XOPEN_SOURCE Includes POSIX and XPG things. Set to 500 if 2382 // Single Unix conformance is wanted, to 600 for the 2383 // sixth revision, to 700 for the seventh revision. 2384 // _XOPEN_SOURCE_EXTENDED XPG things and X/Open Unix extensions. 2385 // _LARGEFILE_SOURCE Some more functions for correct standard I/O. 2386 // _LARGEFILE64_SOURCE Additional functionality from LFS for large files. 2387 // _FILE_OFFSET_BITS=N Select default filesystem interface. 2388 // _ATFILE_SOURCE Additional *at interfaces. 2389 // _GNU_SOURCE All of the above, plus GNU extensions. 2390 // _DEFAULT_SOURCE The default set of features (taking precedence over 2391 // __STRICT_ANSI__). 2392 // 2393 // _FORTIFY_SOURCE Add security hardening to many library functions. 2394 // Set to 1 or 2; 2 performs stricter checks than 1. 2395 // 2396 // _REENTRANT, _THREAD_SAFE 2397 // Obsolete; equivalent to _POSIX_C_SOURCE=199506L. 2398 // 2399 // The `-ansi' switch to the GNU C compiler, and standards conformance 2400 // options such as `-std=c99', define __STRICT_ANSI__. If none of 2401 // these are defined, or if _DEFAULT_SOURCE is defined, the default is 2402 // to have _POSIX_SOURCE set to one and _POSIX_C_SOURCE set to 2403 // 200809L, as well as enabling miscellaneous functions from BSD and 2404 // SVID. If more than one of these are defined, they accumulate. For 2405 // example __STRICT_ANSI__, _POSIX_SOURCE and _POSIX_C_SOURCE together 2406 // give you ISO C, 1003.1, and 1003.2, but nothing else. 2407 // 2408 // These are defined by this file and are used by the 2409 // header files to decide what to declare or define: 2410 // 2411 // __GLIBC_USE (F) Define things from feature set F. This is defined 2412 // to 1 or 0; the subsequent macros are either defined 2413 // or undefined, and those tests should be moved to 2414 // __GLIBC_USE. 2415 // __USE_ISOC11 Define ISO C11 things. 2416 // __USE_ISOC99 Define ISO C99 things. 2417 // __USE_ISOC95 Define ISO C90 AMD1 (C95) things. 2418 // __USE_ISOCXX11 Define ISO C++11 things. 2419 // __USE_POSIX Define IEEE Std 1003.1 things. 2420 // __USE_POSIX2 Define IEEE Std 1003.2 things. 2421 // __USE_POSIX199309 Define IEEE Std 1003.1, and .1b things. 2422 // __USE_POSIX199506 Define IEEE Std 1003.1, .1b, .1c and .1i things. 2423 // __USE_XOPEN Define XPG things. 2424 // __USE_XOPEN_EXTENDED Define X/Open Unix things. 2425 // __USE_UNIX98 Define Single Unix V2 things. 2426 // __USE_XOPEN2K Define XPG6 things. 2427 // __USE_XOPEN2KXSI Define XPG6 XSI things. 2428 // __USE_XOPEN2K8 Define XPG7 things. 2429 // __USE_XOPEN2K8XSI Define XPG7 XSI things. 2430 // __USE_LARGEFILE Define correct standard I/O things. 2431 // __USE_LARGEFILE64 Define LFS things with separate names. 2432 // __USE_FILE_OFFSET64 Define 64bit interface as default. 2433 // __USE_MISC Define things from 4.3BSD or System V Unix. 2434 // __USE_ATFILE Define *at interfaces and AT_* constants for them. 2435 // __USE_GNU Define GNU extensions. 2436 // __USE_FORTIFY_LEVEL Additional security measures used, according to level. 2437 // 2438 // The macros `__GNU_LIBRARY__', `__GLIBC__', and `__GLIBC_MINOR__' are 2439 // defined by this file unconditionally. `__GNU_LIBRARY__' is provided 2440 // only for compatibility. All new code should use the other symbols 2441 // to test for features. 2442 // 2443 // All macros listed above as possibly being defined by this file are 2444 // explicitly undefined if they are not explicitly defined. 2445 // Feature-test macros that are not defined by the user or compiler 2446 // but are implied by the other feature-test macros defined (or by the 2447 // lack of any definitions) are defined by the file. 2448 // 2449 // ISO C feature test macros depend on the definition of the macro 2450 // when an affected header is included, not when the first system 2451 // header is included, and so they are handled in 2452 // <bits/libc-header-start.h>, which does not have a multiple include 2453 // guard. Feature test macros that can be handled from the first 2454 // system header included are handled here. 2455 2456 // Undefine everything, so we get a clean slate. 2457 2458 // Suppress kernel-name space pollution unless user expressedly asks 2459 // for it. 2460 2461 // Convenience macro to test the version of gcc. 2462 // Use like this: 2463 // #if __GNUC_PREREQ (2,8) 2464 // ... code requiring gcc 2.8 or later ... 2465 // #endif 2466 // Note: only works for GCC 2.0 and later, because __GNUC_MINOR__ was 2467 // added in 2.0. 2468 2469 // Similarly for clang. Features added to GCC after version 4.2 may 2470 // or may not also be available in clang, and clang's definitions of 2471 // __GNUC(_MINOR)__ are fixed at 4 and 2 respectively. Not all such 2472 // features can be queried via __has_extension/__has_feature. 2473 2474 // Whether to use feature set F. 2475 2476 // _BSD_SOURCE and _SVID_SOURCE are deprecated aliases for 2477 // _DEFAULT_SOURCE. If _DEFAULT_SOURCE is present we do not 2478 // issue a warning; the expectation is that the source is being 2479 // transitioned to use the new macro. 2480 2481 // If _GNU_SOURCE was defined by the user, turn on all the other features. 2482 2483 // If nothing (other than _GNU_SOURCE and _DEFAULT_SOURCE) is defined, 2484 // define _DEFAULT_SOURCE. 2485 2486 // This is to enable the ISO C2X extension. 2487 2488 // This is to enable the ISO C11 extension. 2489 2490 // This is to enable the ISO C99 extension. 2491 2492 // This is to enable the ISO C90 Amendment 1:1995 extension. 2493 2494 // If none of the ANSI/POSIX macros are defined, or if _DEFAULT_SOURCE 2495 // is defined, use POSIX.1-2008 (or another version depending on 2496 // _XOPEN_SOURCE). 2497 2498 // Some C libraries once required _REENTRANT and/or _THREAD_SAFE to be 2499 // defined in all multithreaded code. GNU libc has not required this 2500 // for many years. We now treat them as compatibility synonyms for 2501 // _POSIX_C_SOURCE=199506L, which is the earliest level of POSIX with 2502 // comprehensive support for multithreaded code. Using them never 2503 // lowers the selected level of POSIX conformance, only raises it. 2504 2505 // The function 'gets' existed in C89, but is impossible to use 2506 // safely. It has been removed from ISO C11 and ISO C++14. Note: for 2507 // compatibility with various implementations of <cstdio>, this test 2508 // must consider only the value of __cplusplus when compiling C++. 2509 2510 // GNU formerly extended the scanf functions with modified format 2511 // specifiers %as, %aS, and %a[...] that allocate a buffer for the 2512 // input using malloc. This extension conflicts with ISO C99, which 2513 // defines %a as a standalone format specifier that reads a floating- 2514 // point number; moreover, POSIX.1-2008 provides the same feature 2515 // using the modifier letter 'm' instead (%ms, %mS, %m[...]). 2516 // 2517 // We now follow C99 unless GNU extensions are active and the compiler 2518 // is specifically in C89 or C++98 mode (strict or not). For 2519 // instance, with GCC, -std=gnu11 will have C99-compliant scanf with 2520 // or without -D_GNU_SOURCE, but -std=c89 -D_GNU_SOURCE will have the 2521 // old extension. 2522 2523 // Get definitions of __STDC_* predefined macros, if the compiler has 2524 // not preincluded this header automatically. 2525 // Copyright (C) 1991-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 // This macro indicates that the installed library is the GNU C Library. 2543 // For historic reasons the value now is 6 and this will stay from now 2544 // on. The use of this variable is deprecated. Use __GLIBC__ and 2545 // __GLIBC_MINOR__ now (see below) when you want to test for a specific 2546 // GNU C library version and use the values in <gnu/lib-names.h> to get 2547 // the sonames of the shared libraries. 2548 2549 // Major and minor version number of the GNU C library package. Use 2550 // these macros to test for features in specific releases. 2551 2552 // This is here only because every header file already includes this one. 2553 // Copyright (C) 1992-2020 Free Software Foundation, Inc. 2554 // This file is part of the GNU C Library. 2555 // 2556 // The GNU C Library is free software; you can redistribute it and/or 2557 // modify it under the terms of the GNU Lesser General Public 2558 // License as published by the Free Software Foundation; either 2559 // version 2.1 of the License, or (at your option) any later version. 2560 // 2561 // The GNU C Library is distributed in the hope that it will be useful, 2562 // but WITHOUT ANY WARRANTY; without even the implied warranty of 2563 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 2564 // Lesser General Public License for more details. 2565 // 2566 // You should have received a copy of the GNU Lesser General Public 2567 // License along with the GNU C Library; if not, see 2568 // <https://www.gnu.org/licenses/>. 2569 2570 // We are almost always included from features.h. 2571 2572 // The GNU libc does not support any K&R compilers or the traditional mode 2573 // of ISO C compilers anymore. Check for some of the combinations not 2574 // anymore supported. 2575 2576 // Some user header file might have defined this before. 2577 2578 // All functions, except those with callbacks or those that 2579 // synchronize memory, are leaf functions. 2580 2581 // GCC can always grok prototypes. For C++ programs we add throw() 2582 // to help it optimize the function calls. But this works only with 2583 // gcc 2.8.x and egcs. For gcc 3.2 and up we even mark C functions 2584 // as non-throwing using a function attribute since programs can use 2585 // the -fexceptions options for C code as well. 2586 2587 // Compilers that are not clang may object to 2588 // #if defined __clang__ && __has_extension(...) 2589 // even though they do not need to evaluate the right-hand side of the &&. 2590 2591 // These two macros are not used in glibc anymore. They are kept here 2592 // only because some other projects expect the macros to be defined. 2593 2594 // For these things, GCC behaves the ANSI way normally, 2595 // and the non-ANSI way under -traditional. 2596 2597 // This is not a typedef so `const __ptr_t' does the right thing. 2598 2599 // C++ needs to know that types and declarations are C, not C++. 2600 2601 // Fortify support. 2602 2603 // Support for flexible arrays. 2604 // Headers that should use flexible arrays only if they're "real" 2605 // (e.g. only if they won't affect sizeof()) should test 2606 // #if __glibc_c99_flexarr_available. 2607 2608 // __asm__ ("xyz") is used throughout the headers to rename functions 2609 // at the assembly language level. This is wrapped by the __REDIRECT 2610 // macro, in order to support compilers that can do this some other 2611 // way. When compilers don't support asm-names at all, we have to do 2612 // preprocessor tricks instead (which don't have exactly the right 2613 // semantics, but it's the best we can do). 2614 // 2615 // Example: 2616 // int __REDIRECT(setpgrp, (__pid_t pid, __pid_t pgrp), setpgid); 2617 2618 // 2619 // #elif __SOME_OTHER_COMPILER__ 2620 // 2621 // # define __REDIRECT(name, proto, alias) name proto; _Pragma("let " #name " = " #alias) 2622 2623 // GCC has various useful declarations that can be made with the 2624 // `__attribute__' syntax. All of the ways we use this do fine if 2625 // they are omitted for compilers that don't understand it. 2626 2627 // At some point during the gcc 2.96 development the `malloc' attribute 2628 // for functions was introduced. We don't want to use it unconditionally 2629 // (although this would be possible) since it generates warnings. 2630 2631 // Tell the compiler which arguments to an allocation function 2632 // indicate the size of the allocation. 2633 2634 // At some point during the gcc 2.96 development the `pure' attribute 2635 // for functions was introduced. We don't want to use it unconditionally 2636 // (although this would be possible) since it generates warnings. 2637 2638 // This declaration tells the compiler that the value is constant. 2639 2640 // At some point during the gcc 3.1 development the `used' attribute 2641 // for functions was introduced. We don't want to use it unconditionally 2642 // (although this would be possible) since it generates warnings. 2643 2644 // Since version 3.2, gcc allows marking deprecated functions. 2645 2646 // Since version 4.5, gcc also allows one to specify the message printed 2647 // when a deprecated function is used. clang claims to be gcc 4.2, but 2648 // may also support this feature. 2649 2650 // At some point during the gcc 2.8 development the `format_arg' attribute 2651 // for functions was introduced. We don't want to use it unconditionally 2652 // (although this would be possible) since it generates warnings. 2653 // If several `format_arg' attributes are given for the same function, in 2654 // gcc-3.0 and older, all but the last one are ignored. In newer gccs, 2655 // all designated arguments are considered. 2656 2657 // At some point during the gcc 2.97 development the `strfmon' format 2658 // attribute for functions was introduced. We don't want to use it 2659 // unconditionally (although this would be possible) since it 2660 // generates warnings. 2661 2662 // The nonull function attribute allows to mark pointer parameters which 2663 // must not be NULL. 2664 2665 // If fortification mode, we warn about unused results of certain 2666 // function calls which can lead to problems. 2667 2668 // Forces a function to be always inlined. 2669 // The Linux kernel defines __always_inline in stddef.h (283d7573), and 2670 // it conflicts with this definition. Therefore undefine it first to 2671 // allow either header to be included first. 2672 2673 // Associate error messages with the source location of the call site rather 2674 // than with the source location inside the function. 2675 2676 // GCC 4.3 and above with -std=c99 or -std=gnu99 implements ISO C99 2677 // inline semantics, unless -fgnu89-inline is used. Using __GNUC_STDC_INLINE__ 2678 // or __GNUC_GNU_INLINE is not a good enough check for gcc because gcc versions 2679 // older than 4.3 may define these macros and still not guarantee GNU inlining 2680 // semantics. 2681 // 2682 // clang++ identifies itself as gcc-4.2, but has support for GNU inlining 2683 // semantics, that can be checked for by using the __GNUC_STDC_INLINE_ and 2684 // __GNUC_GNU_INLINE__ macro definitions. 2685 2686 // GCC 4.3 and above allow passing all anonymous arguments of an 2687 // __extern_always_inline function to some other vararg function. 2688 2689 // It is possible to compile containing GCC extensions even if GCC is 2690 // run in pedantic mode if the uses are carefully marked using the 2691 // `__extension__' keyword. But this is not generally available before 2692 // version 2.8. 2693 2694 // __restrict is known in EGCS 1.2 and above. 2695 2696 // ISO C99 also allows to declare arrays as non-overlapping. The syntax is 2697 // array_name[restrict] 2698 // GCC 3.1 supports this. 2699 2700 // Describes a char array whose address can safely be passed as the first 2701 // argument to strncpy and strncat, as the char array is not necessarily 2702 // a NUL-terminated string. 2703 2704 // Undefine (also defined in libc-symbols.h). 2705 // Copies attributes from the declaration or type referenced by 2706 // the argument. 2707 2708 // Determine the wordsize from the preprocessor defines. 2709 // 2710 // Copyright (C) 2016-2020 Free Software Foundation, Inc. 2711 // This file is part of the GNU C Library. 2712 // 2713 // The GNU C Library is free software; you can redistribute it and/or 2714 // modify it under the terms of the GNU Lesser General Public 2715 // License as published by the Free Software Foundation; either 2716 // version 2.1 of the License, or (at your option) any later version. 2717 // 2718 // The GNU C Library is distributed in the hope that it will be useful, 2719 // but WITHOUT ANY WARRANTY; without even the implied warranty of 2720 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 2721 // Lesser General Public License for more details. 2722 // 2723 // You should have received a copy of the GNU Lesser General Public 2724 // License along with the GNU C Library; if not, see 2725 // <https://www.gnu.org/licenses/>. 2726 2727 // Properties of long double type. ldbl-128 version. 2728 // Copyright (C) 2016-2020 Free Software Foundation, Inc. 2729 // This file is part of the GNU C Library. 2730 // 2731 // The GNU C Library is free software; you can redistribute it and/or 2732 // modify it under the terms of the GNU Lesser General Public 2733 // License published by the Free Software Foundation; either 2734 // version 2.1 of the License, or (at your option) any later version. 2735 // 2736 // The GNU C Library is distributed in the hope that it will be useful, 2737 // but WITHOUT ANY WARRANTY; without even the implied warranty of 2738 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 2739 // Lesser General Public License for more details. 2740 // 2741 // You should have received a copy of the GNU Lesser General Public 2742 // License along with the GNU C Library; if not, see 2743 // <https://www.gnu.org/licenses/>. 2744 2745 // long double is distinct from double, so there is nothing to 2746 // define here. 2747 2748 // __glibc_macro_warning (MESSAGE) issues warning MESSAGE. This is 2749 // intended for use in preprocessor macros. 2750 // 2751 // Note: MESSAGE must be a _single_ string; concatenation of string 2752 // literals is not supported. 2753 2754 // Generic selection (ISO C11) is a C-only feature, available in GCC 2755 // since version 4.9. Previous versions do not provide generic 2756 // selection, even though they might set __STDC_VERSION__ to 201112L, 2757 // when in -std=c11 mode. Thus, we must check for !defined __GNUC__ 2758 // when testing __STDC_VERSION__ for generic selection support. 2759 // On the other hand, Clang also defines __GNUC__, so a clang-specific 2760 // check is required to enable the use of generic selection. 2761 2762 // Designates a 1-based positional argument ref-index of pointer type 2763 // that can be used to access size-index elements of the pointed-to 2764 // array according to access mode, or at least one element when 2765 // size-index is not provided: 2766 // access (access-mode, <ref-index> [, <size-index>]) 2767 2768 // If we don't have __REDIRECT, prototypes will be missing if 2769 // __USE_FILE_OFFSET64 but not __USE_LARGEFILE[64]. 2770 2771 // Decide whether we can define 'extern inline' functions in headers. 2772 2773 // This is here only because every header file already includes this one. 2774 // Get the definitions of all the appropriate `__stub_FUNCTION' symbols. 2775 // <gnu/stubs.h> contains `#define __stub_FUNCTION' when FUNCTION is a stub 2776 // that will always return failure (and set errno to ENOSYS). 2777 // This file is automatically generated. 2778 // This file selects the right generated file of `__stub_FUNCTION' macros 2779 // based on the architecture being compiled for. 2780 2781 // Determine the wordsize from the preprocessor defines. 2782 // 2783 // Copyright (C) 2016-2020 Free Software Foundation, Inc. 2784 // This file is part of the GNU C Library. 2785 // 2786 // The GNU C Library is free software; you can redistribute it and/or 2787 // modify it under the terms of the GNU Lesser General Public 2788 // License as published by the Free Software Foundation; either 2789 // version 2.1 of the License, or (at your option) any later version. 2790 // 2791 // The GNU C Library is distributed in the hope that it will be useful, 2792 // but WITHOUT ANY WARRANTY; without even the implied warranty of 2793 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 2794 // Lesser General Public License for more details. 2795 // 2796 // You should have received a copy of the GNU Lesser General Public 2797 // License along with the GNU C Library; if not, see 2798 // <https://www.gnu.org/licenses/>. 2799 2800 // This file is automatically generated. 2801 // It defines a symbol `__stub_FUNCTION' for each function 2802 // in the C library which is a stub, meaning it will fail 2803 // every time called, usually setting errno to ENOSYS. 2804 2805 // bits/types.h -- definitions of __*_t types underlying *_t types. 2806 // Copyright (C) 2002-2020 Free Software Foundation, Inc. 2807 // This file is part of the GNU C Library. 2808 // 2809 // The GNU C Library is free software; you can redistribute it and/or 2810 // modify it under the terms of the GNU Lesser General Public 2811 // License as published by the Free Software Foundation; either 2812 // version 2.1 of the License, or (at your option) any later version. 2813 // 2814 // The GNU C Library is distributed in the hope that it will be useful, 2815 // but WITHOUT ANY WARRANTY; without even the implied warranty of 2816 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 2817 // Lesser General Public License for more details. 2818 // 2819 // You should have received a copy of the GNU Lesser General Public 2820 // License along with the GNU C Library; if not, see 2821 // <https://www.gnu.org/licenses/>. 2822 2823 // Never include this file directly; use <sys/types.h> instead. 2824 2825 // Copyright (C) 1991-2020 Free Software Foundation, Inc. 2826 // This file is part of the GNU C Library. 2827 // 2828 // The GNU C Library is free software; you can redistribute it and/or 2829 // modify it under the terms of the GNU Lesser General Public 2830 // License as published by the Free Software Foundation; either 2831 // version 2.1 of the License, or (at your option) any later version. 2832 // 2833 // The GNU C Library is distributed in the hope that it will be useful, 2834 // but WITHOUT ANY WARRANTY; without even the implied warranty of 2835 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 2836 // Lesser General Public License for more details. 2837 // 2838 // You should have received a copy of the GNU Lesser General Public 2839 // License along with the GNU C Library; if not, see 2840 // <https://www.gnu.org/licenses/>. 2841 2842 // Determine the wordsize from the preprocessor defines. 2843 // 2844 // Copyright (C) 2016-2020 Free Software Foundation, Inc. 2845 // This file is part of the GNU C Library. 2846 // 2847 // The GNU C Library is free software; you can redistribute it and/or 2848 // modify it under the terms of the GNU Lesser General Public 2849 // License as published by the Free Software Foundation; either 2850 // version 2.1 of the License, or (at your option) any later version. 2851 // 2852 // The GNU C Library is distributed in the hope that it will be useful, 2853 // but WITHOUT ANY WARRANTY; without even the implied warranty of 2854 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 2855 // Lesser General Public License for more details. 2856 // 2857 // You should have received a copy of the GNU Lesser General Public 2858 // License along with the GNU C Library; if not, see 2859 // <https://www.gnu.org/licenses/>. 2860 2861 // Bit size of the time_t type at glibc build time, general case. 2862 // Copyright (C) 2018-2020 Free Software Foundation, Inc. 2863 // This file is part of the GNU C Library. 2864 // 2865 // The GNU C Library is free software; you can redistribute it and/or 2866 // modify it under the terms of the GNU Lesser General Public 2867 // License as published by the Free Software Foundation; either 2868 // version 2.1 of the License, or (at your option) any later version. 2869 // 2870 // The GNU C Library is distributed in the hope that it will be useful, 2871 // but WITHOUT ANY WARRANTY; without even the implied warranty of 2872 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 2873 // Lesser General Public License for more details. 2874 // 2875 // You should have received a copy of the GNU Lesser General Public 2876 // License along with the GNU C Library; if not, see 2877 // <https://www.gnu.org/licenses/>. 2878 2879 // Determine the wordsize from the preprocessor defines. 2880 // 2881 // Copyright (C) 2016-2020 Free Software Foundation, Inc. 2882 // This file is part of the GNU C Library. 2883 // 2884 // The GNU C Library is free software; you can redistribute it and/or 2885 // modify it under the terms of the GNU Lesser General Public 2886 // License as published by the Free Software Foundation; either 2887 // version 2.1 of the License, or (at your option) any later version. 2888 // 2889 // The GNU C Library is distributed in the hope that it will be useful, 2890 // but WITHOUT ANY WARRANTY; without even the implied warranty of 2891 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 2892 // Lesser General Public License for more details. 2893 // 2894 // You should have received a copy of the GNU Lesser General Public 2895 // License along with the GNU C Library; if not, see 2896 // <https://www.gnu.org/licenses/>. 2897 2898 // Size in bits of the 'time_t' type of the default ABI. 2899 2900 // Convenience types. 2901 type X__u_char = uint8 /* types.h:31:23 */ 2902 type X__u_short = uint16 /* types.h:32:28 */ 2903 type X__u_int = uint32 /* types.h:33:22 */ 2904 type X__u_long = uint64 /* types.h:34:27 */ 2905 2906 // Fixed-size types, underlying types depend on word size and compiler. 2907 type X__int8_t = int8 /* types.h:37:21 */ 2908 type X__uint8_t = uint8 /* types.h:38:23 */ 2909 type X__int16_t = int16 /* types.h:39:26 */ 2910 type X__uint16_t = uint16 /* types.h:40:28 */ 2911 type X__int32_t = int32 /* types.h:41:20 */ 2912 type X__uint32_t = uint32 /* types.h:42:22 */ 2913 type X__int64_t = int64 /* types.h:44:25 */ 2914 type X__uint64_t = uint64 /* types.h:45:27 */ 2915 2916 // Smallest types with at least a given width. 2917 type X__int_least8_t = X__int8_t /* types.h:52:18 */ 2918 type X__uint_least8_t = X__uint8_t /* types.h:53:19 */ 2919 type X__int_least16_t = X__int16_t /* types.h:54:19 */ 2920 type X__uint_least16_t = X__uint16_t /* types.h:55:20 */ 2921 type X__int_least32_t = X__int32_t /* types.h:56:19 */ 2922 type X__uint_least32_t = X__uint32_t /* types.h:57:20 */ 2923 type X__int_least64_t = X__int64_t /* types.h:58:19 */ 2924 type X__uint_least64_t = X__uint64_t /* types.h:59:20 */ 2925 2926 // quad_t is also 64 bits. 2927 type X__quad_t = int64 /* types.h:63:18 */ 2928 type X__u_quad_t = uint64 /* types.h:64:27 */ 2929 2930 // Largest integral types. 2931 type X__intmax_t = int64 /* types.h:72:18 */ 2932 type X__uintmax_t = uint64 /* types.h:73:27 */ 2933 2934 // The machine-dependent file <bits/typesizes.h> defines __*_T_TYPE 2935 // macros for each of the OS types we define below. The definitions 2936 // of those macros must use the following macros for underlying types. 2937 // We define __S<SIZE>_TYPE and __U<SIZE>_TYPE for the signed and unsigned 2938 // variants of each of the following integer types on this machine. 2939 // 2940 // 16 -- "natural" 16-bit type (always short) 2941 // 32 -- "natural" 32-bit type (always int) 2942 // 64 -- "natural" 64-bit type (long or long long) 2943 // LONG32 -- 32-bit type, traditionally long 2944 // QUAD -- 64-bit type, traditionally long long 2945 // WORD -- natural type of __WORDSIZE bits (int or long) 2946 // LONGWORD -- type of __WORDSIZE bits, traditionally long 2947 // 2948 // We distinguish WORD/LONGWORD, 32/LONG32, and 64/QUAD so that the 2949 // conventional uses of `long' or `long long' type modifiers match the 2950 // types we define, even when a less-adorned type would be the same size. 2951 // This matters for (somewhat) portably writing printf/scanf formats for 2952 // these types, where using the appropriate l or ll format modifiers can 2953 // make the typedefs and the formats match up across all GNU platforms. If 2954 // we used `long' when it's 64 bits where `long long' is expected, then the 2955 // compiler would warn about the formats not matching the argument types, 2956 // and the programmer changing them to shut up the compiler would break the 2957 // program's portability. 2958 // 2959 // Here we assume what is presently the case in all the GCC configurations 2960 // we support: long long is always 64 bits, long is always word/address size, 2961 // and int is always 32 bits. 2962 2963 // No need to mark the typedef with __extension__. 2964 // bits/typesizes.h -- underlying types for *_t. For the generic Linux ABI. 2965 // Copyright (C) 2011-2020 Free Software Foundation, Inc. 2966 // This file is part of the GNU C Library. 2967 // Contributed by Chris Metcalf <cmetcalf@tilera.com>, 2011. 2968 // 2969 // The GNU C Library is free software; you can redistribute it and/or 2970 // modify it under the terms of the GNU Lesser General Public 2971 // License as published by the Free Software Foundation; either 2972 // version 2.1 of the License, or (at your option) any later version. 2973 // 2974 // The GNU C Library is distributed in the hope that it will be useful, 2975 // but WITHOUT ANY WARRANTY; without even the implied warranty of 2976 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 2977 // Lesser General Public License for more details. 2978 // 2979 // You should have received a copy of the GNU Lesser General Public 2980 // License along with the GNU C Library. If not, see 2981 // <https://www.gnu.org/licenses/>. 2982 2983 // See <bits/types.h> for the meaning of these macros. This file exists so 2984 // that <bits/types.h> need not vary across different GNU platforms. 2985 2986 // Tell the libc code that off_t and off64_t are actually the same type 2987 // for all ABI purposes, even if possibly expressed as different base types 2988 // for C type-checking purposes. 2989 2990 // Same for ino_t and ino64_t. 2991 2992 // And for __rlim_t and __rlim64_t. 2993 2994 // And for fsblkcnt_t, fsblkcnt64_t, fsfilcnt_t and fsfilcnt64_t. 2995 2996 // And for getitimer, setitimer and rusage 2997 2998 // Number of descriptors that can fit in an `fd_set'. 2999 3000 // bits/time64.h -- underlying types for __time64_t. Generic version. 3001 // Copyright (C) 2018-2020 Free Software Foundation, Inc. 3002 // This file is part of the GNU C Library. 3003 // 3004 // The GNU C Library is free software; you can redistribute it and/or 3005 // modify it under the terms of the GNU Lesser General Public 3006 // License as published by the Free Software Foundation; either 3007 // version 2.1 of the License, or (at your option) any later version. 3008 // 3009 // The GNU C Library is distributed in the hope that it will be useful, 3010 // but WITHOUT ANY WARRANTY; without even the implied warranty of 3011 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 3012 // Lesser General Public License for more details. 3013 // 3014 // You should have received a copy of the GNU Lesser General Public 3015 // License along with the GNU C Library; if not, see 3016 // <https://www.gnu.org/licenses/>. 3017 3018 // Define __TIME64_T_TYPE so that it is always a 64-bit type. 3019 3020 // If we already have 64-bit time type then use it. 3021 3022 type X__dev_t = uint64 /* types.h:145:25 */ // Type of device numbers. 3023 type X__uid_t = uint32 /* types.h:146:25 */ // Type of user identifications. 3024 type X__gid_t = uint32 /* types.h:147:25 */ // Type of group identifications. 3025 type X__ino_t = uint64 /* types.h:148:25 */ // Type of file serial numbers. 3026 type X__ino64_t = uint64 /* types.h:149:27 */ // Type of file serial numbers (LFS). 3027 type X__mode_t = uint32 /* types.h:150:26 */ // Type of file attribute bitmasks. 3028 type X__nlink_t = uint32 /* types.h:151:27 */ // Type of file link counts. 3029 type X__off_t = int64 /* types.h:152:25 */ // Type of file sizes and offsets. 3030 type X__off64_t = int64 /* types.h:153:27 */ // Type of file sizes and offsets (LFS). 3031 type X__pid_t = int32 /* types.h:154:25 */ // Type of process identifications. 3032 type X__fsid_t = struct{ F__val [2]int32 } /* types.h:155:26 */ // Type of file system IDs. 3033 type X__clock_t = int64 /* types.h:156:27 */ // Type of CPU usage counts. 3034 type X__rlim_t = uint64 /* types.h:157:26 */ // Type for resource measurement. 3035 type X__rlim64_t = uint64 /* types.h:158:28 */ // Type for resource measurement (LFS). 3036 type X__id_t = uint32 /* types.h:159:24 */ // General type for IDs. 3037 type X__time_t = int64 /* types.h:160:26 */ // Seconds since the Epoch. 3038 type X__useconds_t = uint32 /* types.h:161:30 */ // Count of microseconds. 3039 type X__suseconds_t = int64 /* types.h:162:31 */ // Signed count of microseconds. 3040 type X__suseconds64_t = int64 /* types.h:163:33 */ 3041 3042 type X__daddr_t = int32 /* types.h:165:27 */ // The type of a disk address. 3043 type X__key_t = int32 /* types.h:166:25 */ // Type of an IPC key. 3044 3045 // Clock ID used in clock and timer functions. 3046 type X__clockid_t = int32 /* types.h:169:29 */ 3047 3048 // Timer ID returned by `timer_create'. 3049 type X__timer_t = uintptr /* types.h:172:12 */ 3050 3051 // Type to represent block size. 3052 type X__blksize_t = int32 /* types.h:175:29 */ 3053 3054 // Types from the Large File Support interface. 3055 3056 // Type to count number of disk blocks. 3057 type X__blkcnt_t = int64 /* types.h:180:28 */ 3058 type X__blkcnt64_t = int64 /* types.h:181:30 */ 3059 3060 // Type to count file system blocks. 3061 type X__fsblkcnt_t = uint64 /* types.h:184:30 */ 3062 type X__fsblkcnt64_t = uint64 /* types.h:185:32 */ 3063 3064 // Type to count file system nodes. 3065 type X__fsfilcnt_t = uint64 /* types.h:188:30 */ 3066 type X__fsfilcnt64_t = uint64 /* types.h:189:32 */ 3067 3068 // Type of miscellaneous file system fields. 3069 type X__fsword_t = int64 /* types.h:192:28 */ 3070 3071 type X__ssize_t = int64 /* types.h:194:27 */ // Type of a byte count, or error. 3072 3073 // Signed long type used in system calls. 3074 type X__syscall_slong_t = int64 /* types.h:197:33 */ 3075 // Unsigned long type used in system calls. 3076 type X__syscall_ulong_t = uint64 /* types.h:199:33 */ 3077 3078 // These few don't really vary by system, they always correspond 3079 // to one of the other defined types. 3080 type X__loff_t = X__off64_t /* types.h:203:19 */ // Type of file sizes and offsets (LFS). 3081 type X__caddr_t = uintptr /* types.h:204:14 */ 3082 3083 // Duplicates info from stdint.h but this is used in unistd.h. 3084 type X__intptr_t = int64 /* types.h:207:25 */ 3085 3086 // Duplicate info from sys/socket.h. 3087 type X__socklen_t = uint32 /* types.h:210:23 */ 3088 3089 // C99: An integer type that can be accessed as an atomic entity, 3090 // even in the presence of asynchronous interrupts. 3091 // It is not currently necessary for this to be machine-specific. 3092 type X__sig_atomic_t = int32 /* types.h:215:13 */ 3093 3094 // Seconds since the Epoch, visible to user code when time_t is too 3095 // narrow only for consistency with the old way of widening too-narrow 3096 // types. User code should never use __time64_t. 3097 3098 type U_char = X__u_char /* types.h:33:18 */ 3099 type U_short = X__u_short /* types.h:34:19 */ 3100 type U_int = X__u_int /* types.h:35:17 */ 3101 type U_long = X__u_long /* types.h:36:18 */ 3102 type Quad_t = X__quad_t /* types.h:37:18 */ 3103 type U_quad_t = X__u_quad_t /* types.h:38:20 */ 3104 type Fsid_t = X__fsid_t /* types.h:39:18 */ 3105 type Loff_t = X__loff_t /* types.h:42:18 */ 3106 3107 type Ino_t = X__ino64_t /* types.h:49:19 */ 3108 type Ino64_t = X__ino64_t /* types.h:54:19 */ 3109 3110 type Dev_t = X__dev_t /* types.h:59:17 */ 3111 3112 type Gid_t = X__gid_t /* types.h:64:17 */ 3113 3114 type Mode_t = X__mode_t /* types.h:69:18 */ 3115 3116 type Nlink_t = X__nlink_t /* types.h:74:19 */ 3117 3118 type Uid_t = X__uid_t /* types.h:79:17 */ 3119 3120 type Off_t = X__off64_t /* types.h:87:19 */ 3121 type Off64_t = X__off64_t /* types.h:92:19 */ 3122 3123 type Pid_t = X__pid_t /* types.h:97:17 */ 3124 3125 type Id_t = X__id_t /* types.h:103:16 */ 3126 3127 type Ssize_t = X__ssize_t /* types.h:108:19 */ 3128 3129 type Daddr_t = X__daddr_t /* types.h:114:19 */ 3130 type Caddr_t = X__caddr_t /* types.h:115:19 */ 3131 3132 type Key_t = X__key_t /* types.h:121:17 */ 3133 3134 // bits/types.h -- definitions of __*_t types underlying *_t types. 3135 // Copyright (C) 2002-2020 Free Software Foundation, Inc. 3136 // This file is part of the GNU C Library. 3137 // 3138 // The GNU C Library is free software; you can redistribute it and/or 3139 // modify it under the terms of the GNU Lesser General Public 3140 // License as published by the Free Software Foundation; either 3141 // version 2.1 of the License, or (at your option) any later version. 3142 // 3143 // The GNU C Library is distributed in the hope that it will be useful, 3144 // but WITHOUT ANY WARRANTY; without even the implied warranty of 3145 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 3146 // Lesser General Public License for more details. 3147 // 3148 // You should have received a copy of the GNU Lesser General Public 3149 // License along with the GNU C Library; if not, see 3150 // <https://www.gnu.org/licenses/>. 3151 3152 // Never include this file directly; use <sys/types.h> instead. 3153 3154 // Returned by `clock'. 3155 type Clock_t = X__clock_t /* clock_t.h:7:19 */ 3156 3157 // bits/types.h -- definitions of __*_t types underlying *_t types. 3158 // Copyright (C) 2002-2020 Free Software Foundation, Inc. 3159 // This file is part of the GNU C Library. 3160 // 3161 // The GNU C Library is free software; you can redistribute it and/or 3162 // modify it under the terms of the GNU Lesser General Public 3163 // License as published by the Free Software Foundation; either 3164 // version 2.1 of the License, or (at your option) any later version. 3165 // 3166 // The GNU C Library is distributed in the hope that it will be useful, 3167 // but WITHOUT ANY WARRANTY; without even the implied warranty of 3168 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 3169 // Lesser General Public License for more details. 3170 // 3171 // You should have received a copy of the GNU Lesser General Public 3172 // License along with the GNU C Library; if not, see 3173 // <https://www.gnu.org/licenses/>. 3174 3175 // Never include this file directly; use <sys/types.h> instead. 3176 3177 // Clock ID used in clock and timer functions. 3178 type Clockid_t = X__clockid_t /* clockid_t.h:7:21 */ 3179 3180 // bits/types.h -- definitions of __*_t types underlying *_t types. 3181 // Copyright (C) 2002-2020 Free Software Foundation, Inc. 3182 // This file is part of the GNU C Library. 3183 // 3184 // The GNU C Library is free software; you can redistribute it and/or 3185 // modify it under the terms of the GNU Lesser General Public 3186 // License as published by the Free Software Foundation; either 3187 // version 2.1 of the License, or (at your option) any later version. 3188 // 3189 // The GNU C Library is distributed in the hope that it will be useful, 3190 // but WITHOUT ANY WARRANTY; without even the implied warranty of 3191 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 3192 // Lesser General Public License for more details. 3193 // 3194 // You should have received a copy of the GNU Lesser General Public 3195 // License along with the GNU C Library; if not, see 3196 // <https://www.gnu.org/licenses/>. 3197 3198 // Never include this file directly; use <sys/types.h> instead. 3199 3200 // Returned by `time'. 3201 type Time_t = X__time_t /* time_t.h:7:18 */ 3202 3203 // bits/types.h -- definitions of __*_t types underlying *_t types. 3204 // Copyright (C) 2002-2020 Free Software Foundation, Inc. 3205 // This file is part of the GNU C Library. 3206 // 3207 // The GNU C Library is free software; you can redistribute it and/or 3208 // modify it under the terms of the GNU Lesser General Public 3209 // License as published by the Free Software Foundation; either 3210 // version 2.1 of the License, or (at your option) any later version. 3211 // 3212 // The GNU C Library is distributed in the hope that it will be useful, 3213 // but WITHOUT ANY WARRANTY; without even the implied warranty of 3214 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 3215 // Lesser General Public License for more details. 3216 // 3217 // You should have received a copy of the GNU Lesser General Public 3218 // License along with the GNU C Library; if not, see 3219 // <https://www.gnu.org/licenses/>. 3220 3221 // Never include this file directly; use <sys/types.h> instead. 3222 3223 // Timer ID returned by `timer_create'. 3224 type Timer_t = X__timer_t /* timer_t.h:7:19 */ 3225 3226 type Useconds_t = X__useconds_t /* types.h:134:22 */ 3227 type Suseconds_t = X__suseconds_t /* types.h:138:23 */ 3228 3229 // Wide character type. 3230 // Locale-writers should change this as necessary to 3231 // be big enough to hold unique values not between 0 and 127, 3232 // and not (wchar_t) -1, for each defined multibyte character. 3233 3234 // Define this type if we are doing the whole job, 3235 // or if we want this type in particular. 3236 3237 // A null pointer constant. 3238 3239 // Old compatibility names for C types. 3240 type Ulong = uint64 /* types.h:148:27 */ 3241 type Ushort = uint16 /* types.h:149:28 */ 3242 type Uint = uint32 /* types.h:150:22 */ 3243 3244 // These size-specific names are used by some of the inet code. 3245 3246 // Define intN_t types. 3247 // Copyright (C) 2017-2020 Free Software Foundation, Inc. 3248 // This file is part of the GNU C Library. 3249 // 3250 // The GNU C Library is free software; you can redistribute it and/or 3251 // modify it under the terms of the GNU Lesser General Public 3252 // License as published by the Free Software Foundation; either 3253 // version 2.1 of the License, or (at your option) any later version. 3254 // 3255 // The GNU C Library is distributed in the hope that it will be useful, 3256 // but WITHOUT ANY WARRANTY; without even the implied warranty of 3257 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 3258 // Lesser General Public License for more details. 3259 // 3260 // You should have received a copy of the GNU Lesser General Public 3261 // License along with the GNU C Library; if not, see 3262 // <https://www.gnu.org/licenses/>. 3263 3264 // bits/types.h -- definitions of __*_t types underlying *_t types. 3265 // Copyright (C) 2002-2020 Free Software Foundation, Inc. 3266 // This file is part of the GNU C Library. 3267 // 3268 // The GNU C Library is free software; you can redistribute it and/or 3269 // modify it under the terms of the GNU Lesser General Public 3270 // License as published by the Free Software Foundation; either 3271 // version 2.1 of the License, or (at your option) any later version. 3272 // 3273 // The GNU C Library is distributed in the hope that it will be useful, 3274 // but WITHOUT ANY WARRANTY; without even the implied warranty of 3275 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 3276 // Lesser General Public License for more details. 3277 // 3278 // You should have received a copy of the GNU Lesser General Public 3279 // License along with the GNU C Library; if not, see 3280 // <https://www.gnu.org/licenses/>. 3281 3282 // Never include this file directly; use <sys/types.h> instead. 3283 3284 type Int8_t = X__int8_t /* stdint-intn.h:24:18 */ 3285 type Int16_t = X__int16_t /* stdint-intn.h:25:19 */ 3286 type Int32_t = X__int32_t /* stdint-intn.h:26:19 */ 3287 type Int64_t = X__int64_t /* stdint-intn.h:27:19 */ 3288 3289 // These were defined by ISO C without the first `_'. 3290 type U_int8_t = X__uint8_t /* types.h:158:19 */ 3291 type U_int16_t = X__uint16_t /* types.h:159:20 */ 3292 type U_int32_t = X__uint32_t /* types.h:160:20 */ 3293 type U_int64_t = X__uint64_t /* types.h:161:20 */ 3294 3295 type Register_t = int32 /* types.h:164:13 */ 3296 3297 // It also defines `fd_set' and the FD_* macros for `select'. 3298 // `fd_set' type and related macros, and `select'/`pselect' declarations. 3299 // Copyright (C) 1996-2020 Free Software Foundation, Inc. 3300 // This file is part of the GNU C Library. 3301 // 3302 // The GNU C Library is free software; you can redistribute it and/or 3303 // modify it under the terms of the GNU Lesser General Public 3304 // License as published by the Free Software Foundation; either 3305 // version 2.1 of the License, or (at your option) any later version. 3306 // 3307 // The GNU C Library is distributed in the hope that it will be useful, 3308 // but WITHOUT ANY WARRANTY; without even the implied warranty of 3309 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 3310 // Lesser General Public License for more details. 3311 // 3312 // You should have received a copy of the GNU Lesser General Public 3313 // License along with the GNU C Library; if not, see 3314 // <https://www.gnu.org/licenses/>. 3315 3316 // POSIX 1003.1g: 6.2 Select from File Descriptor Sets <sys/select.h> 3317 3318 // Copyright (C) 1991-2020 Free Software Foundation, Inc. 3319 // This file is part of the GNU C Library. 3320 // 3321 // The GNU C Library is free software; you can redistribute it and/or 3322 // modify it under the terms of the GNU Lesser General Public 3323 // License as published by the Free Software Foundation; either 3324 // version 2.1 of the License, or (at your option) any later version. 3325 // 3326 // The GNU C Library is distributed in the hope that it will be useful, 3327 // but WITHOUT ANY WARRANTY; without even the implied warranty of 3328 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 3329 // Lesser General Public License for more details. 3330 // 3331 // You should have received a copy of the GNU Lesser General Public 3332 // License along with the GNU C Library; if not, see 3333 // <https://www.gnu.org/licenses/>. 3334 3335 // Get definition of needed basic types. 3336 // bits/types.h -- definitions of __*_t types underlying *_t types. 3337 // Copyright (C) 2002-2020 Free Software Foundation, Inc. 3338 // This file is part of the GNU C Library. 3339 // 3340 // The GNU C Library is free software; you can redistribute it and/or 3341 // modify it under the terms of the GNU Lesser General Public 3342 // License as published by the Free Software Foundation; either 3343 // version 2.1 of the License, or (at your option) any later version. 3344 // 3345 // The GNU C Library is distributed in the hope that it will be useful, 3346 // but WITHOUT ANY WARRANTY; without even the implied warranty of 3347 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 3348 // Lesser General Public License for more details. 3349 // 3350 // You should have received a copy of the GNU Lesser General Public 3351 // License along with the GNU C Library; if not, see 3352 // <https://www.gnu.org/licenses/>. 3353 3354 // Never include this file directly; use <sys/types.h> instead. 3355 3356 // Get __FD_* definitions. 3357 // Copyright (C) 1997-2020 Free Software Foundation, Inc. 3358 // This file is part of the GNU C Library. 3359 // 3360 // The GNU C Library is free software; you can redistribute it and/or 3361 // modify it under the terms of the GNU Lesser General Public 3362 // License as published by the Free Software Foundation; either 3363 // version 2.1 of the License, or (at your option) any later version. 3364 // 3365 // The GNU C Library is distributed in the hope that it will be useful, 3366 // but WITHOUT ANY WARRANTY; without even the implied warranty of 3367 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 3368 // Lesser General Public License for more details. 3369 // 3370 // You should have received a copy of the GNU Lesser General Public 3371 // License along with the GNU C Library; if not, see 3372 // <https://www.gnu.org/licenses/>. 3373 3374 // We don't use `memset' because this would require a prototype and 3375 // the array isn't too big. 3376 3377 // Get sigset_t. 3378 3379 type X__sigset_t = struct{ F__val [16]uint64 } /* __sigset_t.h:8:3 */ 3380 3381 // A set of signals to be blocked, unblocked, or waited for. 3382 type Sigset_t = X__sigset_t /* sigset_t.h:7:20 */ 3383 3384 // Get definition of timer specification structures. 3385 3386 // bits/types.h -- definitions of __*_t types underlying *_t types. 3387 // Copyright (C) 2002-2020 Free Software Foundation, Inc. 3388 // This file is part of the GNU C Library. 3389 // 3390 // The GNU C Library is free software; you can redistribute it and/or 3391 // modify it under the terms of the GNU Lesser General Public 3392 // License as published by the Free Software Foundation; either 3393 // version 2.1 of the License, or (at your option) any later version. 3394 // 3395 // The GNU C Library is distributed in the hope that it will be useful, 3396 // but WITHOUT ANY WARRANTY; without even the implied warranty of 3397 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 3398 // Lesser General Public License for more details. 3399 // 3400 // You should have received a copy of the GNU Lesser General Public 3401 // License along with the GNU C Library; if not, see 3402 // <https://www.gnu.org/licenses/>. 3403 3404 // Never include this file directly; use <sys/types.h> instead. 3405 3406 // A time value that is accurate to the nearest 3407 // microsecond but also has a range of years. 3408 type Timeval = struct { 3409 Ftv_sec X__time_t 3410 Ftv_usec X__suseconds_t 3411 } /* struct_timeval.h:8:1 */ 3412 3413 // NB: Include guard matches what <linux/time.h> uses. 3414 3415 // bits/types.h -- definitions of __*_t types underlying *_t types. 3416 // Copyright (C) 2002-2020 Free Software Foundation, Inc. 3417 // This file is part of the GNU C Library. 3418 // 3419 // The GNU C Library is free software; you can redistribute it and/or 3420 // modify it under the terms of the GNU Lesser General Public 3421 // License as published by the Free Software Foundation; either 3422 // version 2.1 of the License, or (at your option) any later version. 3423 // 3424 // The GNU C Library is distributed in the hope that it will be useful, 3425 // but WITHOUT ANY WARRANTY; without even the implied warranty of 3426 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 3427 // Lesser General Public License for more details. 3428 // 3429 // You should have received a copy of the GNU Lesser General Public 3430 // License along with the GNU C Library; if not, see 3431 // <https://www.gnu.org/licenses/>. 3432 3433 // Never include this file directly; use <sys/types.h> instead. 3434 3435 // Endian macros for string.h functions 3436 // Copyright (C) 1992-2020 Free Software Foundation, Inc. 3437 // This file is part of the GNU C Library. 3438 // 3439 // The GNU C Library is free software; you can redistribute it and/or 3440 // modify it under the terms of the GNU Lesser General Public 3441 // License as published by the Free Software Foundation; either 3442 // version 2.1 of the License, or (at your option) any later version. 3443 // 3444 // The GNU C Library is distributed in the hope that it will be useful, 3445 // but WITHOUT ANY WARRANTY; without even the implied warranty of 3446 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 3447 // Lesser General Public License for more details. 3448 // 3449 // You should have received a copy of the GNU Lesser General Public 3450 // License along with the GNU C Library; if not, see 3451 // <http://www.gnu.org/licenses/>. 3452 3453 // POSIX.1b structure for a time value. This is like a `struct timeval' but 3454 // has nanoseconds instead of microseconds. 3455 type Timespec = struct { 3456 Ftv_sec X__time_t 3457 Ftv_nsec X__syscall_slong_t 3458 } /* struct_timespec.h:10:1 */ 3459 3460 // The fd_set member is required to be an array of longs. 3461 type X__fd_mask = int64 /* select.h:49:18 */ 3462 3463 // Some versions of <linux/posix_types.h> define this macros. 3464 // It's easier to assume 8-bit bytes than to get CHAR_BIT. 3465 3466 // fd_set for select and pselect. 3467 type Fd_set = struct{ Ffds_bits [16]X__fd_mask } /* select.h:70:5 */ 3468 3469 // Maximum number of file descriptors in `fd_set'. 3470 3471 // Sometimes the fd_set member is assumed to have this type. 3472 type Fd_mask = X__fd_mask /* select.h:77:19 */ 3473 3474 // Define some inlines helping to catch common problems. 3475 3476 type Blksize_t = X__blksize_t /* types.h:185:21 */ 3477 3478 // Types from the Large File Support interface. 3479 type Blkcnt_t = X__blkcnt64_t /* types.h:205:22 */ // Type to count number of disk blocks. 3480 type Fsblkcnt_t = X__fsblkcnt64_t /* types.h:209:24 */ // Type to count file system blocks. 3481 type Fsfilcnt_t = X__fsfilcnt64_t /* types.h:213:24 */ // Type to count file system inodes. 3482 3483 type Blkcnt64_t = X__blkcnt64_t /* types.h:219:22 */ // Type to count number of disk blocks. 3484 type Fsblkcnt64_t = X__fsblkcnt64_t /* types.h:220:24 */ // Type to count file system blocks. 3485 type Fsfilcnt64_t = X__fsfilcnt64_t /* types.h:221:24 */ // Type to count file system inodes. 3486 3487 // Now add the thread types. 3488 // Declaration of common pthread types for all architectures. 3489 // Copyright (C) 2017-2020 Free Software Foundation, Inc. 3490 // This file is part of the GNU C Library. 3491 // 3492 // The GNU C Library is free software; you can redistribute it and/or 3493 // modify it under the terms of the GNU Lesser General Public 3494 // License as published by the Free Software Foundation; either 3495 // version 2.1 of the License, or (at your option) any later version. 3496 // 3497 // The GNU C Library is distributed in the hope that it will be useful, 3498 // but WITHOUT ANY WARRANTY; without even the implied warranty of 3499 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 3500 // Lesser General Public License for more details. 3501 // 3502 // You should have received a copy of the GNU Lesser General Public 3503 // License along with the GNU C Library; if not, see 3504 // <https://www.gnu.org/licenses/>. 3505 3506 // For internal mutex and condition variable definitions. 3507 // Common threading primitives definitions for both POSIX and C11. 3508 // Copyright (C) 2017-2020 Free Software Foundation, Inc. 3509 // This file is part of the GNU C Library. 3510 // 3511 // The GNU C Library is free software; you can redistribute it and/or 3512 // modify it under the terms of the GNU Lesser General Public 3513 // License as published by the Free Software Foundation; either 3514 // version 2.1 of the License, or (at your option) any later version. 3515 // 3516 // The GNU C Library is distributed in the hope that it will be useful, 3517 // but WITHOUT ANY WARRANTY; without even the implied warranty of 3518 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 3519 // Lesser General Public License for more details. 3520 // 3521 // You should have received a copy of the GNU Lesser General Public 3522 // License along with the GNU C Library; if not, see 3523 // <https://www.gnu.org/licenses/>. 3524 3525 // Arch-specific definitions. Each architecture must define the following 3526 // macros to define the expected sizes of pthread data types: 3527 // 3528 // __SIZEOF_PTHREAD_ATTR_T - size of pthread_attr_t. 3529 // __SIZEOF_PTHREAD_MUTEX_T - size of pthread_mutex_t. 3530 // __SIZEOF_PTHREAD_MUTEXATTR_T - size of pthread_mutexattr_t. 3531 // __SIZEOF_PTHREAD_COND_T - size of pthread_cond_t. 3532 // __SIZEOF_PTHREAD_CONDATTR_T - size of pthread_condattr_t. 3533 // __SIZEOF_PTHREAD_RWLOCK_T - size of pthread_rwlock_t. 3534 // __SIZEOF_PTHREAD_RWLOCKATTR_T - size of pthread_rwlockattr_t. 3535 // __SIZEOF_PTHREAD_BARRIER_T - size of pthread_barrier_t. 3536 // __SIZEOF_PTHREAD_BARRIERATTR_T - size of pthread_barrierattr_t. 3537 // 3538 // The additional macro defines any constraint for the lock alignment 3539 // inside the thread structures: 3540 // 3541 // __LOCK_ALIGNMENT - for internal lock/futex usage. 3542 // 3543 // Same idea but for the once locking primitive: 3544 // 3545 // __ONCE_ALIGNMENT - for pthread_once_t/once_flag definition. 3546 3547 // Copyright (C) 2002-2020 Free Software Foundation, Inc. 3548 // 3549 // This file is part of the GNU C Library. 3550 // 3551 // The GNU C Library is free software; you can redistribute it and/or 3552 // modify it under the terms of the GNU Lesser General Public 3553 // License as published by the Free Software Foundation; either 3554 // version 2.1 of the License, or (at your option) any later version. 3555 // 3556 // The GNU C Library is distributed in the hope that it will be useful, 3557 // but WITHOUT ANY WARRANTY; without even the implied warranty of 3558 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 3559 // Lesser General Public License for more details. 3560 // 3561 // You should have received a copy of the GNU Lesser General Public 3562 // License along with the GNU C Library; if not, see 3563 // <https://www.gnu.org/licenses/>. 3564 3565 // Endian macros for string.h functions 3566 // Copyright (C) 1992-2020 Free Software Foundation, Inc. 3567 // This file is part of the GNU C Library. 3568 // 3569 // The GNU C Library is free software; you can redistribute it and/or 3570 // modify it under the terms of the GNU Lesser General Public 3571 // License as published by the Free Software Foundation; either 3572 // version 2.1 of the License, or (at your option) any later version. 3573 // 3574 // The GNU C Library is distributed in the hope that it will be useful, 3575 // but WITHOUT ANY WARRANTY; without even the implied warranty of 3576 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 3577 // Lesser General Public License for more details. 3578 // 3579 // You should have received a copy of the GNU Lesser General Public 3580 // License along with the GNU C Library; if not, see 3581 // <http://www.gnu.org/licenses/>. 3582 3583 // Common definition of pthread_mutex_t. 3584 3585 type X__pthread_internal_list = struct { 3586 F__prev uintptr 3587 F__next uintptr 3588 } /* thread-shared-types.h:49:9 */ 3589 3590 // Type to count file system inodes. 3591 3592 // Now add the thread types. 3593 // Declaration of common pthread types for all architectures. 3594 // Copyright (C) 2017-2020 Free Software Foundation, Inc. 3595 // This file is part of the GNU C Library. 3596 // 3597 // The GNU C Library is free software; you can redistribute it and/or 3598 // modify it under the terms of the GNU Lesser General Public 3599 // License as published by the Free Software Foundation; either 3600 // version 2.1 of the License, or (at your option) any later version. 3601 // 3602 // The GNU C Library is distributed in the hope that it will be useful, 3603 // but WITHOUT ANY WARRANTY; without even the implied warranty of 3604 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 3605 // Lesser General Public License for more details. 3606 // 3607 // You should have received a copy of the GNU Lesser General Public 3608 // License along with the GNU C Library; if not, see 3609 // <https://www.gnu.org/licenses/>. 3610 3611 // For internal mutex and condition variable definitions. 3612 // Common threading primitives definitions for both POSIX and C11. 3613 // Copyright (C) 2017-2020 Free Software Foundation, Inc. 3614 // This file is part of the GNU C Library. 3615 // 3616 // The GNU C Library is free software; you can redistribute it and/or 3617 // modify it under the terms of the GNU Lesser General Public 3618 // License as published by the Free Software Foundation; either 3619 // version 2.1 of the License, or (at your option) any later version. 3620 // 3621 // The GNU C Library is distributed in the hope that it will be useful, 3622 // but WITHOUT ANY WARRANTY; without even the implied warranty of 3623 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 3624 // Lesser General Public License for more details. 3625 // 3626 // You should have received a copy of the GNU Lesser General Public 3627 // License along with the GNU C Library; if not, see 3628 // <https://www.gnu.org/licenses/>. 3629 3630 // Arch-specific definitions. Each architecture must define the following 3631 // macros to define the expected sizes of pthread data types: 3632 // 3633 // __SIZEOF_PTHREAD_ATTR_T - size of pthread_attr_t. 3634 // __SIZEOF_PTHREAD_MUTEX_T - size of pthread_mutex_t. 3635 // __SIZEOF_PTHREAD_MUTEXATTR_T - size of pthread_mutexattr_t. 3636 // __SIZEOF_PTHREAD_COND_T - size of pthread_cond_t. 3637 // __SIZEOF_PTHREAD_CONDATTR_T - size of pthread_condattr_t. 3638 // __SIZEOF_PTHREAD_RWLOCK_T - size of pthread_rwlock_t. 3639 // __SIZEOF_PTHREAD_RWLOCKATTR_T - size of pthread_rwlockattr_t. 3640 // __SIZEOF_PTHREAD_BARRIER_T - size of pthread_barrier_t. 3641 // __SIZEOF_PTHREAD_BARRIERATTR_T - size of pthread_barrierattr_t. 3642 // 3643 // The additional macro defines any constraint for the lock alignment 3644 // inside the thread structures: 3645 // 3646 // __LOCK_ALIGNMENT - for internal lock/futex usage. 3647 // 3648 // Same idea but for the once locking primitive: 3649 // 3650 // __ONCE_ALIGNMENT - for pthread_once_t/once_flag definition. 3651 3652 // Copyright (C) 2002-2020 Free Software Foundation, Inc. 3653 // 3654 // This file is part of the GNU C Library. 3655 // 3656 // The GNU C Library is free software; you can redistribute it and/or 3657 // modify it under the terms of the GNU Lesser General Public 3658 // License as published by the Free Software Foundation; either 3659 // version 2.1 of the License, or (at your option) any later version. 3660 // 3661 // The GNU C Library is distributed in the hope that it will be useful, 3662 // but WITHOUT ANY WARRANTY; without even the implied warranty of 3663 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 3664 // Lesser General Public License for more details. 3665 // 3666 // You should have received a copy of the GNU Lesser General Public 3667 // License along with the GNU C Library; if not, see 3668 // <https://www.gnu.org/licenses/>. 3669 3670 // Endian macros for string.h functions 3671 // Copyright (C) 1992-2020 Free Software Foundation, Inc. 3672 // This file is part of the GNU C Library. 3673 // 3674 // The GNU C Library is free software; you can redistribute it and/or 3675 // modify it under the terms of the GNU Lesser General Public 3676 // License as published by the Free Software Foundation; either 3677 // version 2.1 of the License, or (at your option) any later version. 3678 // 3679 // The GNU C Library is distributed in the hope that it will be useful, 3680 // but WITHOUT ANY WARRANTY; without even the implied warranty of 3681 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 3682 // Lesser General Public License for more details. 3683 // 3684 // You should have received a copy of the GNU Lesser General Public 3685 // License along with the GNU C Library; if not, see 3686 // <http://www.gnu.org/licenses/>. 3687 3688 // Common definition of pthread_mutex_t. 3689 3690 type X__pthread_list_t = X__pthread_internal_list /* thread-shared-types.h:53:3 */ 3691 3692 type X__pthread_internal_slist = struct{ F__next uintptr } /* thread-shared-types.h:55:9 */ 3693 3694 type X__pthread_slist_t = X__pthread_internal_slist /* thread-shared-types.h:58:3 */ 3695 3696 // Arch-specific mutex definitions. A generic implementation is provided 3697 // by sysdeps/nptl/bits/struct_mutex.h. If required, an architecture 3698 // can override it by defining: 3699 // 3700 // 1. struct __pthread_mutex_s (used on both pthread_mutex_t and mtx_t 3701 // definition). It should contains at least the internal members 3702 // defined in the generic version. 3703 // 3704 // 2. __LOCK_ALIGNMENT for any extra attribute for internal lock used with 3705 // atomic operations. 3706 // 3707 // 3. The macro __PTHREAD_MUTEX_INITIALIZER used for static initialization. 3708 // It should initialize the mutex internal flag. 3709 3710 // Default mutex implementation struct definitions. 3711 // Copyright (C) 2019-2020 Free Software Foundation, Inc. 3712 // This file is part of the GNU C Library. 3713 // 3714 // The GNU C Library is free software; you can redistribute it and/or 3715 // modify it under the terms of the GNU Lesser General Public 3716 // License as published by the Free Software Foundation; either 3717 // version 2.1 of the License, or (at your option) any later version. 3718 // 3719 // The GNU C Library is distributed in the hope that it will be useful, 3720 // but WITHOUT ANY WARRANTY; without even the implied warranty of 3721 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 3722 // Lesser General Public License for more details. 3723 // 3724 // You should have received a copy of the GNU Lesser General Public 3725 // License along with the GNU C Library; if not, see 3726 // <http://www.gnu.org/licenses/>. 3727 3728 // Generic struct for both POSIX and C11 mutexes. New ports are expected 3729 // to use the default layout, however architecture can redefine it to 3730 // add arch-specific extension (such as lock-elision). The struct have 3731 // a size of 32 bytes on LP32 and 40 bytes on LP64 architectures. 3732 3733 type X__pthread_mutex_s = struct { 3734 F__lock int32 3735 F__count uint32 3736 F__owner int32 3737 F__nusers uint32 3738 F__kind int32 3739 F__spins int32 3740 F__list X__pthread_list_t 3741 } /* struct_mutex.h:27:1 */ 3742 3743 // Arch-sepecific read-write lock definitions. A generic implementation is 3744 // provided by struct_rwlock.h. If required, an architecture can override it 3745 // by defining: 3746 // 3747 // 1. struct __pthread_rwlock_arch_t (used on pthread_rwlock_t definition). 3748 // It should contain at least the internal members defined in the 3749 // generic version. 3750 // 3751 // 2. The macro __PTHREAD_RWLOCK_INITIALIZER used for static initialization. 3752 // It should initialize the rwlock internal type. 3753 3754 // AArch64 internal rwlock struct definitions. 3755 // Copyright (C) 2019-2020 Free Software Foundation, Inc. 3756 // 3757 // This file is part of the GNU C Library. 3758 // 3759 // The GNU C Library is free software; you can redistribute it and/or 3760 // modify it under the terms of the GNU Lesser General Public 3761 // License as published by the Free Software Foundation; either 3762 // version 2.1 of the License, or (at your option) any later version. 3763 // 3764 // The GNU C Library is distributed in the hope that it will be useful, 3765 // but WITHOUT ANY WARRANTY; without even the implied warranty of 3766 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 3767 // Lesser General Public License for more details. 3768 // 3769 // You should have received a copy of the GNU Lesser General Public 3770 // License along with the GNU C Library; if not, see 3771 // <http://www.gnu.org/licenses/>. 3772 3773 type X__pthread_rwlock_arch_t = struct { 3774 F__readers uint32 3775 F__writers uint32 3776 F__wrphase_futex uint32 3777 F__writers_futex uint32 3778 F__pad3 uint32 3779 F__pad4 uint32 3780 F__cur_writer int32 3781 F__shared int32 3782 F__pad1 uint64 3783 F__pad2 uint64 3784 F__flags uint32 3785 F__ccgo_pad1 [4]byte 3786 } /* struct_rwlock.h:23:1 */ 3787 3788 // Common definition of pthread_cond_t. 3789 3790 type X__pthread_cond_s = struct { 3791 F__0 struct{ F__wseq uint64 } 3792 F__8 struct{ F__g1_start uint64 } 3793 F__g_refs [2]uint32 3794 F__g_size [2]uint32 3795 F__g1_orig_size uint32 3796 F__wrefs uint32 3797 F__g_signals [2]uint32 3798 } /* thread-shared-types.h:92:1 */ 3799 3800 type X__tss_t = uint32 /* thread-shared-types.h:119:22 */ 3801 type X__thrd_t = uint64 /* thread-shared-types.h:120:27 */ 3802 3803 type X__once_flag = struct{ F__data int32 } /* thread-shared-types.h:125:3 */ 3804 3805 // Thread identifiers. The structure of the attribute type is not 3806 // exposed on purpose. 3807 type Pthread_t = uint64 /* pthreadtypes.h:27:27 */ 3808 3809 // Data structures for mutex handling. The structure of the attribute 3810 // type is not exposed on purpose. 3811 type Pthread_mutexattr_t = struct { 3812 F__ccgo_pad1 [0]uint32 3813 F__size [8]uint8 3814 } /* pthreadtypes.h:36:3 */ 3815 3816 // Data structure for condition variable handling. The structure of 3817 // the attribute type is not exposed on purpose. 3818 type Pthread_condattr_t = struct { 3819 F__ccgo_pad1 [0]uint32 3820 F__size [8]uint8 3821 } /* pthreadtypes.h:45:3 */ 3822 3823 // Keys for thread-specific data 3824 type Pthread_key_t = uint32 /* pthreadtypes.h:49:22 */ 3825 3826 // Once-only execution 3827 type Pthread_once_t = int32 /* pthreadtypes.h:53:30 */ 3828 3829 type Pthread_attr_t1 = struct { 3830 F__ccgo_pad1 [0]uint64 3831 F__size [64]uint8 3832 } /* pthreadtypes.h:56:1 */ 3833 3834 type Pthread_attr_t = Pthread_attr_t1 /* pthreadtypes.h:62:30 */ 3835 3836 type Pthread_mutex_t = struct { 3837 F__data X__pthread_mutex_s 3838 F__ccgo_pad1 [8]byte 3839 } /* pthreadtypes.h:72:3 */ 3840 3841 type Pthread_cond_t = struct{ F__data X__pthread_cond_s } /* pthreadtypes.h:80:3 */ 3842 3843 // Data structure for reader-writer lock variable handling. The 3844 // structure of the attribute type is deliberately not exposed. 3845 type Pthread_rwlock_t = struct{ F__data X__pthread_rwlock_arch_t } /* pthreadtypes.h:91:3 */ 3846 3847 type Pthread_rwlockattr_t = struct { 3848 F__ccgo_pad1 [0]uint64 3849 F__size [8]uint8 3850 } /* pthreadtypes.h:97:3 */ 3851 3852 // POSIX spinlock data type. 3853 type Pthread_spinlock_t = int32 /* pthreadtypes.h:103:22 */ 3854 3855 // POSIX barriers data type. The structure of the type is 3856 // deliberately not exposed. 3857 type Pthread_barrier_t = struct { 3858 F__ccgo_pad1 [0]uint64 3859 F__size [32]uint8 3860 } /* pthreadtypes.h:112:3 */ 3861 3862 type Pthread_barrierattr_t = struct { 3863 F__ccgo_pad1 [0]uint32 3864 F__size [8]uint8 3865 } /* pthreadtypes.h:118:3 */ 3866 3867 // POSIX.1-2008 extended locale interface (see locale.h). 3868 // Definition of locale_t. 3869 // Copyright (C) 2017-2020 Free Software Foundation, Inc. 3870 // This file is part of the GNU C Library. 3871 // 3872 // The GNU C Library is free software; you can redistribute it and/or 3873 // modify it under the terms of the GNU Lesser General Public 3874 // License as published by the Free Software Foundation; either 3875 // version 2.1 of the License, or (at your option) any later version. 3876 // 3877 // The GNU C Library is distributed in the hope that it will be useful, 3878 // but WITHOUT ANY WARRANTY; without even the implied warranty of 3879 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 3880 // Lesser General Public License for more details. 3881 // 3882 // You should have received a copy of the GNU Lesser General Public 3883 // License along with the GNU C Library; if not, see 3884 // <https://www.gnu.org/licenses/>. 3885 3886 // Definition of struct __locale_struct and __locale_t. 3887 // Copyright (C) 1997-2020 Free Software Foundation, Inc. 3888 // This file is part of the GNU C Library. 3889 // Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997. 3890 // 3891 // The GNU C Library is free software; you can redistribute it and/or 3892 // modify it under the terms of the GNU Lesser General Public 3893 // License as published by the Free Software Foundation; either 3894 // version 2.1 of the License, or (at your option) any later version. 3895 // 3896 // The GNU C Library is distributed in the hope that it will be useful, 3897 // but WITHOUT ANY WARRANTY; without even the implied warranty of 3898 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 3899 // Lesser General Public License for more details. 3900 // 3901 // You should have received a copy of the GNU Lesser General Public 3902 // License along with the GNU C Library; if not, see 3903 // <https://www.gnu.org/licenses/>. 3904 3905 // POSIX.1-2008: the locale_t type, representing a locale context 3906 // (implementation-namespace version). This type should be treated 3907 // as opaque by applications; some details are exposed for the sake of 3908 // efficiency in e.g. ctype functions. 3909 3910 type X__locale_struct = struct { 3911 F__locales [13]uintptr 3912 F__ctype_b uintptr 3913 F__ctype_tolower uintptr 3914 F__ctype_toupper uintptr 3915 F__names [13]uintptr 3916 } /* __locale_t.h:28:1 */ 3917 3918 type X__locale_t = uintptr /* __locale_t.h:42:32 */ 3919 3920 type Locale_t = X__locale_t /* locale_t.h:24:20 */ 3921 3922 // Get open(2) constants 3923 // Copyright (C) 1991-2020 Free Software Foundation, Inc. 3924 // This file is part of the GNU C Library. 3925 // 3926 // The GNU C Library is free software; you can redistribute it and/or 3927 // modify it under the terms of the GNU Lesser General Public 3928 // License as published by the Free Software Foundation; either 3929 // version 2.1 of the License, or (at your option) any later version. 3930 // 3931 // The GNU C Library is distributed in the hope that it will be useful, 3932 // but WITHOUT ANY WARRANTY; without even the implied warranty of 3933 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 3934 // Lesser General Public License for more details. 3935 // 3936 // You should have received a copy of the GNU Lesser General Public 3937 // License along with the GNU C Library; if not, see 3938 // <https://www.gnu.org/licenses/>. 3939 3940 // POSIX Standard: 6.5 File Control Operations <fcntl.h> 3941 3942 // Copyright (C) 1991-2020 Free Software Foundation, Inc. 3943 // This file is part of the GNU C Library. 3944 // 3945 // The GNU C Library is free software; you can redistribute it and/or 3946 // modify it under the terms of the GNU Lesser General Public 3947 // License as published by the Free Software Foundation; either 3948 // version 2.1 of the License, or (at your option) any later version. 3949 // 3950 // The GNU C Library is distributed in the hope that it will be useful, 3951 // but WITHOUT ANY WARRANTY; without even the implied warranty of 3952 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 3953 // Lesser General Public License for more details. 3954 // 3955 // You should have received a copy of the GNU Lesser General Public 3956 // License along with the GNU C Library; if not, see 3957 // <https://www.gnu.org/licenses/>. 3958 3959 // This must be early so <bits/fcntl.h> can define types winningly. 3960 3961 // Get __mode_t, __dev_t and __off_t . 3962 // bits/types.h -- definitions of __*_t types underlying *_t types. 3963 // Copyright (C) 2002-2020 Free Software Foundation, Inc. 3964 // This file is part of the GNU C Library. 3965 // 3966 // The GNU C Library is free software; you can redistribute it and/or 3967 // modify it under the terms of the GNU Lesser General Public 3968 // License as published by the Free Software Foundation; either 3969 // version 2.1 of the License, or (at your option) any later version. 3970 // 3971 // The GNU C Library is distributed in the hope that it will be useful, 3972 // but WITHOUT ANY WARRANTY; without even the implied warranty of 3973 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 3974 // Lesser General Public License for more details. 3975 // 3976 // You should have received a copy of the GNU Lesser General Public 3977 // License along with the GNU C Library; if not, see 3978 // <https://www.gnu.org/licenses/>. 3979 3980 // Never include this file directly; use <sys/types.h> instead. 3981 3982 // Get the definitions of O_*, F_*, FD_*: all the 3983 // numbers and flag bits for `open', `fcntl', et al. 3984 // O_*, F_*, FD_* bit values for the AArch64 Linux ABI. 3985 // Copyright (C) 2011-2020 Free Software Foundation, Inc. 3986 // 3987 // This file is part of the GNU C Library. 3988 // 3989 // The GNU C Library is free software; you can redistribute it and/or 3990 // modify it under the terms of the GNU Lesser General Public 3991 // License as published by the Free Software Foundation; either 3992 // version 2.1 of the License, or (at your option) any later version. 3993 // 3994 // The GNU C Library is distributed in the hope that it will be useful, 3995 // but WITHOUT ANY WARRANTY; without even the implied warranty of 3996 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 3997 // Lesser General Public License for more details. 3998 // 3999 // You should have received a copy of the GNU Lesser General Public 4000 // License along with the GNU C Library. If not, see 4001 // <https://www.gnu.org/licenses/>. 4002 4003 type Flock = struct { 4004 Fl_type int16 4005 Fl_whence int16 4006 F__ccgo_pad1 [4]byte 4007 Fl_start X__off_t 4008 Fl_len X__off_t 4009 Fl_pid X__pid_t 4010 F__ccgo_pad2 [4]byte 4011 } /* fcntl.h:40:1 */ 4012 4013 type Flock64 = struct { 4014 Fl_type int16 4015 Fl_whence int16 4016 F__ccgo_pad1 [4]byte 4017 Fl_start X__off64_t 4018 Fl_len X__off64_t 4019 Fl_pid X__pid_t 4020 F__ccgo_pad2 [4]byte 4021 } /* fcntl.h:50:1 */ 4022 4023 // Include generic Linux declarations. 4024 // O_*, F_*, FD_* bit values for Linux. 4025 // Copyright (C) 2001-2020 Free Software Foundation, Inc. 4026 // This file is part of the GNU C Library. 4027 // 4028 // The GNU C Library is free software; you can redistribute it and/or 4029 // modify it under the terms of the GNU Lesser General Public 4030 // License as published by the Free Software Foundation; either 4031 // version 2.1 of the License, or (at your option) any later version. 4032 // 4033 // The GNU C Library is distributed in the hope that it will be useful, 4034 // but WITHOUT ANY WARRANTY; without even the implied warranty of 4035 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 4036 // Lesser General Public License for more details. 4037 // 4038 // You should have received a copy of the GNU Lesser General Public 4039 // License along with the GNU C Library; if not, see 4040 // <https://www.gnu.org/licenses/>. 4041 4042 // This file contains shared definitions between Linux architectures 4043 // and is included by <bits/fcntl.h> to declare them. The various 4044 // #ifndef cases allow the architecture specific file to define those 4045 // values with different values. 4046 // 4047 // A minimal <bits/fcntl.h> contains just: 4048 // 4049 // struct flock {...} 4050 // #ifdef __USE_LARGEFILE64 4051 // struct flock64 {...} 4052 // #endif 4053 // #include <bits/fcntl-linux.h> 4054 4055 // Define struct iovec. 4056 // Copyright (C) 1996-2020 Free Software Foundation, Inc. 4057 // This file is part of the GNU C Library. 4058 // 4059 // The GNU C Library is free software; you can redistribute it and/or 4060 // modify it under the terms of the GNU Lesser General Public 4061 // License as published by the Free Software Foundation; either 4062 // version 2.1 of the License, or (at your option) any later version. 4063 // 4064 // The GNU C Library is distributed in the hope that it will be useful, 4065 // but WITHOUT ANY WARRANTY; without even the implied warranty of 4066 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 4067 // Lesser General Public License for more details. 4068 // 4069 // You should have received a copy of the GNU Lesser General Public 4070 // License along with the GNU C Library; if not, see 4071 // <https://www.gnu.org/licenses/>. 4072 4073 // Copyright (C) 1989-2020 Free Software Foundation, Inc. 4074 // 4075 // This file is part of GCC. 4076 // 4077 // GCC is free software; you can redistribute it and/or modify 4078 // it under the terms of the GNU General Public License as published by 4079 // the Free Software Foundation; either version 3, or (at your option) 4080 // any later version. 4081 // 4082 // GCC is distributed in the hope that it will be useful, 4083 // but WITHOUT ANY WARRANTY; without even the implied warranty of 4084 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 4085 // GNU General Public License for more details. 4086 // 4087 // Under Section 7 of GPL version 3, you are granted additional 4088 // permissions described in the GCC Runtime Library Exception, version 4089 // 3.1, as published by the Free Software Foundation. 4090 // 4091 // You should have received a copy of the GNU General Public License and 4092 // a copy of the GCC Runtime Library Exception along with this program; 4093 // see the files COPYING3 and COPYING.RUNTIME respectively. If not, see 4094 // <http://www.gnu.org/licenses/>. 4095 4096 // ISO C Standard: 7.17 Common definitions <stddef.h> 4097 4098 // Any one of these symbols __need_* means that GNU libc 4099 // wants us just to define one data type. So don't define 4100 // the symbols that indicate this file's entire job has been done. 4101 4102 // This avoids lossage on SunOS but only if stdtypes.h comes first. 4103 // There's no way to win with the other order! Sun lossage. 4104 4105 // Sequent's header files use _PTRDIFF_T_ in some conflicting way. 4106 // Just ignore it. 4107 4108 // On VxWorks, <type/vxTypesBase.h> may have defined macros like 4109 // _TYPE_size_t which will typedef size_t. fixincludes patched the 4110 // vxTypesBase.h so that this macro is only defined if _GCC_SIZE_T is 4111 // not defined, and so that defining this macro defines _GCC_SIZE_T. 4112 // If we find that the macros are still defined at this point, we must 4113 // invoke them so that the type is defined as expected. 4114 4115 // In case nobody has defined these types, but we aren't running under 4116 // GCC 2.00, make sure that __PTRDIFF_TYPE__, __SIZE_TYPE__, and 4117 // __WCHAR_TYPE__ have reasonable values. This can happen if the 4118 // parts of GCC is compiled by an older compiler, that actually 4119 // include gstddef.h, such as collect2. 4120 4121 // Signed type of difference of two pointers. 4122 4123 // Define this type if we are doing the whole job, 4124 // or if we want this type in particular. 4125 4126 // Unsigned type of `sizeof' something. 4127 4128 // Define this type if we are doing the whole job, 4129 // or if we want this type in particular. 4130 4131 // Wide character type. 4132 // Locale-writers should change this as necessary to 4133 // be big enough to hold unique values not between 0 and 127, 4134 // and not (wchar_t) -1, for each defined multibyte character. 4135 4136 // Define this type if we are doing the whole job, 4137 // or if we want this type in particular. 4138 4139 // A null pointer constant. 4140 4141 // Structure for scatter/gather I/O. 4142 type Iovec = struct { 4143 Fiov_base uintptr 4144 Fiov_len Size_t 4145 } /* struct_iovec.h:26:1 */ 4146 4147 // Structure to use with F_GETOWN_EX and F_SETOWN_EX. 4148 type F_owner_ex = struct { 4149 Ftype uint32 4150 Fpid X__pid_t 4151 } /* fcntl-linux.h:274:1 */ 4152 4153 // Types of seals. 4154 4155 // Hint values for F_{GET,SET}_RW_HINT. 4156 4157 // Define some more compatibility macros to be backward compatible with 4158 // BSD systems which did not managed to hide these kernel macros. 4159 4160 // Advise to `posix_fadvise'. 4161 4162 // Flags for SYNC_FILE_RANGE. 4163 // SYNC_FILE_RANGE_WRITE_AND_WAIT ensures all pages in the range are 4164 // written to disk before returning. 4165 4166 // Flags for SPLICE and VMSPLICE. 4167 4168 // Flags for fallocate. 4169 // SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note 4170 4171 // FALLOC_FL_COLLAPSE_RANGE is used to remove a range of a file 4172 // without leaving a hole in the file. The contents of the file beyond 4173 // the range being removed is appended to the start offset of the range 4174 // being removed (i.e. the hole that was punched is "collapsed"), 4175 // resulting in a file layout that looks like the range that was 4176 // removed never existed. As such collapsing a range of a file changes 4177 // the size of the file, reducing it by the same length of the range 4178 // that has been removed by the operation. 4179 // 4180 // Different filesystems may implement different limitations on the 4181 // granularity of the operation. Most will limit operations to 4182 // filesystem block size boundaries, but this boundary may be larger or 4183 // smaller depending on the filesystem and/or the configuration of the 4184 // filesystem or file. 4185 // 4186 // Attempting to collapse a range that crosses the end of the file is 4187 // considered an illegal operation - just use ftruncate(2) if you need 4188 // to collapse a range that crosses EOF. 4189 4190 // FALLOC_FL_ZERO_RANGE is used to convert a range of file to zeros preferably 4191 // without issuing data IO. Blocks should be preallocated for the regions that 4192 // span holes in the file, and the entire range is preferable converted to 4193 // unwritten extents - even though file system may choose to zero out the 4194 // extent or do whatever which will result in reading zeros from the range 4195 // while the range remains allocated for the file. 4196 // 4197 // This can be also used to preallocate blocks past EOF in the same way as 4198 // with fallocate. Flag FALLOC_FL_KEEP_SIZE should cause the inode 4199 // size to remain the same. 4200 4201 // FALLOC_FL_INSERT_RANGE is use to insert space within the file size without 4202 // overwriting any existing data. The contents of the file beyond offset are 4203 // shifted towards right by len bytes to create a hole. As such, this 4204 // operation will increase the size of the file by len bytes. 4205 // 4206 // Different filesystems may implement different limitations on the granularity 4207 // of the operation. Most will limit operations to filesystem block size 4208 // boundaries, but this boundary may be larger or smaller depending on 4209 // the filesystem and/or the configuration of the filesystem or file. 4210 // 4211 // Attempting to insert space using this flag at OR beyond the end of 4212 // the file is considered an illegal operation - just use ftruncate(2) or 4213 // fallocate(2) with mode 0 for such type of operations. 4214 4215 // FALLOC_FL_UNSHARE_RANGE is used to unshare shared blocks within the 4216 // file size without overwriting any existing data. The purpose of this 4217 // call is to preemptively reallocate any blocks that are subject to 4218 // copy-on-write. 4219 // 4220 // Different filesystems may implement different limitations on the 4221 // granularity of the operation. Most will limit operations to filesystem 4222 // block size boundaries, but this boundary may be larger or smaller 4223 // depending on the filesystem and/or the configuration of the filesystem 4224 // or file. 4225 // 4226 // This flag can only be used with allocate-mode fallocate, which is 4227 // to say that it cannot be used with the punch, zero, collapse, or 4228 // insert range modes. 4229 4230 // File handle structure. 4231 type File_handle = struct { 4232 F__ccgo_pad1 [0]uint32 4233 Fhandle_bytes uint32 4234 Fhandle_type int32 4235 } /* fcntl-linux.h:358:1 */ 4236 4237 // Detect if open needs mode as a third argument (or for openat as a fourth 4238 // argument). 4239 4240 // POSIX.1-2001 specifies that these types are defined by <fcntl.h>. 4241 // Earlier POSIX standards permitted any type ending in `_t' to be defined 4242 // by any POSIX header, so we don't conditionalize the definitions here. 4243 4244 // For XPG all symbols from <sys/stat.h> should also be available. 4245 // NB: Include guard matches what <linux/time.h> uses. 4246 // Copyright (C) 2011-2020 Free Software Foundation, Inc. 4247 // This file is part of the GNU C Library. 4248 // Contributed by Chris Metcalf <cmetcalf@tilera.com>, 2011. 4249 // 4250 // The GNU C Library is free software; you can redistribute it and/or 4251 // modify it under the terms of the GNU Lesser General Public 4252 // License as published by the Free Software Foundation; either 4253 // version 2.1 of the License, or (at your option) any later version. 4254 // 4255 // The GNU C Library is distributed in the hope that it will be useful, 4256 // but WITHOUT ANY WARRANTY; without even the implied warranty of 4257 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 4258 // Lesser General Public License for more details. 4259 // 4260 // You should have received a copy of the GNU Lesser General Public 4261 // License along with the GNU C Library. If not, see 4262 // <https://www.gnu.org/licenses/>. 4263 4264 // Endian macros for string.h functions 4265 // Copyright (C) 1992-2020 Free Software Foundation, Inc. 4266 // This file is part of the GNU C Library. 4267 // 4268 // The GNU C Library is free software; you can redistribute it and/or 4269 // modify it under the terms of the GNU Lesser General Public 4270 // License as published by the Free Software Foundation; either 4271 // version 2.1 of the License, or (at your option) any later version. 4272 // 4273 // The GNU C Library is distributed in the hope that it will be useful, 4274 // but WITHOUT ANY WARRANTY; without even the implied warranty of 4275 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 4276 // Lesser General Public License for more details. 4277 // 4278 // You should have received a copy of the GNU Lesser General Public 4279 // License along with the GNU C Library; if not, see 4280 // <http://www.gnu.org/licenses/>. 4281 4282 // Determine the wordsize from the preprocessor defines. 4283 // 4284 // Copyright (C) 2016-2020 Free Software Foundation, Inc. 4285 // This file is part of the GNU C Library. 4286 // 4287 // The GNU C Library is free software; you can redistribute it and/or 4288 // modify it under the terms of the GNU Lesser General Public 4289 // License as published by the Free Software Foundation; either 4290 // version 2.1 of the License, or (at your option) any later version. 4291 // 4292 // The GNU C Library is distributed in the hope that it will be useful, 4293 // but WITHOUT ANY WARRANTY; without even the implied warranty of 4294 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 4295 // Lesser General Public License for more details. 4296 // 4297 // You should have received a copy of the GNU Lesser General Public 4298 // License along with the GNU C Library; if not, see 4299 // <https://www.gnu.org/licenses/>. 4300 4301 // 64-bit libc uses the kernel's 'struct stat', accessed via the 4302 // stat() syscall; 32-bit libc uses the kernel's 'struct stat64' 4303 // and accesses it via the stat64() syscall. All the various 4304 // APIs offered by libc use the kernel shape for their struct stat 4305 // structure; the only difference is that 32-bit programs not 4306 // using __USE_FILE_OFFSET64 only see the low 32 bits of some 4307 // of the fields (specifically st_ino, st_size, and st_blocks). 4308 4309 // Versions of the `xmknod' interface. 4310 4311 type Stat = struct { 4312 Fst_dev X__dev_t 4313 Fst_ino X__ino64_t 4314 Fst_mode X__mode_t 4315 Fst_nlink X__nlink_t 4316 Fst_uid X__uid_t 4317 Fst_gid X__gid_t 4318 Fst_rdev X__dev_t 4319 F__pad1 X__dev_t 4320 Fst_size X__off64_t 4321 Fst_blksize X__blksize_t 4322 F__pad2 int32 4323 Fst_blocks X__blkcnt64_t 4324 Fst_atim struct { 4325 Ftv_sec X__time_t 4326 Ftv_nsec X__syscall_slong_t 4327 } 4328 Fst_mtim struct { 4329 Ftv_sec X__time_t 4330 Ftv_nsec X__syscall_slong_t 4331 } 4332 Fst_ctim struct { 4333 Ftv_sec X__time_t 4334 Ftv_nsec X__syscall_slong_t 4335 } 4336 F__glibc_reserved [2]int32 4337 } /* stat.h:58:1 */ 4338 4339 type Stat64 = struct { 4340 Fst_dev X__dev_t 4341 Fst_ino X__ino64_t 4342 Fst_mode X__mode_t 4343 Fst_nlink X__nlink_t 4344 Fst_uid X__uid_t 4345 Fst_gid X__gid_t 4346 Fst_rdev X__dev_t 4347 F__pad1 X__dev_t 4348 Fst_size X__off64_t 4349 Fst_blksize X__blksize_t 4350 F__pad2 int32 4351 Fst_blocks X__blkcnt64_t 4352 Fst_atim struct { 4353 Ftv_sec X__time_t 4354 Ftv_nsec X__syscall_slong_t 4355 } 4356 Fst_mtim struct { 4357 Ftv_sec X__time_t 4358 Ftv_nsec X__syscall_slong_t 4359 } 4360 Fst_ctim struct { 4361 Ftv_sec X__time_t 4362 Ftv_nsec X__syscall_slong_t 4363 } 4364 F__glibc_reserved [2]int32 4365 } /* stat.h:99:1 */ 4366 4367 // Define some inlines helping to catch common problems. 4368 4369 // Copyright (C) 1991-2020 Free Software Foundation, Inc. 4370 // This file is part of the GNU C Library. 4371 // 4372 // The GNU C Library is free software; you can redistribute it and/or 4373 // modify it under the terms of the GNU Lesser General Public 4374 // License as published by the Free Software Foundation; either 4375 // version 2.1 of the License, or (at your option) any later version. 4376 // 4377 // The GNU C Library is distributed in the hope that it will be useful, 4378 // but WITHOUT ANY WARRANTY; without even the implied warranty of 4379 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 4380 // Lesser General Public License for more details. 4381 // 4382 // You should have received a copy of the GNU Lesser General Public 4383 // License along with the GNU C Library; if not, see 4384 // <https://www.gnu.org/licenses/>. 4385 4386 // POSIX Standard: 2.10 Symbolic Constants <unistd.h> 4387 4388 // Copyright (C) 1991-2020 Free Software Foundation, Inc. 4389 // This file is part of the GNU C Library. 4390 // 4391 // The GNU C Library is free software; you can redistribute it and/or 4392 // modify it under the terms of the GNU Lesser General Public 4393 // License as published by the Free Software Foundation; either 4394 // version 2.1 of the License, or (at your option) any later version. 4395 // 4396 // The GNU C Library is distributed in the hope that it will be useful, 4397 // but WITHOUT ANY WARRANTY; without even the implied warranty of 4398 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 4399 // Lesser General Public License for more details. 4400 // 4401 // You should have received a copy of the GNU Lesser General Public 4402 // License along with the GNU C Library; if not, see 4403 // <https://www.gnu.org/licenses/>. 4404 4405 // These may be used to determine what facilities are present at compile time. 4406 // Their values can be obtained at run time from `sysconf'. 4407 4408 // POSIX Standard approved as ISO/IEC 9945-1 as of September 2008. 4409 4410 // These are not #ifdef __USE_POSIX2 because they are 4411 // in the theoretically application-owned namespace. 4412 4413 // The utilities on GNU systems also correspond to this version. 4414 4415 // The utilities on GNU systems also correspond to this version. 4416 4417 // This symbol was required until the 2001 edition of POSIX. 4418 4419 // If defined, the implementation supports the 4420 // C Language Bindings Option. 4421 4422 // If defined, the implementation supports the 4423 // C Language Development Utilities Option. 4424 4425 // If defined, the implementation supports the 4426 // Software Development Utilities Option. 4427 4428 // If defined, the implementation supports the 4429 // creation of locales with the localedef utility. 4430 4431 // X/Open version number to which the library conforms. It is selectable. 4432 4433 // Commands and utilities from XPG4 are available. 4434 4435 // We are compatible with the old published standards as well. 4436 4437 // The X/Open Unix extensions are available. 4438 4439 // The enhanced internationalization capabilities according to XPG4.2 4440 // are present. 4441 4442 // The legacy interfaces are also available. 4443 4444 // Get values of POSIX options: 4445 // 4446 // If these symbols are defined, the corresponding features are 4447 // always available. If not, they may be available sometimes. 4448 // The current values can be obtained with `sysconf'. 4449 // 4450 // _POSIX_JOB_CONTROL Job control is supported. 4451 // _POSIX_SAVED_IDS Processes have a saved set-user-ID 4452 // and a saved set-group-ID. 4453 // _POSIX_REALTIME_SIGNALS Real-time, queued signals are supported. 4454 // _POSIX_PRIORITY_SCHEDULING Priority scheduling is supported. 4455 // _POSIX_TIMERS POSIX.4 clocks and timers are supported. 4456 // _POSIX_ASYNCHRONOUS_IO Asynchronous I/O is supported. 4457 // _POSIX_PRIORITIZED_IO Prioritized asynchronous I/O is supported. 4458 // _POSIX_SYNCHRONIZED_IO Synchronizing file data is supported. 4459 // _POSIX_FSYNC The fsync function is present. 4460 // _POSIX_MAPPED_FILES Mapping of files to memory is supported. 4461 // _POSIX_MEMLOCK Locking of all memory is supported. 4462 // _POSIX_MEMLOCK_RANGE Locking of ranges of memory is supported. 4463 // _POSIX_MEMORY_PROTECTION Setting of memory protections is supported. 4464 // _POSIX_MESSAGE_PASSING POSIX.4 message queues are supported. 4465 // _POSIX_SEMAPHORES POSIX.4 counting semaphores are supported. 4466 // _POSIX_SHARED_MEMORY_OBJECTS POSIX.4 shared memory objects are supported. 4467 // _POSIX_THREADS POSIX.1c pthreads are supported. 4468 // _POSIX_THREAD_ATTR_STACKADDR Thread stack address attribute option supported. 4469 // _POSIX_THREAD_ATTR_STACKSIZE Thread stack size attribute option supported. 4470 // _POSIX_THREAD_SAFE_FUNCTIONS Thread-safe functions are supported. 4471 // _POSIX_THREAD_PRIORITY_SCHEDULING 4472 // POSIX.1c thread execution scheduling supported. 4473 // _POSIX_THREAD_PRIO_INHERIT Thread priority inheritance option supported. 4474 // _POSIX_THREAD_PRIO_PROTECT Thread priority protection option supported. 4475 // _POSIX_THREAD_PROCESS_SHARED Process-shared synchronization supported. 4476 // _POSIX_PII Protocol-independent interfaces are supported. 4477 // _POSIX_PII_XTI XTI protocol-indep. interfaces are supported. 4478 // _POSIX_PII_SOCKET Socket protocol-indep. interfaces are supported. 4479 // _POSIX_PII_INTERNET Internet family of protocols supported. 4480 // _POSIX_PII_INTERNET_STREAM Connection-mode Internet protocol supported. 4481 // _POSIX_PII_INTERNET_DGRAM Connectionless Internet protocol supported. 4482 // _POSIX_PII_OSI ISO/OSI family of protocols supported. 4483 // _POSIX_PII_OSI_COTS Connection-mode ISO/OSI service supported. 4484 // _POSIX_PII_OSI_CLTS Connectionless ISO/OSI service supported. 4485 // _POSIX_POLL Implementation supports `poll' function. 4486 // _POSIX_SELECT Implementation supports `select' and `pselect'. 4487 // 4488 // _XOPEN_REALTIME X/Open realtime support is available. 4489 // _XOPEN_REALTIME_THREADS X/Open realtime thread support is available. 4490 // _XOPEN_SHM Shared memory interface according to XPG4.2. 4491 // 4492 // _XBS5_ILP32_OFF32 Implementation provides environment with 32-bit 4493 // int, long, pointer, and off_t types. 4494 // _XBS5_ILP32_OFFBIG Implementation provides environment with 32-bit 4495 // int, long, and pointer and off_t with at least 4496 // 64 bits. 4497 // _XBS5_LP64_OFF64 Implementation provides environment with 32-bit 4498 // int, and 64-bit long, pointer, and off_t types. 4499 // _XBS5_LPBIG_OFFBIG Implementation provides environment with at 4500 // least 32 bits int and long, pointer, and off_t 4501 // with at least 64 bits. 4502 // 4503 // If any of these symbols is defined as -1, the corresponding option is not 4504 // true for any file. If any is defined as other than -1, the corresponding 4505 // option is true for all files. If a symbol is not defined at all, the value 4506 // for a specific file can be obtained from `pathconf' and `fpathconf'. 4507 // 4508 // _POSIX_CHOWN_RESTRICTED Only the super user can use `chown' to change 4509 // the owner of a file. `chown' can only be used 4510 // to change the group ID of a file to a group of 4511 // which the calling process is a member. 4512 // _POSIX_NO_TRUNC Pathname components longer than 4513 // NAME_MAX generate an error. 4514 // _POSIX_VDISABLE If defined, if the value of an element of the 4515 // `c_cc' member of `struct termios' is 4516 // _POSIX_VDISABLE, no character will have the 4517 // effect associated with that element. 4518 // _POSIX_SYNC_IO Synchronous I/O may be performed. 4519 // _POSIX_ASYNC_IO Asynchronous I/O may be performed. 4520 // _POSIX_PRIO_IO Prioritized Asynchronous I/O may be performed. 4521 // 4522 // Support for the Large File Support interface is not generally available. 4523 // If it is available the following constants are defined to one. 4524 // _LFS64_LARGEFILE Low-level I/O supports large files. 4525 // _LFS64_STDIO Standard I/O supports large files. 4526 // 4527 4528 // Define POSIX options for Linux. 4529 // Copyright (C) 1996-2020 Free Software Foundation, Inc. 4530 // This file is part of the GNU C Library. 4531 // 4532 // The GNU C Library is free software; you can redistribute it and/or 4533 // modify it under the terms of the GNU Lesser General Public License as 4534 // published by the Free Software Foundation; either version 2.1 of the 4535 // License, or (at your option) any later version. 4536 // 4537 // The GNU C Library is distributed in the hope that it will be useful, 4538 // but WITHOUT ANY WARRANTY; without even the implied warranty of 4539 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 4540 // Lesser General Public License for more details. 4541 // 4542 // You should have received a copy of the GNU Lesser General Public 4543 // License along with the GNU C Library; see the file COPYING.LIB. If 4544 // not, see <https://www.gnu.org/licenses/>. 4545 4546 // Job control is supported. 4547 4548 // Processes have a saved set-user-ID and a saved set-group-ID. 4549 4550 // Priority scheduling is not supported with the correct semantics, 4551 // but GNU/Linux applications expect that the corresponding interfaces 4552 // are available, even though the semantics do not meet the POSIX 4553 // requirements. See glibc bug 14829. 4554 4555 // Synchronizing file data is supported. 4556 4557 // The fsync function is present. 4558 4559 // Mapping of files to memory is supported. 4560 4561 // Locking of all memory is supported. 4562 4563 // Locking of ranges of memory is supported. 4564 4565 // Setting of memory protections is supported. 4566 4567 // Some filesystems allow all users to change file ownership. 4568 4569 // `c_cc' member of 'struct termios' structure can be disabled by 4570 // using the value _POSIX_VDISABLE. 4571 4572 // Filenames are not silently truncated. 4573 4574 // X/Open realtime support is available. 4575 4576 // X/Open thread realtime support is available. 4577 4578 // XPG4.2 shared memory is supported. 4579 4580 // Tell we have POSIX threads. 4581 4582 // We have the reentrant functions described in POSIX. 4583 4584 // We provide priority scheduling for threads. 4585 4586 // We support user-defined stack sizes. 4587 4588 // We support user-defined stacks. 4589 4590 // We support priority inheritence. 4591 4592 // We support priority protection, though only for non-robust 4593 // mutexes. 4594 4595 // We support priority inheritence for robust mutexes. 4596 4597 // We do not support priority protection for robust mutexes. 4598 4599 // We support POSIX.1b semaphores. 4600 4601 // Real-time signals are supported. 4602 4603 // We support asynchronous I/O. 4604 // Alternative name for Unix98. 4605 // Support for prioritization is also available. 4606 4607 // The LFS support in asynchronous I/O is also available. 4608 4609 // The rest of the LFS is also available. 4610 4611 // POSIX shared memory objects are implemented. 4612 4613 // CPU-time clocks support needs to be checked at runtime. 4614 4615 // Clock support in threads must be also checked at runtime. 4616 4617 // GNU libc provides regular expression handling. 4618 4619 // Reader/Writer locks are available. 4620 4621 // We have a POSIX shell. 4622 4623 // We support the Timeouts option. 4624 4625 // We support spinlocks. 4626 4627 // The `spawn' function family is supported. 4628 4629 // We have POSIX timers. 4630 4631 // The barrier functions are available. 4632 4633 // POSIX message queues are available. 4634 4635 // Thread process-shared synchronization is supported. 4636 4637 // The monotonic clock might be available. 4638 4639 // The clock selection interfaces are available. 4640 4641 // Advisory information interfaces are available. 4642 4643 // IPv6 support is available. 4644 4645 // Raw socket support is available. 4646 4647 // We have at least one terminal. 4648 4649 // Neither process nor thread sporadic server interfaces is available. 4650 4651 // trace.h is not available. 4652 4653 // Typed memory objects are not available. 4654 4655 // Get the environment definitions from Unix98. 4656 // Copyright (C) 1999-2020 Free Software Foundation, Inc. 4657 // This file is part of the GNU C Library. 4658 // 4659 // The GNU C Library is free software; you can redistribute it and/or 4660 // modify it under the terms of the GNU Lesser General Public 4661 // License as published by the Free Software Foundation; either 4662 // version 2.1 of the License, or (at your option) any later version. 4663 // 4664 // The GNU C Library is distributed in the hope that it will be useful, 4665 // but WITHOUT ANY WARRANTY; without even the implied warranty of 4666 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 4667 // Lesser General Public License for more details. 4668 // 4669 // You should have received a copy of the GNU Lesser General Public 4670 // License along with the GNU C Library; if not, see 4671 // <https://www.gnu.org/licenses/>. 4672 4673 // Determine the wordsize from the preprocessor defines. 4674 // 4675 // Copyright (C) 2016-2020 Free Software Foundation, Inc. 4676 // This file is part of the GNU C Library. 4677 // 4678 // The GNU C Library is free software; you can redistribute it and/or 4679 // modify it under the terms of the GNU Lesser General Public 4680 // License as published by the Free Software Foundation; either 4681 // version 2.1 of the License, or (at your option) any later version. 4682 // 4683 // The GNU C Library is distributed in the hope that it will be useful, 4684 // but WITHOUT ANY WARRANTY; without even the implied warranty of 4685 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 4686 // Lesser General Public License for more details. 4687 // 4688 // You should have received a copy of the GNU Lesser General Public 4689 // License along with the GNU C Library; if not, see 4690 // <https://www.gnu.org/licenses/>. 4691 4692 // This header should define the following symbols under the described 4693 // situations. A value `1' means that the model is always supported, 4694 // `-1' means it is never supported. Undefined means it cannot be 4695 // statically decided. 4696 // 4697 // _POSIX_V7_ILP32_OFF32 32bit int, long, pointers, and off_t type 4698 // _POSIX_V7_ILP32_OFFBIG 32bit int, long, and pointers and larger off_t type 4699 // 4700 // _POSIX_V7_LP64_OFF32 64bit long and pointers and 32bit off_t type 4701 // _POSIX_V7_LPBIG_OFFBIG 64bit long and pointers and large off_t type 4702 // 4703 // The macros _POSIX_V6_ILP32_OFF32, _POSIX_V6_ILP32_OFFBIG, 4704 // _POSIX_V6_LP64_OFF32, _POSIX_V6_LPBIG_OFFBIG, _XBS5_ILP32_OFF32, 4705 // _XBS5_ILP32_OFFBIG, _XBS5_LP64_OFF32, and _XBS5_LPBIG_OFFBIG were 4706 // used in previous versions of the Unix standard and are available 4707 // only for compatibility. 4708 4709 // We can never provide environments with 32-bit wide pointers. 4710 // We also have no use (for now) for an environment with bigger pointers 4711 // and offsets. 4712 4713 // By default we have 64-bit wide `long int', pointers and `off_t'. 4714 4715 // Standard file descriptors. 4716 4717 // All functions that are not declared anywhere else. 4718 4719 // bits/types.h -- definitions of __*_t types underlying *_t types. 4720 // Copyright (C) 2002-2020 Free Software Foundation, Inc. 4721 // This file is part of the GNU C Library. 4722 // 4723 // The GNU C Library is free software; you can redistribute it and/or 4724 // modify it under the terms of the GNU Lesser General Public 4725 // License as published by the Free Software Foundation; either 4726 // version 2.1 of the License, or (at your option) any later version. 4727 // 4728 // The GNU C Library is distributed in the hope that it will be useful, 4729 // but WITHOUT ANY WARRANTY; without even the implied warranty of 4730 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 4731 // Lesser General Public License for more details. 4732 // 4733 // You should have received a copy of the GNU Lesser General Public 4734 // License along with the GNU C Library; if not, see 4735 // <https://www.gnu.org/licenses/>. 4736 4737 // Never include this file directly; use <sys/types.h> instead. 4738 4739 // Copyright (C) 1989-2020 Free Software Foundation, Inc. 4740 // 4741 // This file is part of GCC. 4742 // 4743 // GCC is free software; you can redistribute it and/or modify 4744 // it under the terms of the GNU General Public License as published by 4745 // the Free Software Foundation; either version 3, or (at your option) 4746 // any later version. 4747 // 4748 // GCC is distributed in the hope that it will be useful, 4749 // but WITHOUT ANY WARRANTY; without even the implied warranty of 4750 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 4751 // GNU General Public License for more details. 4752 // 4753 // Under Section 7 of GPL version 3, you are granted additional 4754 // permissions described in the GCC Runtime Library Exception, version 4755 // 3.1, as published by the Free Software Foundation. 4756 // 4757 // You should have received a copy of the GNU General Public License and 4758 // a copy of the GCC Runtime Library Exception along with this program; 4759 // see the files COPYING3 and COPYING.RUNTIME respectively. If not, see 4760 // <http://www.gnu.org/licenses/>. 4761 4762 // ISO C Standard: 7.17 Common definitions <stddef.h> 4763 4764 // Any one of these symbols __need_* means that GNU libc 4765 // wants us just to define one data type. So don't define 4766 // the symbols that indicate this file's entire job has been done. 4767 4768 // This avoids lossage on SunOS but only if stdtypes.h comes first. 4769 // There's no way to win with the other order! Sun lossage. 4770 4771 // Sequent's header files use _PTRDIFF_T_ in some conflicting way. 4772 // Just ignore it. 4773 4774 // On VxWorks, <type/vxTypesBase.h> may have defined macros like 4775 // _TYPE_size_t which will typedef size_t. fixincludes patched the 4776 // vxTypesBase.h so that this macro is only defined if _GCC_SIZE_T is 4777 // not defined, and so that defining this macro defines _GCC_SIZE_T. 4778 // If we find that the macros are still defined at this point, we must 4779 // invoke them so that the type is defined as expected. 4780 4781 // In case nobody has defined these types, but we aren't running under 4782 // GCC 2.00, make sure that __PTRDIFF_TYPE__, __SIZE_TYPE__, and 4783 // __WCHAR_TYPE__ have reasonable values. This can happen if the 4784 // parts of GCC is compiled by an older compiler, that actually 4785 // include gstddef.h, such as collect2. 4786 4787 // Signed type of difference of two pointers. 4788 4789 // Define this type if we are doing the whole job, 4790 // or if we want this type in particular. 4791 4792 // Unsigned type of `sizeof' something. 4793 4794 // Define this type if we are doing the whole job, 4795 // or if we want this type in particular. 4796 4797 // Wide character type. 4798 // Locale-writers should change this as necessary to 4799 // be big enough to hold unique values not between 0 and 127, 4800 // and not (wchar_t) -1, for each defined multibyte character. 4801 4802 // Define this type if we are doing the whole job, 4803 // or if we want this type in particular. 4804 4805 // A null pointer constant. 4806 4807 // The Single Unix specification says that some more types are 4808 // available here. 4809 4810 type Intptr_t = X__intptr_t /* unistd.h:267:20 */ 4811 4812 type Socklen_t = X__socklen_t /* unistd.h:274:21 */ 4813 4814 // Get struct timeval and struct tm 4815 4816 // Copyright (C) 1991-2020 Free Software Foundation, Inc. 4817 // This file is part of the GNU C Library. 4818 // 4819 // The GNU C Library is free software; you can redistribute it and/or 4820 // modify it under the terms of the GNU Lesser General Public 4821 // License as published by the Free Software Foundation; either 4822 // version 2.1 of the License, or (at your option) any later version. 4823 // 4824 // The GNU C Library is distributed in the hope that it will be useful, 4825 // but WITHOUT ANY WARRANTY; without even the implied warranty of 4826 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 4827 // Lesser General Public License for more details. 4828 // 4829 // You should have received a copy of the GNU Lesser General Public 4830 // License along with the GNU C Library; if not, see 4831 // <https://www.gnu.org/licenses/>. 4832 4833 // Copyright (C) 1991-2020 Free Software Foundation, Inc. 4834 // This file is part of the GNU C Library. 4835 // 4836 // The GNU C Library is free software; you can redistribute it and/or 4837 // modify it under the terms of the GNU Lesser General Public 4838 // License as published by the Free Software Foundation; either 4839 // version 2.1 of the License, or (at your option) any later version. 4840 // 4841 // The GNU C Library is distributed in the hope that it will be useful, 4842 // but WITHOUT ANY WARRANTY; without even the implied warranty of 4843 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 4844 // Lesser General Public License for more details. 4845 // 4846 // You should have received a copy of the GNU Lesser General Public 4847 // License along with the GNU C Library; if not, see 4848 // <https://www.gnu.org/licenses/>. 4849 4850 // bits/types.h -- definitions of __*_t types underlying *_t types. 4851 // Copyright (C) 2002-2020 Free Software Foundation, Inc. 4852 // This file is part of the GNU C Library. 4853 // 4854 // The GNU C Library is free software; you can redistribute it and/or 4855 // modify it under the terms of the GNU Lesser General Public 4856 // License as published by the Free Software Foundation; either 4857 // version 2.1 of the License, or (at your option) any later version. 4858 // 4859 // The GNU C Library is distributed in the hope that it will be useful, 4860 // but WITHOUT ANY WARRANTY; without even the implied warranty of 4861 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 4862 // Lesser General Public License for more details. 4863 // 4864 // You should have received a copy of the GNU Lesser General Public 4865 // License along with the GNU C Library; if not, see 4866 // <https://www.gnu.org/licenses/>. 4867 4868 // Never include this file directly; use <sys/types.h> instead. 4869 4870 // `fd_set' type and related macros, and `select'/`pselect' declarations. 4871 // Copyright (C) 1996-2020 Free Software Foundation, Inc. 4872 // This file is part of the GNU C Library. 4873 // 4874 // The GNU C Library is free software; you can redistribute it and/or 4875 // modify it under the terms of the GNU Lesser General Public 4876 // License as published by the Free Software Foundation; either 4877 // version 2.1 of the License, or (at your option) any later version. 4878 // 4879 // The GNU C Library is distributed in the hope that it will be useful, 4880 // but WITHOUT ANY WARRANTY; without even the implied warranty of 4881 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 4882 // Lesser General Public License for more details. 4883 // 4884 // You should have received a copy of the GNU Lesser General Public 4885 // License along with the GNU C Library; if not, see 4886 // <https://www.gnu.org/licenses/>. 4887 4888 // POSIX 1003.1g: 6.2 Select from File Descriptor Sets <sys/select.h> 4889 4890 // Macros for converting between `struct timeval' and `struct timespec'. 4891 4892 // Structure crudely representing a timezone. 4893 // This is obsolete and should never be used. 4894 type Timezone = struct { 4895 Ftz_minuteswest int32 4896 Ftz_dsttime int32 4897 } /* time.h:52:1 */ 4898 4899 // Type of the second argument to `getitimer' and 4900 // the second and third arguments `setitimer'. 4901 type Itimerval = struct { 4902 Fit_interval struct { 4903 Ftv_sec X__time_t 4904 Ftv_usec X__suseconds_t 4905 } 4906 Fit_value struct { 4907 Ftv_sec X__time_t 4908 Ftv_usec X__suseconds_t 4909 } 4910 } /* time.h:105:1 */ 4911 4912 // Use the nicer parameter type only in GNU mode and not for C++ since the 4913 // strict C++ rules prevent the automatic promotion. 4914 type X__itimer_which_t = uint32 /* time.h:116:29 */ 4915 4916 // Convenience macros for operations on timevals. 4917 // NOTE: `timercmp' does not work for >= or <=. 4918 4919 // Copyright (C) 1991-2020 Free Software Foundation, Inc. 4920 // This file is part of the GNU C Library. 4921 // 4922 // The GNU C Library is free software; you can redistribute it and/or 4923 // modify it under the terms of the GNU Lesser General Public 4924 // License as published by the Free Software Foundation; either 4925 // version 2.1 of the License, or (at your option) any later version. 4926 // 4927 // The GNU C Library is distributed in the hope that it will be useful, 4928 // but WITHOUT ANY WARRANTY; without even the implied warranty of 4929 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 4930 // Lesser General Public License for more details. 4931 // 4932 // You should have received a copy of the GNU Lesser General Public 4933 // License along with the GNU C Library; if not, see 4934 // <https://www.gnu.org/licenses/>. 4935 4936 // ISO C99 Standard: 7.23 Date and time <time.h> 4937 4938 // Copyright (C) 1991-2020 Free Software Foundation, Inc. 4939 // This file is part of the GNU C Library. 4940 // 4941 // The GNU C Library is free software; you can redistribute it and/or 4942 // modify it under the terms of the GNU Lesser General Public 4943 // License as published by the Free Software Foundation; either 4944 // version 2.1 of the License, or (at your option) any later version. 4945 // 4946 // The GNU C Library is distributed in the hope that it will be useful, 4947 // but WITHOUT ANY WARRANTY; without even the implied warranty of 4948 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 4949 // Lesser General Public License for more details. 4950 // 4951 // You should have received a copy of the GNU Lesser General Public 4952 // License along with the GNU C Library; if not, see 4953 // <https://www.gnu.org/licenses/>. 4954 4955 // Copyright (C) 1989-2020 Free Software Foundation, Inc. 4956 // 4957 // This file is part of GCC. 4958 // 4959 // GCC is free software; you can redistribute it and/or modify 4960 // it under the terms of the GNU General Public License as published by 4961 // the Free Software Foundation; either version 3, or (at your option) 4962 // any later version. 4963 // 4964 // GCC is distributed in the hope that it will be useful, 4965 // but WITHOUT ANY WARRANTY; without even the implied warranty of 4966 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 4967 // GNU General Public License for more details. 4968 // 4969 // Under Section 7 of GPL version 3, you are granted additional 4970 // permissions described in the GCC Runtime Library Exception, version 4971 // 3.1, as published by the Free Software Foundation. 4972 // 4973 // You should have received a copy of the GNU General Public License and 4974 // a copy of the GCC Runtime Library Exception along with this program; 4975 // see the files COPYING3 and COPYING.RUNTIME respectively. If not, see 4976 // <http://www.gnu.org/licenses/>. 4977 4978 // ISO C Standard: 7.17 Common definitions <stddef.h> 4979 4980 // Any one of these symbols __need_* means that GNU libc 4981 // wants us just to define one data type. So don't define 4982 // the symbols that indicate this file's entire job has been done. 4983 4984 // This avoids lossage on SunOS but only if stdtypes.h comes first. 4985 // There's no way to win with the other order! Sun lossage. 4986 4987 // Sequent's header files use _PTRDIFF_T_ in some conflicting way. 4988 // Just ignore it. 4989 4990 // On VxWorks, <type/vxTypesBase.h> may have defined macros like 4991 // _TYPE_size_t which will typedef size_t. fixincludes patched the 4992 // vxTypesBase.h so that this macro is only defined if _GCC_SIZE_T is 4993 // not defined, and so that defining this macro defines _GCC_SIZE_T. 4994 // If we find that the macros are still defined at this point, we must 4995 // invoke them so that the type is defined as expected. 4996 4997 // In case nobody has defined these types, but we aren't running under 4998 // GCC 2.00, make sure that __PTRDIFF_TYPE__, __SIZE_TYPE__, and 4999 // __WCHAR_TYPE__ have reasonable values. This can happen if the 5000 // parts of GCC is compiled by an older compiler, that actually 5001 // include gstddef.h, such as collect2. 5002 5003 // Signed type of difference of two pointers. 5004 5005 // Define this type if we are doing the whole job, 5006 // or if we want this type in particular. 5007 5008 // Unsigned type of `sizeof' something. 5009 5010 // Define this type if we are doing the whole job, 5011 // or if we want this type in particular. 5012 5013 // Wide character type. 5014 // Locale-writers should change this as necessary to 5015 // be big enough to hold unique values not between 0 and 127, 5016 // and not (wchar_t) -1, for each defined multibyte character. 5017 5018 // Define this type if we are doing the whole job, 5019 // or if we want this type in particular. 5020 5021 // A null pointer constant. 5022 5023 // This defines CLOCKS_PER_SEC, which is the number of processor clock 5024 // ticks per second, and possibly a number of other constants. 5025 // System-dependent timing definitions. Linux version. 5026 // Copyright (C) 1996-2020 Free Software Foundation, Inc. 5027 // This file is part of the GNU C Library. 5028 // 5029 // The GNU C Library is free software; you can redistribute it and/or 5030 // modify it under the terms of the GNU Lesser General Public 5031 // License as published by the Free Software Foundation; either 5032 // version 2.1 of the License, or (at your option) any later version. 5033 // 5034 // The GNU C Library is distributed in the hope that it will be useful, 5035 // but WITHOUT ANY WARRANTY; without even the implied warranty of 5036 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 5037 // Lesser General Public License for more details. 5038 // 5039 // You should have received a copy of the GNU Lesser General Public 5040 // License along with the GNU C Library; if not, see 5041 // <https://www.gnu.org/licenses/>. 5042 5043 // Never include this file directly; use <time.h> instead. 5044 5045 // bits/types.h -- definitions of __*_t types underlying *_t types. 5046 // Copyright (C) 2002-2020 Free Software Foundation, Inc. 5047 // This file is part of the GNU C Library. 5048 // 5049 // The GNU C Library is free software; you can redistribute it and/or 5050 // modify it under the terms of the GNU Lesser General Public 5051 // License as published by the Free Software Foundation; either 5052 // version 2.1 of the License, or (at your option) any later version. 5053 // 5054 // The GNU C Library is distributed in the hope that it will be useful, 5055 // but WITHOUT ANY WARRANTY; without even the implied warranty of 5056 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 5057 // Lesser General Public License for more details. 5058 // 5059 // You should have received a copy of the GNU Lesser General Public 5060 // License along with the GNU C Library; if not, see 5061 // <https://www.gnu.org/licenses/>. 5062 5063 // Never include this file directly; use <sys/types.h> instead. 5064 5065 // ISO/IEC 9899:1999 7.23.1: Components of time 5066 // The macro `CLOCKS_PER_SEC' is an expression with type `clock_t' that is 5067 // the number per second of the value returned by the `clock' function. 5068 // CAE XSH, Issue 4, Version 2: <time.h> 5069 // The value of CLOCKS_PER_SEC is required to be 1 million on all 5070 // XSI-conformant systems. 5071 5072 // Identifier for system-wide realtime clock. 5073 // Monotonic system-wide clock. 5074 // High-resolution timer from the CPU. 5075 // Thread-specific CPU-time clock. 5076 // Monotonic system-wide clock, not adjusted for frequency scaling. 5077 // Identifier for system-wide realtime clock, updated only on ticks. 5078 // Monotonic system-wide clock, updated only on ticks. 5079 // Monotonic system-wide clock that includes time spent in suspension. 5080 // Like CLOCK_REALTIME but also wakes suspended system. 5081 // Like CLOCK_BOOTTIME but also wakes suspended system. 5082 // Like CLOCK_REALTIME but in International Atomic Time. 5083 5084 // Flag to indicate time is absolute. 5085 5086 // Copyright (C) 1995-2020 Free Software Foundation, Inc. 5087 // This file is part of the GNU C Library. 5088 // 5089 // The GNU C Library is free software; you can redistribute it and/or 5090 // modify it under the terms of the GNU Lesser General Public 5091 // License as published by the Free Software Foundation; either 5092 // version 2.1 of the License, or (at your option) any later version. 5093 // 5094 // The GNU C Library is distributed in the hope that it will be useful, 5095 // but WITHOUT ANY WARRANTY; without even the implied warranty of 5096 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 5097 // Lesser General Public License for more details. 5098 // 5099 // You should have received a copy of the GNU Lesser General Public 5100 // License along with the GNU C Library; if not, see 5101 // <https://www.gnu.org/licenses/>. 5102 5103 // bits/types.h -- definitions of __*_t types underlying *_t types. 5104 // Copyright (C) 2002-2020 Free Software Foundation, Inc. 5105 // This file is part of the GNU C Library. 5106 // 5107 // The GNU C Library is free software; you can redistribute it and/or 5108 // modify it under the terms of the GNU Lesser General Public 5109 // License as published by the Free Software Foundation; either 5110 // version 2.1 of the License, or (at your option) any later version. 5111 // 5112 // The GNU C Library is distributed in the hope that it will be useful, 5113 // but WITHOUT ANY WARRANTY; without even the implied warranty of 5114 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 5115 // Lesser General Public License for more details. 5116 // 5117 // You should have received a copy of the GNU Lesser General Public 5118 // License along with the GNU C Library; if not, see 5119 // <https://www.gnu.org/licenses/>. 5120 5121 // Never include this file directly; use <sys/types.h> instead. 5122 5123 // These definitions from linux/timex.h as of 3.18. 5124 5125 type Timex = struct { 5126 Fmodes uint32 5127 F__ccgo_pad1 [4]byte 5128 Foffset X__syscall_slong_t 5129 Ffreq X__syscall_slong_t 5130 Fmaxerror X__syscall_slong_t 5131 Festerror X__syscall_slong_t 5132 Fstatus int32 5133 F__ccgo_pad2 [4]byte 5134 Fconstant X__syscall_slong_t 5135 Fprecision X__syscall_slong_t 5136 Ftolerance X__syscall_slong_t 5137 Ftime struct { 5138 Ftv_sec X__time_t 5139 Ftv_usec X__suseconds_t 5140 } 5141 Ftick X__syscall_slong_t 5142 Fppsfreq X__syscall_slong_t 5143 Fjitter X__syscall_slong_t 5144 Fshift int32 5145 F__ccgo_pad3 [4]byte 5146 Fstabil X__syscall_slong_t 5147 Fjitcnt X__syscall_slong_t 5148 Fcalcnt X__syscall_slong_t 5149 Ferrcnt X__syscall_slong_t 5150 Fstbcnt X__syscall_slong_t 5151 Ftai int32 5152 __164 uint32 /* int : 32 */ 5153 __168 uint32 /* int : 32 */ 5154 __172 uint32 /* int : 32 */ 5155 __176 uint32 /* int : 32 */ 5156 __180 uint32 /* int : 32 */ 5157 __184 uint32 /* int : 32 */ 5158 __188 uint32 /* int : 32 */ 5159 __192 uint32 /* int : 32 */ 5160 __196 uint32 /* int : 32 */ 5161 __200 uint32 /* int : 32 */ 5162 __204 uint32 /* int : 32 */ 5163 } /* timex.h:26:1 */ 5164 5165 // Many of the typedefs and structs whose official home is this header 5166 // may also need to be defined by other headers. 5167 5168 // bits/types.h -- definitions of __*_t types underlying *_t types. 5169 // Copyright (C) 2002-2020 Free Software Foundation, Inc. 5170 // This file is part of the GNU C Library. 5171 // 5172 // The GNU C Library is free software; you can redistribute it and/or 5173 // modify it under the terms of the GNU Lesser General Public 5174 // License as published by the Free Software Foundation; either 5175 // version 2.1 of the License, or (at your option) any later version. 5176 // 5177 // The GNU C Library is distributed in the hope that it will be useful, 5178 // but WITHOUT ANY WARRANTY; without even the implied warranty of 5179 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 5180 // Lesser General Public License for more details. 5181 // 5182 // You should have received a copy of the GNU Lesser General Public 5183 // License along with the GNU C Library; if not, see 5184 // <https://www.gnu.org/licenses/>. 5185 5186 // Never include this file directly; use <sys/types.h> instead. 5187 5188 // ISO C `broken-down time' structure. 5189 type Tm = struct { 5190 Ftm_sec int32 5191 Ftm_min int32 5192 Ftm_hour int32 5193 Ftm_mday int32 5194 Ftm_mon int32 5195 Ftm_year int32 5196 Ftm_wday int32 5197 Ftm_yday int32 5198 Ftm_isdst int32 5199 F__ccgo_pad1 [4]byte 5200 Ftm_gmtoff int64 5201 Ftm_zone uintptr 5202 } /* struct_tm.h:7:1 */ 5203 5204 // NB: Include guard matches what <linux/time.h> uses. 5205 5206 // bits/types.h -- definitions of __*_t types underlying *_t types. 5207 // Copyright (C) 2002-2020 Free Software Foundation, Inc. 5208 // This file is part of the GNU C Library. 5209 // 5210 // The GNU C Library is free software; you can redistribute it and/or 5211 // modify it under the terms of the GNU Lesser General Public 5212 // License as published by the Free Software Foundation; either 5213 // version 2.1 of the License, or (at your option) any later version. 5214 // 5215 // The GNU C Library is distributed in the hope that it will be useful, 5216 // but WITHOUT ANY WARRANTY; without even the implied warranty of 5217 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 5218 // Lesser General Public License for more details. 5219 // 5220 // You should have received a copy of the GNU Lesser General Public 5221 // License along with the GNU C Library; if not, see 5222 // <https://www.gnu.org/licenses/>. 5223 5224 // Never include this file directly; use <sys/types.h> instead. 5225 5226 // NB: Include guard matches what <linux/time.h> uses. 5227 5228 // POSIX.1b structure for timer start values and intervals. 5229 type Itimerspec = struct { 5230 Fit_interval struct { 5231 Ftv_sec X__time_t 5232 Ftv_nsec X__syscall_slong_t 5233 } 5234 Fit_value struct { 5235 Ftv_sec X__time_t 5236 Ftv_nsec X__syscall_slong_t 5237 } 5238 } /* struct_itimerspec.h:8:1 */ 5239 5240 // define X_GETTIMEOFDAY macro, a portable gettimeofday() 5241 5242 // use POSIX name for signal 5243 5244 // Copyright 1997 Metro Link Incorporated 5245 // 5246 // All Rights Reserved 5247 // 5248 // Permission to use, copy, modify, distribute, and sell this software and its 5249 // documentation for any purpose is hereby granted without fee, provided that 5250 // the above copyright notice appear in all copies and that both that 5251 // copyright notice and this permission notice appear in supporting 5252 // documentation, and that the names of the above listed copyright holder(s) 5253 // not be used in advertising or publicity pertaining to distribution of 5254 // the software without specific, written prior permission. The above listed 5255 // copyright holder(s) make(s) no representations about the suitability of 5256 // this software for any purpose. It is provided "as is" without express or 5257 // implied warranty. 5258 // 5259 // THE ABOVE LISTED COPYRIGHT HOLDER(S) DISCLAIM(S) ALL WARRANTIES WITH REGARD 5260 // TO THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY 5261 // AND FITNESS, IN NO EVENT SHALL THE ABOVE LISTED COPYRIGHT HOLDER(S) BE 5262 // LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY 5263 // DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER 5264 // IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING 5265 // OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. 5266 5267 // Determine the machine's byte order. 5268 5269 // See if it is set in the imake config first 5270 5271 // Copyright (C) 1992-2020 Free Software Foundation, Inc. 5272 // This file is part of the GNU C Library. 5273 // 5274 // The GNU C Library is free software; you can redistribute it and/or 5275 // modify it under the terms of the GNU Lesser General Public 5276 // License as published by the Free Software Foundation; either 5277 // version 2.1 of the License, or (at your option) any later version. 5278 // 5279 // The GNU C Library is distributed in the hope that it will be useful, 5280 // but WITHOUT ANY WARRANTY; without even the implied warranty of 5281 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 5282 // Lesser General Public License for more details. 5283 // 5284 // You should have received a copy of the GNU Lesser General Public 5285 // License along with the GNU C Library; if not, see 5286 // <https://www.gnu.org/licenses/>. 5287 5288 // 'endian.h' might have been included before 'Xarch.h' 5289 5290 // Definitions for the X window system likely to be used by applications 5291 5292 //********************************************************** 5293 // 5294 // Copyright 1987, 1998 The Open Group 5295 // 5296 // Permission to use, copy, modify, distribute, and sell this software and its 5297 // documentation for any purpose is hereby granted without fee, provided that 5298 // the above copyright notice appear in all copies and that both that 5299 // copyright notice and this permission notice appear in supporting 5300 // documentation. 5301 // 5302 // The above copyright notice and this permission notice shall be included in 5303 // all copies or substantial portions of the Software. 5304 // 5305 // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 5306 // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 5307 // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 5308 // OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN 5309 // AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN 5310 // CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 5311 // 5312 // Except as contained in this notice, the name of The Open Group shall not be 5313 // used in advertising or otherwise to promote the sale, use or other dealings 5314 // in this Software without prior written authorization from The Open Group. 5315 // 5316 // 5317 // Copyright 1987 by Digital Equipment Corporation, Maynard, Massachusetts. 5318 // 5319 // All Rights Reserved 5320 // 5321 // Permission to use, copy, modify, and distribute this software and its 5322 // documentation for any purpose and without fee is hereby granted, 5323 // provided that the above copyright notice appear in all copies and that 5324 // both that copyright notice and this permission notice appear in 5325 // supporting documentation, and that the name of Digital not be 5326 // used in advertising or publicity pertaining to distribution of the 5327 // software without specific, written prior permission. 5328 // 5329 // DIGITAL DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING 5330 // ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL 5331 // DIGITAL BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR 5332 // ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, 5333 // WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, 5334 // ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS 5335 // SOFTWARE. 5336 // 5337 // ***************************************************************** 5338 5339 // Resources 5340 5341 // _XSERVER64 must ONLY be defined when compiling X server sources on 5342 // systems where unsigned long is not 32 bits, must NOT be used in 5343 // client or library code. 5344 type XID = uint64 /* X.h:66:23 */ 5345 type Mask = uint64 /* X.h:70:23 */ 5346 type Atom = uint64 /* X.h:74:23 */ // Also in Xdefs.h 5347 type VisualID = uint64 /* X.h:76:23 */ 5348 type Time = uint64 /* X.h:77:23 */ 5349 5350 type Window = XID /* X.h:96:13 */ 5351 type Drawable = XID /* X.h:97:13 */ 5352 type Font = XID /* X.h:100:13 */ 5353 type Pixmap = XID /* X.h:102:13 */ 5354 type Cursor = XID /* X.h:103:13 */ 5355 type Colormap = XID /* X.h:104:13 */ 5356 type GContext = XID /* X.h:105:13 */ 5357 type KeySym = XID /* X.h:106:13 */ 5358 5359 type KeyCode = uint8 /* X.h:108:23 */ 5360 5361 // **************************************************************** 5362 // 5363 // RESERVED RESOURCE AND CONSTANT DEFINITIONS 5364 // 5365 5366 // **************************************************************** 5367 // 5368 // EVENT DEFINITIONS 5369 // 5370 5371 // Input Event Masks. Used as event-mask window attribute and as arguments 5372 // to Grab requests. Not to be confused with event names. 5373 5374 // Event names. Used in "type" field in XEvent structures. Not to be 5375 // confused with event masks above. They start from 2 because 0 and 1 5376 // are reserved in the protocol for errors and replies. 5377 5378 // Key masks. Used as modifiers to GrabButton and GrabKey, results of QueryPointer, 5379 // state in various key-, mouse-, and button-related events. 5380 5381 // modifier names. Used to build a SetModifierMapping request or 5382 // to read a GetModifierMapping request. These correspond to the 5383 // masks defined above. 5384 5385 // button masks. Used in same manner as Key masks above. Not to be confused 5386 // with button names below. 5387 5388 // button names. Used as arguments to GrabButton and as detail in ButtonPress 5389 // and ButtonRelease events. Not to be confused with button masks above. 5390 // Note that 0 is already defined above as "AnyButton". 5391 5392 // Notify modes 5393 5394 // Notify detail 5395 5396 // Visibility notify 5397 5398 // Circulation request 5399 5400 // protocol families 5401 5402 // authentication families not tied to a specific protocol 5403 5404 // Property notification 5405 5406 // Color Map notification 5407 5408 // GrabPointer, GrabButton, GrabKeyboard, GrabKey Modes 5409 5410 // GrabPointer, GrabKeyboard reply status 5411 5412 // AllowEvents modes 5413 5414 // Used in SetInputFocus, GetInputFocus 5415 5416 // **************************************************************** 5417 // 5418 // ERROR CODES 5419 // 5420 5421 // **************************************************************** 5422 // 5423 // WINDOW DEFINITIONS 5424 // 5425 5426 // Window classes used by CreateWindow 5427 // Note that CopyFromParent is already defined as 0 above 5428 5429 // Window attributes for CreateWindow and ChangeWindowAttributes 5430 5431 // ConfigureWindow structure 5432 5433 // Bit Gravity 5434 5435 // Window gravity + bit gravity above 5436 5437 // Used in CreateWindow for backing-store hint 5438 5439 // Used in GetWindowAttributes reply 5440 5441 // Used in ChangeSaveSet 5442 5443 // Used in ChangeCloseDownMode 5444 5445 // Window stacking method (in configureWindow) 5446 5447 // Circulation direction 5448 5449 // Property modes 5450 5451 // **************************************************************** 5452 // 5453 // GRAPHICS DEFINITIONS 5454 // 5455 5456 // graphics functions, as in GC.alu 5457 5458 // LineStyle 5459 5460 // capStyle 5461 5462 // joinStyle 5463 5464 // fillStyle 5465 5466 // fillRule 5467 5468 // subwindow mode 5469 5470 // SetClipRectangles ordering 5471 5472 // CoordinateMode for drawing routines 5473 5474 // Polygon shapes 5475 5476 // Arc modes for PolyFillArc 5477 5478 // GC components: masks used in CreateGC, CopyGC, ChangeGC, OR'ed into 5479 // GC.stateChanges 5480 5481 // **************************************************************** 5482 // 5483 // FONTS 5484 // 5485 5486 // used in QueryFont -- draw direction 5487 5488 // **************************************************************** 5489 // 5490 // IMAGING 5491 // 5492 5493 // ImageFormat -- PutImage, GetImage 5494 5495 // **************************************************************** 5496 // 5497 // COLOR MAP STUFF 5498 // 5499 5500 // For CreateColormap 5501 5502 // Flags used in StoreNamedColor, StoreColors 5503 5504 // **************************************************************** 5505 // 5506 // CURSOR STUFF 5507 // 5508 5509 // QueryBestSize Class 5510 5511 // **************************************************************** 5512 // 5513 // KEYBOARD/POINTER STUFF 5514 // 5515 5516 // masks for ChangeKeyboardControl 5517 5518 // **************************************************************** 5519 // 5520 // SCREEN SAVER STUFF 5521 // 5522 5523 // for ForceScreenSaver 5524 5525 // **************************************************************** 5526 // 5527 // HOSTS AND CONNECTIONS 5528 // 5529 5530 // for ChangeHosts 5531 5532 // for ChangeAccessControl 5533 5534 // Display classes used in opening the connection 5535 // Note that the statically allocated ones are even numbered and the 5536 // dynamically changeable ones are odd numbered 5537 5538 // Byte order used in imageByteOrder and bitmapBitOrder 5539 5540 //********************************************************** 5541 // 5542 // Copyright 1987, 1998 The Open Group 5543 // 5544 // Permission to use, copy, modify, distribute, and sell this software and its 5545 // documentation for any purpose is hereby granted without fee, provided that 5546 // the above copyright notice appear in all copies and that both that 5547 // copyright notice and this permission notice appear in supporting 5548 // documentation. 5549 // 5550 // The above copyright notice and this permission notice shall be included in 5551 // all copies or substantial portions of the Software. 5552 // 5553 // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 5554 // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 5555 // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 5556 // OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN 5557 // AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN 5558 // CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 5559 // 5560 // Except as contained in this notice, the name of The Open Group shall not be 5561 // used in advertising or otherwise to promote the sale, use or other dealings 5562 // in this Software without prior written authorization from The Open Group. 5563 // 5564 // 5565 // Copyright 1987 by Digital Equipment Corporation, Maynard, Massachusetts. 5566 // 5567 // All Rights Reserved 5568 // 5569 // Permission to use, copy, modify, and distribute this software and its 5570 // documentation for any purpose and without fee is hereby granted, 5571 // provided that the above copyright notice appear in all copies and that 5572 // both that copyright notice and this permission notice appear in 5573 // supporting documentation, and that the name of Digital not be 5574 // used in advertising or publicity pertaining to distribution of the 5575 // software without specific, written prior permission. 5576 // 5577 // DIGITAL DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING 5578 // ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL 5579 // DIGITAL BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR 5580 // ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, 5581 // WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, 5582 // ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS 5583 // SOFTWARE. 5584 // 5585 // ***************************************************************** 5586 // Xmd.h: MACHINE DEPENDENT DECLARATIONS. 5587 5588 // Special per-machine configuration flags. 5589 5590 // Definition of macro used to set constants for size of network structures; 5591 // machines with preprocessors that can't handle all of the sz_ symbols 5592 // can define this macro to be sizeof(x) if and only if their compiler doesn't 5593 // pad out structures (esp. the xTextElt structure which contains only two 5594 // one-byte fields). Network structures should always define sz_symbols. 5595 // 5596 // The sz_ prefix is used instead of something more descriptive so that the 5597 // symbols are no more than 32 characters long (which causes problems for some 5598 // compilers and preprocessors). 5599 // 5600 // The extra indirection is to get macro arguments to expand correctly before 5601 // the concatenation, rather than afterward. 5602 5603 // Bitfield suffixes for the protocol structure elements, if you 5604 // need them. Note that bitfields are not guaranteed to be signed 5605 // (or even unsigned) according to ANSI C. 5606 type INT64 = int64 /* Xmd.h:97:14 */ 5607 type INT32 = int32 /* Xmd.h:98:13 */ 5608 type INT16 = int16 /* Xmd.h:102:15 */ 5609 5610 type INT8 = int8 /* Xmd.h:104:24 */ 5611 5612 type CARD64 = uint64 /* Xmd.h:107:23 */ 5613 type CARD32 = uint32 /* Xmd.h:108:22 */ 5614 type CARD16 = uint16 /* Xmd.h:113:24 */ 5615 type CARD8 = uint8 /* Xmd.h:114:24 */ 5616 5617 type BITS32 = CARD32 /* Xmd.h:116:17 */ 5618 type BITS16 = CARD16 /* Xmd.h:117:17 */ 5619 5620 type BYTE = CARD8 /* Xmd.h:119:16 */ 5621 type BOOL = CARD8 /* Xmd.h:120:16 */ 5622 5623 // was definitions for sign-extending bitfields on architectures without 5624 // native types smaller than 64-bit, now just backwards compatibility 5625 5626 // this version should leave result of type (t *), but that should only be 5627 // used when not in MUSTCOPY 5628 5629 // Copyright 1989 Network Computing Devices, Inc., Mountain View, California. 5630 // 5631 // Permission to use, copy, modify, and distribute this software and its 5632 // documentation for any purpose and without fee is hereby granted, provided 5633 // that the above copyright notice appear in all copies and that both that 5634 // copyright notice and this permission notice appear in supporting 5635 // documentation, and that the name of N.C.D. not be used in advertising or 5636 // publicity pertaining to distribution of the software without specific, 5637 // written prior permission. N.C.D. makes no representations about the 5638 // suitability of this software for any purpose. It is provided "as is" 5639 // without express or implied warranty. 5640 // 5641 5642 //********************************************************** 5643 // 5644 // Copyright 1987, 1998 The Open Group 5645 // 5646 // Permission to use, copy, modify, distribute, and sell this software and its 5647 // documentation for any purpose is hereby granted without fee, provided that 5648 // the above copyright notice appear in all copies and that both that 5649 // copyright notice and this permission notice appear in supporting 5650 // documentation. 5651 // 5652 // The above copyright notice and this permission notice shall be included in 5653 // all copies or substantial portions of the Software. 5654 // 5655 // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 5656 // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 5657 // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 5658 // OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN 5659 // AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN 5660 // CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 5661 // 5662 // Except as contained in this notice, the name of The Open Group shall not be 5663 // used in advertising or otherwise to promote the sale, use or other dealings 5664 // in this Software without prior written authorization from The Open Group. 5665 // 5666 // 5667 // Copyright 1987 by Digital Equipment Corporation, Maynard, Massachusetts. 5668 // 5669 // All Rights Reserved 5670 // 5671 // Permission to use, copy, modify, and distribute this software and its 5672 // documentation for any purpose and without fee is hereby granted, 5673 // provided that the above copyright notice appear in all copies and that 5674 // both that copyright notice and this permission notice appear in 5675 // supporting documentation, and that the name of Digital not be 5676 // used in advertising or publicity pertaining to distribution of the 5677 // software without specific, written prior permission. 5678 // 5679 // DIGITAL DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING 5680 // ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL 5681 // DIGITAL BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR 5682 // ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, 5683 // WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, 5684 // ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS 5685 // SOFTWARE. 5686 // 5687 // ***************************************************************** 5688 5689 // 5690 // 5691 // Copyright 1989, 1991, 1998 The Open Group 5692 // 5693 // Permission to use, copy, modify, distribute, and sell this software and its 5694 // documentation for any purpose is hereby granted without fee, provided that 5695 // the above copyright notice appear in all copies and that both that 5696 // copyright notice and this permission notice appear in supporting 5697 // documentation. 5698 // 5699 // The above copyright notice and this permission notice shall be included in 5700 // all copies or substantial portions of the Software. 5701 // 5702 // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 5703 // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 5704 // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 5705 // OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN 5706 // AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN 5707 // CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 5708 // 5709 // Except as contained in this notice, the name of The Open Group shall not be 5710 // used in advertising or otherwise to promote the sale, use or other dealings 5711 // in this Software without prior written authorization from The Open Group. 5712 // * 5713 // 5714 5715 // Definitions to make function prototypes manageable 5716 5717 // Function prototype configuration (see configure for more info) 5718 5719 // http://clang.llvm.org/docs/LanguageExtensions.html#has-attribute 5720 5721 // Added in X11R6.9, so available in any version of modular xproto 5722 5723 // Added in X11R6.9, so available in any version of modular xproto 5724 5725 // Branch prediction hints for individual conditionals 5726 // requires xproto >= 7.0.9 5727 5728 // Bulk branch prediction hints via marking error path functions as "cold" 5729 // requires xproto >= 7.0.25 5730 5731 // Added in X11R6.9, so available in any version of modular xproto 5732 5733 // requires xproto >= 7.0.30 5734 5735 // requires xproto >= 7.0.17 5736 5737 // Added in X11R6.9, so available in any version of modular xproto 5738 5739 // requires xproto >= 7.0.22 - since this uses either gcc or C99 variable 5740 // argument macros, must be only used inside #ifdef _X_NONNULL guards, as 5741 // many legacy X clients are compiled in C89 mode still. 5742 5743 // requires xproto >= 7.0.22 5744 5745 // C99 keyword "inline" or equivalent extensions in pre-C99 compilers 5746 // requires xproto >= 7.0.9 5747 // (introduced in 7.0.8 but didn't support all compilers until 7.0.9) 5748 5749 // C99 keyword "restrict" or equivalent extensions in pre-C99 compilers 5750 // requires xproto >= 7.0.21 5751 5752 // requires xproto >= 7.0.30 5753 5754 // IANA has assigned FF0X:0:0:0:0:0:0:12B as the permanently assigned 5755 // multicast addresses for XDMCP, where X in the prefix may be replaced 5756 // by any valid scope identifier, such as 1 for Node-Local, 2 for Link-Local, 5757 // 5 for Site-Local, and so on. We set the default here to the Link-Local 5758 // version to most closely match the old IPv4 subnet broadcast behavior. 5759 // Both xdm and X -query allow specifying a different address if a different 5760 // scope is defined. 5761 5762 type XdmOpCode = uint32 /* Xdmcp.h:50:3 */ 5763 5764 type Xdmcp_states = uint32 /* Xdmcp.h:62:3 */ 5765 5766 type CARD8Ptr = uintptr /* Xdmcp.h:76:15 */ 5767 type CARD16Ptr = uintptr /* Xdmcp.h:77:16 */ 5768 type CARD32Ptr = uintptr /* Xdmcp.h:78:16 */ 5769 5770 type X_ARRAY8 = struct { 5771 Flength CARD16 5772 F__ccgo_pad1 [6]byte 5773 Fdata CARD8Ptr 5774 } /* Xdmcp.h:80:9 */ 5775 5776 type ARRAY8 = X_ARRAY8 /* Xdmcp.h:83:3 */ 5777 type ARRAY8Ptr = uintptr /* Xdmcp.h:83:11 */ 5778 5779 type X_ARRAY16 = struct { 5780 Flength CARD8 5781 F__ccgo_pad1 [7]byte 5782 Fdata CARD16Ptr 5783 } /* Xdmcp.h:85:9 */ 5784 5785 type ARRAY16 = X_ARRAY16 /* Xdmcp.h:88:3 */ 5786 type ARRAY16Ptr = uintptr /* Xdmcp.h:88:12 */ 5787 5788 type X_ARRAY32 = struct { 5789 Flength CARD8 5790 F__ccgo_pad1 [7]byte 5791 Fdata CARD32Ptr 5792 } /* Xdmcp.h:90:9 */ 5793 5794 type ARRAY32 = X_ARRAY32 /* Xdmcp.h:93:3 */ 5795 type ARRAY32Ptr = uintptr /* Xdmcp.h:93:12 */ 5796 5797 type X_ARRAYofARRAY8 = struct { 5798 Flength CARD8 5799 F__ccgo_pad1 [7]byte 5800 Fdata ARRAY8Ptr 5801 } /* Xdmcp.h:95:9 */ 5802 5803 type ARRAYofARRAY8 = X_ARRAYofARRAY8 /* Xdmcp.h:98:3 */ 5804 type ARRAYofARRAY8Ptr = uintptr /* Xdmcp.h:98:18 */ 5805 5806 type X_XdmcpHeader = struct { 5807 Fversion CARD16 5808 Fopcode CARD16 5809 Flength CARD16 5810 } /* Xdmcp.h:100:9 */ 5811 5812 type XdmcpHeader = X_XdmcpHeader /* Xdmcp.h:102:3 */ 5813 type XdmcpHeaderPtr = uintptr /* Xdmcp.h:102:16 */ 5814 5815 type X_XdmcpBuffer = struct { 5816 Fdata uintptr 5817 Fsize int32 5818 Fpointer int32 5819 Fcount int32 5820 F__ccgo_pad1 [4]byte 5821 } /* Xdmcp.h:104:9 */ 5822 5823 type XdmcpBuffer = X_XdmcpBuffer /* Xdmcp.h:109:3 */ 5824 type XdmcpBufferPtr = uintptr /* Xdmcp.h:109:16 */ 5825 5826 type X_XdmAuthKey = struct{ Fdata [8]BYTE } /* Xdmcp.h:111:9 */ 5827 5828 type XdmAuthKeyRec = X_XdmAuthKey /* Xdmcp.h:113:3 */ 5829 type XdmAuthKeyPtr = uintptr /* Xdmcp.h:113:18 */ 5830 5831 // implementation-independent network address structure. 5832 // Equiv to sockaddr* for sockets. 5833 5834 type XdmcpNetaddr = uintptr /* Xdmcp.h:119:14 */ 5835 5836 // Copyright (C) 1997-2020 Free Software Foundation, Inc. 5837 // This file is part of the GNU C Library. 5838 // 5839 // The GNU C Library is free software; you can redistribute it and/or 5840 // modify it under the terms of the GNU Lesser General Public 5841 // License as published by the Free Software Foundation; either 5842 // version 2.1 of the License, or (at your option) any later version. 5843 // 5844 // The GNU C Library is distributed in the hope that it will be useful, 5845 // but WITHOUT ANY WARRANTY; without even the implied warranty of 5846 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 5847 // Lesser General Public License for more details. 5848 // 5849 // You should have received a copy of the GNU Lesser General Public 5850 // License along with the GNU C Library; if not, see 5851 // <https://www.gnu.org/licenses/>. 5852 5853 // ISO C99: 7.18 Integer types <stdint.h> 5854 5855 // Handle feature test macros at the start of a header. 5856 // Copyright (C) 2016-2020 Free Software Foundation, Inc. 5857 // This file is part of the GNU C Library. 5858 // 5859 // The GNU C Library is free software; you can redistribute it and/or 5860 // modify it under the terms of the GNU Lesser General Public 5861 // License as published by the Free Software Foundation; either 5862 // version 2.1 of the License, or (at your option) any later version. 5863 // 5864 // The GNU C Library is distributed in the hope that it will be useful, 5865 // but WITHOUT ANY WARRANTY; without even the implied warranty of 5866 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 5867 // Lesser General Public License for more details. 5868 // 5869 // You should have received a copy of the GNU Lesser General Public 5870 // License along with the GNU C Library; if not, see 5871 // <https://www.gnu.org/licenses/>. 5872 5873 // This header is internal to glibc and should not be included outside 5874 // of glibc headers. Headers including it must define 5875 // __GLIBC_INTERNAL_STARTING_HEADER_IMPLEMENTATION first. This header 5876 // cannot have multiple include guards because ISO C feature test 5877 // macros depend on the definition of the macro when an affected 5878 // header is included, not when the first system header is 5879 // included. 5880 5881 // Copyright (C) 1991-2020 Free Software Foundation, Inc. 5882 // This file is part of the GNU C Library. 5883 // 5884 // The GNU C Library is free software; you can redistribute it and/or 5885 // modify it under the terms of the GNU Lesser General Public 5886 // License as published by the Free Software Foundation; either 5887 // version 2.1 of the License, or (at your option) any later version. 5888 // 5889 // The GNU C Library is distributed in the hope that it will be useful, 5890 // but WITHOUT ANY WARRANTY; without even the implied warranty of 5891 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 5892 // Lesser General Public License for more details. 5893 // 5894 // You should have received a copy of the GNU Lesser General Public 5895 // License along with the GNU C Library; if not, see 5896 // <https://www.gnu.org/licenses/>. 5897 5898 // ISO/IEC TR 24731-2:2010 defines the __STDC_WANT_LIB_EXT2__ 5899 // macro. 5900 5901 // ISO/IEC TS 18661-1:2014 defines the __STDC_WANT_IEC_60559_BFP_EXT__ 5902 // macro. Most but not all symbols enabled by that macro in TS 5903 // 18661-1 are enabled unconditionally in C2X; the symbols in Annex F 5904 // still require that macro in C2X. 5905 5906 // ISO/IEC TS 18661-4:2015 defines the 5907 // __STDC_WANT_IEC_60559_FUNCS_EXT__ macro. Other than the reduction 5908 // functions, the symbols from this TS are enabled unconditionally in 5909 // C2X. 5910 5911 // ISO/IEC TS 18661-3:2015 defines the 5912 // __STDC_WANT_IEC_60559_TYPES_EXT__ macro. 5913 // bits/types.h -- definitions of __*_t types underlying *_t types. 5914 // Copyright (C) 2002-2020 Free Software Foundation, Inc. 5915 // This file is part of the GNU C Library. 5916 // 5917 // The GNU C Library is free software; you can redistribute it and/or 5918 // modify it under the terms of the GNU Lesser General Public 5919 // License as published by the Free Software Foundation; either 5920 // version 2.1 of the License, or (at your option) any later version. 5921 // 5922 // The GNU C Library is distributed in the hope that it will be useful, 5923 // but WITHOUT ANY WARRANTY; without even the implied warranty of 5924 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 5925 // Lesser General Public License for more details. 5926 // 5927 // You should have received a copy of the GNU Lesser General Public 5928 // License along with the GNU C Library; if not, see 5929 // <https://www.gnu.org/licenses/>. 5930 5931 // Never include this file directly; use <sys/types.h> instead. 5932 5933 // wchar_t type related definitions. 5934 // Copyright (C) 2000-2020 Free Software Foundation, Inc. 5935 // This file is part of the GNU C Library. 5936 // 5937 // The GNU C Library is free software; you can redistribute it and/or 5938 // modify it under the terms of the GNU Lesser General Public 5939 // License as published by the Free Software Foundation; either 5940 // version 2.1 of the License, or (at your option) any later version. 5941 // 5942 // The GNU C Library is distributed in the hope that it will be useful, 5943 // but WITHOUT ANY WARRANTY; without even the implied warranty of 5944 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 5945 // Lesser General Public License for more details. 5946 // 5947 // You should have received a copy of the GNU Lesser General Public 5948 // License along with the GNU C Library; if not, see 5949 // <https://www.gnu.org/licenses/>. 5950 5951 // The fallback definitions, for when __WCHAR_MAX__ or __WCHAR_MIN__ 5952 // are not defined, give the right value and type as long as both int 5953 // and wchar_t are 32-bit types. Adding L'\0' to a constant value 5954 // ensures that the type is correct; it is necessary to use (L'\0' + 5955 // 0) rather than just L'\0' so that the type in C++ is the promoted 5956 // version of wchar_t rather than the distinct wchar_t type itself. 5957 // Because wchar_t in preprocessor #if expressions is treated as 5958 // intmax_t or uintmax_t, the expression (L'\0' - 1) would have the 5959 // wrong value for WCHAR_MAX in such expressions and so cannot be used 5960 // to define __WCHAR_MAX in the unsigned case. 5961 5962 // Determine the wordsize from the preprocessor defines. 5963 // 5964 // Copyright (C) 2016-2020 Free Software Foundation, Inc. 5965 // This file is part of the GNU C Library. 5966 // 5967 // The GNU C Library is free software; you can redistribute it and/or 5968 // modify it under the terms of the GNU Lesser General Public 5969 // License as published by the Free Software Foundation; either 5970 // version 2.1 of the License, or (at your option) any later version. 5971 // 5972 // The GNU C Library is distributed in the hope that it will be useful, 5973 // but WITHOUT ANY WARRANTY; without even the implied warranty of 5974 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 5975 // Lesser General Public License for more details. 5976 // 5977 // You should have received a copy of the GNU Lesser General Public 5978 // License along with the GNU C Library; if not, see 5979 // <https://www.gnu.org/licenses/>. 5980 5981 // Exact integral types. 5982 5983 // Signed. 5984 // Define intN_t types. 5985 // Copyright (C) 2017-2020 Free Software Foundation, Inc. 5986 // This file is part of the GNU C Library. 5987 // 5988 // The GNU C Library is free software; you can redistribute it and/or 5989 // modify it under the terms of the GNU Lesser General Public 5990 // License as published by the Free Software Foundation; either 5991 // version 2.1 of the License, or (at your option) any later version. 5992 // 5993 // The GNU C Library is distributed in the hope that it will be useful, 5994 // but WITHOUT ANY WARRANTY; without even the implied warranty of 5995 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 5996 // Lesser General Public License for more details. 5997 // 5998 // You should have received a copy of the GNU Lesser General Public 5999 // License along with the GNU C Library; if not, see 6000 // <https://www.gnu.org/licenses/>. 6001 6002 // Unsigned. 6003 // Define uintN_t types. 6004 // Copyright (C) 2017-2020 Free Software Foundation, Inc. 6005 // This file is part of the GNU C Library. 6006 // 6007 // The GNU C Library is free software; you can redistribute it and/or 6008 // modify it under the terms of the GNU Lesser General Public 6009 // License as published by the Free Software Foundation; either 6010 // version 2.1 of the License, or (at your option) any later version. 6011 // 6012 // The GNU C Library is distributed in the hope that it will be useful, 6013 // but WITHOUT ANY WARRANTY; without even the implied warranty of 6014 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 6015 // Lesser General Public License for more details. 6016 // 6017 // You should have received a copy of the GNU Lesser General Public 6018 // License along with the GNU C Library; if not, see 6019 // <https://www.gnu.org/licenses/>. 6020 6021 // bits/types.h -- definitions of __*_t types underlying *_t types. 6022 // Copyright (C) 2002-2020 Free Software Foundation, Inc. 6023 // This file is part of the GNU C Library. 6024 // 6025 // The GNU C Library is free software; you can redistribute it and/or 6026 // modify it under the terms of the GNU Lesser General Public 6027 // License as published by the Free Software Foundation; either 6028 // version 2.1 of the License, or (at your option) any later version. 6029 // 6030 // The GNU C Library is distributed in the hope that it will be useful, 6031 // but WITHOUT ANY WARRANTY; without even the implied warranty of 6032 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 6033 // Lesser General Public License for more details. 6034 // 6035 // You should have received a copy of the GNU Lesser General Public 6036 // License along with the GNU C Library; if not, see 6037 // <https://www.gnu.org/licenses/>. 6038 6039 // Never include this file directly; use <sys/types.h> instead. 6040 6041 type Uint8_t = X__uint8_t /* stdint-uintn.h:24:19 */ 6042 type Uint16_t = X__uint16_t /* stdint-uintn.h:25:20 */ 6043 type Uint32_t = X__uint32_t /* stdint-uintn.h:26:20 */ 6044 type Uint64_t = X__uint64_t /* stdint-uintn.h:27:20 */ 6045 6046 // Small types. 6047 6048 // Signed. 6049 type Int_least8_t = X__int_least8_t /* stdint.h:43:24 */ 6050 type Int_least16_t = X__int_least16_t /* stdint.h:44:25 */ 6051 type Int_least32_t = X__int_least32_t /* stdint.h:45:25 */ 6052 type Int_least64_t = X__int_least64_t /* stdint.h:46:25 */ 6053 6054 // Unsigned. 6055 type Uint_least8_t = X__uint_least8_t /* stdint.h:49:25 */ 6056 type Uint_least16_t = X__uint_least16_t /* stdint.h:50:26 */ 6057 type Uint_least32_t = X__uint_least32_t /* stdint.h:51:26 */ 6058 type Uint_least64_t = X__uint_least64_t /* stdint.h:52:26 */ 6059 6060 // Fast types. 6061 6062 // Signed. 6063 type Int_fast8_t = int8 /* stdint.h:58:22 */ 6064 type Int_fast16_t = int64 /* stdint.h:60:19 */ 6065 type Int_fast32_t = int64 /* stdint.h:61:19 */ 6066 type Int_fast64_t = int64 /* stdint.h:62:19 */ 6067 6068 // Unsigned. 6069 type Uint_fast8_t = uint8 /* stdint.h:71:24 */ 6070 type Uint_fast16_t = uint64 /* stdint.h:73:27 */ 6071 type Uint_fast32_t = uint64 /* stdint.h:74:27 */ 6072 type Uint_fast64_t = uint64 /* stdint.h:75:27 */ 6073 6074 // Types for `void *' pointers. 6075 type Uintptr_t = uint64 /* stdint.h:90:27 */ 6076 6077 // Largest integral types. 6078 type Intmax_t = X__intmax_t /* stdint.h:101:21 */ 6079 type Uintmax_t = X__uintmax_t /* stdint.h:102:22 */ 6080 6081 // A null pointer constant. 6082 6083 // XPG requires a few symbols from <sys/wait.h> being defined. 6084 // Definitions of flag bits for `waitpid' et al. 6085 // Copyright (C) 1992-2020 Free Software Foundation, Inc. 6086 // This file is part of the GNU C Library. 6087 // 6088 // The GNU C Library is free software; you can redistribute it and/or 6089 // modify it under the terms of the GNU Lesser General Public 6090 // License as published by the Free Software Foundation; either 6091 // version 2.1 of the License, or (at your option) any later version. 6092 // 6093 // The GNU C Library is distributed in the hope that it will be useful, 6094 // but WITHOUT ANY WARRANTY; without even the implied warranty of 6095 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 6096 // Lesser General Public License for more details. 6097 // 6098 // You should have received a copy of the GNU Lesser General Public 6099 // License along with the GNU C Library; if not, see 6100 // <https://www.gnu.org/licenses/>. 6101 6102 // Bits in the third argument to `waitpid'. 6103 6104 // Bits in the fourth argument to `waitid'. 6105 6106 // The following values are used by the `waitid' function. 6107 6108 // The Linux kernel defines these bare, rather than an enum, 6109 // which causes a conflict if the include order is reversed. 6110 6111 type Idtype_t = uint32 /* waitflags.h:57:3 */ 6112 // Definitions of status bits for `wait' et al. 6113 // Copyright (C) 1992-2020 Free Software Foundation, Inc. 6114 // This file is part of the GNU C Library. 6115 // 6116 // The GNU C Library is free software; you can redistribute it and/or 6117 // modify it under the terms of the GNU Lesser General Public 6118 // License as published by the Free Software Foundation; either 6119 // version 2.1 of the License, or (at your option) any later version. 6120 // 6121 // The GNU C Library is distributed in the hope that it will be useful, 6122 // but WITHOUT ANY WARRANTY; without even the implied warranty of 6123 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 6124 // Lesser General Public License for more details. 6125 // 6126 // You should have received a copy of the GNU Lesser General Public 6127 // License along with the GNU C Library; if not, see 6128 // <https://www.gnu.org/licenses/>. 6129 6130 // Everything extant so far uses these same bits. 6131 6132 // If WIFEXITED(STATUS), the low-order 8 bits of the status. 6133 6134 // If WIFSIGNALED(STATUS), the terminating signal. 6135 6136 // If WIFSTOPPED(STATUS), the signal that stopped the child. 6137 6138 // Nonzero if STATUS indicates normal termination. 6139 6140 // Nonzero if STATUS indicates termination by a signal. 6141 6142 // Nonzero if STATUS indicates the child is stopped. 6143 6144 // Nonzero if STATUS indicates the child continued after a stop. We only 6145 // define this if <bits/waitflags.h> provides the WCONTINUED flag bit. 6146 6147 // Nonzero if STATUS indicates the child dumped core. 6148 6149 // Macros for constructing status values. 6150 6151 // Define the macros <sys/wait.h> also would define this way. 6152 6153 // _FloatN API tests for enablement. 6154 // Macros to control TS 18661-3 glibc features on ldbl-128 platforms. 6155 // Copyright (C) 2017-2020 Free Software Foundation, Inc. 6156 // This file is part of the GNU C Library. 6157 // 6158 // The GNU C Library is free software; you can redistribute it and/or 6159 // modify it under the terms of the GNU Lesser General Public 6160 // License as published by the Free Software Foundation; either 6161 // version 2.1 of the License, or (at your option) any later version. 6162 // 6163 // The GNU C Library is distributed in the hope that it will be useful, 6164 // but WITHOUT ANY WARRANTY; without even the implied warranty of 6165 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 6166 // Lesser General Public License for more details. 6167 // 6168 // You should have received a copy of the GNU Lesser General Public 6169 // License along with the GNU C Library; if not, see 6170 // <https://www.gnu.org/licenses/>. 6171 6172 // Copyright (C) 1991-2020 Free Software Foundation, Inc. 6173 // This file is part of the GNU C Library. 6174 // 6175 // The GNU C Library is free software; you can redistribute it and/or 6176 // modify it under the terms of the GNU Lesser General Public 6177 // License as published by the Free Software Foundation; either 6178 // version 2.1 of the License, or (at your option) any later version. 6179 // 6180 // The GNU C Library is distributed in the hope that it will be useful, 6181 // but WITHOUT ANY WARRANTY; without even the implied warranty of 6182 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 6183 // Lesser General Public License for more details. 6184 // 6185 // You should have received a copy of the GNU Lesser General Public 6186 // License along with the GNU C Library; if not, see 6187 // <https://www.gnu.org/licenses/>. 6188 6189 // Properties of long double type. ldbl-128 version. 6190 // Copyright (C) 2016-2020 Free Software Foundation, Inc. 6191 // This file is part of the GNU C Library. 6192 // 6193 // The GNU C Library is free software; you can redistribute it and/or 6194 // modify it under the terms of the GNU Lesser General Public 6195 // License published by the Free Software Foundation; either 6196 // version 2.1 of the License, or (at your option) any later version. 6197 // 6198 // The GNU C Library is distributed in the hope that it will be useful, 6199 // but WITHOUT ANY WARRANTY; without even the implied warranty of 6200 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 6201 // Lesser General Public License for more details. 6202 // 6203 // You should have received a copy of the GNU Lesser General Public 6204 // License along with the GNU C Library; if not, see 6205 // <https://www.gnu.org/licenses/>. 6206 6207 // long double is distinct from double, so there is nothing to 6208 // define here. 6209 6210 // Defined to 1 if the current compiler invocation provides a 6211 // floating-point type with the IEEE 754 binary128 format, and this 6212 // glibc includes corresponding *f128 interfaces for it. 6213 6214 // Defined to 1 if __HAVE_FLOAT128 is 1 and the type is ABI-distinct 6215 // from the default float, double and long double types in this glibc. 6216 6217 // Defined to 1 if the current compiler invocation provides a 6218 // floating-point type with the right format for _Float64x, and this 6219 // glibc includes corresponding *f64x interfaces for it. 6220 6221 // Defined to 1 if __HAVE_FLOAT64X is 1 and _Float64x has the format 6222 // of long double. Otherwise, if __HAVE_FLOAT64X is 1, _Float64x has 6223 // the format of _Float128, which must be different from that of long 6224 // double. 6225 6226 // Defined to concatenate the literal suffix to be used with _Float128 6227 // types, if __HAVE_FLOAT128 is 1. 6228 6229 // Defined to a complex binary128 type if __HAVE_FLOAT128 is 1. 6230 6231 // The remaining of this file provides support for older compilers. 6232 6233 // The type _Float128 exists only since GCC 7.0. 6234 6235 // Various built-in functions do not exist before GCC 7.0. 6236 6237 // Macros to control TS 18661-3 glibc features where the same 6238 // definitions are appropriate for all platforms. 6239 // Copyright (C) 2017-2020 Free Software Foundation, Inc. 6240 // This file is part of the GNU C Library. 6241 // 6242 // The GNU C Library is free software; you can redistribute it and/or 6243 // modify it under the terms of the GNU Lesser General Public 6244 // License as published by the Free Software Foundation; either 6245 // version 2.1 of the License, or (at your option) any later version. 6246 // 6247 // The GNU C Library is distributed in the hope that it will be useful, 6248 // but WITHOUT ANY WARRANTY; without even the implied warranty of 6249 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 6250 // Lesser General Public License for more details. 6251 // 6252 // You should have received a copy of the GNU Lesser General Public 6253 // License along with the GNU C Library; if not, see 6254 // <https://www.gnu.org/licenses/>. 6255 6256 // Copyright (C) 1991-2020 Free Software Foundation, Inc. 6257 // This file is part of the GNU C Library. 6258 // 6259 // The GNU C Library is free software; you can redistribute it and/or 6260 // modify it under the terms of the GNU Lesser General Public 6261 // License as published by the Free Software Foundation; either 6262 // version 2.1 of the License, or (at your option) any later version. 6263 // 6264 // The GNU C Library is distributed in the hope that it will be useful, 6265 // but WITHOUT ANY WARRANTY; without even the implied warranty of 6266 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 6267 // Lesser General Public License for more details. 6268 // 6269 // You should have received a copy of the GNU Lesser General Public 6270 // License along with the GNU C Library; if not, see 6271 // <https://www.gnu.org/licenses/>. 6272 6273 // Properties of long double type. ldbl-128 version. 6274 // Copyright (C) 2016-2020 Free Software Foundation, Inc. 6275 // This file is part of the GNU C Library. 6276 // 6277 // The GNU C Library is free software; you can redistribute it and/or 6278 // modify it under the terms of the GNU Lesser General Public 6279 // License published by the Free Software Foundation; either 6280 // version 2.1 of the License, or (at your option) any later version. 6281 // 6282 // The GNU C Library is distributed in the hope that it will be useful, 6283 // but WITHOUT ANY WARRANTY; without even the implied warranty of 6284 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 6285 // Lesser General Public License for more details. 6286 // 6287 // You should have received a copy of the GNU Lesser General Public 6288 // License along with the GNU C Library; if not, see 6289 // <https://www.gnu.org/licenses/>. 6290 6291 // long double is distinct from double, so there is nothing to 6292 // define here. 6293 6294 // This header should be included at the bottom of each bits/floatn.h. 6295 // It defines the following macros for each _FloatN and _FloatNx type, 6296 // where the same definitions, or definitions based only on the macros 6297 // in bits/floatn.h, are appropriate for all glibc configurations. 6298 6299 // Defined to 1 if the current compiler invocation provides a 6300 // floating-point type with the right format for this type, and this 6301 // glibc includes corresponding *fN or *fNx interfaces for it. 6302 6303 // Defined to 1 if the corresponding __HAVE_<type> macro is 1 and the 6304 // type is the first with its format in the sequence of (the default 6305 // choices for) float, double, long double, _Float16, _Float32, 6306 // _Float64, _Float128, _Float32x, _Float64x, _Float128x for this 6307 // glibc; that is, if functions present once per floating-point format 6308 // rather than once per type are present for this type. 6309 // 6310 // All configurations supported by glibc have _Float32 the same format 6311 // as float, _Float64 and _Float32x the same format as double, the 6312 // _Float64x the same format as either long double or _Float128. No 6313 // configurations support _Float128x or, as of GCC 7, have compiler 6314 // support for a type meeting the requirements for _Float128x. 6315 6316 // Defined to 1 if the corresponding _FloatN type is not binary compatible 6317 // with the corresponding ISO C type in the current compilation unit as 6318 // opposed to __HAVE_DISTINCT_FLOATN, which indicates the default types built 6319 // in glibc. 6320 6321 // Defined to 1 if any _FloatN or _FloatNx types that are not 6322 // ABI-distinct are however distinct types at the C language level (so 6323 // for the purposes of __builtin_types_compatible_p and _Generic). 6324 6325 // Defined to concatenate the literal suffix to be used with _FloatN 6326 // or _FloatNx types, if __HAVE_<type> is 1. The corresponding 6327 // literal suffixes exist since GCC 7, for C only. 6328 6329 // Defined to a complex type if __HAVE_<type> is 1. 6330 6331 // The remaining of this file provides support for older compilers. 6332 6333 // If double, long double and _Float64 all have the same set of 6334 // values, TS 18661-3 requires the usual arithmetic conversions on 6335 // long double and _Float64 to produce _Float64. For this to be the 6336 // case when building with a compiler without a distinct _Float64 6337 // type, _Float64 must be a typedef for long double, not for 6338 // double. 6339 6340 // Returned by `div'. 6341 type Div_t = struct { 6342 Fquot int32 6343 Frem int32 6344 } /* stdlib.h:62:5 */ 6345 6346 // Returned by `ldiv'. 6347 type Ldiv_t = struct { 6348 Fquot int64 6349 Frem int64 6350 } /* stdlib.h:70:5 */ 6351 6352 // Returned by `lldiv'. 6353 type Lldiv_t = struct { 6354 Fquot int64 6355 Frem int64 6356 } /* stdlib.h:80:5 */ 6357 6358 // Reentrant versions of the `random' family of functions. 6359 // These functions all use the following data structure to contain 6360 // state, rather than global state variables. 6361 6362 type Random_data = struct { 6363 Ffptr uintptr 6364 Frptr uintptr 6365 Fstate uintptr 6366 Frand_type int32 6367 Frand_deg int32 6368 Frand_sep int32 6369 F__ccgo_pad1 [4]byte 6370 Fend_ptr uintptr 6371 } /* stdlib.h:423:1 */ 6372 6373 // Data structure for communication with thread safe versions. This 6374 // type is to be regarded as opaque. It's only exported because users 6375 // have to allocate objects of this type. 6376 type Drand48_data = struct { 6377 F__x [3]uint16 6378 F__old_x [3]uint16 6379 F__c uint16 6380 F__init uint16 6381 F__a uint64 6382 } /* stdlib.h:490:1 */ 6383 6384 // Shorthand for type of comparison functions. 6385 type X__compar_fn_t = uintptr /* stdlib.h:808:13 */ 6386 6387 type Comparison_fn_t = X__compar_fn_t /* stdlib.h:811:23 */ 6388 type X__compar_d_fn_t = uintptr /* stdlib.h:815:13 */ 6389 6390 // Floating-point inline functions for stdlib.h. 6391 // Copyright (C) 2012-2020 Free Software Foundation, Inc. 6392 // This file is part of the GNU C Library. 6393 // 6394 // The GNU C Library is free software; you can redistribute it and/or 6395 // modify it under the terms of the GNU Lesser General Public 6396 // License as published by the Free Software Foundation; either 6397 // version 2.1 of the License, or (at your option) any later version. 6398 // 6399 // The GNU C Library is distributed in the hope that it will be useful, 6400 // but WITHOUT ANY WARRANTY; without even the implied warranty of 6401 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 6402 // Lesser General Public License for more details. 6403 // 6404 // You should have received a copy of the GNU Lesser General Public 6405 // License along with the GNU C Library; if not, see 6406 // <https://www.gnu.org/licenses/>. 6407 6408 // Define some macros helping to catch buffer overflows. 6409 6410 // Macros to control TS 18661-3 glibc features on ldbl-128 platforms. 6411 // Copyright (C) 2017-2020 Free Software Foundation, Inc. 6412 // This file is part of the GNU C Library. 6413 // 6414 // The GNU C Library is free software; you can redistribute it and/or 6415 // modify it under the terms of the GNU Lesser General Public 6416 // License as published by the Free Software Foundation; either 6417 // version 2.1 of the License, or (at your option) any later version. 6418 // 6419 // The GNU C Library is distributed in the hope that it will be useful, 6420 // but WITHOUT ANY WARRANTY; without even the implied warranty of 6421 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 6422 // Lesser General Public License for more details. 6423 // 6424 // You should have received a copy of the GNU Lesser General Public 6425 // License along with the GNU C Library; if not, see 6426 // <https://www.gnu.org/licenses/>. 6427 6428 // This variant of malloc does not return NULL if zero size is passed into. 6429 func xmalloc(tls *libc.TLS, size Size_t) uintptr { /* Array.c:40:13: */ 6430 return libc.Xmalloc(tls, func() uint64 { 6431 if size != 0 { 6432 return size 6433 } 6434 return uint64(1) 6435 }()) 6436 } 6437 6438 // This variant of calloc does not return NULL if zero count is passed into. 6439 func xcalloc(tls *libc.TLS, n Size_t, size Size_t) uintptr { /* Array.c:49:13: */ 6440 return libc.Xcalloc(tls, func() uint64 { 6441 if n != 0 { 6442 return n 6443 } 6444 return uint64(1) 6445 }(), size) 6446 } 6447 6448 // This variant of realloc does not return NULL if zero size is passed into 6449 func xrealloc(tls *libc.TLS, ptr uintptr, size Size_t) uintptr { /* Array.c:58:13: */ 6450 return libc.Xrealloc(tls, ptr, func() uint64 { 6451 if size != 0 { 6452 return size 6453 } 6454 return uint64(1) 6455 }()) 6456 } 6457 6458 func XXdmcpAllocARRAY8(tls *libc.TLS, array ARRAY8Ptr, length int32) int32 { /* Array.c:65:1: */ 6459 // length defined in ARRAY8 struct is a CARD16 (not CARD8 like the rest) 6460 if length > 65535 || length < 0 { 6461 (*X_ARRAY8)(unsafe.Pointer(array)).Fdata = uintptr(0) 6462 } else { 6463 (*X_ARRAY8)(unsafe.Pointer(array)).Fdata = xmalloc(tls, uint64(length)*uint64(unsafe.Sizeof(CARD8(0)))) 6464 } 6465 6466 if (*X_ARRAY8)(unsafe.Pointer(array)).Fdata == uintptr(0) { 6467 (*X_ARRAY8)(unsafe.Pointer(array)).Flength = CARD16(0) 6468 return FALSE 6469 } 6470 (*X_ARRAY8)(unsafe.Pointer(array)).Flength = CARD16(length) 6471 return TRUE 6472 } 6473 6474 func XXdmcpAllocARRAY16(tls *libc.TLS, array ARRAY16Ptr, length int32) int32 { /* Array.c:82:1: */ 6475 // length defined in ARRAY16 struct is a CARD8 6476 if length > 255 || length < 0 { 6477 (*X_ARRAY16)(unsafe.Pointer(array)).Fdata = uintptr(0) 6478 } else { 6479 (*X_ARRAY16)(unsafe.Pointer(array)).Fdata = xmalloc(tls, uint64(length)*uint64(unsafe.Sizeof(CARD16(0)))) 6480 } 6481 6482 if (*X_ARRAY16)(unsafe.Pointer(array)).Fdata == uintptr(0) { 6483 (*X_ARRAY16)(unsafe.Pointer(array)).Flength = CARD8(0) 6484 return FALSE 6485 } 6486 (*X_ARRAY16)(unsafe.Pointer(array)).Flength = CARD8(length) 6487 return TRUE 6488 } 6489 6490 func XXdmcpAllocARRAY32(tls *libc.TLS, array ARRAY32Ptr, length int32) int32 { /* Array.c:99:1: */ 6491 // length defined in ARRAY32 struct is a CARD8 6492 if length > 255 || length < 0 { 6493 (*X_ARRAY32)(unsafe.Pointer(array)).Fdata = uintptr(0) 6494 } else { 6495 (*X_ARRAY32)(unsafe.Pointer(array)).Fdata = xmalloc(tls, uint64(length)*uint64(unsafe.Sizeof(CARD32(0)))) 6496 } 6497 6498 if (*X_ARRAY32)(unsafe.Pointer(array)).Fdata == uintptr(0) { 6499 (*X_ARRAY32)(unsafe.Pointer(array)).Flength = CARD8(0) 6500 return FALSE 6501 } 6502 (*X_ARRAY32)(unsafe.Pointer(array)).Flength = CARD8(length) 6503 return TRUE 6504 } 6505 6506 func XXdmcpAllocARRAYofARRAY8(tls *libc.TLS, array ARRAYofARRAY8Ptr, length int32) int32 { /* Array.c:116:1: */ 6507 // length defined in ARRAYofARRAY8 struct is a CARD8 6508 if length > 255 || length < 0 { 6509 (*X_ARRAYofARRAY8)(unsafe.Pointer(array)).Fdata = uintptr(0) 6510 } else { 6511 // Use calloc to ensure the pointers are cleared out so we 6512 // don't try to free garbage if XdmcpDisposeARRAYofARRAY8() 6513 // is called before the caller sets them to valid pointers. 6514 (*X_ARRAYofARRAY8)(unsafe.Pointer(array)).Fdata = xcalloc(tls, uint64(length), uint64(unsafe.Sizeof(ARRAY8{}))) 6515 } 6516 6517 if (*X_ARRAYofARRAY8)(unsafe.Pointer(array)).Fdata == uintptr(0) { 6518 (*X_ARRAYofARRAY8)(unsafe.Pointer(array)).Flength = CARD8(0) 6519 return FALSE 6520 } 6521 (*X_ARRAYofARRAY8)(unsafe.Pointer(array)).Flength = CARD8(length) 6522 return TRUE 6523 } 6524 6525 func XXdmcpARRAY8Equal(tls *libc.TLS, array1 ARRAY8Ptr, array2 ARRAY8Ptr) int32 { /* Array.c:138:1: */ 6526 if int32((*X_ARRAY8)(unsafe.Pointer(array1)).Flength) != int32((*X_ARRAY8)(unsafe.Pointer(array2)).Flength) { 6527 return FALSE 6528 } 6529 if libc.Xmemcmp(tls, (*X_ARRAY8)(unsafe.Pointer(array1)).Fdata, (*X_ARRAY8)(unsafe.Pointer(array2)).Fdata, uint64((*X_ARRAY8)(unsafe.Pointer(array1)).Flength)) != 0 { 6530 return FALSE 6531 } 6532 return TRUE 6533 } 6534 6535 func XXdmcpCopyARRAY8(tls *libc.TLS, src ARRAY8Ptr, dst ARRAY8Ptr) int32 { /* Array.c:148:1: */ 6536 if !(XXdmcpAllocARRAY8(tls, dst, int32((*X_ARRAY8)(unsafe.Pointer(src)).Flength)) != 0) { 6537 return FALSE 6538 } 6539 libc.Xmemmove(tls, (*X_ARRAY8)(unsafe.Pointer(dst)).Fdata, (*X_ARRAY8)(unsafe.Pointer(src)).Fdata, uint64((*X_ARRAY8)(unsafe.Pointer(src)).Flength)*uint64(unsafe.Sizeof(CARD8(0)))) 6540 return TRUE 6541 } 6542 6543 func XXdmcpReallocARRAY8(tls *libc.TLS, array ARRAY8Ptr, length int32) int32 { /* Array.c:157:1: */ 6544 var newData CARD8Ptr 6545 6546 // length defined in ARRAY8 struct is a CARD16 (not CARD8 like the rest) 6547 if length > 65535 || length < 0 { 6548 return FALSE 6549 } 6550 6551 newData = xrealloc(tls, (*X_ARRAY8)(unsafe.Pointer(array)).Fdata, uint64(length)*uint64(unsafe.Sizeof(CARD8(0)))) 6552 if !(newData != 0) { 6553 return FALSE 6554 } 6555 (*X_ARRAY8)(unsafe.Pointer(array)).Flength = CARD16(length) 6556 (*X_ARRAY8)(unsafe.Pointer(array)).Fdata = newData 6557 return TRUE 6558 } 6559 6560 func XXdmcpReallocARRAYofARRAY8(tls *libc.TLS, array ARRAYofARRAY8Ptr, length int32) int32 { /* Array.c:174:1: */ 6561 var newData ARRAY8Ptr 6562 6563 // length defined in ARRAYofARRAY8 struct is a CARD8 6564 if length > 255 || length < 0 { 6565 return FALSE 6566 } 6567 6568 newData = xrealloc(tls, (*X_ARRAYofARRAY8)(unsafe.Pointer(array)).Fdata, uint64(length)*uint64(unsafe.Sizeof(ARRAY8{}))) 6569 if !(newData != 0) { 6570 return FALSE 6571 } 6572 if length > int32((*X_ARRAYofARRAY8)(unsafe.Pointer(array)).Flength) { 6573 libc.Xmemset(tls, newData+uintptr((*X_ARRAYofARRAY8)(unsafe.Pointer(array)).Flength)*16, 0, 6574 uint64(length-int32((*X_ARRAYofARRAY8)(unsafe.Pointer(array)).Flength))*uint64(unsafe.Sizeof(ARRAY8{}))) 6575 } 6576 (*X_ARRAYofARRAY8)(unsafe.Pointer(array)).Flength = CARD8(length) 6577 (*X_ARRAYofARRAY8)(unsafe.Pointer(array)).Fdata = newData 6578 return TRUE 6579 } 6580 6581 func XXdmcpReallocARRAY16(tls *libc.TLS, array ARRAY16Ptr, length int32) int32 { /* Array.c:194:1: */ 6582 var newData CARD16Ptr 6583 6584 // length defined in ARRAY16 struct is a CARD8 6585 if length > 255 || length < 0 { 6586 return FALSE 6587 } 6588 newData = xrealloc(tls, (*X_ARRAY16)(unsafe.Pointer(array)).Fdata, uint64(length)*uint64(unsafe.Sizeof(CARD16(0)))) 6589 if !(newData != 0) { 6590 return FALSE 6591 } 6592 (*X_ARRAY16)(unsafe.Pointer(array)).Flength = CARD8(length) 6593 (*X_ARRAY16)(unsafe.Pointer(array)).Fdata = newData 6594 return TRUE 6595 } 6596 6597 func XXdmcpReallocARRAY32(tls *libc.TLS, array ARRAY32Ptr, length int32) int32 { /* Array.c:210:1: */ 6598 var newData CARD32Ptr 6599 6600 // length defined in ARRAY32 struct is a CARD8 6601 if length > 255 || length < 0 { 6602 return FALSE 6603 } 6604 6605 newData = xrealloc(tls, (*X_ARRAY32)(unsafe.Pointer(array)).Fdata, uint64(length)*uint64(unsafe.Sizeof(CARD32(0)))) 6606 if !(newData != 0) { 6607 return FALSE 6608 } 6609 (*X_ARRAY32)(unsafe.Pointer(array)).Flength = CARD8(length) 6610 (*X_ARRAY32)(unsafe.Pointer(array)).Fdata = newData 6611 return TRUE 6612 } 6613 6614 func XXdmcpDisposeARRAY8(tls *libc.TLS, array ARRAY8Ptr) { /* Array.c:227:1: */ 6615 libc.Xfree(tls, (*X_ARRAY8)(unsafe.Pointer(array)).Fdata) 6616 (*X_ARRAY8)(unsafe.Pointer(array)).Flength = CARD16(0) 6617 (*X_ARRAY8)(unsafe.Pointer(array)).Fdata = uintptr(0) 6618 } 6619 6620 func XXdmcpDisposeARRAY16(tls *libc.TLS, array ARRAY16Ptr) { /* Array.c:235:1: */ 6621 libc.Xfree(tls, (*X_ARRAY16)(unsafe.Pointer(array)).Fdata) 6622 (*X_ARRAY16)(unsafe.Pointer(array)).Flength = CARD8(0) 6623 (*X_ARRAY16)(unsafe.Pointer(array)).Fdata = uintptr(0) 6624 } 6625 6626 func XXdmcpDisposeARRAY32(tls *libc.TLS, array ARRAY32Ptr) { /* Array.c:243:1: */ 6627 libc.Xfree(tls, (*X_ARRAY32)(unsafe.Pointer(array)).Fdata) 6628 (*X_ARRAY32)(unsafe.Pointer(array)).Flength = CARD8(0) 6629 (*X_ARRAY32)(unsafe.Pointer(array)).Fdata = uintptr(0) 6630 } 6631 6632 func XXdmcpDisposeARRAYofARRAY8(tls *libc.TLS, array ARRAYofARRAY8Ptr) { /* Array.c:251:1: */ 6633 var i int32 6634 6635 if (*X_ARRAYofARRAY8)(unsafe.Pointer(array)).Fdata != uintptr(0) { 6636 for i = 0; i < int32((*X_ARRAYofARRAY8)(unsafe.Pointer(array)).Flength); i++ { 6637 XXdmcpDisposeARRAY8(tls, (*X_ARRAYofARRAY8)(unsafe.Pointer(array)).Fdata+uintptr(i)*16) 6638 } 6639 libc.Xfree(tls, (*X_ARRAYofARRAY8)(unsafe.Pointer(array)).Fdata) 6640 } 6641 (*X_ARRAYofARRAY8)(unsafe.Pointer(array)).Flength = CARD8(0) 6642 (*X_ARRAYofARRAY8)(unsafe.Pointer(array)).Fdata = uintptr(0) 6643 } 6644 6645 // Protocol families. 6646 6647 // Address families. 6648 6649 // Socket level values. Others are defined in the appropriate headers. 6650 // 6651 // XXX These definitions also should go into the appropriate headers as 6652 // far as they are available. 6653 6654 // Maximum queue length specifiable by listen. 6655 6656 // Get the definition of the macro to define the common sockaddr members. 6657 // Definition of struct sockaddr_* common members and sizes, generic version. 6658 // Copyright (C) 1995-2020 Free Software Foundation, Inc. 6659 // This file is part of the GNU C Library. 6660 // 6661 // The GNU C Library is free software; you can redistribute it and/or 6662 // modify it under the terms of the GNU Lesser General Public 6663 // License as published by the Free Software Foundation; either 6664 // version 2.1 of the License, or (at your option) any later version. 6665 // 6666 // The GNU C Library is distributed in the hope that it will be useful, 6667 // but WITHOUT ANY WARRANTY; without even the implied warranty of 6668 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 6669 // Lesser General Public License for more details. 6670 // 6671 // You should have received a copy of the GNU Lesser General Public 6672 // License along with the GNU C Library; if not, see 6673 // <https://www.gnu.org/licenses/>. 6674 6675 // Never include this file directly; use <sys/socket.h> instead. 6676 6677 // POSIX.1g specifies this type name for the `sa_family' member. 6678 type Sa_family_t = uint16 /* sockaddr.h:28:28 */ 6679 6680 // This macro is used to declare the initial common members 6681 // of the data types used for socket addresses, `struct sockaddr', 6682 // `struct sockaddr_in', `struct sockaddr_un', etc. 6683 6684 // Size of struct sockaddr_storage. 6685 6686 // Structure describing a generic socket address. 6687 type Sockaddr = struct { 6688 Fsa_family Sa_family_t 6689 Fsa_data [14]uint8 6690 } /* socket.h:178:1 */ 6691 6692 // Structure large enough to hold any socket address (with the historical 6693 // exception of AF_UNIX). 6694 6695 type Sockaddr_storage = struct { 6696 Fss_family Sa_family_t 6697 F__ss_padding [118]uint8 6698 F__ss_align uint64 6699 } /* socket.h:191:1 */ 6700 6701 // Structure describing messages sent by 6702 // `sendmsg' and received by `recvmsg'. 6703 type Msghdr = struct { 6704 Fmsg_name uintptr 6705 Fmsg_namelen Socklen_t 6706 F__ccgo_pad1 [4]byte 6707 Fmsg_iov uintptr 6708 Fmsg_iovlen Size_t 6709 Fmsg_control uintptr 6710 Fmsg_controllen Size_t 6711 Fmsg_flags int32 6712 F__ccgo_pad2 [4]byte 6713 } /* socket.h:257:1 */ 6714 6715 // Structure used for storage of ancillary data object information. 6716 type Cmsghdr = struct { 6717 F__ccgo_pad1 [0]uint64 6718 Fcmsg_len Size_t 6719 Fcmsg_level int32 6720 Fcmsg_type int32 6721 } /* socket.h:275:1 */ 6722 6723 // User visible structure for SCM_CREDENTIALS message 6724 type Ucred = struct { 6725 Fpid Pid_t 6726 Fuid Uid_t 6727 Fgid Gid_t 6728 } /* socket.h:344:1 */ 6729 6730 // SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note 6731 6732 // SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note 6733 6734 // SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note 6735 6736 // This allows for 1024 file descriptors: if NR_OPEN is ever grown 6737 // beyond that you'll have to change this too. But 1024 fd's seem to be 6738 // enough even for such "real" unices like OSF/1, so hopefully this is 6739 // one limit that doesn't have to be changed [again]. 6740 // 6741 // Note that POSIX wants the FD_CLEAR(fd,fdsetp) defines to be in 6742 // <sys/time.h> (and thus <linux/time.h>) - but this is a more logical 6743 // place for them. Solved by having dummy defines in <sys/time.h>. 6744 6745 // This macro may have been defined in <gnu/types.h>. But we always 6746 // use the one here. 6747 6748 type X__kernel_fd_set = struct{ Ffds_bits [16]uint64 } /* posix_types.h:27:3 */ 6749 6750 // Type of a signal handler. 6751 type X__kernel_sighandler_t = uintptr /* posix_types.h:30:14 */ 6752 6753 // Type of a SYSV IPC key. 6754 type X__kernel_key_t = int32 /* posix_types.h:33:13 */ 6755 type X__kernel_mqd_t = int32 /* posix_types.h:34:13 */ 6756 6757 // SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note 6758 6759 type X__kernel_old_uid_t = uint16 /* posix_types.h:5:24 */ 6760 type X__kernel_old_gid_t = uint16 /* posix_types.h:6:24 */ 6761 6762 // SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note 6763 6764 // SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note 6765 // Copyright (C) 2012 ARM Ltd. 6766 // 6767 // This program is free software; you can redistribute it and/or modify 6768 // it under the terms of the GNU General Public License version 2 as 6769 // published by the Free Software Foundation. 6770 // 6771 // This program is distributed in the hope that it will be useful, 6772 // but WITHOUT ANY WARRANTY; without even the implied warranty of 6773 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 6774 // GNU General Public License for more details. 6775 // 6776 // You should have received a copy of the GNU General Public License 6777 // along with this program. If not, see <http://www.gnu.org/licenses/>. 6778 6779 // SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note 6780 6781 // There seems to be no way of detecting this automatically from user 6782 // space, so 64 bit architectures should override this in their 6783 // bitsperlong.h. In particular, an architecture that supports 6784 // both 32 and 64 bit user space must not rely on CONFIG_64BIT 6785 // to decide it, but rather check a compiler provided macro. 6786 6787 // This file is generally used by user-level software, so you need to 6788 // be a little careful about namespace pollution etc. 6789 // 6790 // First the types that are often defined in different ways across 6791 // architectures, so that you can override them. 6792 6793 type X__kernel_long_t = int64 /* posix_types.h:15:15 */ 6794 type X__kernel_ulong_t = uint64 /* posix_types.h:16:23 */ 6795 6796 type X__kernel_ino_t = X__kernel_ulong_t /* posix_types.h:20:26 */ 6797 6798 type X__kernel_mode_t = uint32 /* posix_types.h:24:22 */ 6799 6800 type X__kernel_pid_t = int32 /* posix_types.h:28:14 */ 6801 6802 type X__kernel_ipc_pid_t = int32 /* posix_types.h:32:14 */ 6803 6804 type X__kernel_uid_t = uint32 /* posix_types.h:36:22 */ 6805 type X__kernel_gid_t = uint32 /* posix_types.h:37:22 */ 6806 6807 type X__kernel_suseconds_t = X__kernel_long_t /* posix_types.h:41:26 */ 6808 6809 type X__kernel_daddr_t = int32 /* posix_types.h:45:14 */ 6810 6811 type X__kernel_uid32_t = uint32 /* posix_types.h:49:22 */ 6812 type X__kernel_gid32_t = uint32 /* posix_types.h:50:22 */ 6813 6814 type X__kernel_old_dev_t = uint32 /* posix_types.h:59:22 */ 6815 6816 // Most 32 bit architectures use "unsigned int" size_t, 6817 // and all 64 bit architectures use "unsigned long" size_t. 6818 type X__kernel_size_t = X__kernel_ulong_t /* posix_types.h:72:26 */ 6819 type X__kernel_ssize_t = X__kernel_long_t /* posix_types.h:73:25 */ 6820 type X__kernel_ptrdiff_t = X__kernel_long_t /* posix_types.h:74:25 */ 6821 6822 type X__kernel_fsid_t = struct{ Fval [2]int32 } /* posix_types.h:81:3 */ 6823 6824 // anything below here should be completely generic 6825 type X__kernel_off_t = X__kernel_long_t /* posix_types.h:87:25 */ 6826 type X__kernel_loff_t = int64 /* posix_types.h:88:19 */ 6827 type X__kernel_old_time_t = X__kernel_long_t /* posix_types.h:89:25 */ 6828 type X__kernel_time_t = X__kernel_long_t /* posix_types.h:90:25 */ 6829 type X__kernel_time64_t = int64 /* posix_types.h:91:19 */ 6830 type X__kernel_clock_t = X__kernel_long_t /* posix_types.h:92:25 */ 6831 type X__kernel_timer_t = int32 /* posix_types.h:93:14 */ 6832 type X__kernel_clockid_t = int32 /* posix_types.h:94:14 */ 6833 type X__kernel_caddr_t = uintptr /* posix_types.h:95:14 */ 6834 type X__kernel_uid16_t = uint16 /* posix_types.h:96:24 */ 6835 type X__kernel_gid16_t = uint16 /* posix_types.h:97:24 */ 6836 6837 // SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note 6838 6839 // Socket-level I/O control calls. 6840 6841 // For setsockopt(2) 6842 6843 // Security levels - as per NRL IPv6 - don't actually do anything 6844 6845 // Socket filtering 6846 6847 // Instruct lower device to use last 4-bytes of skb data as FCS 6848 6849 // on 64-bit and x32, avoid the ?: operator 6850 6851 // Structure used to manipulate the SO_LINGER option. 6852 type Linger = struct { 6853 Fl_onoff int32 6854 Fl_linger int32 6855 } /* socket.h:361:1 */ 6856 6857 // This is the 4.3 BSD `struct sockaddr' format, which is used as wire 6858 // format in the grotty old 4.3 `talk' protocol. 6859 type Osockaddr = struct { 6860 Fsa_family uint16 6861 Fsa_data [14]uint8 6862 } /* struct_osockaddr.h:6:1 */ 6863 6864 // This is the type we use for generic socket address arguments. 6865 // 6866 // With GCC 2.7 and later, the funky union causes redeclarations or 6867 // uses with any of the listed types to be allowed without complaint. 6868 // G++ 2.7 does not support transparent unions so there we want the 6869 // old-style declaration, too. 6870 // Add more `struct sockaddr_AF' types here as necessary. 6871 // These are all the ones I found on NetBSD and Linux. 6872 6873 type X__SOCKADDR_ARG = struct{ F__sockaddr__ uintptr } /* socket.h:80:10 */ 6874 type X__CONST_SOCKADDR_ARG = struct{ F__sockaddr__ uintptr } /* socket.h:84:10 */ 6875 6876 // For `recvmmsg' and `sendmmsg'. 6877 type Mmsghdr = struct { 6878 Fmsg_hdr struct { 6879 Fmsg_name uintptr 6880 Fmsg_namelen Socklen_t 6881 F__ccgo_pad1 [4]byte 6882 Fmsg_iov uintptr 6883 Fmsg_iovlen Size_t 6884 Fmsg_control uintptr 6885 Fmsg_controllen Size_t 6886 Fmsg_flags int32 6887 F__ccgo_pad2 [4]byte 6888 } 6889 Fmsg_len uint32 6890 F__ccgo_pad1 [4]byte 6891 } /* socket.h:90:1 */ 6892 6893 // Define some macros helping to catch buffer overflows. 6894 6895 func XXdmcpFill(tls *libc.TLS, fd int32, buffer XdmcpBufferPtr, from XdmcpNetaddr, fromlen uintptr) int32 { /* Fill.c:46:1: */ 6896 var newBuf uintptr 6897 6898 if (*X_XdmcpBuffer)(unsafe.Pointer(buffer)).Fsize < XDM_MAX_MSGLEN { 6899 newBuf = libc.Xmalloc(tls, uint64(XDM_MAX_MSGLEN)) 6900 if newBuf != 0 { 6901 libc.Xfree(tls, (*X_XdmcpBuffer)(unsafe.Pointer(buffer)).Fdata) 6902 (*X_XdmcpBuffer)(unsafe.Pointer(buffer)).Fdata = newBuf 6903 (*X_XdmcpBuffer)(unsafe.Pointer(buffer)).Fsize = XDM_MAX_MSGLEN 6904 } 6905 } 6906 (*X_XdmcpBuffer)(unsafe.Pointer(buffer)).Fpointer = 0 6907 (*X_XdmcpBuffer)(unsafe.Pointer(buffer)).Fcount = int32(libc.Xrecvfrom(tls, fd, (*X_XdmcpBuffer)(unsafe.Pointer(buffer)).Fdata, uint64((*X_XdmcpBuffer)(unsafe.Pointer(buffer)).Fsize), 0, 6908 from, fromlen)) 6909 if (*X_XdmcpBuffer)(unsafe.Pointer(buffer)).Fcount < 6 { 6910 (*X_XdmcpBuffer)(unsafe.Pointer(buffer)).Fcount = 0 6911 return FALSE 6912 } 6913 return TRUE 6914 } 6915 6916 // Define some macros helping to catch buffer overflows. 6917 6918 func XXdmcpFlush(tls *libc.TLS, fd int32, buffer XdmcpBufferPtr, to XdmcpNetaddr, tolen int32) int32 { /* Flush.c:45:1: */ 6919 var result int32 6920 result = int32(libc.Xsendto(tls, fd, (*X_XdmcpBuffer)(unsafe.Pointer(buffer)).Fdata, uint64((*X_XdmcpBuffer)(unsafe.Pointer(buffer)).Fpointer), 0, 6921 to, uint32(tolen))) 6922 if result != (*X_XdmcpBuffer)(unsafe.Pointer(buffer)).Fpointer { 6923 return FALSE 6924 } 6925 return TRUE 6926 } 6927 6928 func getbits(tls *libc.TLS, data int64, dst uintptr) { /* Key.c:41:1: */ 6929 *(*uint8)(unsafe.Pointer(dst)) = uint8(data & int64(0xff)) 6930 *(*uint8)(unsafe.Pointer(dst + 1)) = uint8(data >> 8 & int64(0xff)) 6931 *(*uint8)(unsafe.Pointer(dst + 2)) = uint8(data >> 16 & int64(0xff)) 6932 *(*uint8)(unsafe.Pointer(dst + 3)) = uint8(data >> 24 & int64(0xff)) 6933 } 6934 6935 // Floating-point inline functions for stdlib.h. 6936 // Copyright (C) 2012-2020 Free Software Foundation, Inc. 6937 // This file is part of the GNU C Library. 6938 // 6939 // The GNU C Library is free software; you can redistribute it and/or 6940 // modify it under the terms of the GNU Lesser General Public 6941 // License as published by the Free Software Foundation; either 6942 // version 2.1 of the License, or (at your option) any later version. 6943 // 6944 // The GNU C Library is distributed in the hope that it will be useful, 6945 // but WITHOUT ANY WARRANTY; without even the implied warranty of 6946 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 6947 // Lesser General Public License for more details. 6948 // 6949 // You should have received a copy of the GNU Lesser General Public 6950 // License along with the GNU C Library; if not, see 6951 // <https://www.gnu.org/licenses/>. 6952 6953 // Define some macros helping to catch buffer overflows. 6954 6955 // Macros to control TS 18661-3 glibc features on ldbl-128 platforms. 6956 // Copyright (C) 2017-2020 Free Software Foundation, Inc. 6957 // This file is part of the GNU C Library. 6958 // 6959 // The GNU C Library is free software; you can redistribute it and/or 6960 // modify it under the terms of the GNU Lesser General Public 6961 // License as published by the Free Software Foundation; either 6962 // version 2.1 of the License, or (at your option) any later version. 6963 // 6964 // The GNU C Library is distributed in the hope that it will be useful, 6965 // but WITHOUT ANY WARRANTY; without even the implied warranty of 6966 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 6967 // Lesser General Public License for more details. 6968 // 6969 // You should have received a copy of the GNU Lesser General Public 6970 // License along with the GNU C Library; if not, see 6971 // <https://www.gnu.org/licenses/>. 6972 6973 func XXdmcpGenerateKey(tls *libc.TLS, key XdmAuthKeyPtr) { /* Key.c:66:1: */ 6974 var lowbits int64 6975 var highbits int64 6976 6977 libc.Xsrand48(tls, Time_t(libc.Xgetpid(tls))^libc.Xtime(tls, uintptr(0))) 6978 lowbits = libc.Xlrand48(tls) 6979 highbits = libc.Xlrand48(tls) 6980 getbits(tls, lowbits, key) 6981 getbits(tls, highbits, key+uintptr(4)) 6982 } 6983 6984 func XXdmcpCompareKeys(tls *libc.TLS, a XdmAuthKeyPtr, b XdmAuthKeyPtr) int32 { /* Key.c:82:1: */ 6985 var i int32 6986 6987 for i = 0; i < 8; i++ { 6988 if int32(*(*BYTE)(unsafe.Pointer(a + uintptr(i)))) != int32(*(*BYTE)(unsafe.Pointer(b + uintptr(i)))) { 6989 return FALSE 6990 } 6991 } 6992 return TRUE 6993 } 6994 6995 func XXdmcpIncrementKey(tls *libc.TLS, key XdmAuthKeyPtr) { /* Key.c:93:1: */ 6996 var i int32 6997 6998 i = 7 6999 for int32(libc.PreIncUint8(&*(*BYTE)(unsafe.Pointer(key + uintptr(i))), 1)) == 0 { 7000 if libc.PreDecInt32(&i, 1) < 0 { 7001 break 7002 } 7003 } 7004 } 7005 7006 func XXdmcpDecrementKey(tls *libc.TLS, key XdmAuthKeyPtr) { /* Key.c:104:1: */ 7007 var i int32 7008 7009 i = 7 7010 for int32(libc.PostDecUint8(&*(*BYTE)(unsafe.Pointer(key + uintptr(i))), 1)) == 0 { 7011 if libc.PreDecInt32(&i, 1) < 0 { 7012 break 7013 } 7014 } 7015 } 7016 7017 // Floating-point inline functions for stdlib.h. 7018 // Copyright (C) 2012-2020 Free Software Foundation, Inc. 7019 // This file is part of the GNU C Library. 7020 // 7021 // The GNU C Library is free software; you can redistribute it and/or 7022 // modify it under the terms of the GNU Lesser General Public 7023 // License as published by the Free Software Foundation; either 7024 // version 2.1 of the License, or (at your option) any later version. 7025 // 7026 // The GNU C Library is distributed in the hope that it will be useful, 7027 // but WITHOUT ANY WARRANTY; without even the implied warranty of 7028 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 7029 // Lesser General Public License for more details. 7030 // 7031 // You should have received a copy of the GNU Lesser General Public 7032 // License along with the GNU C Library; if not, see 7033 // <https://www.gnu.org/licenses/>. 7034 7035 // Define some macros helping to catch buffer overflows. 7036 7037 // Macros to control TS 18661-3 glibc features on ldbl-128 platforms. 7038 // Copyright (C) 2017-2020 Free Software Foundation, Inc. 7039 // This file is part of the GNU C Library. 7040 // 7041 // The GNU C Library is free software; you can redistribute it and/or 7042 // modify it under the terms of the GNU Lesser General Public 7043 // License as published by the Free Software Foundation; either 7044 // version 2.1 of the License, or (at your option) any later version. 7045 // 7046 // The GNU C Library is distributed in the hope that it will be useful, 7047 // but WITHOUT ANY WARRANTY; without even the implied warranty of 7048 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 7049 // Lesser General Public License for more details. 7050 // 7051 // You should have received a copy of the GNU Lesser General Public 7052 // License along with the GNU C Library; if not, see 7053 // <https://www.gnu.org/licenses/>. 7054 7055 func XXdmcpReadHeader(tls *libc.TLS, buffer XdmcpBufferPtr, header XdmcpHeaderPtr) int32 { /* Read.c:37:1: */ 7056 if XXdmcpReadCARD16(tls, buffer, header) != 0 && XXdmcpReadCARD16(tls, buffer, header+2) != 0 && XXdmcpReadCARD16(tls, buffer, header+4) != 0 { 7057 return TRUE 7058 } 7059 return FALSE 7060 } 7061 7062 func XXdmcpReadRemaining(tls *libc.TLS, buffer XdmcpBufferPtr) int32 { /* Read.c:47:1: */ 7063 return (*X_XdmcpBuffer)(unsafe.Pointer(buffer)).Fcount - (*X_XdmcpBuffer)(unsafe.Pointer(buffer)).Fpointer 7064 } 7065 7066 func XXdmcpReadARRAY8(tls *libc.TLS, buffer XdmcpBufferPtr, array ARRAY8Ptr) int32 { /* Read.c:53:1: */ 7067 var i int32 7068 7069 // When returning FALSE, guarantee that array->data = 0. 7070 // This allows the user to safely call XdmcpDisposeARRAY8(array) 7071 // regardless of the return value below. 7072 // Note that XdmcpDisposeARRAY*(array) will call free(array->data), 7073 // so we must guarantee that array->data is NULL or a malloced pointer. 7074 if !(XXdmcpReadCARD16(tls, buffer, array) != 0) { 7075 (*X_ARRAY8)(unsafe.Pointer(array)).Fdata = uintptr(0) 7076 return FALSE 7077 } 7078 if !(int32((*X_ARRAY8)(unsafe.Pointer(array)).Flength) != 0) { 7079 (*X_ARRAY8)(unsafe.Pointer(array)).Fdata = uintptr(0) 7080 return TRUE 7081 } 7082 (*X_ARRAY8)(unsafe.Pointer(array)).Fdata = libc.Xmalloc(tls, uint64((*X_ARRAY8)(unsafe.Pointer(array)).Flength)*uint64(unsafe.Sizeof(CARD8(0)))) 7083 if !(int32((*X_ARRAY8)(unsafe.Pointer(array)).Fdata) != 0) { 7084 return FALSE 7085 } 7086 for i = 0; i < int32((*X_ARRAY8)(unsafe.Pointer(array)).Flength); i++ { 7087 if !(XXdmcpReadCARD8(tls, buffer, (*X_ARRAY8)(unsafe.Pointer(array)).Fdata+uintptr(i)) != 0) { 7088 libc.Xfree(tls, (*X_ARRAY8)(unsafe.Pointer(array)).Fdata) 7089 (*X_ARRAY8)(unsafe.Pointer(array)).Fdata = uintptr(0) 7090 (*X_ARRAY8)(unsafe.Pointer(array)).Flength = CARD16(0) 7091 return FALSE 7092 } 7093 } 7094 return TRUE 7095 } 7096 7097 func XXdmcpReadARRAY16(tls *libc.TLS, buffer XdmcpBufferPtr, array ARRAY16Ptr) int32 { /* Read.c:90:1: */ 7098 var i int32 7099 7100 // When returning FALSE, guarantee that array->data = 0. 7101 // This allows the user to safely call XdmcpDisposeARRAY16(array) 7102 // regardless of the return value below. 7103 // Note that XdmcpDisposeARRAY*(array) will call free(array->data), 7104 // so we must guarantee that array->data is NULL or a malloced pointer. 7105 if !(XXdmcpReadCARD8(tls, buffer, array) != 0) { 7106 (*X_ARRAY16)(unsafe.Pointer(array)).Fdata = uintptr(0) 7107 return FALSE 7108 } 7109 if !(int32((*X_ARRAY16)(unsafe.Pointer(array)).Flength) != 0) { 7110 (*X_ARRAY16)(unsafe.Pointer(array)).Fdata = uintptr(0) 7111 return TRUE 7112 } 7113 (*X_ARRAY16)(unsafe.Pointer(array)).Fdata = libc.Xmalloc(tls, uint64((*X_ARRAY16)(unsafe.Pointer(array)).Flength)*uint64(unsafe.Sizeof(CARD16(0)))) 7114 if !(int32((*X_ARRAY16)(unsafe.Pointer(array)).Fdata) != 0) { 7115 return FALSE 7116 } 7117 for i = 0; i < int32((*X_ARRAY16)(unsafe.Pointer(array)).Flength); i++ { 7118 if !(XXdmcpReadCARD16(tls, buffer, (*X_ARRAY16)(unsafe.Pointer(array)).Fdata+uintptr(i)*2) != 0) { 7119 libc.Xfree(tls, (*X_ARRAY16)(unsafe.Pointer(array)).Fdata) 7120 (*X_ARRAY16)(unsafe.Pointer(array)).Fdata = uintptr(0) 7121 (*X_ARRAY16)(unsafe.Pointer(array)).Flength = CARD8(0) 7122 return FALSE 7123 } 7124 } 7125 return TRUE 7126 } 7127 7128 func XXdmcpReadARRAY32(tls *libc.TLS, buffer XdmcpBufferPtr, array ARRAY32Ptr) int32 { /* Read.c:127:1: */ 7129 var i int32 7130 7131 // When returning FALSE, guarantee that array->data = 0. 7132 // This allows the user to safely call XdmcpDisposeARRAY32(array) 7133 // regardless of the return value below. 7134 // Note that XdmcpDisposeARRAY*(array) will call free(array->data), 7135 // so we must guarantee that array->data is NULL or a malloced pointer. 7136 if !(XXdmcpReadCARD8(tls, buffer, array) != 0) { 7137 (*X_ARRAY32)(unsafe.Pointer(array)).Fdata = uintptr(0) 7138 return FALSE 7139 } 7140 if !(int32((*X_ARRAY32)(unsafe.Pointer(array)).Flength) != 0) { 7141 (*X_ARRAY32)(unsafe.Pointer(array)).Fdata = uintptr(0) 7142 return TRUE 7143 } 7144 (*X_ARRAY32)(unsafe.Pointer(array)).Fdata = libc.Xmalloc(tls, uint64((*X_ARRAY32)(unsafe.Pointer(array)).Flength)*uint64(unsafe.Sizeof(CARD32(0)))) 7145 if !(int32((*X_ARRAY32)(unsafe.Pointer(array)).Fdata) != 0) { 7146 return FALSE 7147 } 7148 for i = 0; i < int32((*X_ARRAY32)(unsafe.Pointer(array)).Flength); i++ { 7149 if !(XXdmcpReadCARD32(tls, buffer, (*X_ARRAY32)(unsafe.Pointer(array)).Fdata+uintptr(i)*4) != 0) { 7150 libc.Xfree(tls, (*X_ARRAY32)(unsafe.Pointer(array)).Fdata) 7151 (*X_ARRAY32)(unsafe.Pointer(array)).Fdata = uintptr(0) 7152 (*X_ARRAY32)(unsafe.Pointer(array)).Flength = CARD8(0) 7153 return FALSE 7154 } 7155 } 7156 return TRUE 7157 } 7158 7159 func XXdmcpReadARRAYofARRAY8(tls *libc.TLS, buffer XdmcpBufferPtr, array ARRAYofARRAY8Ptr) int32 { /* Read.c:164:1: */ 7160 var i CARD8 7161 7162 // When returning FALSE, guarantee that array->data = 0. 7163 // This allows the user to safely call XdmcpDisposeARRAYofARRAY8(array) 7164 // regardless of the return value below. 7165 // Note that XdmcpDisposeARRAY*(array) will call free(array->data), 7166 // so we must guarantee that array->data is NULL or a malloced pointer. 7167 if !(XXdmcpReadCARD8(tls, buffer, array) != 0) { 7168 (*X_ARRAYofARRAY8)(unsafe.Pointer(array)).Fdata = uintptr(0) 7169 return FALSE 7170 } 7171 if !(int32((*X_ARRAYofARRAY8)(unsafe.Pointer(array)).Flength) != 0) { 7172 (*X_ARRAYofARRAY8)(unsafe.Pointer(array)).Fdata = uintptr(0) 7173 return TRUE 7174 } 7175 (*X_ARRAYofARRAY8)(unsafe.Pointer(array)).Fdata = libc.Xmalloc(tls, uint64((*X_ARRAYofARRAY8)(unsafe.Pointer(array)).Flength)*uint64(unsafe.Sizeof(ARRAY8{}))) 7176 if !(int32((*X_ARRAYofARRAY8)(unsafe.Pointer(array)).Fdata) != 0) { 7177 return FALSE 7178 } 7179 for i = CARD8(0); int32(i) < int32((*X_ARRAYofARRAY8)(unsafe.Pointer(array)).Flength); i++ { 7180 if !(XXdmcpReadARRAY8(tls, buffer, (*X_ARRAYofARRAY8)(unsafe.Pointer(array)).Fdata+uintptr(i)*16) != 0) { 7181 // We must free all of the arrays allocated thus far in the loop 7182 // and free array->data and finally set array->data = 0; 7183 // The easiest way to do this is to reset the length and call 7184 // XdmcpDisposeARRAYofARRAY8(array). 7185 (*X_ARRAYofARRAY8)(unsafe.Pointer(array)).Flength = i 7186 XXdmcpDisposeARRAYofARRAY8(tls, array) 7187 return FALSE 7188 } 7189 } 7190 return TRUE 7191 } 7192 7193 func XXdmcpReadCARD8(tls *libc.TLS, buffer XdmcpBufferPtr, valuep CARD8Ptr) int32 { /* Read.c:206:1: */ 7194 if (*X_XdmcpBuffer)(unsafe.Pointer(buffer)).Fpointer >= (*X_XdmcpBuffer)(unsafe.Pointer(buffer)).Fcount { 7195 return FALSE 7196 } 7197 *(*CARD8)(unsafe.Pointer(valuep)) = *(*BYTE)(unsafe.Pointer((*X_XdmcpBuffer)(unsafe.Pointer(buffer)).Fdata + uintptr(libc.PostIncInt32(&(*X_XdmcpBuffer)(unsafe.Pointer(buffer)).Fpointer, 1)))) 7198 return TRUE 7199 } 7200 7201 func XXdmcpReadCARD16(tls *libc.TLS, buffer XdmcpBufferPtr, valuep CARD16Ptr) int32 { /* Read.c:215:1: */ 7202 bp := tls.Alloc(2) 7203 defer tls.Free(2) 7204 7205 // var high CARD8 at bp, 1 7206 7207 // var low CARD8 at bp+1, 1 7208 7209 if XXdmcpReadCARD8(tls, buffer, bp) != 0 && XXdmcpReadCARD8(tls, buffer, bp+1) != 0 { 7210 *(*CARD16)(unsafe.Pointer(valuep)) = CARD16(int32(CARD16(*(*CARD8)(unsafe.Pointer(bp))))<<8 | int32(CARD16(*(*CARD8)(unsafe.Pointer(bp + 1))))) 7211 return TRUE 7212 } 7213 return FALSE 7214 } 7215 7216 func XXdmcpReadCARD32(tls *libc.TLS, buffer XdmcpBufferPtr, valuep CARD32Ptr) int32 { /* Read.c:229:1: */ 7217 bp := tls.Alloc(4) 7218 defer tls.Free(4) 7219 7220 // var byte0 CARD8 at bp, 1 7221 7222 // var byte1 CARD8 at bp+1, 1 7223 7224 // var byte2 CARD8 at bp+2, 1 7225 7226 // var byte3 CARD8 at bp+3, 1 7227 7228 if XXdmcpReadCARD8(tls, buffer, bp) != 0 && XXdmcpReadCARD8(tls, buffer, bp+1) != 0 && XXdmcpReadCARD8(tls, buffer, bp+2) != 0 && XXdmcpReadCARD8(tls, buffer, bp+3) != 0 { 7229 *(*CARD32)(unsafe.Pointer(valuep)) = CARD32(*(*CARD8)(unsafe.Pointer(bp)))<<24 | CARD32(*(*CARD8)(unsafe.Pointer(bp + 1)))<<16 | CARD32(*(*CARD8)(unsafe.Pointer(bp + 2)))<<8 | CARD32(*(*CARD8)(unsafe.Pointer(bp + 3))) 7230 return TRUE 7231 } 7232 return FALSE 7233 } 7234 7235 // The following function exists only to demonstrate the 7236 // desired functional interface for this routine. You will 7237 // need to add the appropriate algorithm if you wish to 7238 // use XDM-AUTHENTICATION-1/XDM-AUTHORIZATION-1. 7239 // 7240 // The interface for this routine is quite simple. All three 7241 // arguments are arrays of 8 unsigned characters, the first two 7242 // are 64 bits of useful data, the last is 56 bits of useful 7243 // data packed into 8 bytes, using the low 7 bits of each 7244 // byte, filling the high bit with odd parity. 7245 // 7246 // Examine the XDMCP specification for the correct algorithm 7247 7248 // header file for compatibility with something useful 7249 7250 type Auth_cblock = [8]uint8 /* Wrap.h:5:23 */ // block size 7251 7252 type Auth_ks_struct = struct{ F_ Auth_cblock } /* Wrap.h:7:9 */ 7253 7254 // block size 7255 7256 type Auth_wrapper_schedule = [16]Auth_ks_struct /* Wrap.h:7:50 */ 7257 7258 func XXdmcpUnwrap(tls *libc.TLS, input uintptr, wrapper uintptr, output uintptr, bytes int32) { /* Unwrap.c:55:1: */ 7259 bp := tls.Alloc(160) 7260 defer tls.Free(160) 7261 7262 var i int32 7263 var j int32 7264 var k int32 7265 // var tmp [8]uint8 at bp+152, 8 7266 7267 // var blocks [2][8]uint8 at bp+136, 16 7268 7269 // var expand_wrapper [8]uint8 at bp, 8 7270 7271 // var schedule Auth_wrapper_schedule at bp+8, 128 7272 7273 X_XdmcpWrapperToOddParity(tls, wrapper, bp) 7274 X_XdmcpAuthSetup(tls, bp, bp+8) 7275 7276 k = 0 7277 for j = 0; j < bytes; j = j + 8 { 7278 if bytes-j < 8 { 7279 return 7280 } // bad input length 7281 for i = 0; i < 8; i++ { 7282 *(*uint8)(unsafe.Pointer(bp + 136 + uintptr(k)*8 + uintptr(i))) = *(*uint8)(unsafe.Pointer(input + uintptr(j+i))) 7283 } 7284 X_XdmcpAuthDoIt(tls, input+uintptr(j), bp+152, bp+8, 0) 7285 // block chaining 7286 if k == 0 { 7287 k = 1 7288 } else { 7289 k = 0 7290 } 7291 for i = 0; i < 8; i++ { 7292 if j == 0 { 7293 *(*uint8)(unsafe.Pointer(output + uintptr(j+i))) = *(*uint8)(unsafe.Pointer(bp + 152 + uintptr(i))) 7294 } else { 7295 *(*uint8)(unsafe.Pointer(output + uintptr(j+i))) = uint8(int32(*(*uint8)(unsafe.Pointer(bp + 152 + uintptr(i)))) ^ int32(*(*uint8)(unsafe.Pointer(bp + 136 + uintptr(k)*8 + uintptr(i))))) 7296 } 7297 } 7298 } 7299 } 7300 7301 func XXdmcpWrap(tls *libc.TLS, input uintptr, wrapper uintptr, output uintptr, bytes int32) { /* Wrap.c:49:1: */ 7302 bp := tls.Alloc(144) 7303 defer tls.Free(144) 7304 7305 var i int32 7306 var j int32 7307 var len int32 7308 // var tmp [8]uint8 at bp+136, 8 7309 7310 // var expand_wrapper [8]uint8 at bp, 8 7311 7312 // var schedule Auth_wrapper_schedule at bp+8, 128 7313 7314 X_XdmcpWrapperToOddParity(tls, wrapper, bp) 7315 X_XdmcpAuthSetup(tls, bp, bp+8) 7316 for j = 0; j < bytes; j = j + 8 { 7317 len = 8 7318 if bytes-j < len { 7319 len = bytes - j 7320 } 7321 // block chaining 7322 for i = 0; i < len; i++ { 7323 if j == 0 { 7324 *(*uint8)(unsafe.Pointer(bp + 136 + uintptr(i))) = *(*uint8)(unsafe.Pointer(input + uintptr(i))) 7325 } else { 7326 *(*uint8)(unsafe.Pointer(bp + 136 + uintptr(i))) = uint8(int32(*(*uint8)(unsafe.Pointer(input + uintptr(j+i)))) ^ int32(*(*uint8)(unsafe.Pointer(output + uintptr(j-8+i))))) 7327 } 7328 } 7329 for ; i < 8; i++ { 7330 if j == 0 { 7331 *(*uint8)(unsafe.Pointer(bp + 136 + uintptr(i))) = uint8(0) 7332 } else { 7333 *(*uint8)(unsafe.Pointer(bp + 136 + uintptr(i))) = uint8(0 ^ int32(*(*uint8)(unsafe.Pointer(output + uintptr(j-8+i))))) 7334 } 7335 } 7336 X_XdmcpAuthDoIt(tls, bp+136, output+uintptr(j), bp+8, 1) 7337 } 7338 } 7339 7340 // Given a 56 bit wrapper in XDMCP format, create a 56 7341 // bit wrapper in 7-bits + odd parity format 7342 7343 func sOddParity(tls *libc.TLS, c uint8) int32 { /* Wrap.c:93:1: */ 7344 c = uint8(int32(c) ^ int32(c)>>4) 7345 c = uint8(int32(c) ^ int32(c)>>2) 7346 c = uint8(int32(c) ^ int32(c)>>1) 7347 return ^int32(c) & 0x1 7348 } 7349 7350 // Spread the 56 bit wrapper among 8 bytes, using the upper 7 bits 7351 // of each byte, and storing an odd parity bit in the low bit 7352 7353 func X_XdmcpWrapperToOddParity(tls *libc.TLS, in uintptr, out uintptr) { /* Wrap.c:107:1: */ 7354 var ashift int32 7355 var bshift int32 7356 var i int32 7357 var c uint8 7358 7359 ashift = 7 7360 bshift = 1 7361 for i = 0; i < 7; i++ { 7362 c = uint8((int32(*(*uint8)(unsafe.Pointer(in + uintptr(i))))<<ashift | int32(*(*uint8)(unsafe.Pointer(in + uintptr(i+1))))>>bshift) & 0x7f) 7363 *(*uint8)(unsafe.Pointer(out + uintptr(i))) = uint8(int32(c)<<1 | sOddParity(tls, c)) 7364 ashift-- 7365 bshift++ 7366 } 7367 c = *(*uint8)(unsafe.Pointer(in + uintptr(i))) 7368 *(*uint8)(unsafe.Pointer(out + uintptr(i))) = uint8(int32(c)<<1 | sOddParity(tls, c)) 7369 } 7370 7371 // des routines for non-usa - eay 10/9/1991 eay@psych.psy.uq.oz.au 7372 // These routines were written for speed not size so they are bigger than 7373 // needed. I have removed some of the loop unrolling, this will reduce 7374 // code size at the expense of some speed. 7375 // 25/9/1991 eay - much faster _XdmcpAuthSetup (4 times faster). 7376 // 19/9/1991 eay - cleaned up the IP and FP code. 7377 // 10/9/1991 eay - first release. 7378 // The des routines this file has been made from can be found in 7379 // ftp.psy.uq.oz.au /pub/DES 7380 // This particular version derived from OpenBSD Revsion 1.3. 7381 7382 // 7383 // Export Requirements. 7384 // You may not export or re-export this software or any copy or 7385 // adaptation in violation of any applicable laws or regulations. 7386 // 7387 // Without limiting the generality of the foregoing, hardware, software, 7388 // technology or services provided under this license agreement may not 7389 // be exported, reexported, transferred or downloaded to or within (or to 7390 // a national resident of) countries under U.S. economic embargo 7391 // including the following countries: 7392 // 7393 // Cuba, Iran, Libya, North Korea, Sudan and Syria. This list is subject 7394 // to change. 7395 // 7396 // Hardware, software, technology or services may not be exported, 7397 // reexported, transferred or downloaded to persons or entities listed on 7398 // the U.S. Department of Commerce Denied Persons List, Entity List of 7399 // proliferation concern or on any U.S. Treasury Department Designated 7400 // Nationals exclusion list, or to parties directly or indirectly 7401 // involved in the development or production of nuclear, chemical, 7402 // biological weapons or in missile technology programs as specified in 7403 // the U.S. Export Administration Regulations (15 CFR 744). 7404 // 7405 // By accepting this license agreement you confirm that you are not 7406 // located in (or a national resident of) any country under U.S. economic 7407 // embargo, not identified on any U.S. Department of Commerce Denied 7408 // Persons List, Entity List or Treasury Department Designated Nationals 7409 // exclusion list, and not directly or indirectly involved in the 7410 // development or production of nuclear, chemical, biological weapons or 7411 // in missile technology programs as specified in the U.S. Export 7412 // Administration Regulations. 7413 // 7414 // 7415 // Local Country Import Requirements. The software you are about to 7416 // download contains cryptography technology. Some countries regulate the 7417 // import, use and/or export of certain products with cryptography. The 7418 // X.org Foundation makes no claims as to the applicability of local 7419 // country import, use and/or export regulations in relation to the 7420 // download of this product. If you are located outside the U.S. and 7421 // Canada you are advised to consult your local country regulations to 7422 // insure compliance. 7423 7424 var skb = [8][64]CARD32{ 7425 // for C bits (numbered as per FIPS 46) 1 2 3 4 5 6 7426 {CARD32(0x00000000), CARD32(0x00000010), CARD32(0x20000000), CARD32(0x20000010), 7427 CARD32(0x00010000), CARD32(0x00010010), CARD32(0x20010000), CARD32(0x20010010), 7428 CARD32(0x00000800), CARD32(0x00000810), CARD32(0x20000800), CARD32(0x20000810), 7429 CARD32(0x00010800), CARD32(0x00010810), CARD32(0x20010800), CARD32(0x20010810), 7430 CARD32(0x00000020), CARD32(0x00000030), CARD32(0x20000020), CARD32(0x20000030), 7431 CARD32(0x00010020), CARD32(0x00010030), CARD32(0x20010020), CARD32(0x20010030), 7432 CARD32(0x00000820), CARD32(0x00000830), CARD32(0x20000820), CARD32(0x20000830), 7433 CARD32(0x00010820), CARD32(0x00010830), CARD32(0x20010820), CARD32(0x20010830), 7434 CARD32(0x00080000), CARD32(0x00080010), CARD32(0x20080000), CARD32(0x20080010), 7435 CARD32(0x00090000), CARD32(0x00090010), CARD32(0x20090000), CARD32(0x20090010), 7436 CARD32(0x00080800), CARD32(0x00080810), CARD32(0x20080800), CARD32(0x20080810), 7437 CARD32(0x00090800), CARD32(0x00090810), CARD32(0x20090800), CARD32(0x20090810), 7438 CARD32(0x00080020), CARD32(0x00080030), CARD32(0x20080020), CARD32(0x20080030), 7439 CARD32(0x00090020), CARD32(0x00090030), CARD32(0x20090020), CARD32(0x20090030), 7440 CARD32(0x00080820), CARD32(0x00080830), CARD32(0x20080820), CARD32(0x20080830), 7441 CARD32(0x00090820), CARD32(0x00090830), CARD32(0x20090820), CARD32(0x20090830)}, 7442 // for C bits (numbered as per FIPS 46) 7 8 10 11 12 13 7443 {CARD32(0x00000000), CARD32(0x02000000), CARD32(0x00002000), CARD32(0x02002000), 7444 CARD32(0x00200000), CARD32(0x02200000), CARD32(0x00202000), CARD32(0x02202000), 7445 CARD32(0x00000004), CARD32(0x02000004), CARD32(0x00002004), CARD32(0x02002004), 7446 CARD32(0x00200004), CARD32(0x02200004), CARD32(0x00202004), CARD32(0x02202004), 7447 CARD32(0x00000400), CARD32(0x02000400), CARD32(0x00002400), CARD32(0x02002400), 7448 CARD32(0x00200400), CARD32(0x02200400), CARD32(0x00202400), CARD32(0x02202400), 7449 CARD32(0x00000404), CARD32(0x02000404), CARD32(0x00002404), CARD32(0x02002404), 7450 CARD32(0x00200404), CARD32(0x02200404), CARD32(0x00202404), CARD32(0x02202404), 7451 CARD32(0x10000000), CARD32(0x12000000), CARD32(0x10002000), CARD32(0x12002000), 7452 CARD32(0x10200000), CARD32(0x12200000), CARD32(0x10202000), CARD32(0x12202000), 7453 CARD32(0x10000004), CARD32(0x12000004), CARD32(0x10002004), CARD32(0x12002004), 7454 CARD32(0x10200004), CARD32(0x12200004), CARD32(0x10202004), CARD32(0x12202004), 7455 CARD32(0x10000400), CARD32(0x12000400), CARD32(0x10002400), CARD32(0x12002400), 7456 CARD32(0x10200400), CARD32(0x12200400), CARD32(0x10202400), CARD32(0x12202400), 7457 CARD32(0x10000404), CARD32(0x12000404), CARD32(0x10002404), CARD32(0x12002404), 7458 CARD32(0x10200404), CARD32(0x12200404), CARD32(0x10202404), CARD32(0x12202404)}, 7459 // for C bits (numbered as per FIPS 46) 14 15 16 17 19 20 7460 {CARD32(0x00000000), CARD32(0x00000001), CARD32(0x00040000), CARD32(0x00040001), 7461 CARD32(0x01000000), CARD32(0x01000001), CARD32(0x01040000), CARD32(0x01040001), 7462 CARD32(0x00000002), CARD32(0x00000003), CARD32(0x00040002), CARD32(0x00040003), 7463 CARD32(0x01000002), CARD32(0x01000003), CARD32(0x01040002), CARD32(0x01040003), 7464 CARD32(0x00000200), CARD32(0x00000201), CARD32(0x00040200), CARD32(0x00040201), 7465 CARD32(0x01000200), CARD32(0x01000201), CARD32(0x01040200), CARD32(0x01040201), 7466 CARD32(0x00000202), CARD32(0x00000203), CARD32(0x00040202), CARD32(0x00040203), 7467 CARD32(0x01000202), CARD32(0x01000203), CARD32(0x01040202), CARD32(0x01040203), 7468 CARD32(0x08000000), CARD32(0x08000001), CARD32(0x08040000), CARD32(0x08040001), 7469 CARD32(0x09000000), CARD32(0x09000001), CARD32(0x09040000), CARD32(0x09040001), 7470 CARD32(0x08000002), CARD32(0x08000003), CARD32(0x08040002), CARD32(0x08040003), 7471 CARD32(0x09000002), CARD32(0x09000003), CARD32(0x09040002), CARD32(0x09040003), 7472 CARD32(0x08000200), CARD32(0x08000201), CARD32(0x08040200), CARD32(0x08040201), 7473 CARD32(0x09000200), CARD32(0x09000201), CARD32(0x09040200), CARD32(0x09040201), 7474 CARD32(0x08000202), CARD32(0x08000203), CARD32(0x08040202), CARD32(0x08040203), 7475 CARD32(0x09000202), CARD32(0x09000203), CARD32(0x09040202), CARD32(0x09040203)}, 7476 // for C bits (numbered as per FIPS 46) 21 23 24 26 27 28 7477 {CARD32(0x00000000), CARD32(0x00100000), CARD32(0x00000100), CARD32(0x00100100), 7478 CARD32(0x00000008), CARD32(0x00100008), CARD32(0x00000108), CARD32(0x00100108), 7479 CARD32(0x00001000), CARD32(0x00101000), CARD32(0x00001100), CARD32(0x00101100), 7480 CARD32(0x00001008), CARD32(0x00101008), CARD32(0x00001108), CARD32(0x00101108), 7481 CARD32(0x04000000), CARD32(0x04100000), CARD32(0x04000100), CARD32(0x04100100), 7482 CARD32(0x04000008), CARD32(0x04100008), CARD32(0x04000108), CARD32(0x04100108), 7483 CARD32(0x04001000), CARD32(0x04101000), CARD32(0x04001100), CARD32(0x04101100), 7484 CARD32(0x04001008), CARD32(0x04101008), CARD32(0x04001108), CARD32(0x04101108), 7485 CARD32(0x00020000), CARD32(0x00120000), CARD32(0x00020100), CARD32(0x00120100), 7486 CARD32(0x00020008), CARD32(0x00120008), CARD32(0x00020108), CARD32(0x00120108), 7487 CARD32(0x00021000), CARD32(0x00121000), CARD32(0x00021100), CARD32(0x00121100), 7488 CARD32(0x00021008), CARD32(0x00121008), CARD32(0x00021108), CARD32(0x00121108), 7489 CARD32(0x04020000), CARD32(0x04120000), CARD32(0x04020100), CARD32(0x04120100), 7490 CARD32(0x04020008), CARD32(0x04120008), CARD32(0x04020108), CARD32(0x04120108), 7491 CARD32(0x04021000), CARD32(0x04121000), CARD32(0x04021100), CARD32(0x04121100), 7492 CARD32(0x04021008), CARD32(0x04121008), CARD32(0x04021108), CARD32(0x04121108)}, 7493 // for D bits (numbered as per FIPS 46) 1 2 3 4 5 6 7494 {CARD32(0x00000000), CARD32(0x10000000), CARD32(0x00010000), CARD32(0x10010000), 7495 CARD32(0x00000004), CARD32(0x10000004), CARD32(0x00010004), CARD32(0x10010004), 7496 CARD32(0x20000000), CARD32(0x30000000), CARD32(0x20010000), CARD32(0x30010000), 7497 CARD32(0x20000004), CARD32(0x30000004), CARD32(0x20010004), CARD32(0x30010004), 7498 CARD32(0x00100000), CARD32(0x10100000), CARD32(0x00110000), CARD32(0x10110000), 7499 CARD32(0x00100004), CARD32(0x10100004), CARD32(0x00110004), CARD32(0x10110004), 7500 CARD32(0x20100000), CARD32(0x30100000), CARD32(0x20110000), CARD32(0x30110000), 7501 CARD32(0x20100004), CARD32(0x30100004), CARD32(0x20110004), CARD32(0x30110004), 7502 CARD32(0x00001000), CARD32(0x10001000), CARD32(0x00011000), CARD32(0x10011000), 7503 CARD32(0x00001004), CARD32(0x10001004), CARD32(0x00011004), CARD32(0x10011004), 7504 CARD32(0x20001000), CARD32(0x30001000), CARD32(0x20011000), CARD32(0x30011000), 7505 CARD32(0x20001004), CARD32(0x30001004), CARD32(0x20011004), CARD32(0x30011004), 7506 CARD32(0x00101000), CARD32(0x10101000), CARD32(0x00111000), CARD32(0x10111000), 7507 CARD32(0x00101004), CARD32(0x10101004), CARD32(0x00111004), CARD32(0x10111004), 7508 CARD32(0x20101000), CARD32(0x30101000), CARD32(0x20111000), CARD32(0x30111000), 7509 CARD32(0x20101004), CARD32(0x30101004), CARD32(0x20111004), CARD32(0x30111004)}, 7510 // for D bits (numbered as per FIPS 46) 8 9 11 12 13 14 7511 {CARD32(0x00000000), CARD32(0x08000000), CARD32(0x00000008), CARD32(0x08000008), 7512 CARD32(0x00000400), CARD32(0x08000400), CARD32(0x00000408), CARD32(0x08000408), 7513 CARD32(0x00020000), CARD32(0x08020000), CARD32(0x00020008), CARD32(0x08020008), 7514 CARD32(0x00020400), CARD32(0x08020400), CARD32(0x00020408), CARD32(0x08020408), 7515 CARD32(0x00000001), CARD32(0x08000001), CARD32(0x00000009), CARD32(0x08000009), 7516 CARD32(0x00000401), CARD32(0x08000401), CARD32(0x00000409), CARD32(0x08000409), 7517 CARD32(0x00020001), CARD32(0x08020001), CARD32(0x00020009), CARD32(0x08020009), 7518 CARD32(0x00020401), CARD32(0x08020401), CARD32(0x00020409), CARD32(0x08020409), 7519 CARD32(0x02000000), CARD32(0x0A000000), CARD32(0x02000008), CARD32(0x0A000008), 7520 CARD32(0x02000400), CARD32(0x0A000400), CARD32(0x02000408), CARD32(0x0A000408), 7521 CARD32(0x02020000), CARD32(0x0A020000), CARD32(0x02020008), CARD32(0x0A020008), 7522 CARD32(0x02020400), CARD32(0x0A020400), CARD32(0x02020408), CARD32(0x0A020408), 7523 CARD32(0x02000001), CARD32(0x0A000001), CARD32(0x02000009), CARD32(0x0A000009), 7524 CARD32(0x02000401), CARD32(0x0A000401), CARD32(0x02000409), CARD32(0x0A000409), 7525 CARD32(0x02020001), CARD32(0x0A020001), CARD32(0x02020009), CARD32(0x0A020009), 7526 CARD32(0x02020401), CARD32(0x0A020401), CARD32(0x02020409), CARD32(0x0A020409)}, 7527 // for D bits (numbered as per FIPS 46) 16 17 18 19 20 21 7528 {CARD32(0x00000000), CARD32(0x00000100), CARD32(0x00080000), CARD32(0x00080100), 7529 CARD32(0x01000000), CARD32(0x01000100), CARD32(0x01080000), CARD32(0x01080100), 7530 CARD32(0x00000010), CARD32(0x00000110), CARD32(0x00080010), CARD32(0x00080110), 7531 CARD32(0x01000010), CARD32(0x01000110), CARD32(0x01080010), CARD32(0x01080110), 7532 CARD32(0x00200000), CARD32(0x00200100), CARD32(0x00280000), CARD32(0x00280100), 7533 CARD32(0x01200000), CARD32(0x01200100), CARD32(0x01280000), CARD32(0x01280100), 7534 CARD32(0x00200010), CARD32(0x00200110), CARD32(0x00280010), CARD32(0x00280110), 7535 CARD32(0x01200010), CARD32(0x01200110), CARD32(0x01280010), CARD32(0x01280110), 7536 CARD32(0x00000200), CARD32(0x00000300), CARD32(0x00080200), CARD32(0x00080300), 7537 CARD32(0x01000200), CARD32(0x01000300), CARD32(0x01080200), CARD32(0x01080300), 7538 CARD32(0x00000210), CARD32(0x00000310), CARD32(0x00080210), CARD32(0x00080310), 7539 CARD32(0x01000210), CARD32(0x01000310), CARD32(0x01080210), CARD32(0x01080310), 7540 CARD32(0x00200200), CARD32(0x00200300), CARD32(0x00280200), CARD32(0x00280300), 7541 CARD32(0x01200200), CARD32(0x01200300), CARD32(0x01280200), CARD32(0x01280300), 7542 CARD32(0x00200210), CARD32(0x00200310), CARD32(0x00280210), CARD32(0x00280310), 7543 CARD32(0x01200210), CARD32(0x01200310), CARD32(0x01280210), CARD32(0x01280310)}, 7544 // for D bits (numbered as per FIPS 46) 22 23 24 25 27 28 7545 {CARD32(0x00000000), CARD32(0x04000000), CARD32(0x00040000), CARD32(0x04040000), 7546 CARD32(0x00000002), CARD32(0x04000002), CARD32(0x00040002), CARD32(0x04040002), 7547 CARD32(0x00002000), CARD32(0x04002000), CARD32(0x00042000), CARD32(0x04042000), 7548 CARD32(0x00002002), CARD32(0x04002002), CARD32(0x00042002), CARD32(0x04042002), 7549 CARD32(0x00000020), CARD32(0x04000020), CARD32(0x00040020), CARD32(0x04040020), 7550 CARD32(0x00000022), CARD32(0x04000022), CARD32(0x00040022), CARD32(0x04040022), 7551 CARD32(0x00002020), CARD32(0x04002020), CARD32(0x00042020), CARD32(0x04042020), 7552 CARD32(0x00002022), CARD32(0x04002022), CARD32(0x00042022), CARD32(0x04042022), 7553 CARD32(0x00000800), CARD32(0x04000800), CARD32(0x00040800), CARD32(0x04040800), 7554 CARD32(0x00000802), CARD32(0x04000802), CARD32(0x00040802), CARD32(0x04040802), 7555 CARD32(0x00002800), CARD32(0x04002800), CARD32(0x00042800), CARD32(0x04042800), 7556 CARD32(0x00002802), CARD32(0x04002802), CARD32(0x00042802), CARD32(0x04042802), 7557 CARD32(0x00000820), CARD32(0x04000820), CARD32(0x00040820), CARD32(0x04040820), 7558 CARD32(0x00000822), CARD32(0x04000822), CARD32(0x00040822), CARD32(0x04040822), 7559 CARD32(0x00002820), CARD32(0x04002820), CARD32(0x00042820), CARD32(0x04042820), 7560 CARD32(0x00002822), CARD32(0x04002822), CARD32(0x00042822), CARD32(0x04042822)}, 7561 } /* Wraphelp.c:64:21 */ 7562 7563 var sSPtrans = [8][64]CARD32{ 7564 // nibble 0 7565 {CARD32(0x00410100), CARD32(0x00010000), CARD32(0x40400000), CARD32(0x40410100), 7566 CARD32(0x00400000), CARD32(0x40010100), CARD32(0x40010000), CARD32(0x40400000), 7567 CARD32(0x40010100), CARD32(0x00410100), CARD32(0x00410000), CARD32(0x40000100), 7568 CARD32(0x40400100), CARD32(0x00400000), CARD32(0x00000000), CARD32(0x40010000), 7569 CARD32(0x00010000), CARD32(0x40000000), CARD32(0x00400100), CARD32(0x00010100), 7570 CARD32(0x40410100), CARD32(0x00410000), CARD32(0x40000100), CARD32(0x00400100), 7571 CARD32(0x40000000), CARD32(0x00000100), CARD32(0x00010100), CARD32(0x40410000), 7572 CARD32(0x00000100), CARD32(0x40400100), CARD32(0x40410000), CARD32(0x00000000), 7573 CARD32(0x00000000), CARD32(0x40410100), CARD32(0x00400100), CARD32(0x40010000), 7574 CARD32(0x00410100), CARD32(0x00010000), CARD32(0x40000100), CARD32(0x00400100), 7575 CARD32(0x40410000), CARD32(0x00000100), CARD32(0x00010100), CARD32(0x40400000), 7576 CARD32(0x40010100), CARD32(0x40000000), CARD32(0x40400000), CARD32(0x00410000), 7577 CARD32(0x40410100), CARD32(0x00010100), CARD32(0x00410000), CARD32(0x40400100), 7578 CARD32(0x00400000), CARD32(0x40000100), CARD32(0x40010000), CARD32(0x00000000), 7579 CARD32(0x00010000), CARD32(0x00400000), CARD32(0x40400100), CARD32(0x00410100), 7580 CARD32(0x40000000), CARD32(0x40410000), CARD32(0x00000100), CARD32(0x40010100)}, 7581 7582 // nibble 1 7583 {CARD32(0x08021002), CARD32(0x00000000), CARD32(0x00021000), CARD32(0x08020000), 7584 CARD32(0x08000002), CARD32(0x00001002), CARD32(0x08001000), CARD32(0x00021000), 7585 CARD32(0x00001000), CARD32(0x08020002), CARD32(0x00000002), CARD32(0x08001000), 7586 CARD32(0x00020002), CARD32(0x08021000), CARD32(0x08020000), CARD32(0x00000002), 7587 CARD32(0x00020000), CARD32(0x08001002), CARD32(0x08020002), CARD32(0x00001000), 7588 CARD32(0x00021002), CARD32(0x08000000), CARD32(0x00000000), CARD32(0x00020002), 7589 CARD32(0x08001002), CARD32(0x00021002), CARD32(0x08021000), CARD32(0x08000002), 7590 CARD32(0x08000000), CARD32(0x00020000), CARD32(0x00001002), CARD32(0x08021002), 7591 CARD32(0x00020002), CARD32(0x08021000), CARD32(0x08001000), CARD32(0x00021002), 7592 CARD32(0x08021002), CARD32(0x00020002), CARD32(0x08000002), CARD32(0x00000000), 7593 CARD32(0x08000000), CARD32(0x00001002), CARD32(0x00020000), CARD32(0x08020002), 7594 CARD32(0x00001000), CARD32(0x08000000), CARD32(0x00021002), CARD32(0x08001002), 7595 CARD32(0x08021000), CARD32(0x00001000), CARD32(0x00000000), CARD32(0x08000002), 7596 CARD32(0x00000002), CARD32(0x08021002), CARD32(0x00021000), CARD32(0x08020000), 7597 CARD32(0x08020002), CARD32(0x00020000), CARD32(0x00001002), CARD32(0x08001000), 7598 CARD32(0x08001002), CARD32(0x00000002), CARD32(0x08020000), CARD32(0x00021000)}, 7599 7600 // nibble 2 7601 {CARD32(0x20800000), CARD32(0x00808020), CARD32(0x00000020), CARD32(0x20800020), 7602 CARD32(0x20008000), CARD32(0x00800000), CARD32(0x20800020), CARD32(0x00008020), 7603 CARD32(0x00800020), CARD32(0x00008000), CARD32(0x00808000), CARD32(0x20000000), 7604 CARD32(0x20808020), CARD32(0x20000020), CARD32(0x20000000), CARD32(0x20808000), 7605 CARD32(0x00000000), CARD32(0x20008000), CARD32(0x00808020), CARD32(0x00000020), 7606 CARD32(0x20000020), CARD32(0x20808020), CARD32(0x00008000), CARD32(0x20800000), 7607 CARD32(0x20808000), CARD32(0x00800020), CARD32(0x20008020), CARD32(0x00808000), 7608 CARD32(0x00008020), CARD32(0x00000000), CARD32(0x00800000), CARD32(0x20008020), 7609 CARD32(0x00808020), CARD32(0x00000020), CARD32(0x20000000), CARD32(0x00008000), 7610 CARD32(0x20000020), CARD32(0x20008000), CARD32(0x00808000), CARD32(0x20800020), 7611 CARD32(0x00000000), CARD32(0x00808020), CARD32(0x00008020), CARD32(0x20808000), 7612 CARD32(0x20008000), CARD32(0x00800000), CARD32(0x20808020), CARD32(0x20000000), 7613 CARD32(0x20008020), CARD32(0x20800000), CARD32(0x00800000), CARD32(0x20808020), 7614 CARD32(0x00008000), CARD32(0x00800020), CARD32(0x20800020), CARD32(0x00008020), 7615 CARD32(0x00800020), CARD32(0x00000000), CARD32(0x20808000), CARD32(0x20000020), 7616 CARD32(0x20800000), CARD32(0x20008020), CARD32(0x00000020), CARD32(0x00808000)}, 7617 7618 // nibble 3 7619 {CARD32(0x00080201), CARD32(0x02000200), CARD32(0x00000001), CARD32(0x02080201), 7620 CARD32(0x00000000), CARD32(0x02080000), CARD32(0x02000201), CARD32(0x00080001), 7621 CARD32(0x02080200), CARD32(0x02000001), CARD32(0x02000000), CARD32(0x00000201), 7622 CARD32(0x02000001), CARD32(0x00080201), CARD32(0x00080000), CARD32(0x02000000), 7623 CARD32(0x02080001), CARD32(0x00080200), CARD32(0x00000200), CARD32(0x00000001), 7624 CARD32(0x00080200), CARD32(0x02000201), CARD32(0x02080000), CARD32(0x00000200), 7625 CARD32(0x00000201), CARD32(0x00000000), CARD32(0x00080001), CARD32(0x02080200), 7626 CARD32(0x02000200), CARD32(0x02080001), CARD32(0x02080201), CARD32(0x00080000), 7627 CARD32(0x02080001), CARD32(0x00000201), CARD32(0x00080000), CARD32(0x02000001), 7628 CARD32(0x00080200), CARD32(0x02000200), CARD32(0x00000001), CARD32(0x02080000), 7629 CARD32(0x02000201), CARD32(0x00000000), CARD32(0x00000200), CARD32(0x00080001), 7630 CARD32(0x00000000), CARD32(0x02080001), CARD32(0x02080200), CARD32(0x00000200), 7631 CARD32(0x02000000), CARD32(0x02080201), CARD32(0x00080201), CARD32(0x00080000), 7632 CARD32(0x02080201), CARD32(0x00000001), CARD32(0x02000200), CARD32(0x00080201), 7633 CARD32(0x00080001), CARD32(0x00080200), CARD32(0x02080000), CARD32(0x02000201), 7634 CARD32(0x00000201), CARD32(0x02000000), CARD32(0x02000001), CARD32(0x02080200)}, 7635 7636 // nibble 4 7637 {CARD32(0x01000000), CARD32(0x00002000), CARD32(0x00000080), CARD32(0x01002084), 7638 CARD32(0x01002004), CARD32(0x01000080), CARD32(0x00002084), CARD32(0x01002000), 7639 CARD32(0x00002000), CARD32(0x00000004), CARD32(0x01000004), CARD32(0x00002080), 7640 CARD32(0x01000084), CARD32(0x01002004), CARD32(0x01002080), CARD32(0x00000000), 7641 CARD32(0x00002080), CARD32(0x01000000), CARD32(0x00002004), CARD32(0x00000084), 7642 CARD32(0x01000080), CARD32(0x00002084), CARD32(0x00000000), CARD32(0x01000004), 7643 CARD32(0x00000004), CARD32(0x01000084), CARD32(0x01002084), CARD32(0x00002004), 7644 CARD32(0x01002000), CARD32(0x00000080), CARD32(0x00000084), CARD32(0x01002080), 7645 CARD32(0x01002080), CARD32(0x01000084), CARD32(0x00002004), CARD32(0x01002000), 7646 CARD32(0x00002000), CARD32(0x00000004), CARD32(0x01000004), CARD32(0x01000080), 7647 CARD32(0x01000000), CARD32(0x00002080), CARD32(0x01002084), CARD32(0x00000000), 7648 CARD32(0x00002084), CARD32(0x01000000), CARD32(0x00000080), CARD32(0x00002004), 7649 CARD32(0x01000084), CARD32(0x00000080), CARD32(0x00000000), CARD32(0x01002084), 7650 CARD32(0x01002004), CARD32(0x01002080), CARD32(0x00000084), CARD32(0x00002000), 7651 CARD32(0x00002080), CARD32(0x01002004), CARD32(0x01000080), CARD32(0x00000084), 7652 CARD32(0x00000004), CARD32(0x00002084), CARD32(0x01002000), CARD32(0x01000004)}, 7653 7654 // nibble 5 7655 {CARD32(0x10000008), CARD32(0x00040008), CARD32(0x00000000), CARD32(0x10040400), 7656 CARD32(0x00040008), CARD32(0x00000400), CARD32(0x10000408), CARD32(0x00040000), 7657 CARD32(0x00000408), CARD32(0x10040408), CARD32(0x00040400), CARD32(0x10000000), 7658 CARD32(0x10000400), CARD32(0x10000008), CARD32(0x10040000), CARD32(0x00040408), 7659 CARD32(0x00040000), CARD32(0x10000408), CARD32(0x10040008), CARD32(0x00000000), 7660 CARD32(0x00000400), CARD32(0x00000008), CARD32(0x10040400), CARD32(0x10040008), 7661 CARD32(0x10040408), CARD32(0x10040000), CARD32(0x10000000), CARD32(0x00000408), 7662 CARD32(0x00000008), CARD32(0x00040400), CARD32(0x00040408), CARD32(0x10000400), 7663 CARD32(0x00000408), CARD32(0x10000000), CARD32(0x10000400), CARD32(0x00040408), 7664 CARD32(0x10040400), CARD32(0x00040008), CARD32(0x00000000), CARD32(0x10000400), 7665 CARD32(0x10000000), CARD32(0x00000400), CARD32(0x10040008), CARD32(0x00040000), 7666 CARD32(0x00040008), CARD32(0x10040408), CARD32(0x00040400), CARD32(0x00000008), 7667 CARD32(0x10040408), CARD32(0x00040400), CARD32(0x00040000), CARD32(0x10000408), 7668 CARD32(0x10000008), CARD32(0x10040000), CARD32(0x00040408), CARD32(0x00000000), 7669 CARD32(0x00000400), CARD32(0x10000008), CARD32(0x10000408), CARD32(0x10040400), 7670 CARD32(0x10040000), CARD32(0x00000408), CARD32(0x00000008), CARD32(0x10040008)}, 7671 7672 // nibble 6 7673 {CARD32(0x00000800), CARD32(0x00000040), CARD32(0x00200040), 0x80200000, 7674 0x80200840, 0x80000800, CARD32(0x00000840), CARD32(0x00000000), 7675 CARD32(0x00200000), 0x80200040, 0x80000040, CARD32(0x00200800), 7676 0x80000000, CARD32(0x00200840), CARD32(0x00200800), 0x80000040, 7677 0x80200040, CARD32(0x00000800), 0x80000800, 0x80200840, 7678 CARD32(0x00000000), CARD32(0x00200040), 0x80200000, CARD32(0x00000840), 7679 0x80200800, 0x80000840, CARD32(0x00200840), 0x80000000, 7680 0x80000840, 0x80200800, CARD32(0x00000040), CARD32(0x00200000), 7681 0x80000840, CARD32(0x00200800), 0x80200800, 0x80000040, 7682 CARD32(0x00000800), CARD32(0x00000040), CARD32(0x00200000), 0x80200800, 7683 0x80200040, 0x80000840, CARD32(0x00000840), CARD32(0x00000000), 7684 CARD32(0x00000040), 0x80200000, 0x80000000, CARD32(0x00200040), 7685 CARD32(0x00000000), 0x80200040, CARD32(0x00200040), CARD32(0x00000840), 7686 0x80000040, CARD32(0x00000800), 0x80200840, CARD32(0x00200000), 7687 CARD32(0x00200840), 0x80000000, 0x80000800, 0x80200840, 7688 0x80200000, CARD32(0x00200840), CARD32(0x00200800), 0x80000800}, 7689 7690 // nibble 7 7691 {CARD32(0x04100010), CARD32(0x04104000), CARD32(0x00004010), CARD32(0x00000000), 7692 CARD32(0x04004000), CARD32(0x00100010), CARD32(0x04100000), CARD32(0x04104010), 7693 CARD32(0x00000010), CARD32(0x04000000), CARD32(0x00104000), CARD32(0x00004010), 7694 CARD32(0x00104010), CARD32(0x04004010), CARD32(0x04000010), CARD32(0x04100000), 7695 CARD32(0x00004000), CARD32(0x00104010), CARD32(0x00100010), CARD32(0x04004000), 7696 CARD32(0x04104010), CARD32(0x04000010), CARD32(0x00000000), CARD32(0x00104000), 7697 CARD32(0x04000000), CARD32(0x00100000), CARD32(0x04004010), CARD32(0x04100010), 7698 CARD32(0x00100000), CARD32(0x00004000), CARD32(0x04104000), CARD32(0x00000010), 7699 CARD32(0x00100000), CARD32(0x00004000), CARD32(0x04000010), CARD32(0x04104010), 7700 CARD32(0x00004010), CARD32(0x04000000), CARD32(0x00000000), CARD32(0x00104000), 7701 CARD32(0x04100010), CARD32(0x04004010), CARD32(0x04004000), CARD32(0x00100010), 7702 CARD32(0x04104000), CARD32(0x00000010), CARD32(0x00100010), CARD32(0x04004000), 7703 CARD32(0x04104010), CARD32(0x00100000), CARD32(0x04100000), CARD32(0x04000010), 7704 CARD32(0x00104000), CARD32(0x00004010), CARD32(0x04004010), CARD32(0x04100000), 7705 CARD32(0x00000010), CARD32(0x04104000), CARD32(0x00104010), CARD32(0x00000000), 7706 CARD32(0x04000000), CARD32(0x04100010), CARD32(0x00004000), CARD32(0x00104010)}, 7707 } /* Wraphelp.c:204:21 */ 7708 7709 var shifts2 = [16]uint8{uint8(0), uint8(0), uint8(1), uint8(1), uint8(1), uint8(1), uint8(1), uint8(1), uint8(0), uint8(1), uint8(1), uint8(1), uint8(1), uint8(1), uint8(1), uint8(0)} /* Wraphelp.c:370:19 */ 7710 7711 func X_XdmcpAuthSetup(tls *libc.TLS, key uintptr, schedule uintptr) { /* Wraphelp.c:372:6: */ 7712 var c CARD32 7713 var d CARD32 7714 var t CARD32 7715 var s CARD32 7716 var in uintptr 7717 var k uintptr 7718 var i int32 7719 7720 k = schedule 7721 in = key 7722 7723 c = CARD32(*(*CARD8)(unsafe.Pointer(libc.PostIncUintptr(&in, 1)))) 7724 c = c | CARD32(*(*CARD8)(unsafe.Pointer(libc.PostIncUintptr(&in, 1))))<<8 7725 c = c | CARD32(*(*CARD8)(unsafe.Pointer(libc.PostIncUintptr(&in, 1))))<<16 7726 c = c | CARD32(*(*CARD8)(unsafe.Pointer(libc.PostIncUintptr(&in, 1))))<<24 7727 d = CARD32(*(*CARD8)(unsafe.Pointer(libc.PostIncUintptr(&in, 1)))) 7728 d = d | CARD32(*(*CARD8)(unsafe.Pointer(libc.PostIncUintptr(&in, 1))))<<8 7729 d = d | CARD32(*(*CARD8)(unsafe.Pointer(libc.PostIncUintptr(&in, 1))))<<16 7730 d = d | CARD32(*(*CARD8)(unsafe.Pointer(libc.PostIncUintptr(&in, 1))))<<24 7731 7732 // do PC1 in 60 simple operations 7733 t = (d>>4 ^ c) & CARD32(0x0f0f0f0f) 7734 c = c ^ t 7735 d = d ^ t<<4 7736 t = (c<<(16 - -2) ^ c) & 0xcccc0000 7737 c = c ^ t ^ t>>(16 - -2) 7738 t = (c<<(16 - -1) ^ c) & 0xaaaa0000 7739 c = c ^ t ^ t>>(16 - -1) 7740 t = (c<<(16-8) ^ c) & CARD32(0x00ff0000) 7741 c = c ^ t ^ t>>(16-8) 7742 t = (c<<(16 - -1) ^ c) & 0xaaaa0000 7743 c = c ^ t ^ t>>(16 - -1) 7744 t = (d<<(16 - -8) ^ d) & 0xff000000 7745 d = d ^ t ^ t>>(16 - -8) 7746 t = (d<<(16-8) ^ d) & CARD32(0x00ff0000) 7747 d = d ^ t ^ t>>(16-8) 7748 t = (d<<(16-2) ^ d) & CARD32(0x33330000) 7749 d = d ^ t ^ t>>(16-2) 7750 d = d&CARD32(0x00aa00aa)<<7 | d&CARD32(0x55005500)>>7 | d&0xaa55aa55 7751 d = d>>8 | c&0xf0000000>>4 7752 c = c & CARD32(0x0fffffff) 7753 7754 for i = 0; i < ITERATIONS; i++ { 7755 if shifts2[i] != 0 { 7756 c = c>>2 | c<<26 7757 d = d>>2 | d<<26 7758 } else { 7759 c = c>>1 | c<<27 7760 d = d>>1 | d<<27 7761 } 7762 c = c & CARD32(0x0fffffff) 7763 d = d & CARD32(0x0fffffff) 7764 // could be a few less shifts but I am to lazy at this 7765 // point in time to investigate 7766 s = *(*CARD32)(unsafe.Pointer(uintptr(unsafe.Pointer(&skb)) + uintptr(c&CARD32(0x3f))*4)) | *(*CARD32)(unsafe.Pointer(uintptr(unsafe.Pointer(&skb)) + 1*256 + uintptr(c>>6&CARD32(0x03)|c>>7&CARD32(0x3c))*4)) | *(*CARD32)(unsafe.Pointer(uintptr(unsafe.Pointer(&skb)) + 2*256 + uintptr(c>>13&CARD32(0x0f)|c>>14&CARD32(0x30))*4)) | *(*CARD32)(unsafe.Pointer(uintptr(unsafe.Pointer(&skb)) + 3*256 + uintptr(c>>20&CARD32(0x01)|c>>21&CARD32(0x06)|c>>22&CARD32(0x38))*4)) 7767 t = *(*CARD32)(unsafe.Pointer(uintptr(unsafe.Pointer(&skb)) + 4*256 + uintptr(d&CARD32(0x3f))*4)) | *(*CARD32)(unsafe.Pointer(uintptr(unsafe.Pointer(&skb)) + 5*256 + uintptr(d>>7&CARD32(0x03)|d>>8&CARD32(0x3c))*4)) | *(*CARD32)(unsafe.Pointer(uintptr(unsafe.Pointer(&skb)) + 6*256 + uintptr(d>>15&CARD32(0x3f))*4)) | *(*CARD32)(unsafe.Pointer(uintptr(unsafe.Pointer(&skb)) + 7*256 + uintptr(d>>21&CARD32(0x0f)|d>>22&CARD32(0x30))*4)) 7768 7769 // table contained 0213 4657 7770 *(*CARD32)(unsafe.Pointer(libc.PostIncUintptr(&k, 4))) = t<<16 | s&CARD32(0x0000ffff) 7771 s = s>>16 | t&0xffff0000 7772 7773 s = s<<4 | s>>28 7774 *(*CARD32)(unsafe.Pointer(libc.PostIncUintptr(&k, 4))) = s 7775 } 7776 return 7777 } 7778 7779 func X_XdmcpAuthDoIt(tls *libc.TLS, input uintptr, output uintptr, ks uintptr, encrypt int32) { /* Wraphelp.c:443:6: */ 7780 var l CARD32 7781 var r CARD32 7782 var t CARD32 7783 var u CARD32 7784 var s uintptr 7785 var in uintptr 7786 var out uintptr 7787 var i int32 7788 7789 in = input 7790 out = output 7791 l = CARD32(*(*CARD8)(unsafe.Pointer(libc.PostIncUintptr(&in, 1)))) 7792 l = l | CARD32(*(*CARD8)(unsafe.Pointer(libc.PostIncUintptr(&in, 1))))<<8 7793 l = l | CARD32(*(*CARD8)(unsafe.Pointer(libc.PostIncUintptr(&in, 1))))<<16 7794 l = l | CARD32(*(*CARD8)(unsafe.Pointer(libc.PostIncUintptr(&in, 1))))<<24 7795 r = CARD32(*(*CARD8)(unsafe.Pointer(libc.PostIncUintptr(&in, 1)))) 7796 r = r | CARD32(*(*CARD8)(unsafe.Pointer(libc.PostIncUintptr(&in, 1))))<<8 7797 r = r | CARD32(*(*CARD8)(unsafe.Pointer(libc.PostIncUintptr(&in, 1))))<<16 7798 r = r | CARD32(*(*CARD8)(unsafe.Pointer(libc.PostIncUintptr(&in, 1))))<<24 7799 7800 // do IP 7801 t = (r>>4 ^ l) & CARD32(0x0f0f0f0f) 7802 l = l ^ t 7803 r = r ^ t<<4 7804 t = (l>>16 ^ r) & CARD32(0x0000ffff) 7805 r = r ^ t 7806 l = l ^ t<<16 7807 t = (r>>2 ^ l) & CARD32(0x33333333) 7808 l = l ^ t 7809 r = r ^ t<<2 7810 t = (l>>8 ^ r) & CARD32(0x00ff00ff) 7811 r = r ^ t 7812 l = l ^ t<<8 7813 t = (r>>1 ^ l) & CARD32(0x55555555) 7814 l = l ^ t 7815 r = r ^ t<<1 7816 // r and l are reversed - remember that :-) 7817 t = l 7818 l = r 7819 r = t 7820 7821 s = ks 7822 7823 if encrypt != 0 { 7824 for i = 0; i < ITERATIONS*2; i = i + 4 { 7825 t = r<<1 | r>>31 7826 u = t ^ *(*CARD32)(unsafe.Pointer(s + uintptr(i)*4)) 7827 t = t ^ *(*CARD32)(unsafe.Pointer(s + uintptr(i+1)*4)) 7828 t = t>>4 | t<<28 7829 l = l ^ (*(*CARD32)(unsafe.Pointer(uintptr(unsafe.Pointer(&sSPtrans)) + 1*256 + uintptr(t&CARD32(0x3f))*4)) | *(*CARD32)(unsafe.Pointer(uintptr(unsafe.Pointer(&sSPtrans)) + 3*256 + uintptr(t>>8&CARD32(0x3f))*4)) | *(*CARD32)(unsafe.Pointer(uintptr(unsafe.Pointer(&sSPtrans)) + 5*256 + uintptr(t>>16&CARD32(0x3f))*4)) | *(*CARD32)(unsafe.Pointer(uintptr(unsafe.Pointer(&sSPtrans)) + 7*256 + uintptr(t>>24&CARD32(0x3f))*4)) | *(*CARD32)(unsafe.Pointer(uintptr(unsafe.Pointer(&sSPtrans)) + uintptr(u&CARD32(0x3f))*4)) | *(*CARD32)(unsafe.Pointer(uintptr(unsafe.Pointer(&sSPtrans)) + 2*256 + uintptr(u>>8&CARD32(0x3f))*4)) | *(*CARD32)(unsafe.Pointer(uintptr(unsafe.Pointer(&sSPtrans)) + 4*256 + uintptr(u>>16&CARD32(0x3f))*4)) | *(*CARD32)(unsafe.Pointer(uintptr(unsafe.Pointer(&sSPtrans)) + 6*256 + uintptr(u>>24&CARD32(0x3f))*4))) 7830 // 1 7831 t = l<<1 | l>>31 7832 u = t ^ *(*CARD32)(unsafe.Pointer(s + uintptr(i+2)*4)) 7833 t = t ^ *(*CARD32)(unsafe.Pointer(s + uintptr(i+2+1)*4)) 7834 t = t>>4 | t<<28 7835 r = r ^ (*(*CARD32)(unsafe.Pointer(uintptr(unsafe.Pointer(&sSPtrans)) + 1*256 + uintptr(t&CARD32(0x3f))*4)) | *(*CARD32)(unsafe.Pointer(uintptr(unsafe.Pointer(&sSPtrans)) + 3*256 + uintptr(t>>8&CARD32(0x3f))*4)) | *(*CARD32)(unsafe.Pointer(uintptr(unsafe.Pointer(&sSPtrans)) + 5*256 + uintptr(t>>16&CARD32(0x3f))*4)) | *(*CARD32)(unsafe.Pointer(uintptr(unsafe.Pointer(&sSPtrans)) + 7*256 + uintptr(t>>24&CARD32(0x3f))*4)) | *(*CARD32)(unsafe.Pointer(uintptr(unsafe.Pointer(&sSPtrans)) + uintptr(u&CARD32(0x3f))*4)) | *(*CARD32)(unsafe.Pointer(uintptr(unsafe.Pointer(&sSPtrans)) + 2*256 + uintptr(u>>8&CARD32(0x3f))*4)) | *(*CARD32)(unsafe.Pointer(uintptr(unsafe.Pointer(&sSPtrans)) + 4*256 + uintptr(u>>16&CARD32(0x3f))*4)) | *(*CARD32)(unsafe.Pointer(uintptr(unsafe.Pointer(&sSPtrans)) + 6*256 + uintptr(u>>24&CARD32(0x3f))*4))) 7836 // 2 7837 } 7838 } else { 7839 for i = ITERATIONS*2 - 2; i >= 0; i = i - 4 { 7840 t = r<<1 | r>>31 7841 u = t ^ *(*CARD32)(unsafe.Pointer(s + uintptr(i)*4)) 7842 t = t ^ *(*CARD32)(unsafe.Pointer(s + uintptr(i+1)*4)) 7843 t = t>>4 | t<<28 7844 l = l ^ (*(*CARD32)(unsafe.Pointer(uintptr(unsafe.Pointer(&sSPtrans)) + 1*256 + uintptr(t&CARD32(0x3f))*4)) | *(*CARD32)(unsafe.Pointer(uintptr(unsafe.Pointer(&sSPtrans)) + 3*256 + uintptr(t>>8&CARD32(0x3f))*4)) | *(*CARD32)(unsafe.Pointer(uintptr(unsafe.Pointer(&sSPtrans)) + 5*256 + uintptr(t>>16&CARD32(0x3f))*4)) | *(*CARD32)(unsafe.Pointer(uintptr(unsafe.Pointer(&sSPtrans)) + 7*256 + uintptr(t>>24&CARD32(0x3f))*4)) | *(*CARD32)(unsafe.Pointer(uintptr(unsafe.Pointer(&sSPtrans)) + uintptr(u&CARD32(0x3f))*4)) | *(*CARD32)(unsafe.Pointer(uintptr(unsafe.Pointer(&sSPtrans)) + 2*256 + uintptr(u>>8&CARD32(0x3f))*4)) | *(*CARD32)(unsafe.Pointer(uintptr(unsafe.Pointer(&sSPtrans)) + 4*256 + uintptr(u>>16&CARD32(0x3f))*4)) | *(*CARD32)(unsafe.Pointer(uintptr(unsafe.Pointer(&sSPtrans)) + 6*256 + uintptr(u>>24&CARD32(0x3f))*4))) 7845 // 1 7846 t = l<<1 | l>>31 7847 u = t ^ *(*CARD32)(unsafe.Pointer(s + uintptr(i-2)*4)) 7848 t = t ^ *(*CARD32)(unsafe.Pointer(s + uintptr(i-2+1)*4)) 7849 t = t>>4 | t<<28 7850 r = r ^ (*(*CARD32)(unsafe.Pointer(uintptr(unsafe.Pointer(&sSPtrans)) + 1*256 + uintptr(t&CARD32(0x3f))*4)) | *(*CARD32)(unsafe.Pointer(uintptr(unsafe.Pointer(&sSPtrans)) + 3*256 + uintptr(t>>8&CARD32(0x3f))*4)) | *(*CARD32)(unsafe.Pointer(uintptr(unsafe.Pointer(&sSPtrans)) + 5*256 + uintptr(t>>16&CARD32(0x3f))*4)) | *(*CARD32)(unsafe.Pointer(uintptr(unsafe.Pointer(&sSPtrans)) + 7*256 + uintptr(t>>24&CARD32(0x3f))*4)) | *(*CARD32)(unsafe.Pointer(uintptr(unsafe.Pointer(&sSPtrans)) + uintptr(u&CARD32(0x3f))*4)) | *(*CARD32)(unsafe.Pointer(uintptr(unsafe.Pointer(&sSPtrans)) + 2*256 + uintptr(u>>8&CARD32(0x3f))*4)) | *(*CARD32)(unsafe.Pointer(uintptr(unsafe.Pointer(&sSPtrans)) + 4*256 + uintptr(u>>16&CARD32(0x3f))*4)) | *(*CARD32)(unsafe.Pointer(uintptr(unsafe.Pointer(&sSPtrans)) + 6*256 + uintptr(u>>24&CARD32(0x3f))*4))) 7851 // 2 7852 } 7853 } 7854 7855 // swap l and r 7856 // we will not do the swap so just remember they are 7857 // reversed for the rest of the subroutine 7858 // luckily by FP fixes this problem :-) 7859 7860 t = (r>>1 ^ l) & CARD32(0x55555555) 7861 l = l ^ t 7862 r = r ^ t<<1 7863 t = (l>>8 ^ r) & CARD32(0x00ff00ff) 7864 r = r ^ t 7865 l = l ^ t<<8 7866 t = (r>>2 ^ l) & CARD32(0x33333333) 7867 l = l ^ t 7868 r = r ^ t<<2 7869 t = (l>>16 ^ r) & CARD32(0x0000ffff) 7870 r = r ^ t 7871 l = l ^ t<<16 7872 t = (r>>4 ^ l) & CARD32(0x0f0f0f0f) 7873 l = l ^ t 7874 r = r ^ t<<4 7875 7876 *(*CARD8)(unsafe.Pointer(libc.PostIncUintptr(&out, 1))) = CARD8(l & CARD32(0xff)) 7877 *(*CARD8)(unsafe.Pointer(libc.PostIncUintptr(&out, 1))) = CARD8(l >> 8 & CARD32(0xff)) 7878 *(*CARD8)(unsafe.Pointer(libc.PostIncUintptr(&out, 1))) = CARD8(l >> 16 & CARD32(0xff)) 7879 *(*CARD8)(unsafe.Pointer(libc.PostIncUintptr(&out, 1))) = CARD8(l >> 24 & CARD32(0xff)) 7880 *(*CARD8)(unsafe.Pointer(libc.PostIncUintptr(&out, 1))) = CARD8(r & CARD32(0xff)) 7881 *(*CARD8)(unsafe.Pointer(libc.PostIncUintptr(&out, 1))) = CARD8(r >> 8 & CARD32(0xff)) 7882 *(*CARD8)(unsafe.Pointer(libc.PostIncUintptr(&out, 1))) = CARD8(r >> 16 & CARD32(0xff)) 7883 *(*CARD8)(unsafe.Pointer(libc.PostIncUintptr(&out, 1))) = CARD8(r >> 24 & CARD32(0xff)) 7884 return 7885 } 7886 7887 // Floating-point inline functions for stdlib.h. 7888 // Copyright (C) 2012-2020 Free Software Foundation, Inc. 7889 // This file is part of the GNU C Library. 7890 // 7891 // The GNU C Library is free software; you can redistribute it and/or 7892 // modify it under the terms of the GNU Lesser General Public 7893 // License as published by the Free Software Foundation; either 7894 // version 2.1 of the License, or (at your option) any later version. 7895 // 7896 // The GNU C Library is distributed in the hope that it will be useful, 7897 // but WITHOUT ANY WARRANTY; without even the implied warranty of 7898 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 7899 // Lesser General Public License for more details. 7900 // 7901 // You should have received a copy of the GNU Lesser General Public 7902 // License along with the GNU C Library; if not, see 7903 // <https://www.gnu.org/licenses/>. 7904 7905 // Define some macros helping to catch buffer overflows. 7906 7907 // Macros to control TS 18661-3 glibc features on ldbl-128 platforms. 7908 // Copyright (C) 2017-2020 Free Software Foundation, Inc. 7909 // This file is part of the GNU C Library. 7910 // 7911 // The GNU C Library is free software; you can redistribute it and/or 7912 // modify it under the terms of the GNU Lesser General Public 7913 // License as published by the Free Software Foundation; either 7914 // version 2.1 of the License, or (at your option) any later version. 7915 // 7916 // The GNU C Library is distributed in the hope that it will be useful, 7917 // but WITHOUT ANY WARRANTY; without even the implied warranty of 7918 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 7919 // Lesser General Public License for more details. 7920 // 7921 // You should have received a copy of the GNU Lesser General Public 7922 // License along with the GNU C Library; if not, see 7923 // <https://www.gnu.org/licenses/>. 7924 7925 func XXdmcpWriteHeader(tls *libc.TLS, buffer XdmcpBufferPtr, header XdmcpHeaderPtr) int32 { /* Write.c:37:1: */ 7926 var newData uintptr 7927 7928 if (*X_XdmcpBuffer)(unsafe.Pointer(buffer)).Fsize < 6+int32((*X_XdmcpHeader)(unsafe.Pointer(header)).Flength) { 7929 newData = libc.Xmalloc(tls, uint64(XDM_MAX_MSGLEN)*uint64(unsafe.Sizeof(BYTE(0)))) 7930 if !(newData != 0) { 7931 return FALSE 7932 } 7933 libc.Xfree(tls, (*X_XdmcpBuffer)(unsafe.Pointer(buffer)).Fdata) 7934 (*X_XdmcpBuffer)(unsafe.Pointer(buffer)).Fdata = newData 7935 (*X_XdmcpBuffer)(unsafe.Pointer(buffer)).Fsize = XDM_MAX_MSGLEN 7936 } 7937 (*X_XdmcpBuffer)(unsafe.Pointer(buffer)).Fpointer = 0 7938 if !(XXdmcpWriteCARD16(tls, buffer, uint32((*X_XdmcpHeader)(unsafe.Pointer(header)).Fversion)) != 0) { 7939 return FALSE 7940 } 7941 if !(XXdmcpWriteCARD16(tls, buffer, uint32((*X_XdmcpHeader)(unsafe.Pointer(header)).Fopcode)) != 0) { 7942 return FALSE 7943 } 7944 if !(XXdmcpWriteCARD16(tls, buffer, uint32((*X_XdmcpHeader)(unsafe.Pointer(header)).Flength)) != 0) { 7945 return FALSE 7946 } 7947 return TRUE 7948 } 7949 7950 func XXdmcpWriteARRAY8(tls *libc.TLS, buffer XdmcpBufferPtr, array ARRAY8Ptr) int32 { /* Write.c:63:1: */ 7951 var i int32 7952 7953 if !(XXdmcpWriteCARD16(tls, buffer, uint32((*X_ARRAY8)(unsafe.Pointer(array)).Flength)) != 0) { 7954 return FALSE 7955 } 7956 for i = 0; i < int32((*X_ARRAY8)(unsafe.Pointer(array)).Flength); i++ { 7957 if !(XXdmcpWriteCARD8(tls, buffer, uint32(*(*CARD8)(unsafe.Pointer((*X_ARRAY8)(unsafe.Pointer(array)).Fdata + uintptr(i))))) != 0) { 7958 return FALSE 7959 } 7960 } 7961 return TRUE 7962 } 7963 7964 func XXdmcpWriteARRAY16(tls *libc.TLS, buffer XdmcpBufferPtr, array ARRAY16Ptr) int32 { /* Write.c:76:1: */ 7965 var i int32 7966 7967 if !(XXdmcpWriteCARD8(tls, buffer, uint32((*X_ARRAY16)(unsafe.Pointer(array)).Flength)) != 0) { 7968 return FALSE 7969 } 7970 for i = 0; i < int32((*X_ARRAY16)(unsafe.Pointer(array)).Flength); i++ { 7971 if !(XXdmcpWriteCARD16(tls, buffer, uint32(*(*CARD16)(unsafe.Pointer((*X_ARRAY16)(unsafe.Pointer(array)).Fdata + uintptr(i)*2)))) != 0) { 7972 return FALSE 7973 } 7974 } 7975 return TRUE 7976 } 7977 7978 func XXdmcpWriteARRAY32(tls *libc.TLS, buffer XdmcpBufferPtr, array ARRAY32Ptr) int32 { /* Write.c:89:1: */ 7979 var i int32 7980 7981 if !(XXdmcpWriteCARD8(tls, buffer, uint32((*X_ARRAY32)(unsafe.Pointer(array)).Flength)) != 0) { 7982 return FALSE 7983 } 7984 for i = 0; i < int32((*X_ARRAY32)(unsafe.Pointer(array)).Flength); i++ { 7985 if !(XXdmcpWriteCARD32(tls, buffer, *(*CARD32)(unsafe.Pointer((*X_ARRAY32)(unsafe.Pointer(array)).Fdata + uintptr(i)*4))) != 0) { 7986 return FALSE 7987 } 7988 } 7989 return TRUE 7990 } 7991 7992 func XXdmcpWriteARRAYofARRAY8(tls *libc.TLS, buffer XdmcpBufferPtr, array ARRAYofARRAY8Ptr) int32 { /* Write.c:102:1: */ 7993 var i int32 7994 7995 if !(XXdmcpWriteCARD8(tls, buffer, uint32((*X_ARRAYofARRAY8)(unsafe.Pointer(array)).Flength)) != 0) { 7996 return FALSE 7997 } 7998 for i = 0; i < int32((*X_ARRAYofARRAY8)(unsafe.Pointer(array)).Flength); i++ { 7999 if !(XXdmcpWriteARRAY8(tls, buffer, (*X_ARRAYofARRAY8)(unsafe.Pointer(array)).Fdata+uintptr(i)*16) != 0) { 8000 return FALSE 8001 } 8002 } 8003 return TRUE 8004 } 8005 8006 func XXdmcpWriteCARD8(tls *libc.TLS, buffer XdmcpBufferPtr, value uint32) int32 { /* Write.c:115:1: */ 8007 if (*X_XdmcpBuffer)(unsafe.Pointer(buffer)).Fpointer >= (*X_XdmcpBuffer)(unsafe.Pointer(buffer)).Fsize { 8008 return FALSE 8009 } 8010 *(*BYTE)(unsafe.Pointer((*X_XdmcpBuffer)(unsafe.Pointer(buffer)).Fdata + uintptr(libc.PostIncInt32(&(*X_XdmcpBuffer)(unsafe.Pointer(buffer)).Fpointer, 1)))) = BYTE(value) 8011 return TRUE 8012 } 8013 8014 func XXdmcpWriteCARD16(tls *libc.TLS, buffer XdmcpBufferPtr, value uint32) int32 { /* Write.c:126:1: */ 8015 if !(XXdmcpWriteCARD8(tls, buffer, value>>8) != 0) { 8016 return FALSE 8017 } 8018 if !(XXdmcpWriteCARD8(tls, buffer, value&uint32(0xff)) != 0) { 8019 return FALSE 8020 } 8021 return TRUE 8022 } 8023 8024 func XXdmcpWriteCARD32(tls *libc.TLS, buffer XdmcpBufferPtr, value uint32) int32 { /* Write.c:138:1: */ 8025 if !(XXdmcpWriteCARD8(tls, buffer, value>>24) != 0) { 8026 return FALSE 8027 } 8028 if !(XXdmcpWriteCARD8(tls, buffer, value>>16&uint32(0xff)) != 0) { 8029 return FALSE 8030 } 8031 if !(XXdmcpWriteCARD8(tls, buffer, value>>8&uint32(0xff)) != 0) { 8032 return FALSE 8033 } 8034 if !(XXdmcpWriteCARD8(tls, buffer, value&uint32(0xff)) != 0) { 8035 return FALSE 8036 } 8037 return TRUE 8038 }