modernc.org/xdmcp@v1.0.17/lib/xdmcp_linux_amd64.go (about)

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