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