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