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

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