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

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