modernc.org/xrender@v1.0.9/lib/xrender_linux_arm.go (about)

     1  // Code generated by 'ccgo -export-defines "" -export-enums "" -export-externs X -export-fields F -export-structs "" -export-typedefs "" -lmodernc.org/x11/lib -o lib/xrender_linux_arm.go -pkgname xrender -trace-translation-units /tmp/go-generate-633162370/cdb.json libXrender.a', DO NOT EDIT.
     2  
     3  package xrender
     4  
     5  import (
     6  	"math"
     7  	"reflect"
     8  	"sync/atomic"
     9  	"unsafe"
    10  
    11  	"modernc.org/libc"
    12  	"modernc.org/libc/sys/types"
    13  	"modernc.org/x11/lib"
    14  )
    15  
    16  var _ = math.Pi
    17  var _ reflect.Kind
    18  var _ atomic.Value
    19  var _ unsafe.Pointer
    20  var _ *libc.TLS
    21  var _ types.Size_t
    22  
    23  const (
    24  	Above                                 = 0
    25  	AllHints                              = 127
    26  	AllTemporary                          = 0
    27  	AllValues                             = 0x000F
    28  	AllocAll                              = 1
    29  	AllocNone                             = 0
    30  	AllowExposures                        = 1
    31  	AlreadyGrabbed                        = 1
    32  	Always                                = 2
    33  	AnyButton                             = 0
    34  	AnyKey                                = 0
    35  	AnyModifier                           = 32768
    36  	AnyPropertyType                       = 0
    37  	ArcChord                              = 0
    38  	ArcPieSlice                           = 1
    39  	AsyncBoth                             = 6
    40  	AsyncKeyboard                         = 3
    41  	AsyncPointer                          = 0
    42  	AutoRepeatModeDefault                 = 2
    43  	AutoRepeatModeOff                     = 0
    44  	AutoRepeatModeOn                      = 1
    45  	B16                                   = 0
    46  	B32                                   = 0
    47  	BIG_ENDIAN                            = 4321
    48  	BUFSIZE                               = 2048
    49  	BYTE_ORDER                            = 1234
    50  	BadAccess                             = 10
    51  	BadAlloc                              = 11
    52  	BadAtom                               = 5
    53  	BadColor                              = 12
    54  	BadCursor                             = 6
    55  	BadDrawable                           = 9
    56  	BadFont                               = 7
    57  	BadGC                                 = 13
    58  	BadGlyph                              = 4
    59  	BadGlyphSet                           = 3
    60  	BadIDChoice                           = 14
    61  	BadImplementation                     = 17
    62  	BadLength                             = 16
    63  	BadMatch                              = 8
    64  	BadName                               = 15
    65  	BadPictFormat                         = 0
    66  	BadPictOp                             = 2
    67  	BadPicture                            = 1
    68  	BadPixmap                             = 4
    69  	BadRequest                            = 1
    70  	BadValue                              = 2
    71  	BadWindow                             = 3
    72  	Below                                 = 1
    73  	BitmapFileInvalid                     = 2
    74  	BitmapNoMemory                        = 3
    75  	BitmapOpenFailed                      = 1
    76  	BitmapSuccess                         = 0
    77  	BottomIf                              = 3
    78  	Button1                               = 1
    79  	Button1Mask                           = 256
    80  	Button1MotionMask                     = 256
    81  	Button2                               = 2
    82  	Button2Mask                           = 512
    83  	Button2MotionMask                     = 512
    84  	Button3                               = 3
    85  	Button3Mask                           = 1024
    86  	Button3MotionMask                     = 1024
    87  	Button4                               = 4
    88  	Button4Mask                           = 2048
    89  	Button4MotionMask                     = 2048
    90  	Button5                               = 5
    91  	Button5Mask                           = 4096
    92  	Button5MotionMask                     = 4096
    93  	ButtonMotionMask                      = 8192
    94  	ButtonPress                           = 4
    95  	ButtonPressMask                       = 4
    96  	ButtonRelease                         = 5
    97  	ButtonReleaseMask                     = 8
    98  	CPAlphaMap                            = 2
    99  	CPAlphaXOrigin                        = 4
   100  	CPAlphaYOrigin                        = 8
   101  	CPClipMask                            = 64
   102  	CPClipXOrigin                         = 16
   103  	CPClipYOrigin                         = 32
   104  	CPComponentAlpha                      = 4096
   105  	CPDither                              = 2048
   106  	CPGraphicsExposure                    = 128
   107  	CPLastBit                             = 12
   108  	CPPolyEdge                            = 512
   109  	CPPolyMode                            = 1024
   110  	CPRepeat                              = 1
   111  	CPSubwindowMode                       = 256
   112  	CURSORFONT                            = "cursor"
   113  	CWBackPixel                           = 2
   114  	CWBackPixmap                          = 1
   115  	CWBackingPixel                        = 256
   116  	CWBackingPlanes                       = 128
   117  	CWBackingStore                        = 64
   118  	CWBitGravity                          = 16
   119  	CWBorderPixel                         = 8
   120  	CWBorderPixmap                        = 4
   121  	CWBorderWidth                         = 16
   122  	CWColormap                            = 8192
   123  	CWCursor                              = 16384
   124  	CWDontPropagate                       = 4096
   125  	CWEventMask                           = 2048
   126  	CWHeight                              = 8
   127  	CWOverrideRedirect                    = 512
   128  	CWSaveUnder                           = 1024
   129  	CWSibling                             = 32
   130  	CWStackMode                           = 64
   131  	CWWidth                               = 4
   132  	CWWinGravity                          = 32
   133  	CWX                                   = 1
   134  	CWY                                   = 2
   135  	CapButt                               = 1
   136  	CapNotLast                            = 0
   137  	CapProjecting                         = 3
   138  	CapRound                              = 2
   139  	CenterGravity                         = 5
   140  	CirculateNotify                       = 26
   141  	CirculateRequest                      = 27
   142  	ClientMessage                         = 33
   143  	ClipByChildren                        = 0
   144  	ColormapChangeMask                    = 8388608
   145  	ColormapInstalled                     = 1
   146  	ColormapNotify                        = 32
   147  	ColormapUninstalled                   = 0
   148  	Complex                               = 0
   149  	ConfigureNotify                       = 22
   150  	ConfigureRequest                      = 23
   151  	ControlMapIndex                       = 2
   152  	ControlMask                           = 4
   153  	Convex                                = 2
   154  	CoordModeOrigin                       = 0
   155  	CoordModePrevious                     = 1
   156  	CopyFromParent                        = 0
   157  	CreateNotify                          = 16
   158  	CurrentTime                           = 0
   159  	CursorShape                           = 0
   160  	DefaultBlanking                       = 2
   161  	DefaultExposures                      = 2
   162  	DestroyAll                            = 0
   163  	DestroyNotify                         = 17
   164  	DirectColor                           = 5
   165  	DisableAccess                         = 0
   166  	DisableScreenInterval                 = 0
   167  	DisableScreenSaver                    = 0
   168  	DoBlue                                = 4
   169  	DoGreen                               = 2
   170  	DoRed                                 = 1
   171  	DontAllowExposures                    = 0
   172  	DontCareState                         = 0
   173  	DontPreferBlanking                    = 0
   174  	E2BIG                                 = 7
   175  	EACCES                                = 13
   176  	EADDRINUSE                            = 98
   177  	EADDRNOTAVAIL                         = 99
   178  	EADV                                  = 68
   179  	EAFNOSUPPORT                          = 97
   180  	EAGAIN                                = 11
   181  	EALREADY                              = 114
   182  	EBADE                                 = 52
   183  	EBADF                                 = 9
   184  	EBADFD                                = 77
   185  	EBADMSG                               = 74
   186  	EBADR                                 = 53
   187  	EBADRQC                               = 56
   188  	EBADSLT                               = 57
   189  	EBFONT                                = 59
   190  	EBUSY                                 = 16
   191  	ECANCELED                             = 125
   192  	ECHILD                                = 10
   193  	ECHRNG                                = 44
   194  	ECOMM                                 = 70
   195  	ECONNABORTED                          = 103
   196  	ECONNREFUSED                          = 111
   197  	ECONNRESET                            = 104
   198  	EDEADLK                               = 35
   199  	EDEADLOCK                             = 35
   200  	EDESTADDRREQ                          = 89
   201  	EDOM                                  = 33
   202  	EDOTDOT                               = 73
   203  	EDQUOT                                = 122
   204  	EEXIST                                = 17
   205  	EFAULT                                = 14
   206  	EFBIG                                 = 27
   207  	EHOSTDOWN                             = 112
   208  	EHOSTUNREACH                          = 113
   209  	EHWPOISON                             = 133
   210  	EIDRM                                 = 43
   211  	EILSEQ                                = 84
   212  	EINPROGRESS                           = 115
   213  	EINTR                                 = 4
   214  	EINVAL                                = 22
   215  	EIO                                   = 5
   216  	EISCONN                               = 106
   217  	EISDIR                                = 21
   218  	EISNAM                                = 120
   219  	EKEYEXPIRED                           = 127
   220  	EKEYREJECTED                          = 129
   221  	EKEYREVOKED                           = 128
   222  	EL2HLT                                = 51
   223  	EL2NSYNC                              = 45
   224  	EL3HLT                                = 46
   225  	EL3RST                                = 47
   226  	ELFlagFocus                           = 1
   227  	ELFlagSameScreen                      = 2
   228  	ELIBACC                               = 79
   229  	ELIBBAD                               = 80
   230  	ELIBEXEC                              = 83
   231  	ELIBMAX                               = 82
   232  	ELIBSCN                               = 81
   233  	ELNRNG                                = 48
   234  	ELOOP                                 = 40
   235  	EMEDIUMTYPE                           = 124
   236  	EMFILE                                = 24
   237  	EMLINK                                = 31
   238  	EMSGSIZE                              = 90
   239  	EMULTIHOP                             = 72
   240  	ENAMETOOLONG                          = 36
   241  	ENAVAIL                               = 119
   242  	ENETDOWN                              = 100
   243  	ENETRESET                             = 102
   244  	ENETUNREACH                           = 101
   245  	ENFILE                                = 23
   246  	ENOANO                                = 55
   247  	ENOBUFS                               = 105
   248  	ENOCSI                                = 50
   249  	ENODATA                               = 61
   250  	ENODEV                                = 19
   251  	ENOENT                                = 2
   252  	ENOEXEC                               = 8
   253  	ENOKEY                                = 126
   254  	ENOLCK                                = 37
   255  	ENOLINK                               = 67
   256  	ENOMEDIUM                             = 123
   257  	ENOMEM                                = 12
   258  	ENOMSG                                = 42
   259  	ENONET                                = 64
   260  	ENOPKG                                = 65
   261  	ENOPROTOOPT                           = 92
   262  	ENOSPC                                = 28
   263  	ENOSR                                 = 63
   264  	ENOSTR                                = 60
   265  	ENOSYS                                = 38
   266  	ENOTBLK                               = 15
   267  	ENOTCONN                              = 107
   268  	ENOTDIR                               = 20
   269  	ENOTEMPTY                             = 39
   270  	ENOTNAM                               = 118
   271  	ENOTRECOVERABLE                       = 131
   272  	ENOTSOCK                              = 88
   273  	ENOTSUP                               = 95
   274  	ENOTTY                                = 25
   275  	ENOTUNIQ                              = 76
   276  	ENXIO                                 = 6
   277  	EOPNOTSUPP                            = 95
   278  	EOVERFLOW                             = 75
   279  	EOWNERDEAD                            = 130
   280  	EPERM                                 = 1
   281  	EPFNOSUPPORT                          = 96
   282  	EPIPE                                 = 32
   283  	EPROTO                                = 71
   284  	EPROTONOSUPPORT                       = 93
   285  	EPROTOTYPE                            = 91
   286  	ERANGE                                = 34
   287  	EREMCHG                               = 78
   288  	EREMOTE                               = 66
   289  	EREMOTEIO                             = 121
   290  	ERESTART                              = 85
   291  	ERFKILL                               = 132
   292  	EROFS                                 = 30
   293  	ESHUTDOWN                             = 108
   294  	ESOCKTNOSUPPORT                       = 94
   295  	ESPIPE                                = 29
   296  	ESRCH                                 = 3
   297  	ESRMNT                                = 69
   298  	ESTALE                                = 116
   299  	ESTRPIPE                              = 86
   300  	ETIME                                 = 62
   301  	ETIMEDOUT                             = 110
   302  	ETOOMANYREFS                          = 109
   303  	ETXTBSY                               = 26
   304  	EUCLEAN                               = 117
   305  	EUNATCH                               = 49
   306  	EUSERS                                = 87
   307  	EWOULDBLOCK                           = 11
   308  	EXDEV                                 = 18
   309  	EXFULL                                = 54
   310  	EXIT_FAILURE                          = 1
   311  	EXIT_SUCCESS                          = 0
   312  	EastGravity                           = 6
   313  	EnableAccess                          = 1
   314  	EnterNotify                           = 7
   315  	EnterWindowMask                       = 16
   316  	EvenOddRule                           = 0
   317  	Expose                                = 12
   318  	ExposureMask                          = 32768
   319  	FARCSPERBATCH                         = 256
   320  	FD_SETSIZE                            = 1024
   321  	FRCTSPERBATCH                         = 256
   322  	FUNCPROTO                             = 15
   323  	False                                 = 0
   324  	FamilyChaos                           = 2
   325  	FamilyDECnet                          = 1
   326  	FamilyInternet                        = 0
   327  	FamilyInternet6                       = 6
   328  	FamilyServerInterpreted               = 5
   329  	FillOpaqueStippled                    = 3
   330  	FillSolid                             = 0
   331  	FillStippled                          = 2
   332  	FillTiled                             = 1
   333  	FilterAliasNone                       = -1
   334  	FilterBest                            = "best"
   335  	FilterBilinear                        = "bilinear"
   336  	FilterConvolution                     = "convolution"
   337  	FilterFast                            = "fast"
   338  	FilterGood                            = "good"
   339  	FilterNearest                         = "nearest"
   340  	FirstExtensionError                   = 128
   341  	FocusChangeMask                       = 2097152
   342  	FocusIn                               = 9
   343  	FocusOut                              = 10
   344  	FontChange                            = 255
   345  	FontLeftToRight                       = 0
   346  	FontRightToLeft                       = 1
   347  	ForgetGravity                         = 0
   348  	GCArcMode                             = 4194304
   349  	GCBackground                          = 8
   350  	GCCapStyle                            = 64
   351  	GCClipMask                            = 524288
   352  	GCClipXOrigin                         = 131072
   353  	GCClipYOrigin                         = 262144
   354  	GCDashList                            = 2097152
   355  	GCDashOffset                          = 1048576
   356  	GCFillRule                            = 512
   357  	GCFillStyle                           = 256
   358  	GCFont                                = 16384
   359  	GCForeground                          = 4
   360  	GCFunction                            = 1
   361  	GCGraphicsExposures                   = 65536
   362  	GCJoinStyle                           = 128
   363  	GCLastBit                             = 22
   364  	GCLineStyle                           = 32
   365  	GCLineWidth                           = 16
   366  	GCPlaneMask                           = 2
   367  	GCStipple                             = 2048
   368  	GCSubwindowMode                       = 32768
   369  	GCTile                                = 1024
   370  	GCTileStipXOrigin                     = 4096
   371  	GCTileStipYOrigin                     = 8192
   372  	GXand                                 = 0x1
   373  	GXandInverted                         = 0x4
   374  	GXandReverse                          = 0x2
   375  	GXclear                               = 0x0
   376  	GXcopy                                = 0x3
   377  	GXcopyInverted                        = 0xc
   378  	GXequiv                               = 0x9
   379  	GXinvert                              = 0xa
   380  	GXnand                                = 0xe
   381  	GXnoop                                = 0x5
   382  	GXnor                                 = 0x8
   383  	GXor                                  = 0x7
   384  	GXorInverted                          = 0xd
   385  	GXorReverse                           = 0xb
   386  	GXset                                 = 0xf
   387  	GXxor                                 = 0x6
   388  	GenericEvent                          = 35
   389  	GrabFrozen                            = 4
   390  	GrabInvalidTime                       = 2
   391  	GrabModeAsync                         = 1
   392  	GrabModeSync                          = 0
   393  	GrabNotViewable                       = 3
   394  	GrabSuccess                           = 0
   395  	GraphicsExpose                        = 13
   396  	GravityNotify                         = 24
   397  	GrayScale                             = 1
   398  	HAVE_CONFIG_H                         = 1
   399  	HAVE_DLFCN_H                          = 1
   400  	HAVE_INTTYPES_H                       = 1
   401  	HAVE_MEMORY_H                         = 1
   402  	HAVE_STDINT_H                         = 1
   403  	HAVE_STDLIB_H                         = 1
   404  	HAVE_STRINGS_H                        = 1
   405  	HAVE_STRING_H                         = 1
   406  	HAVE_SYS_STAT_H                       = 1
   407  	HAVE_SYS_TYPES_H                      = 1
   408  	HAVE_UNISTD_H                         = 1
   409  	HeightValue                           = 0x0008
   410  	HostDelete                            = 1
   411  	HostInsert                            = 0
   412  	INT16_MAX                             = 32767
   413  	INT16_MIN                             = -32768
   414  	INT32_MAX                             = 2147483647
   415  	INT32_MIN                             = -2147483648
   416  	INT64_MAX                             = 9223372036854775807
   417  	INT64_MIN                             = -9223372036854775808
   418  	INT8_MAX                              = 127
   419  	INT8_MIN                              = -128
   420  	INTMAX_MAX                            = 9223372036854775807
   421  	INTMAX_MIN                            = -9223372036854775808
   422  	INTPTR_MAX                            = 2147483647
   423  	INTPTR_MIN                            = -2147483648
   424  	INT_FAST16_MAX                        = 2147483647
   425  	INT_FAST16_MIN                        = -2147483648
   426  	INT_FAST32_MAX                        = 2147483647
   427  	INT_FAST32_MIN                        = -2147483648
   428  	INT_FAST64_MAX                        = 9223372036854775807
   429  	INT_FAST64_MIN                        = -9223372036854775808
   430  	INT_FAST8_MAX                         = 127
   431  	INT_FAST8_MIN                         = -128
   432  	INT_LEAST16_MAX                       = 32767
   433  	INT_LEAST16_MIN                       = -32768
   434  	INT_LEAST32_MAX                       = 2147483647
   435  	INT_LEAST32_MIN                       = -2147483648
   436  	INT_LEAST64_MAX                       = 9223372036854775807
   437  	INT_LEAST64_MIN                       = -9223372036854775808
   438  	INT_LEAST8_MAX                        = 127
   439  	INT_LEAST8_MIN                        = -128
   440  	IconMaskHint                          = 32
   441  	IconPixmapHint                        = 4
   442  	IconPositionHint                      = 16
   443  	IconWindowHint                        = 8
   444  	IconicState                           = 3
   445  	InactiveState                         = 4
   446  	IncludeInferiors                      = 1
   447  	InputFocus                            = 1
   448  	InputHint                             = 1
   449  	InputOnly                             = 2
   450  	InputOutput                           = 1
   451  	IsUnmapped                            = 0
   452  	IsUnviewable                          = 1
   453  	IsViewable                            = 2
   454  	JoinBevel                             = 2
   455  	JoinMiter                             = 0
   456  	JoinRound                             = 1
   457  	KBAutoRepeatMode                      = 128
   458  	KBBellDuration                        = 8
   459  	KBBellPercent                         = 2
   460  	KBBellPitch                           = 4
   461  	KBKey                                 = 64
   462  	KBKeyClickPercent                     = 1
   463  	KBLed                                 = 16
   464  	KBLedMode                             = 32
   465  	KeyPress                              = 2
   466  	KeyPressMask                          = 1
   467  	KeyRelease                            = 3
   468  	KeyReleaseMask                        = 2
   469  	KeymapNotify                          = 11
   470  	KeymapStateMask                       = 16384
   471  	LASTEvent                             = 36
   472  	LITTLE_ENDIAN                         = 1234
   473  	LOCKED                                = 1
   474  	LSBFirst                              = 0
   475  	LT_OBJDIR                             = ".libs/"
   476  	LastExtensionError                    = 255
   477  	LeaveNotify                           = 8
   478  	LeaveWindowMask                       = 32
   479  	LedModeOff                            = 0
   480  	LedModeOn                             = 1
   481  	LineDoubleDash                        = 2
   482  	LineOnOffDash                         = 1
   483  	LineSolid                             = 0
   484  	LockMapIndex                          = 1
   485  	LockMask                              = 2
   486  	LowerHighest                          = 1
   487  	MALLOC_0_RETURNS_NULL                 = 1
   488  	MSBFirst                              = 1
   489  	MapNotify                             = 19
   490  	MapRequest                            = 20
   491  	MappingBusy                           = 1
   492  	MappingFailed                         = 2
   493  	MappingKeyboard                       = 1
   494  	MappingModifier                       = 0
   495  	MappingNotify                         = 34
   496  	MappingPointer                        = 2
   497  	MappingSuccess                        = 0
   498  	Mod1MapIndex                          = 3
   499  	Mod1Mask                              = 8
   500  	Mod2MapIndex                          = 4
   501  	Mod2Mask                              = 16
   502  	Mod3MapIndex                          = 5
   503  	Mod3Mask                              = 32
   504  	Mod4MapIndex                          = 6
   505  	Mod4Mask                              = 64
   506  	Mod5MapIndex                          = 7
   507  	Mod5Mask                              = 128
   508  	MotionNotify                          = 6
   509  	NARROWPROTO                           = 0
   510  	NLOCAL                                = 256
   511  	NeedFunctionPrototypes                = 1
   512  	NeedNestedPrototypes                  = 1
   513  	NeedVarargsPrototypes                 = 1
   514  	NeedWidePrototypes                    = 0
   515  	NoEventMask                           = 0
   516  	NoExpose                              = 14
   517  	NoSymbol                              = 0
   518  	NoValue                               = 0x0000
   519  	Nonconvex                             = 1
   520  	None                                  = 0
   521  	NormalState                           = 1
   522  	NorthEastGravity                      = 3
   523  	NorthGravity                          = 2
   524  	NorthWestGravity                      = 1
   525  	NotUseful                             = 0
   526  	NotifyAncestor                        = 0
   527  	NotifyDetailNone                      = 7
   528  	NotifyGrab                            = 1
   529  	NotifyHint                            = 1
   530  	NotifyInferior                        = 2
   531  	NotifyNonlinear                       = 3
   532  	NotifyNonlinearVirtual                = 4
   533  	NotifyNormal                          = 0
   534  	NotifyPointer                         = 5
   535  	NotifyPointerRoot                     = 6
   536  	NotifyUngrab                          = 2
   537  	NotifyVirtual                         = 1
   538  	NotifyWhileGrabbed                    = 3
   539  	Opposite                              = 4
   540  	OwnerGrabButtonMask                   = 16777216
   541  	PACKAGE                               = "libXrender"
   542  	PACKAGE_BUGREPORT                     = "https://bugs.freedesktop.org/enter_bug.cgi?product=xorg"
   543  	PACKAGE_NAME                          = "libXrender"
   544  	PACKAGE_STRING                        = "libXrender 0.9.10"
   545  	PACKAGE_TARNAME                       = "libXrender"
   546  	PACKAGE_URL                           = ""
   547  	PACKAGE_VERSION                       = "0.9.10"
   548  	PACKAGE_VERSION_MAJOR                 = 0
   549  	PACKAGE_VERSION_MINOR                 = 9
   550  	PACKAGE_VERSION_PATCHLEVEL            = 10
   551  	PAllHints                             = 252
   552  	PAspect                               = 128
   553  	PBaseSize                             = 256
   554  	PDP_ENDIAN                            = 3412
   555  	PMaxSize                              = 32
   556  	PMinSize                              = 16
   557  	PPosition                             = 4
   558  	PResizeInc                            = 64
   559  	PSize                                 = 8
   560  	PTRDIFF_MAX                           = 2147483647
   561  	PTRDIFF_MIN                           = -2147483648
   562  	PTSPERBATCH                           = 1024
   563  	PWinGravity                           = 512
   564  	ParentRelative                        = 1
   565  	PictFormatAlpha                       = 512
   566  	PictFormatAlphaMask                   = 1024
   567  	PictFormatBlue                        = 128
   568  	PictFormatBlueMask                    = 256
   569  	PictFormatColormap                    = 2048
   570  	PictFormatDepth                       = 4
   571  	PictFormatGreen                       = 32
   572  	PictFormatGreenMask                   = 64
   573  	PictFormatID                          = 1
   574  	PictFormatRed                         = 8
   575  	PictFormatRedMask                     = 16
   576  	PictFormatType                        = 2
   577  	PictOpAdd                             = 12
   578  	PictOpAtop                            = 9
   579  	PictOpAtopReverse                     = 10
   580  	PictOpBlendMaximum                    = 0x3e
   581  	PictOpBlendMinimum                    = 0x30
   582  	PictOpClear                           = 0
   583  	PictOpColorBurn                       = 0x36
   584  	PictOpColorDodge                      = 0x35
   585  	PictOpConjointAtop                    = 0x29
   586  	PictOpConjointAtopReverse             = 0x2a
   587  	PictOpConjointClear                   = 0x20
   588  	PictOpConjointDst                     = 0x22
   589  	PictOpConjointIn                      = 0x25
   590  	PictOpConjointInReverse               = 0x26
   591  	PictOpConjointMaximum                 = 0x2b
   592  	PictOpConjointMinimum                 = 0x20
   593  	PictOpConjointOut                     = 0x27
   594  	PictOpConjointOutReverse              = 0x28
   595  	PictOpConjointOver                    = 0x23
   596  	PictOpConjointOverReverse             = 0x24
   597  	PictOpConjointSrc                     = 0x21
   598  	PictOpConjointXor                     = 0x2b
   599  	PictOpDarken                          = 0x33
   600  	PictOpDifference                      = 0x39
   601  	PictOpDisjointAtop                    = 0x19
   602  	PictOpDisjointAtopReverse             = 0x1a
   603  	PictOpDisjointClear                   = 0x10
   604  	PictOpDisjointDst                     = 0x12
   605  	PictOpDisjointIn                      = 0x15
   606  	PictOpDisjointInReverse               = 0x16
   607  	PictOpDisjointMaximum                 = 0x1b
   608  	PictOpDisjointMinimum                 = 0x10
   609  	PictOpDisjointOut                     = 0x17
   610  	PictOpDisjointOutReverse              = 0x18
   611  	PictOpDisjointOver                    = 0x13
   612  	PictOpDisjointOverReverse             = 0x14
   613  	PictOpDisjointSrc                     = 0x11
   614  	PictOpDisjointXor                     = 0x1b
   615  	PictOpDst                             = 2
   616  	PictOpExclusion                       = 0x3a
   617  	PictOpHSLColor                        = 0x3d
   618  	PictOpHSLHue                          = 0x3b
   619  	PictOpHSLLuminosity                   = 0x3e
   620  	PictOpHSLSaturation                   = 0x3c
   621  	PictOpHardLight                       = 0x37
   622  	PictOpIn                              = 5
   623  	PictOpInReverse                       = 6
   624  	PictOpLighten                         = 0x34
   625  	PictOpMaximum                         = 13
   626  	PictOpMinimum                         = 0
   627  	PictOpMultiply                        = 0x30
   628  	PictOpOut                             = 7
   629  	PictOpOutReverse                      = 8
   630  	PictOpOver                            = 3
   631  	PictOpOverReverse                     = 4
   632  	PictOpOverlay                         = 0x32
   633  	PictOpSaturate                        = 13
   634  	PictOpScreen                          = 0x31
   635  	PictOpSoftLight                       = 0x38
   636  	PictOpSrc                             = 1
   637  	PictOpXor                             = 11
   638  	PictStandardA1                        = 4
   639  	PictStandardA4                        = 3
   640  	PictStandardA8                        = 2
   641  	PictStandardARGB32                    = 0
   642  	PictStandardNUM                       = 5
   643  	PictStandardRGB24                     = 1
   644  	PictTypeDirect                        = 1
   645  	PictTypeIndexed                       = 0
   646  	PlaceOnBottom                         = 1
   647  	PlaceOnTop                            = 0
   648  	PointerMotionHintMask                 = 128
   649  	PointerMotionMask                     = 64
   650  	PointerRoot                           = 1
   651  	PointerWindow                         = 0
   652  	PolyEdgeSharp                         = 0
   653  	PolyEdgeSmooth                        = 1
   654  	PolyModeImprecise                     = 1
   655  	PolyModePrecise                       = 0
   656  	PreferBlanking                        = 1
   657  	PropModeAppend                        = 2
   658  	PropModePrepend                       = 1
   659  	PropModeReplace                       = 0
   660  	PropertyChangeMask                    = 4194304
   661  	PropertyDelete                        = 1
   662  	PropertyNewValue                      = 0
   663  	PropertyNotify                        = 28
   664  	PseudoColor                           = 3
   665  	QueuedAfterFlush                      = 2
   666  	QueuedAfterReading                    = 1
   667  	QueuedAlready                         = 0
   668  	RAND_MAX                              = 2147483647
   669  	RENDER_MAJOR                          = 0
   670  	RENDER_MINOR                          = 11
   671  	RENDER_NAME                           = "RENDER"
   672  	RaiseLowest                           = 0
   673  	RectangleIn                           = 1
   674  	RectangleOut                          = 0
   675  	RectanglePart                         = 2
   676  	RenderNumberErrors                    = 5
   677  	RenderNumberRequests                  = 37
   678  	ReparentNotify                        = 21
   679  	RepeatNone                            = 0
   680  	RepeatNormal                          = 1
   681  	RepeatPad                             = 2
   682  	RepeatReflect                         = 3
   683  	ReplayKeyboard                        = 5
   684  	ReplayPointer                         = 2
   685  	ResizeRedirectMask                    = 262144
   686  	ResizeRequest                         = 25
   687  	RetainPermanent                       = 1
   688  	RetainTemporary                       = 2
   689  	RevertToParent                        = 2
   690  	SIG_ATOMIC_MAX                        = 2147483647
   691  	SIG_ATOMIC_MIN                        = -2147483648
   692  	SIZE_MAX                              = 4294967295
   693  	STDC_HEADERS                          = 1
   694  	ScreenSaverActive                     = 1
   695  	ScreenSaverReset                      = 0
   696  	SelectionClear                        = 29
   697  	SelectionNotify                       = 31
   698  	SelectionRequest                      = 30
   699  	SetModeDelete                         = 1
   700  	SetModeInsert                         = 0
   701  	ShiftMapIndex                         = 0
   702  	ShiftMask                             = 1
   703  	SouthEastGravity                      = 9
   704  	SouthGravity                          = 8
   705  	SouthWestGravity                      = 7
   706  	StateHint                             = 2
   707  	StaticColor                           = 2
   708  	StaticGravity                         = 10
   709  	StaticGray                            = 0
   710  	StippleShape                          = 2
   711  	StructureNotifyMask                   = 131072
   712  	SubPixelHorizontalBGR                 = 2
   713  	SubPixelHorizontalRGB                 = 1
   714  	SubPixelNone                          = 5
   715  	SubPixelUnknown                       = 0
   716  	SubPixelVerticalBGR                   = 4
   717  	SubPixelVerticalRGB                   = 3
   718  	SubstructureNotifyMask                = 524288
   719  	SubstructureRedirectMask              = 1048576
   720  	Success                               = 0
   721  	SyncBoth                              = 7
   722  	SyncKeyboard                          = 4
   723  	SyncPointer                           = 1
   724  	TileShape                             = 1
   725  	TopIf                                 = 2
   726  	True                                  = 1
   727  	TrueColor                             = 4
   728  	UINT16_MAX                            = 65535
   729  	UINT32_MAX                            = 4294967295
   730  	UINT64_MAX                            = 18446744073709551615
   731  	UINT8_MAX                             = 255
   732  	UINTMAX_MAX                           = 18446744073709551615
   733  	UINTPTR_MAX                           = 4294967295
   734  	UINT_FAST16_MAX                       = 4294967295
   735  	UINT_FAST32_MAX                       = 4294967295
   736  	UINT_FAST64_MAX                       = 18446744073709551615
   737  	UINT_FAST8_MAX                        = 255
   738  	UINT_LEAST16_MAX                      = 65535
   739  	UINT_LEAST32_MAX                      = 4294967295
   740  	UINT_LEAST64_MAX                      = 18446744073709551615
   741  	UINT_LEAST8_MAX                       = 255
   742  	UNLOCKED                              = 0
   743  	USPosition                            = 1
   744  	USSize                                = 2
   745  	UnmapGravity                          = 0
   746  	UnmapNotify                           = 18
   747  	Unsorted                              = 0
   748  	VERSION                               = "0.9.10"
   749  	VisibilityChangeMask                  = 65536
   750  	VisibilityFullyObscured               = 2
   751  	VisibilityNotify                      = 15
   752  	VisibilityPartiallyObscured           = 1
   753  	VisibilityUnobscured                  = 0
   754  	VisualAllMask                         = 0x1FF
   755  	VisualBitsPerRGBMask                  = 0x100
   756  	VisualBlueMaskMask                    = 0x40
   757  	VisualClassMask                       = 0x8
   758  	VisualColormapSizeMask                = 0x80
   759  	VisualDepthMask                       = 0x4
   760  	VisualGreenMaskMask                   = 0x20
   761  	VisualIDMask                          = 0x1
   762  	VisualNoMask                          = 0x0
   763  	VisualRedMaskMask                     = 0x10
   764  	VisualScreenMask                      = 0x2
   765  	WCHAR_MAX                             = 4294967295
   766  	WCHAR_MIN                             = 0
   767  	WCONTINUED                            = 8
   768  	WEXITED                               = 4
   769  	WINT_MAX                              = 4294967295
   770  	WINT_MIN                              = 0
   771  	WLNSPERBATCH                          = 50
   772  	WNOHANG                               = 1
   773  	WNOWAIT                               = 0x01000000
   774  	WORD64ALIGN                           = 0
   775  	WRCTSPERBATCH                         = 10
   776  	WSTOPPED                              = 2
   777  	WUNTRACED                             = 2
   778  	WestGravity                           = 4
   779  	WhenMapped                            = 1
   780  	WidthValue                            = 0x0004
   781  	WindingRule                           = 1
   782  	WindowGroupHint                       = 64
   783  	WithdrawnState                        = 0
   784  	XBufferOverflow                       = -1
   785  	XCNOENT                               = 2
   786  	XCNOMEM                               = 1
   787  	XCSUCCESS                             = 0
   788  	XConverterNotFound                    = -3
   789  	XIMHighlight                          = 4
   790  	XIMHotKeyStateOFF                     = 2
   791  	XIMHotKeyStateON                      = 1
   792  	XIMInitialState                       = 1
   793  	XIMPreeditArea                        = 0x0001
   794  	XIMPreeditCallbacks                   = 0x0002
   795  	XIMPreeditDisable                     = 2
   796  	XIMPreeditEnable                      = 1
   797  	XIMPreeditNone                        = 0x0010
   798  	XIMPreeditNothing                     = 0x0008
   799  	XIMPreeditPosition                    = 0x0004
   800  	XIMPreeditUnKnown                     = 0
   801  	XIMPreserveState                      = 2
   802  	XIMPrimary                            = 32
   803  	XIMReverse                            = 1
   804  	XIMSecondary                          = 64
   805  	XIMStatusArea                         = 0x0100
   806  	XIMStatusCallbacks                    = 0x0200
   807  	XIMStatusNone                         = 0x0800
   808  	XIMStatusNothing                      = 0x0400
   809  	XIMStringConversionBottomEdge         = 8
   810  	XIMStringConversionBuffer             = 1
   811  	XIMStringConversionChar               = 4
   812  	XIMStringConversionConcealed          = 16
   813  	XIMStringConversionLeftEdge           = 1
   814  	XIMStringConversionLine               = 2
   815  	XIMStringConversionRetrieval          = 2
   816  	XIMStringConversionRightEdge          = 2
   817  	XIMStringConversionSubstitution       = 1
   818  	XIMStringConversionTopEdge            = 4
   819  	XIMStringConversionWord               = 3
   820  	XIMStringConversionWrapped            = 32
   821  	XIMTertiary                           = 128
   822  	XIMUnderline                          = 2
   823  	XIMVisibleToBackword                  = 512
   824  	XIMVisibleToCenter                    = 1024
   825  	XIMVisibleToForward                   = 256
   826  	XK_0                                  = 0x0030
   827  	XK_1                                  = 0x0031
   828  	XK_2                                  = 0x0032
   829  	XK_3                                  = 0x0033
   830  	XK_4                                  = 0x0034
   831  	XK_5                                  = 0x0035
   832  	XK_6                                  = 0x0036
   833  	XK_7                                  = 0x0037
   834  	XK_8                                  = 0x0038
   835  	XK_9                                  = 0x0039
   836  	XK_A                                  = 0x0041
   837  	XK_AE                                 = 0x00c6
   838  	XK_ARABIC                             = 0
   839  	XK_ARMENIAN                           = 0
   840  	XK_Aacute                             = 0x00c1
   841  	XK_Abelowdot                          = 0x1001ea0
   842  	XK_Abreve                             = 0x01c3
   843  	XK_Abreveacute                        = 0x1001eae
   844  	XK_Abrevebelowdot                     = 0x1001eb6
   845  	XK_Abrevegrave                        = 0x1001eb0
   846  	XK_Abrevehook                         = 0x1001eb2
   847  	XK_Abrevetilde                        = 0x1001eb4
   848  	XK_AccessX_Enable                     = 0xfe70
   849  	XK_AccessX_Feedback_Enable            = 0xfe71
   850  	XK_Acircumflex                        = 0x00c2
   851  	XK_Acircumflexacute                   = 0x1001ea4
   852  	XK_Acircumflexbelowdot                = 0x1001eac
   853  	XK_Acircumflexgrave                   = 0x1001ea6
   854  	XK_Acircumflexhook                    = 0x1001ea8
   855  	XK_Acircumflextilde                   = 0x1001eaa
   856  	XK_Adiaeresis                         = 0x00c4
   857  	XK_Agrave                             = 0x00c0
   858  	XK_Ahook                              = 0x1001ea2
   859  	XK_Alt_L                              = 0xffe9
   860  	XK_Alt_R                              = 0xffea
   861  	XK_Amacron                            = 0x03c0
   862  	XK_Aogonek                            = 0x01a1
   863  	XK_Arabic_0                           = 0x1000660
   864  	XK_Arabic_1                           = 0x1000661
   865  	XK_Arabic_2                           = 0x1000662
   866  	XK_Arabic_3                           = 0x1000663
   867  	XK_Arabic_4                           = 0x1000664
   868  	XK_Arabic_5                           = 0x1000665
   869  	XK_Arabic_6                           = 0x1000666
   870  	XK_Arabic_7                           = 0x1000667
   871  	XK_Arabic_8                           = 0x1000668
   872  	XK_Arabic_9                           = 0x1000669
   873  	XK_Arabic_ain                         = 0x05d9
   874  	XK_Arabic_alef                        = 0x05c7
   875  	XK_Arabic_alefmaksura                 = 0x05e9
   876  	XK_Arabic_beh                         = 0x05c8
   877  	XK_Arabic_comma                       = 0x05ac
   878  	XK_Arabic_dad                         = 0x05d6
   879  	XK_Arabic_dal                         = 0x05cf
   880  	XK_Arabic_damma                       = 0x05ef
   881  	XK_Arabic_dammatan                    = 0x05ec
   882  	XK_Arabic_ddal                        = 0x1000688
   883  	XK_Arabic_farsi_yeh                   = 0x10006cc
   884  	XK_Arabic_fatha                       = 0x05ee
   885  	XK_Arabic_fathatan                    = 0x05eb
   886  	XK_Arabic_feh                         = 0x05e1
   887  	XK_Arabic_fullstop                    = 0x10006d4
   888  	XK_Arabic_gaf                         = 0x10006af
   889  	XK_Arabic_ghain                       = 0x05da
   890  	XK_Arabic_ha                          = 0x05e7
   891  	XK_Arabic_hah                         = 0x05cd
   892  	XK_Arabic_hamza                       = 0x05c1
   893  	XK_Arabic_hamza_above                 = 0x1000654
   894  	XK_Arabic_hamza_below                 = 0x1000655
   895  	XK_Arabic_hamzaonalef                 = 0x05c3
   896  	XK_Arabic_hamzaonwaw                  = 0x05c4
   897  	XK_Arabic_hamzaonyeh                  = 0x05c6
   898  	XK_Arabic_hamzaunderalef              = 0x05c5
   899  	XK_Arabic_heh                         = 0x05e7
   900  	XK_Arabic_heh_doachashmee             = 0x10006be
   901  	XK_Arabic_heh_goal                    = 0x10006c1
   902  	XK_Arabic_jeem                        = 0x05cc
   903  	XK_Arabic_jeh                         = 0x1000698
   904  	XK_Arabic_kaf                         = 0x05e3
   905  	XK_Arabic_kasra                       = 0x05f0
   906  	XK_Arabic_kasratan                    = 0x05ed
   907  	XK_Arabic_keheh                       = 0x10006a9
   908  	XK_Arabic_khah                        = 0x05ce
   909  	XK_Arabic_lam                         = 0x05e4
   910  	XK_Arabic_madda_above                 = 0x1000653
   911  	XK_Arabic_maddaonalef                 = 0x05c2
   912  	XK_Arabic_meem                        = 0x05e5
   913  	XK_Arabic_noon                        = 0x05e6
   914  	XK_Arabic_noon_ghunna                 = 0x10006ba
   915  	XK_Arabic_peh                         = 0x100067e
   916  	XK_Arabic_percent                     = 0x100066a
   917  	XK_Arabic_qaf                         = 0x05e2
   918  	XK_Arabic_question_mark               = 0x05bf
   919  	XK_Arabic_ra                          = 0x05d1
   920  	XK_Arabic_rreh                        = 0x1000691
   921  	XK_Arabic_sad                         = 0x05d5
   922  	XK_Arabic_seen                        = 0x05d3
   923  	XK_Arabic_semicolon                   = 0x05bb
   924  	XK_Arabic_shadda                      = 0x05f1
   925  	XK_Arabic_sheen                       = 0x05d4
   926  	XK_Arabic_sukun                       = 0x05f2
   927  	XK_Arabic_superscript_alef            = 0x1000670
   928  	XK_Arabic_switch                      = 0xff7e
   929  	XK_Arabic_tah                         = 0x05d7
   930  	XK_Arabic_tatweel                     = 0x05e0
   931  	XK_Arabic_tcheh                       = 0x1000686
   932  	XK_Arabic_teh                         = 0x05ca
   933  	XK_Arabic_tehmarbuta                  = 0x05c9
   934  	XK_Arabic_thal                        = 0x05d0
   935  	XK_Arabic_theh                        = 0x05cb
   936  	XK_Arabic_tteh                        = 0x1000679
   937  	XK_Arabic_veh                         = 0x10006a4
   938  	XK_Arabic_waw                         = 0x05e8
   939  	XK_Arabic_yeh                         = 0x05ea
   940  	XK_Arabic_yeh_baree                   = 0x10006d2
   941  	XK_Arabic_zah                         = 0x05d8
   942  	XK_Arabic_zain                        = 0x05d2
   943  	XK_Aring                              = 0x00c5
   944  	XK_Armenian_AT                        = 0x1000538
   945  	XK_Armenian_AYB                       = 0x1000531
   946  	XK_Armenian_BEN                       = 0x1000532
   947  	XK_Armenian_CHA                       = 0x1000549
   948  	XK_Armenian_DA                        = 0x1000534
   949  	XK_Armenian_DZA                       = 0x1000541
   950  	XK_Armenian_E                         = 0x1000537
   951  	XK_Armenian_FE                        = 0x1000556
   952  	XK_Armenian_GHAT                      = 0x1000542
   953  	XK_Armenian_GIM                       = 0x1000533
   954  	XK_Armenian_HI                        = 0x1000545
   955  	XK_Armenian_HO                        = 0x1000540
   956  	XK_Armenian_INI                       = 0x100053b
   957  	XK_Armenian_JE                        = 0x100054b
   958  	XK_Armenian_KE                        = 0x1000554
   959  	XK_Armenian_KEN                       = 0x100053f
   960  	XK_Armenian_KHE                       = 0x100053d
   961  	XK_Armenian_LYUN                      = 0x100053c
   962  	XK_Armenian_MEN                       = 0x1000544
   963  	XK_Armenian_NU                        = 0x1000546
   964  	XK_Armenian_O                         = 0x1000555
   965  	XK_Armenian_PE                        = 0x100054a
   966  	XK_Armenian_PYUR                      = 0x1000553
   967  	XK_Armenian_RA                        = 0x100054c
   968  	XK_Armenian_RE                        = 0x1000550
   969  	XK_Armenian_SE                        = 0x100054d
   970  	XK_Armenian_SHA                       = 0x1000547
   971  	XK_Armenian_TCHE                      = 0x1000543
   972  	XK_Armenian_TO                        = 0x1000539
   973  	XK_Armenian_TSA                       = 0x100053e
   974  	XK_Armenian_TSO                       = 0x1000551
   975  	XK_Armenian_TYUN                      = 0x100054f
   976  	XK_Armenian_VEV                       = 0x100054e
   977  	XK_Armenian_VO                        = 0x1000548
   978  	XK_Armenian_VYUN                      = 0x1000552
   979  	XK_Armenian_YECH                      = 0x1000535
   980  	XK_Armenian_ZA                        = 0x1000536
   981  	XK_Armenian_ZHE                       = 0x100053a
   982  	XK_Armenian_accent                    = 0x100055b
   983  	XK_Armenian_amanak                    = 0x100055c
   984  	XK_Armenian_apostrophe                = 0x100055a
   985  	XK_Armenian_at                        = 0x1000568
   986  	XK_Armenian_ayb                       = 0x1000561
   987  	XK_Armenian_ben                       = 0x1000562
   988  	XK_Armenian_but                       = 0x100055d
   989  	XK_Armenian_cha                       = 0x1000579
   990  	XK_Armenian_da                        = 0x1000564
   991  	XK_Armenian_dza                       = 0x1000571
   992  	XK_Armenian_e                         = 0x1000567
   993  	XK_Armenian_exclam                    = 0x100055c
   994  	XK_Armenian_fe                        = 0x1000586
   995  	XK_Armenian_full_stop                 = 0x1000589
   996  	XK_Armenian_ghat                      = 0x1000572
   997  	XK_Armenian_gim                       = 0x1000563
   998  	XK_Armenian_hi                        = 0x1000575
   999  	XK_Armenian_ho                        = 0x1000570
  1000  	XK_Armenian_hyphen                    = 0x100058a
  1001  	XK_Armenian_ini                       = 0x100056b
  1002  	XK_Armenian_je                        = 0x100057b
  1003  	XK_Armenian_ke                        = 0x1000584
  1004  	XK_Armenian_ken                       = 0x100056f
  1005  	XK_Armenian_khe                       = 0x100056d
  1006  	XK_Armenian_ligature_ew               = 0x1000587
  1007  	XK_Armenian_lyun                      = 0x100056c
  1008  	XK_Armenian_men                       = 0x1000574
  1009  	XK_Armenian_nu                        = 0x1000576
  1010  	XK_Armenian_o                         = 0x1000585
  1011  	XK_Armenian_paruyk                    = 0x100055e
  1012  	XK_Armenian_pe                        = 0x100057a
  1013  	XK_Armenian_pyur                      = 0x1000583
  1014  	XK_Armenian_question                  = 0x100055e
  1015  	XK_Armenian_ra                        = 0x100057c
  1016  	XK_Armenian_re                        = 0x1000580
  1017  	XK_Armenian_se                        = 0x100057d
  1018  	XK_Armenian_separation_mark           = 0x100055d
  1019  	XK_Armenian_sha                       = 0x1000577
  1020  	XK_Armenian_shesht                    = 0x100055b
  1021  	XK_Armenian_tche                      = 0x1000573
  1022  	XK_Armenian_to                        = 0x1000569
  1023  	XK_Armenian_tsa                       = 0x100056e
  1024  	XK_Armenian_tso                       = 0x1000581
  1025  	XK_Armenian_tyun                      = 0x100057f
  1026  	XK_Armenian_verjaket                  = 0x1000589
  1027  	XK_Armenian_vev                       = 0x100057e
  1028  	XK_Armenian_vo                        = 0x1000578
  1029  	XK_Armenian_vyun                      = 0x1000582
  1030  	XK_Armenian_yech                      = 0x1000565
  1031  	XK_Armenian_yentamna                  = 0x100058a
  1032  	XK_Armenian_za                        = 0x1000566
  1033  	XK_Armenian_zhe                       = 0x100056a
  1034  	XK_Atilde                             = 0x00c3
  1035  	XK_AudibleBell_Enable                 = 0xfe7a
  1036  	XK_B                                  = 0x0042
  1037  	XK_BRAILLE                            = 0
  1038  	XK_Babovedot                          = 0x1001e02
  1039  	XK_BackSpace                          = 0xff08
  1040  	XK_Begin                              = 0xff58
  1041  	XK_BounceKeys_Enable                  = 0xfe74
  1042  	XK_Break                              = 0xff6b
  1043  	XK_Byelorussian_SHORTU                = 0x06be
  1044  	XK_Byelorussian_shortu                = 0x06ae
  1045  	XK_C                                  = 0x0043
  1046  	XK_CAUCASUS                           = 0
  1047  	XK_CH                                 = 0xfea2
  1048  	XK_CURRENCY                           = 0
  1049  	XK_CYRILLIC                           = 0
  1050  	XK_C_H                                = 0xfea5
  1051  	XK_C_h                                = 0xfea4
  1052  	XK_Cabovedot                          = 0x02c5
  1053  	XK_Cacute                             = 0x01c6
  1054  	XK_Cancel                             = 0xff69
  1055  	XK_Caps_Lock                          = 0xffe5
  1056  	XK_Ccaron                             = 0x01c8
  1057  	XK_Ccedilla                           = 0x00c7
  1058  	XK_Ccircumflex                        = 0x02c6
  1059  	XK_Ch                                 = 0xfea1
  1060  	XK_Clear                              = 0xff0b
  1061  	XK_Codeinput                          = 0xff37
  1062  	XK_ColonSign                          = 0x10020a1
  1063  	XK_Control_L                          = 0xffe3
  1064  	XK_Control_R                          = 0xffe4
  1065  	XK_CruzeiroSign                       = 0x10020a2
  1066  	XK_Cyrillic_A                         = 0x06e1
  1067  	XK_Cyrillic_BE                        = 0x06e2
  1068  	XK_Cyrillic_CHE                       = 0x06fe
  1069  	XK_Cyrillic_CHE_descender             = 0x10004b6
  1070  	XK_Cyrillic_CHE_vertstroke            = 0x10004b8
  1071  	XK_Cyrillic_DE                        = 0x06e4
  1072  	XK_Cyrillic_DZHE                      = 0x06bf
  1073  	XK_Cyrillic_E                         = 0x06fc
  1074  	XK_Cyrillic_EF                        = 0x06e6
  1075  	XK_Cyrillic_EL                        = 0x06ec
  1076  	XK_Cyrillic_EM                        = 0x06ed
  1077  	XK_Cyrillic_EN                        = 0x06ee
  1078  	XK_Cyrillic_EN_descender              = 0x10004a2
  1079  	XK_Cyrillic_ER                        = 0x06f2
  1080  	XK_Cyrillic_ES                        = 0x06f3
  1081  	XK_Cyrillic_GHE                       = 0x06e7
  1082  	XK_Cyrillic_GHE_bar                   = 0x1000492
  1083  	XK_Cyrillic_HA                        = 0x06e8
  1084  	XK_Cyrillic_HARDSIGN                  = 0x06ff
  1085  	XK_Cyrillic_HA_descender              = 0x10004b2
  1086  	XK_Cyrillic_I                         = 0x06e9
  1087  	XK_Cyrillic_IE                        = 0x06e5
  1088  	XK_Cyrillic_IO                        = 0x06b3
  1089  	XK_Cyrillic_I_macron                  = 0x10004e2
  1090  	XK_Cyrillic_JE                        = 0x06b8
  1091  	XK_Cyrillic_KA                        = 0x06eb
  1092  	XK_Cyrillic_KA_descender              = 0x100049a
  1093  	XK_Cyrillic_KA_vertstroke             = 0x100049c
  1094  	XK_Cyrillic_LJE                       = 0x06b9
  1095  	XK_Cyrillic_NJE                       = 0x06ba
  1096  	XK_Cyrillic_O                         = 0x06ef
  1097  	XK_Cyrillic_O_bar                     = 0x10004e8
  1098  	XK_Cyrillic_PE                        = 0x06f0
  1099  	XK_Cyrillic_SCHWA                     = 0x10004d8
  1100  	XK_Cyrillic_SHA                       = 0x06fb
  1101  	XK_Cyrillic_SHCHA                     = 0x06fd
  1102  	XK_Cyrillic_SHHA                      = 0x10004ba
  1103  	XK_Cyrillic_SHORTI                    = 0x06ea
  1104  	XK_Cyrillic_SOFTSIGN                  = 0x06f8
  1105  	XK_Cyrillic_TE                        = 0x06f4
  1106  	XK_Cyrillic_TSE                       = 0x06e3
  1107  	XK_Cyrillic_U                         = 0x06f5
  1108  	XK_Cyrillic_U_macron                  = 0x10004ee
  1109  	XK_Cyrillic_U_straight                = 0x10004ae
  1110  	XK_Cyrillic_U_straight_bar            = 0x10004b0
  1111  	XK_Cyrillic_VE                        = 0x06f7
  1112  	XK_Cyrillic_YA                        = 0x06f1
  1113  	XK_Cyrillic_YERU                      = 0x06f9
  1114  	XK_Cyrillic_YU                        = 0x06e0
  1115  	XK_Cyrillic_ZE                        = 0x06fa
  1116  	XK_Cyrillic_ZHE                       = 0x06f6
  1117  	XK_Cyrillic_ZHE_descender             = 0x1000496
  1118  	XK_Cyrillic_a                         = 0x06c1
  1119  	XK_Cyrillic_be                        = 0x06c2
  1120  	XK_Cyrillic_che                       = 0x06de
  1121  	XK_Cyrillic_che_descender             = 0x10004b7
  1122  	XK_Cyrillic_che_vertstroke            = 0x10004b9
  1123  	XK_Cyrillic_de                        = 0x06c4
  1124  	XK_Cyrillic_dzhe                      = 0x06af
  1125  	XK_Cyrillic_e                         = 0x06dc
  1126  	XK_Cyrillic_ef                        = 0x06c6
  1127  	XK_Cyrillic_el                        = 0x06cc
  1128  	XK_Cyrillic_em                        = 0x06cd
  1129  	XK_Cyrillic_en                        = 0x06ce
  1130  	XK_Cyrillic_en_descender              = 0x10004a3
  1131  	XK_Cyrillic_er                        = 0x06d2
  1132  	XK_Cyrillic_es                        = 0x06d3
  1133  	XK_Cyrillic_ghe                       = 0x06c7
  1134  	XK_Cyrillic_ghe_bar                   = 0x1000493
  1135  	XK_Cyrillic_ha                        = 0x06c8
  1136  	XK_Cyrillic_ha_descender              = 0x10004b3
  1137  	XK_Cyrillic_hardsign                  = 0x06df
  1138  	XK_Cyrillic_i                         = 0x06c9
  1139  	XK_Cyrillic_i_macron                  = 0x10004e3
  1140  	XK_Cyrillic_ie                        = 0x06c5
  1141  	XK_Cyrillic_io                        = 0x06a3
  1142  	XK_Cyrillic_je                        = 0x06a8
  1143  	XK_Cyrillic_ka                        = 0x06cb
  1144  	XK_Cyrillic_ka_descender              = 0x100049b
  1145  	XK_Cyrillic_ka_vertstroke             = 0x100049d
  1146  	XK_Cyrillic_lje                       = 0x06a9
  1147  	XK_Cyrillic_nje                       = 0x06aa
  1148  	XK_Cyrillic_o                         = 0x06cf
  1149  	XK_Cyrillic_o_bar                     = 0x10004e9
  1150  	XK_Cyrillic_pe                        = 0x06d0
  1151  	XK_Cyrillic_schwa                     = 0x10004d9
  1152  	XK_Cyrillic_sha                       = 0x06db
  1153  	XK_Cyrillic_shcha                     = 0x06dd
  1154  	XK_Cyrillic_shha                      = 0x10004bb
  1155  	XK_Cyrillic_shorti                    = 0x06ca
  1156  	XK_Cyrillic_softsign                  = 0x06d8
  1157  	XK_Cyrillic_te                        = 0x06d4
  1158  	XK_Cyrillic_tse                       = 0x06c3
  1159  	XK_Cyrillic_u                         = 0x06d5
  1160  	XK_Cyrillic_u_macron                  = 0x10004ef
  1161  	XK_Cyrillic_u_straight                = 0x10004af
  1162  	XK_Cyrillic_u_straight_bar            = 0x10004b1
  1163  	XK_Cyrillic_ve                        = 0x06d7
  1164  	XK_Cyrillic_ya                        = 0x06d1
  1165  	XK_Cyrillic_yeru                      = 0x06d9
  1166  	XK_Cyrillic_yu                        = 0x06c0
  1167  	XK_Cyrillic_ze                        = 0x06da
  1168  	XK_Cyrillic_zhe                       = 0x06d6
  1169  	XK_Cyrillic_zhe_descender             = 0x1000497
  1170  	XK_D                                  = 0x0044
  1171  	XK_Dabovedot                          = 0x1001e0a
  1172  	XK_Dcaron                             = 0x01cf
  1173  	XK_Delete                             = 0xffff
  1174  	XK_DongSign                           = 0x10020ab
  1175  	XK_Down                               = 0xff54
  1176  	XK_Dstroke                            = 0x01d0
  1177  	XK_E                                  = 0x0045
  1178  	XK_ENG                                = 0x03bd
  1179  	XK_ETH                                = 0x00d0
  1180  	XK_EZH                                = 0x10001b7
  1181  	XK_Eabovedot                          = 0x03cc
  1182  	XK_Eacute                             = 0x00c9
  1183  	XK_Ebelowdot                          = 0x1001eb8
  1184  	XK_Ecaron                             = 0x01cc
  1185  	XK_Ecircumflex                        = 0x00ca
  1186  	XK_Ecircumflexacute                   = 0x1001ebe
  1187  	XK_Ecircumflexbelowdot                = 0x1001ec6
  1188  	XK_Ecircumflexgrave                   = 0x1001ec0
  1189  	XK_Ecircumflexhook                    = 0x1001ec2
  1190  	XK_Ecircumflextilde                   = 0x1001ec4
  1191  	XK_EcuSign                            = 0x10020a0
  1192  	XK_Ediaeresis                         = 0x00cb
  1193  	XK_Egrave                             = 0x00c8
  1194  	XK_Ehook                              = 0x1001eba
  1195  	XK_Eisu_Shift                         = 0xff2f
  1196  	XK_Eisu_toggle                        = 0xff30
  1197  	XK_Emacron                            = 0x03aa
  1198  	XK_End                                = 0xff57
  1199  	XK_Eogonek                            = 0x01ca
  1200  	XK_Escape                             = 0xff1b
  1201  	XK_Eth                                = 0x00d0
  1202  	XK_Etilde                             = 0x1001ebc
  1203  	XK_EuroSign                           = 0x20ac
  1204  	XK_Execute                            = 0xff62
  1205  	XK_F                                  = 0x0046
  1206  	XK_F1                                 = 0xffbe
  1207  	XK_F10                                = 0xffc7
  1208  	XK_F11                                = 0xffc8
  1209  	XK_F12                                = 0xffc9
  1210  	XK_F13                                = 0xffca
  1211  	XK_F14                                = 0xffcb
  1212  	XK_F15                                = 0xffcc
  1213  	XK_F16                                = 0xffcd
  1214  	XK_F17                                = 0xffce
  1215  	XK_F18                                = 0xffcf
  1216  	XK_F19                                = 0xffd0
  1217  	XK_F2                                 = 0xffbf
  1218  	XK_F20                                = 0xffd1
  1219  	XK_F21                                = 0xffd2
  1220  	XK_F22                                = 0xffd3
  1221  	XK_F23                                = 0xffd4
  1222  	XK_F24                                = 0xffd5
  1223  	XK_F25                                = 0xffd6
  1224  	XK_F26                                = 0xffd7
  1225  	XK_F27                                = 0xffd8
  1226  	XK_F28                                = 0xffd9
  1227  	XK_F29                                = 0xffda
  1228  	XK_F3                                 = 0xffc0
  1229  	XK_F30                                = 0xffdb
  1230  	XK_F31                                = 0xffdc
  1231  	XK_F32                                = 0xffdd
  1232  	XK_F33                                = 0xffde
  1233  	XK_F34                                = 0xffdf
  1234  	XK_F35                                = 0xffe0
  1235  	XK_F4                                 = 0xffc1
  1236  	XK_F5                                 = 0xffc2
  1237  	XK_F6                                 = 0xffc3
  1238  	XK_F7                                 = 0xffc4
  1239  	XK_F8                                 = 0xffc5
  1240  	XK_F9                                 = 0xffc6
  1241  	XK_FFrancSign                         = 0x10020a3
  1242  	XK_Fabovedot                          = 0x1001e1e
  1243  	XK_Farsi_0                            = 0x10006f0
  1244  	XK_Farsi_1                            = 0x10006f1
  1245  	XK_Farsi_2                            = 0x10006f2
  1246  	XK_Farsi_3                            = 0x10006f3
  1247  	XK_Farsi_4                            = 0x10006f4
  1248  	XK_Farsi_5                            = 0x10006f5
  1249  	XK_Farsi_6                            = 0x10006f6
  1250  	XK_Farsi_7                            = 0x10006f7
  1251  	XK_Farsi_8                            = 0x10006f8
  1252  	XK_Farsi_9                            = 0x10006f9
  1253  	XK_Farsi_yeh                          = 0x10006cc
  1254  	XK_Find                               = 0xff68
  1255  	XK_First_Virtual_Screen               = 0xfed0
  1256  	XK_G                                  = 0x0047
  1257  	XK_GEORGIAN                           = 0
  1258  	XK_GREEK                              = 0
  1259  	XK_Gabovedot                          = 0x02d5
  1260  	XK_Gbreve                             = 0x02ab
  1261  	XK_Gcaron                             = 0x10001e6
  1262  	XK_Gcedilla                           = 0x03ab
  1263  	XK_Gcircumflex                        = 0x02d8
  1264  	XK_Georgian_an                        = 0x10010d0
  1265  	XK_Georgian_ban                       = 0x10010d1
  1266  	XK_Georgian_can                       = 0x10010ea
  1267  	XK_Georgian_char                      = 0x10010ed
  1268  	XK_Georgian_chin                      = 0x10010e9
  1269  	XK_Georgian_cil                       = 0x10010ec
  1270  	XK_Georgian_don                       = 0x10010d3
  1271  	XK_Georgian_en                        = 0x10010d4
  1272  	XK_Georgian_fi                        = 0x10010f6
  1273  	XK_Georgian_gan                       = 0x10010d2
  1274  	XK_Georgian_ghan                      = 0x10010e6
  1275  	XK_Georgian_hae                       = 0x10010f0
  1276  	XK_Georgian_har                       = 0x10010f4
  1277  	XK_Georgian_he                        = 0x10010f1
  1278  	XK_Georgian_hie                       = 0x10010f2
  1279  	XK_Georgian_hoe                       = 0x10010f5
  1280  	XK_Georgian_in                        = 0x10010d8
  1281  	XK_Georgian_jhan                      = 0x10010ef
  1282  	XK_Georgian_jil                       = 0x10010eb
  1283  	XK_Georgian_kan                       = 0x10010d9
  1284  	XK_Georgian_khar                      = 0x10010e5
  1285  	XK_Georgian_las                       = 0x10010da
  1286  	XK_Georgian_man                       = 0x10010db
  1287  	XK_Georgian_nar                       = 0x10010dc
  1288  	XK_Georgian_on                        = 0x10010dd
  1289  	XK_Georgian_par                       = 0x10010de
  1290  	XK_Georgian_phar                      = 0x10010e4
  1291  	XK_Georgian_qar                       = 0x10010e7
  1292  	XK_Georgian_rae                       = 0x10010e0
  1293  	XK_Georgian_san                       = 0x10010e1
  1294  	XK_Georgian_shin                      = 0x10010e8
  1295  	XK_Georgian_tan                       = 0x10010d7
  1296  	XK_Georgian_tar                       = 0x10010e2
  1297  	XK_Georgian_un                        = 0x10010e3
  1298  	XK_Georgian_vin                       = 0x10010d5
  1299  	XK_Georgian_we                        = 0x10010f3
  1300  	XK_Georgian_xan                       = 0x10010ee
  1301  	XK_Georgian_zen                       = 0x10010d6
  1302  	XK_Georgian_zhar                      = 0x10010df
  1303  	XK_Greek_ALPHA                        = 0x07c1
  1304  	XK_Greek_ALPHAaccent                  = 0x07a1
  1305  	XK_Greek_BETA                         = 0x07c2
  1306  	XK_Greek_CHI                          = 0x07d7
  1307  	XK_Greek_DELTA                        = 0x07c4
  1308  	XK_Greek_EPSILON                      = 0x07c5
  1309  	XK_Greek_EPSILONaccent                = 0x07a2
  1310  	XK_Greek_ETA                          = 0x07c7
  1311  	XK_Greek_ETAaccent                    = 0x07a3
  1312  	XK_Greek_GAMMA                        = 0x07c3
  1313  	XK_Greek_IOTA                         = 0x07c9
  1314  	XK_Greek_IOTAaccent                   = 0x07a4
  1315  	XK_Greek_IOTAdiaeresis                = 0x07a5
  1316  	XK_Greek_IOTAdieresis                 = 0x07a5
  1317  	XK_Greek_KAPPA                        = 0x07ca
  1318  	XK_Greek_LAMBDA                       = 0x07cb
  1319  	XK_Greek_LAMDA                        = 0x07cb
  1320  	XK_Greek_MU                           = 0x07cc
  1321  	XK_Greek_NU                           = 0x07cd
  1322  	XK_Greek_OMEGA                        = 0x07d9
  1323  	XK_Greek_OMEGAaccent                  = 0x07ab
  1324  	XK_Greek_OMICRON                      = 0x07cf
  1325  	XK_Greek_OMICRONaccent                = 0x07a7
  1326  	XK_Greek_PHI                          = 0x07d6
  1327  	XK_Greek_PI                           = 0x07d0
  1328  	XK_Greek_PSI                          = 0x07d8
  1329  	XK_Greek_RHO                          = 0x07d1
  1330  	XK_Greek_SIGMA                        = 0x07d2
  1331  	XK_Greek_TAU                          = 0x07d4
  1332  	XK_Greek_THETA                        = 0x07c8
  1333  	XK_Greek_UPSILON                      = 0x07d5
  1334  	XK_Greek_UPSILONaccent                = 0x07a8
  1335  	XK_Greek_UPSILONdieresis              = 0x07a9
  1336  	XK_Greek_XI                           = 0x07ce
  1337  	XK_Greek_ZETA                         = 0x07c6
  1338  	XK_Greek_accentdieresis               = 0x07ae
  1339  	XK_Greek_alpha                        = 0x07e1
  1340  	XK_Greek_alphaaccent                  = 0x07b1
  1341  	XK_Greek_beta                         = 0x07e2
  1342  	XK_Greek_chi                          = 0x07f7
  1343  	XK_Greek_delta                        = 0x07e4
  1344  	XK_Greek_epsilon                      = 0x07e5
  1345  	XK_Greek_epsilonaccent                = 0x07b2
  1346  	XK_Greek_eta                          = 0x07e7
  1347  	XK_Greek_etaaccent                    = 0x07b3
  1348  	XK_Greek_finalsmallsigma              = 0x07f3
  1349  	XK_Greek_gamma                        = 0x07e3
  1350  	XK_Greek_horizbar                     = 0x07af
  1351  	XK_Greek_iota                         = 0x07e9
  1352  	XK_Greek_iotaaccent                   = 0x07b4
  1353  	XK_Greek_iotaaccentdieresis           = 0x07b6
  1354  	XK_Greek_iotadieresis                 = 0x07b5
  1355  	XK_Greek_kappa                        = 0x07ea
  1356  	XK_Greek_lambda                       = 0x07eb
  1357  	XK_Greek_lamda                        = 0x07eb
  1358  	XK_Greek_mu                           = 0x07ec
  1359  	XK_Greek_nu                           = 0x07ed
  1360  	XK_Greek_omega                        = 0x07f9
  1361  	XK_Greek_omegaaccent                  = 0x07bb
  1362  	XK_Greek_omicron                      = 0x07ef
  1363  	XK_Greek_omicronaccent                = 0x07b7
  1364  	XK_Greek_phi                          = 0x07f6
  1365  	XK_Greek_pi                           = 0x07f0
  1366  	XK_Greek_psi                          = 0x07f8
  1367  	XK_Greek_rho                          = 0x07f1
  1368  	XK_Greek_sigma                        = 0x07f2
  1369  	XK_Greek_switch                       = 0xff7e
  1370  	XK_Greek_tau                          = 0x07f4
  1371  	XK_Greek_theta                        = 0x07e8
  1372  	XK_Greek_upsilon                      = 0x07f5
  1373  	XK_Greek_upsilonaccent                = 0x07b8
  1374  	XK_Greek_upsilonaccentdieresis        = 0x07ba
  1375  	XK_Greek_upsilondieresis              = 0x07b9
  1376  	XK_Greek_xi                           = 0x07ee
  1377  	XK_Greek_zeta                         = 0x07e6
  1378  	XK_H                                  = 0x0048
  1379  	XK_HEBREW                             = 0
  1380  	XK_Hangul                             = 0xff31
  1381  	XK_Hangul_A                           = 0x0ebf
  1382  	XK_Hangul_AE                          = 0x0ec0
  1383  	XK_Hangul_AraeA                       = 0x0ef6
  1384  	XK_Hangul_AraeAE                      = 0x0ef7
  1385  	XK_Hangul_Banja                       = 0xff39
  1386  	XK_Hangul_Cieuc                       = 0x0eba
  1387  	XK_Hangul_Codeinput                   = 0xff37
  1388  	XK_Hangul_Dikeud                      = 0x0ea7
  1389  	XK_Hangul_E                           = 0x0ec4
  1390  	XK_Hangul_EO                          = 0x0ec3
  1391  	XK_Hangul_EU                          = 0x0ed1
  1392  	XK_Hangul_End                         = 0xff33
  1393  	XK_Hangul_Hanja                       = 0xff34
  1394  	XK_Hangul_Hieuh                       = 0x0ebe
  1395  	XK_Hangul_I                           = 0x0ed3
  1396  	XK_Hangul_Ieung                       = 0x0eb7
  1397  	XK_Hangul_J_Cieuc                     = 0x0eea
  1398  	XK_Hangul_J_Dikeud                    = 0x0eda
  1399  	XK_Hangul_J_Hieuh                     = 0x0eee
  1400  	XK_Hangul_J_Ieung                     = 0x0ee8
  1401  	XK_Hangul_J_Jieuj                     = 0x0ee9
  1402  	XK_Hangul_J_Khieuq                    = 0x0eeb
  1403  	XK_Hangul_J_Kiyeog                    = 0x0ed4
  1404  	XK_Hangul_J_KiyeogSios                = 0x0ed6
  1405  	XK_Hangul_J_KkogjiDalrinIeung         = 0x0ef9
  1406  	XK_Hangul_J_Mieum                     = 0x0ee3
  1407  	XK_Hangul_J_Nieun                     = 0x0ed7
  1408  	XK_Hangul_J_NieunHieuh                = 0x0ed9
  1409  	XK_Hangul_J_NieunJieuj                = 0x0ed8
  1410  	XK_Hangul_J_PanSios                   = 0x0ef8
  1411  	XK_Hangul_J_Phieuf                    = 0x0eed
  1412  	XK_Hangul_J_Pieub                     = 0x0ee4
  1413  	XK_Hangul_J_PieubSios                 = 0x0ee5
  1414  	XK_Hangul_J_Rieul                     = 0x0edb
  1415  	XK_Hangul_J_RieulHieuh                = 0x0ee2
  1416  	XK_Hangul_J_RieulKiyeog               = 0x0edc
  1417  	XK_Hangul_J_RieulMieum                = 0x0edd
  1418  	XK_Hangul_J_RieulPhieuf               = 0x0ee1
  1419  	XK_Hangul_J_RieulPieub                = 0x0ede
  1420  	XK_Hangul_J_RieulSios                 = 0x0edf
  1421  	XK_Hangul_J_RieulTieut                = 0x0ee0
  1422  	XK_Hangul_J_Sios                      = 0x0ee6
  1423  	XK_Hangul_J_SsangKiyeog               = 0x0ed5
  1424  	XK_Hangul_J_SsangSios                 = 0x0ee7
  1425  	XK_Hangul_J_Tieut                     = 0x0eec
  1426  	XK_Hangul_J_YeorinHieuh               = 0x0efa
  1427  	XK_Hangul_Jamo                        = 0xff35
  1428  	XK_Hangul_Jeonja                      = 0xff38
  1429  	XK_Hangul_Jieuj                       = 0x0eb8
  1430  	XK_Hangul_Khieuq                      = 0x0ebb
  1431  	XK_Hangul_Kiyeog                      = 0x0ea1
  1432  	XK_Hangul_KiyeogSios                  = 0x0ea3
  1433  	XK_Hangul_KkogjiDalrinIeung           = 0x0ef3
  1434  	XK_Hangul_Mieum                       = 0x0eb1
  1435  	XK_Hangul_MultipleCandidate           = 0xff3d
  1436  	XK_Hangul_Nieun                       = 0x0ea4
  1437  	XK_Hangul_NieunHieuh                  = 0x0ea6
  1438  	XK_Hangul_NieunJieuj                  = 0x0ea5
  1439  	XK_Hangul_O                           = 0x0ec7
  1440  	XK_Hangul_OE                          = 0x0eca
  1441  	XK_Hangul_PanSios                     = 0x0ef2
  1442  	XK_Hangul_Phieuf                      = 0x0ebd
  1443  	XK_Hangul_Pieub                       = 0x0eb2
  1444  	XK_Hangul_PieubSios                   = 0x0eb4
  1445  	XK_Hangul_PostHanja                   = 0xff3b
  1446  	XK_Hangul_PreHanja                    = 0xff3a
  1447  	XK_Hangul_PreviousCandidate           = 0xff3e
  1448  	XK_Hangul_Rieul                       = 0x0ea9
  1449  	XK_Hangul_RieulHieuh                  = 0x0eb0
  1450  	XK_Hangul_RieulKiyeog                 = 0x0eaa
  1451  	XK_Hangul_RieulMieum                  = 0x0eab
  1452  	XK_Hangul_RieulPhieuf                 = 0x0eaf
  1453  	XK_Hangul_RieulPieub                  = 0x0eac
  1454  	XK_Hangul_RieulSios                   = 0x0ead
  1455  	XK_Hangul_RieulTieut                  = 0x0eae
  1456  	XK_Hangul_RieulYeorinHieuh            = 0x0eef
  1457  	XK_Hangul_Romaja                      = 0xff36
  1458  	XK_Hangul_SingleCandidate             = 0xff3c
  1459  	XK_Hangul_Sios                        = 0x0eb5
  1460  	XK_Hangul_Special                     = 0xff3f
  1461  	XK_Hangul_SsangDikeud                 = 0x0ea8
  1462  	XK_Hangul_SsangJieuj                  = 0x0eb9
  1463  	XK_Hangul_SsangKiyeog                 = 0x0ea2
  1464  	XK_Hangul_SsangPieub                  = 0x0eb3
  1465  	XK_Hangul_SsangSios                   = 0x0eb6
  1466  	XK_Hangul_Start                       = 0xff32
  1467  	XK_Hangul_SunkyeongeumMieum           = 0x0ef0
  1468  	XK_Hangul_SunkyeongeumPhieuf          = 0x0ef4
  1469  	XK_Hangul_SunkyeongeumPieub           = 0x0ef1
  1470  	XK_Hangul_Tieut                       = 0x0ebc
  1471  	XK_Hangul_U                           = 0x0ecc
  1472  	XK_Hangul_WA                          = 0x0ec8
  1473  	XK_Hangul_WAE                         = 0x0ec9
  1474  	XK_Hangul_WE                          = 0x0ece
  1475  	XK_Hangul_WEO                         = 0x0ecd
  1476  	XK_Hangul_WI                          = 0x0ecf
  1477  	XK_Hangul_YA                          = 0x0ec1
  1478  	XK_Hangul_YAE                         = 0x0ec2
  1479  	XK_Hangul_YE                          = 0x0ec6
  1480  	XK_Hangul_YEO                         = 0x0ec5
  1481  	XK_Hangul_YI                          = 0x0ed2
  1482  	XK_Hangul_YO                          = 0x0ecb
  1483  	XK_Hangul_YU                          = 0x0ed0
  1484  	XK_Hangul_YeorinHieuh                 = 0x0ef5
  1485  	XK_Hangul_switch                      = 0xff7e
  1486  	XK_Hankaku                            = 0xff29
  1487  	XK_Hcircumflex                        = 0x02a6
  1488  	XK_Hebrew_switch                      = 0xff7e
  1489  	XK_Help                               = 0xff6a
  1490  	XK_Henkan                             = 0xff23
  1491  	XK_Henkan_Mode                        = 0xff23
  1492  	XK_Hiragana                           = 0xff25
  1493  	XK_Hiragana_Katakana                  = 0xff27
  1494  	XK_Home                               = 0xff50
  1495  	XK_Hstroke                            = 0x02a1
  1496  	XK_Hyper_L                            = 0xffed
  1497  	XK_Hyper_R                            = 0xffee
  1498  	XK_I                                  = 0x0049
  1499  	XK_ISO_Center_Object                  = 0xfe33
  1500  	XK_ISO_Continuous_Underline           = 0xfe30
  1501  	XK_ISO_Discontinuous_Underline        = 0xfe31
  1502  	XK_ISO_Emphasize                      = 0xfe32
  1503  	XK_ISO_Enter                          = 0xfe34
  1504  	XK_ISO_Fast_Cursor_Down               = 0xfe2f
  1505  	XK_ISO_Fast_Cursor_Left               = 0xfe2c
  1506  	XK_ISO_Fast_Cursor_Right              = 0xfe2d
  1507  	XK_ISO_Fast_Cursor_Up                 = 0xfe2e
  1508  	XK_ISO_First_Group                    = 0xfe0c
  1509  	XK_ISO_First_Group_Lock               = 0xfe0d
  1510  	XK_ISO_Group_Latch                    = 0xfe06
  1511  	XK_ISO_Group_Lock                     = 0xfe07
  1512  	XK_ISO_Group_Shift                    = 0xff7e
  1513  	XK_ISO_Last_Group                     = 0xfe0e
  1514  	XK_ISO_Last_Group_Lock                = 0xfe0f
  1515  	XK_ISO_Left_Tab                       = 0xfe20
  1516  	XK_ISO_Level2_Latch                   = 0xfe02
  1517  	XK_ISO_Level3_Latch                   = 0xfe04
  1518  	XK_ISO_Level3_Lock                    = 0xfe05
  1519  	XK_ISO_Level3_Shift                   = 0xfe03
  1520  	XK_ISO_Level5_Latch                   = 0xfe12
  1521  	XK_ISO_Level5_Lock                    = 0xfe13
  1522  	XK_ISO_Level5_Shift                   = 0xfe11
  1523  	XK_ISO_Lock                           = 0xfe01
  1524  	XK_ISO_Move_Line_Down                 = 0xfe22
  1525  	XK_ISO_Move_Line_Up                   = 0xfe21
  1526  	XK_ISO_Next_Group                     = 0xfe08
  1527  	XK_ISO_Next_Group_Lock                = 0xfe09
  1528  	XK_ISO_Partial_Line_Down              = 0xfe24
  1529  	XK_ISO_Partial_Line_Up                = 0xfe23
  1530  	XK_ISO_Partial_Space_Left             = 0xfe25
  1531  	XK_ISO_Partial_Space_Right            = 0xfe26
  1532  	XK_ISO_Prev_Group                     = 0xfe0a
  1533  	XK_ISO_Prev_Group_Lock                = 0xfe0b
  1534  	XK_ISO_Release_Both_Margins           = 0xfe2b
  1535  	XK_ISO_Release_Margin_Left            = 0xfe29
  1536  	XK_ISO_Release_Margin_Right           = 0xfe2a
  1537  	XK_ISO_Set_Margin_Left                = 0xfe27
  1538  	XK_ISO_Set_Margin_Right               = 0xfe28
  1539  	XK_Iabovedot                          = 0x02a9
  1540  	XK_Iacute                             = 0x00cd
  1541  	XK_Ibelowdot                          = 0x1001eca
  1542  	XK_Ibreve                             = 0x100012c
  1543  	XK_Icircumflex                        = 0x00ce
  1544  	XK_Idiaeresis                         = 0x00cf
  1545  	XK_Igrave                             = 0x00cc
  1546  	XK_Ihook                              = 0x1001ec8
  1547  	XK_Imacron                            = 0x03cf
  1548  	XK_Insert                             = 0xff63
  1549  	XK_Iogonek                            = 0x03c7
  1550  	XK_Itilde                             = 0x03a5
  1551  	XK_J                                  = 0x004a
  1552  	XK_Jcircumflex                        = 0x02ac
  1553  	XK_K                                  = 0x004b
  1554  	XK_KATAKANA                           = 0
  1555  	XK_KOREAN                             = 0
  1556  	XK_KP_0                               = 0xffb0
  1557  	XK_KP_1                               = 0xffb1
  1558  	XK_KP_2                               = 0xffb2
  1559  	XK_KP_3                               = 0xffb3
  1560  	XK_KP_4                               = 0xffb4
  1561  	XK_KP_5                               = 0xffb5
  1562  	XK_KP_6                               = 0xffb6
  1563  	XK_KP_7                               = 0xffb7
  1564  	XK_KP_8                               = 0xffb8
  1565  	XK_KP_9                               = 0xffb9
  1566  	XK_KP_Add                             = 0xffab
  1567  	XK_KP_Begin                           = 0xff9d
  1568  	XK_KP_Decimal                         = 0xffae
  1569  	XK_KP_Delete                          = 0xff9f
  1570  	XK_KP_Divide                          = 0xffaf
  1571  	XK_KP_Down                            = 0xff99
  1572  	XK_KP_End                             = 0xff9c
  1573  	XK_KP_Enter                           = 0xff8d
  1574  	XK_KP_Equal                           = 0xffbd
  1575  	XK_KP_F1                              = 0xff91
  1576  	XK_KP_F2                              = 0xff92
  1577  	XK_KP_F3                              = 0xff93
  1578  	XK_KP_F4                              = 0xff94
  1579  	XK_KP_Home                            = 0xff95
  1580  	XK_KP_Insert                          = 0xff9e
  1581  	XK_KP_Left                            = 0xff96
  1582  	XK_KP_Multiply                        = 0xffaa
  1583  	XK_KP_Next                            = 0xff9b
  1584  	XK_KP_Page_Down                       = 0xff9b
  1585  	XK_KP_Page_Up                         = 0xff9a
  1586  	XK_KP_Prior                           = 0xff9a
  1587  	XK_KP_Right                           = 0xff98
  1588  	XK_KP_Separator                       = 0xffac
  1589  	XK_KP_Space                           = 0xff80
  1590  	XK_KP_Subtract                        = 0xffad
  1591  	XK_KP_Tab                             = 0xff89
  1592  	XK_KP_Up                              = 0xff97
  1593  	XK_Kana_Lock                          = 0xff2d
  1594  	XK_Kana_Shift                         = 0xff2e
  1595  	XK_Kanji                              = 0xff21
  1596  	XK_Kanji_Bangou                       = 0xff37
  1597  	XK_Katakana                           = 0xff26
  1598  	XK_Kcedilla                           = 0x03d3
  1599  	XK_Korean_Won                         = 0x0eff
  1600  	XK_L                                  = 0x004c
  1601  	XK_L1                                 = 0xffc8
  1602  	XK_L10                                = 0xffd1
  1603  	XK_L2                                 = 0xffc9
  1604  	XK_L3                                 = 0xffca
  1605  	XK_L4                                 = 0xffcb
  1606  	XK_L5                                 = 0xffcc
  1607  	XK_L6                                 = 0xffcd
  1608  	XK_L7                                 = 0xffce
  1609  	XK_L8                                 = 0xffcf
  1610  	XK_L9                                 = 0xffd0
  1611  	XK_LATIN1                             = 0
  1612  	XK_LATIN2                             = 0
  1613  	XK_LATIN3                             = 0
  1614  	XK_LATIN4                             = 0
  1615  	XK_LATIN8                             = 0
  1616  	XK_LATIN9                             = 0
  1617  	XK_Lacute                             = 0x01c5
  1618  	XK_Last_Virtual_Screen                = 0xfed4
  1619  	XK_Lbelowdot                          = 0x1001e36
  1620  	XK_Lcaron                             = 0x01a5
  1621  	XK_Lcedilla                           = 0x03a6
  1622  	XK_Left                               = 0xff51
  1623  	XK_Linefeed                           = 0xff0a
  1624  	XK_LiraSign                           = 0x10020a4
  1625  	XK_Lstroke                            = 0x01a3
  1626  	XK_M                                  = 0x004d
  1627  	XK_MATHEMATICAL                       = 0
  1628  	XK_MISCELLANY                         = 0
  1629  	XK_Mabovedot                          = 0x1001e40
  1630  	XK_Macedonia_DSE                      = 0x06b5
  1631  	XK_Macedonia_GJE                      = 0x06b2
  1632  	XK_Macedonia_KJE                      = 0x06bc
  1633  	XK_Macedonia_dse                      = 0x06a5
  1634  	XK_Macedonia_gje                      = 0x06a2
  1635  	XK_Macedonia_kje                      = 0x06ac
  1636  	XK_Mae_Koho                           = 0xff3e
  1637  	XK_Massyo                             = 0xff2c
  1638  	XK_Menu                               = 0xff67
  1639  	XK_Meta_L                             = 0xffe7
  1640  	XK_Meta_R                             = 0xffe8
  1641  	XK_MillSign                           = 0x10020a5
  1642  	XK_Mode_switch                        = 0xff7e
  1643  	XK_MouseKeys_Accel_Enable             = 0xfe77
  1644  	XK_MouseKeys_Enable                   = 0xfe76
  1645  	XK_Muhenkan                           = 0xff22
  1646  	XK_Multi_key                          = 0xff20
  1647  	XK_MultipleCandidate                  = 0xff3d
  1648  	XK_N                                  = 0x004e
  1649  	XK_Nacute                             = 0x01d1
  1650  	XK_NairaSign                          = 0x10020a6
  1651  	XK_Ncaron                             = 0x01d2
  1652  	XK_Ncedilla                           = 0x03d1
  1653  	XK_NewSheqelSign                      = 0x10020aa
  1654  	XK_Next                               = 0xff56
  1655  	XK_Next_Virtual_Screen                = 0xfed2
  1656  	XK_Ntilde                             = 0x00d1
  1657  	XK_Num_Lock                           = 0xff7f
  1658  	XK_O                                  = 0x004f
  1659  	XK_OE                                 = 0x13bc
  1660  	XK_Oacute                             = 0x00d3
  1661  	XK_Obarred                            = 0x100019f
  1662  	XK_Obelowdot                          = 0x1001ecc
  1663  	XK_Ocaron                             = 0x10001d1
  1664  	XK_Ocircumflex                        = 0x00d4
  1665  	XK_Ocircumflexacute                   = 0x1001ed0
  1666  	XK_Ocircumflexbelowdot                = 0x1001ed8
  1667  	XK_Ocircumflexgrave                   = 0x1001ed2
  1668  	XK_Ocircumflexhook                    = 0x1001ed4
  1669  	XK_Ocircumflextilde                   = 0x1001ed6
  1670  	XK_Odiaeresis                         = 0x00d6
  1671  	XK_Odoubleacute                       = 0x01d5
  1672  	XK_Ograve                             = 0x00d2
  1673  	XK_Ohook                              = 0x1001ece
  1674  	XK_Ohorn                              = 0x10001a0
  1675  	XK_Ohornacute                         = 0x1001eda
  1676  	XK_Ohornbelowdot                      = 0x1001ee2
  1677  	XK_Ohorngrave                         = 0x1001edc
  1678  	XK_Ohornhook                          = 0x1001ede
  1679  	XK_Ohorntilde                         = 0x1001ee0
  1680  	XK_Omacron                            = 0x03d2
  1681  	XK_Ooblique                           = 0x00d8
  1682  	XK_Oslash                             = 0x00d8
  1683  	XK_Otilde                             = 0x00d5
  1684  	XK_Overlay1_Enable                    = 0xfe78
  1685  	XK_Overlay2_Enable                    = 0xfe79
  1686  	XK_P                                  = 0x0050
  1687  	XK_Pabovedot                          = 0x1001e56
  1688  	XK_Page_Down                          = 0xff56
  1689  	XK_Page_Up                            = 0xff55
  1690  	XK_Pause                              = 0xff13
  1691  	XK_PesetaSign                         = 0x10020a7
  1692  	XK_Pointer_Accelerate                 = 0xfefa
  1693  	XK_Pointer_Button1                    = 0xfee9
  1694  	XK_Pointer_Button2                    = 0xfeea
  1695  	XK_Pointer_Button3                    = 0xfeeb
  1696  	XK_Pointer_Button4                    = 0xfeec
  1697  	XK_Pointer_Button5                    = 0xfeed
  1698  	XK_Pointer_Button_Dflt                = 0xfee8
  1699  	XK_Pointer_DblClick1                  = 0xfeef
  1700  	XK_Pointer_DblClick2                  = 0xfef0
  1701  	XK_Pointer_DblClick3                  = 0xfef1
  1702  	XK_Pointer_DblClick4                  = 0xfef2
  1703  	XK_Pointer_DblClick5                  = 0xfef3
  1704  	XK_Pointer_DblClick_Dflt              = 0xfeee
  1705  	XK_Pointer_DfltBtnNext                = 0xfefb
  1706  	XK_Pointer_DfltBtnPrev                = 0xfefc
  1707  	XK_Pointer_Down                       = 0xfee3
  1708  	XK_Pointer_DownLeft                   = 0xfee6
  1709  	XK_Pointer_DownRight                  = 0xfee7
  1710  	XK_Pointer_Drag1                      = 0xfef5
  1711  	XK_Pointer_Drag2                      = 0xfef6
  1712  	XK_Pointer_Drag3                      = 0xfef7
  1713  	XK_Pointer_Drag4                      = 0xfef8
  1714  	XK_Pointer_Drag5                      = 0xfefd
  1715  	XK_Pointer_Drag_Dflt                  = 0xfef4
  1716  	XK_Pointer_EnableKeys                 = 0xfef9
  1717  	XK_Pointer_Left                       = 0xfee0
  1718  	XK_Pointer_Right                      = 0xfee1
  1719  	XK_Pointer_Up                         = 0xfee2
  1720  	XK_Pointer_UpLeft                     = 0xfee4
  1721  	XK_Pointer_UpRight                    = 0xfee5
  1722  	XK_Prev_Virtual_Screen                = 0xfed1
  1723  	XK_PreviousCandidate                  = 0xff3e
  1724  	XK_Print                              = 0xff61
  1725  	XK_Prior                              = 0xff55
  1726  	XK_Q                                  = 0x0051
  1727  	XK_R                                  = 0x0052
  1728  	XK_R1                                 = 0xffd2
  1729  	XK_R10                                = 0xffdb
  1730  	XK_R11                                = 0xffdc
  1731  	XK_R12                                = 0xffdd
  1732  	XK_R13                                = 0xffde
  1733  	XK_R14                                = 0xffdf
  1734  	XK_R15                                = 0xffe0
  1735  	XK_R2                                 = 0xffd3
  1736  	XK_R3                                 = 0xffd4
  1737  	XK_R4                                 = 0xffd5
  1738  	XK_R5                                 = 0xffd6
  1739  	XK_R6                                 = 0xffd7
  1740  	XK_R7                                 = 0xffd8
  1741  	XK_R8                                 = 0xffd9
  1742  	XK_R9                                 = 0xffda
  1743  	XK_Racute                             = 0x01c0
  1744  	XK_Rcaron                             = 0x01d8
  1745  	XK_Rcedilla                           = 0x03a3
  1746  	XK_Redo                               = 0xff66
  1747  	XK_RepeatKeys_Enable                  = 0xfe72
  1748  	XK_Return                             = 0xff0d
  1749  	XK_Right                              = 0xff53
  1750  	XK_Romaji                             = 0xff24
  1751  	XK_RupeeSign                          = 0x10020a8
  1752  	XK_S                                  = 0x0053
  1753  	XK_SCHWA                              = 0x100018f
  1754  	XK_SINHALA                            = 0
  1755  	XK_Sabovedot                          = 0x1001e60
  1756  	XK_Sacute                             = 0x01a6
  1757  	XK_Scaron                             = 0x01a9
  1758  	XK_Scedilla                           = 0x01aa
  1759  	XK_Scircumflex                        = 0x02de
  1760  	XK_Scroll_Lock                        = 0xff14
  1761  	XK_Select                             = 0xff60
  1762  	XK_Serbian_DJE                        = 0x06b1
  1763  	XK_Serbian_DZE                        = 0x06bf
  1764  	XK_Serbian_JE                         = 0x06b8
  1765  	XK_Serbian_LJE                        = 0x06b9
  1766  	XK_Serbian_NJE                        = 0x06ba
  1767  	XK_Serbian_TSHE                       = 0x06bb
  1768  	XK_Serbian_dje                        = 0x06a1
  1769  	XK_Serbian_dze                        = 0x06af
  1770  	XK_Serbian_je                         = 0x06a8
  1771  	XK_Serbian_lje                        = 0x06a9
  1772  	XK_Serbian_nje                        = 0x06aa
  1773  	XK_Serbian_tshe                       = 0x06ab
  1774  	XK_Shift_L                            = 0xffe1
  1775  	XK_Shift_Lock                         = 0xffe6
  1776  	XK_Shift_R                            = 0xffe2
  1777  	XK_SingleCandidate                    = 0xff3c
  1778  	XK_Sinh_a                             = 0x1000d85
  1779  	XK_Sinh_aa                            = 0x1000d86
  1780  	XK_Sinh_aa2                           = 0x1000dcf
  1781  	XK_Sinh_ae                            = 0x1000d87
  1782  	XK_Sinh_ae2                           = 0x1000dd0
  1783  	XK_Sinh_aee                           = 0x1000d88
  1784  	XK_Sinh_aee2                          = 0x1000dd1
  1785  	XK_Sinh_ai                            = 0x1000d93
  1786  	XK_Sinh_ai2                           = 0x1000ddb
  1787  	XK_Sinh_al                            = 0x1000dca
  1788  	XK_Sinh_au                            = 0x1000d96
  1789  	XK_Sinh_au2                           = 0x1000dde
  1790  	XK_Sinh_ba                            = 0x1000db6
  1791  	XK_Sinh_bha                           = 0x1000db7
  1792  	XK_Sinh_ca                            = 0x1000da0
  1793  	XK_Sinh_cha                           = 0x1000da1
  1794  	XK_Sinh_dda                           = 0x1000da9
  1795  	XK_Sinh_ddha                          = 0x1000daa
  1796  	XK_Sinh_dha                           = 0x1000daf
  1797  	XK_Sinh_dhha                          = 0x1000db0
  1798  	XK_Sinh_e                             = 0x1000d91
  1799  	XK_Sinh_e2                            = 0x1000dd9
  1800  	XK_Sinh_ee                            = 0x1000d92
  1801  	XK_Sinh_ee2                           = 0x1000dda
  1802  	XK_Sinh_fa                            = 0x1000dc6
  1803  	XK_Sinh_ga                            = 0x1000d9c
  1804  	XK_Sinh_gha                           = 0x1000d9d
  1805  	XK_Sinh_h2                            = 0x1000d83
  1806  	XK_Sinh_ha                            = 0x1000dc4
  1807  	XK_Sinh_i                             = 0x1000d89
  1808  	XK_Sinh_i2                            = 0x1000dd2
  1809  	XK_Sinh_ii                            = 0x1000d8a
  1810  	XK_Sinh_ii2                           = 0x1000dd3
  1811  	XK_Sinh_ja                            = 0x1000da2
  1812  	XK_Sinh_jha                           = 0x1000da3
  1813  	XK_Sinh_jnya                          = 0x1000da5
  1814  	XK_Sinh_ka                            = 0x1000d9a
  1815  	XK_Sinh_kha                           = 0x1000d9b
  1816  	XK_Sinh_kunddaliya                    = 0x1000df4
  1817  	XK_Sinh_la                            = 0x1000dbd
  1818  	XK_Sinh_lla                           = 0x1000dc5
  1819  	XK_Sinh_lu                            = 0x1000d8f
  1820  	XK_Sinh_lu2                           = 0x1000ddf
  1821  	XK_Sinh_luu                           = 0x1000d90
  1822  	XK_Sinh_luu2                          = 0x1000df3
  1823  	XK_Sinh_ma                            = 0x1000db8
  1824  	XK_Sinh_mba                           = 0x1000db9
  1825  	XK_Sinh_na                            = 0x1000db1
  1826  	XK_Sinh_ndda                          = 0x1000dac
  1827  	XK_Sinh_ndha                          = 0x1000db3
  1828  	XK_Sinh_ng                            = 0x1000d82
  1829  	XK_Sinh_ng2                           = 0x1000d9e
  1830  	XK_Sinh_nga                           = 0x1000d9f
  1831  	XK_Sinh_nja                           = 0x1000da6
  1832  	XK_Sinh_nna                           = 0x1000dab
  1833  	XK_Sinh_nya                           = 0x1000da4
  1834  	XK_Sinh_o                             = 0x1000d94
  1835  	XK_Sinh_o2                            = 0x1000ddc
  1836  	XK_Sinh_oo                            = 0x1000d95
  1837  	XK_Sinh_oo2                           = 0x1000ddd
  1838  	XK_Sinh_pa                            = 0x1000db4
  1839  	XK_Sinh_pha                           = 0x1000db5
  1840  	XK_Sinh_ra                            = 0x1000dbb
  1841  	XK_Sinh_ri                            = 0x1000d8d
  1842  	XK_Sinh_rii                           = 0x1000d8e
  1843  	XK_Sinh_ru2                           = 0x1000dd8
  1844  	XK_Sinh_ruu2                          = 0x1000df2
  1845  	XK_Sinh_sa                            = 0x1000dc3
  1846  	XK_Sinh_sha                           = 0x1000dc1
  1847  	XK_Sinh_ssha                          = 0x1000dc2
  1848  	XK_Sinh_tha                           = 0x1000dad
  1849  	XK_Sinh_thha                          = 0x1000dae
  1850  	XK_Sinh_tta                           = 0x1000da7
  1851  	XK_Sinh_ttha                          = 0x1000da8
  1852  	XK_Sinh_u                             = 0x1000d8b
  1853  	XK_Sinh_u2                            = 0x1000dd4
  1854  	XK_Sinh_uu                            = 0x1000d8c
  1855  	XK_Sinh_uu2                           = 0x1000dd6
  1856  	XK_Sinh_va                            = 0x1000dc0
  1857  	XK_Sinh_ya                            = 0x1000dba
  1858  	XK_SlowKeys_Enable                    = 0xfe73
  1859  	XK_StickyKeys_Enable                  = 0xfe75
  1860  	XK_Super_L                            = 0xffeb
  1861  	XK_Super_R                            = 0xffec
  1862  	XK_Sys_Req                            = 0xff15
  1863  	XK_T                                  = 0x0054
  1864  	XK_THAI                               = 0
  1865  	XK_THORN                              = 0x00de
  1866  	XK_Tab                                = 0xff09
  1867  	XK_Tabovedot                          = 0x1001e6a
  1868  	XK_Tcaron                             = 0x01ab
  1869  	XK_Tcedilla                           = 0x01de
  1870  	XK_Terminate_Server                   = 0xfed5
  1871  	XK_Thai_baht                          = 0x0ddf
  1872  	XK_Thai_bobaimai                      = 0x0dba
  1873  	XK_Thai_chochan                       = 0x0da8
  1874  	XK_Thai_chochang                      = 0x0daa
  1875  	XK_Thai_choching                      = 0x0da9
  1876  	XK_Thai_chochoe                       = 0x0dac
  1877  	XK_Thai_dochada                       = 0x0dae
  1878  	XK_Thai_dodek                         = 0x0db4
  1879  	XK_Thai_fofa                          = 0x0dbd
  1880  	XK_Thai_fofan                         = 0x0dbf
  1881  	XK_Thai_hohip                         = 0x0dcb
  1882  	XK_Thai_honokhuk                      = 0x0dce
  1883  	XK_Thai_khokhai                       = 0x0da2
  1884  	XK_Thai_khokhon                       = 0x0da5
  1885  	XK_Thai_khokhuat                      = 0x0da3
  1886  	XK_Thai_khokhwai                      = 0x0da4
  1887  	XK_Thai_khorakhang                    = 0x0da6
  1888  	XK_Thai_kokai                         = 0x0da1
  1889  	XK_Thai_lakkhangyao                   = 0x0de5
  1890  	XK_Thai_lekchet                       = 0x0df7
  1891  	XK_Thai_lekha                         = 0x0df5
  1892  	XK_Thai_lekhok                        = 0x0df6
  1893  	XK_Thai_lekkao                        = 0x0df9
  1894  	XK_Thai_leknung                       = 0x0df1
  1895  	XK_Thai_lekpaet                       = 0x0df8
  1896  	XK_Thai_leksam                        = 0x0df3
  1897  	XK_Thai_leksi                         = 0x0df4
  1898  	XK_Thai_leksong                       = 0x0df2
  1899  	XK_Thai_leksun                        = 0x0df0
  1900  	XK_Thai_lochula                       = 0x0dcc
  1901  	XK_Thai_loling                        = 0x0dc5
  1902  	XK_Thai_lu                            = 0x0dc6
  1903  	XK_Thai_maichattawa                   = 0x0deb
  1904  	XK_Thai_maiek                         = 0x0de8
  1905  	XK_Thai_maihanakat                    = 0x0dd1
  1906  	XK_Thai_maihanakat_maitho             = 0x0dde
  1907  	XK_Thai_maitaikhu                     = 0x0de7
  1908  	XK_Thai_maitho                        = 0x0de9
  1909  	XK_Thai_maitri                        = 0x0dea
  1910  	XK_Thai_maiyamok                      = 0x0de6
  1911  	XK_Thai_moma                          = 0x0dc1
  1912  	XK_Thai_ngongu                        = 0x0da7
  1913  	XK_Thai_nikhahit                      = 0x0ded
  1914  	XK_Thai_nonen                         = 0x0db3
  1915  	XK_Thai_nonu                          = 0x0db9
  1916  	XK_Thai_oang                          = 0x0dcd
  1917  	XK_Thai_paiyannoi                     = 0x0dcf
  1918  	XK_Thai_phinthu                       = 0x0dda
  1919  	XK_Thai_phophan                       = 0x0dbe
  1920  	XK_Thai_phophung                      = 0x0dbc
  1921  	XK_Thai_phosamphao                    = 0x0dc0
  1922  	XK_Thai_popla                         = 0x0dbb
  1923  	XK_Thai_rorua                         = 0x0dc3
  1924  	XK_Thai_ru                            = 0x0dc4
  1925  	XK_Thai_saraa                         = 0x0dd0
  1926  	XK_Thai_saraaa                        = 0x0dd2
  1927  	XK_Thai_saraae                        = 0x0de1
  1928  	XK_Thai_saraaimaimalai                = 0x0de4
  1929  	XK_Thai_saraaimaimuan                 = 0x0de3
  1930  	XK_Thai_saraam                        = 0x0dd3
  1931  	XK_Thai_sarae                         = 0x0de0
  1932  	XK_Thai_sarai                         = 0x0dd4
  1933  	XK_Thai_saraii                        = 0x0dd5
  1934  	XK_Thai_sarao                         = 0x0de2
  1935  	XK_Thai_sarau                         = 0x0dd8
  1936  	XK_Thai_saraue                        = 0x0dd6
  1937  	XK_Thai_sarauee                       = 0x0dd7
  1938  	XK_Thai_sarauu                        = 0x0dd9
  1939  	XK_Thai_sorusi                        = 0x0dc9
  1940  	XK_Thai_sosala                        = 0x0dc8
  1941  	XK_Thai_soso                          = 0x0dab
  1942  	XK_Thai_sosua                         = 0x0dca
  1943  	XK_Thai_thanthakhat                   = 0x0dec
  1944  	XK_Thai_thonangmontho                 = 0x0db1
  1945  	XK_Thai_thophuthao                    = 0x0db2
  1946  	XK_Thai_thothahan                     = 0x0db7
  1947  	XK_Thai_thothan                       = 0x0db0
  1948  	XK_Thai_thothong                      = 0x0db8
  1949  	XK_Thai_thothung                      = 0x0db6
  1950  	XK_Thai_topatak                       = 0x0daf
  1951  	XK_Thai_totao                         = 0x0db5
  1952  	XK_Thai_wowaen                        = 0x0dc7
  1953  	XK_Thai_yoyak                         = 0x0dc2
  1954  	XK_Thai_yoying                        = 0x0dad
  1955  	XK_Thorn                              = 0x00de
  1956  	XK_Touroku                            = 0xff2b
  1957  	XK_Tslash                             = 0x03ac
  1958  	XK_U                                  = 0x0055
  1959  	XK_Uacute                             = 0x00da
  1960  	XK_Ubelowdot                          = 0x1001ee4
  1961  	XK_Ubreve                             = 0x02dd
  1962  	XK_Ucircumflex                        = 0x00db
  1963  	XK_Udiaeresis                         = 0x00dc
  1964  	XK_Udoubleacute                       = 0x01db
  1965  	XK_Ugrave                             = 0x00d9
  1966  	XK_Uhook                              = 0x1001ee6
  1967  	XK_Uhorn                              = 0x10001af
  1968  	XK_Uhornacute                         = 0x1001ee8
  1969  	XK_Uhornbelowdot                      = 0x1001ef0
  1970  	XK_Uhorngrave                         = 0x1001eea
  1971  	XK_Uhornhook                          = 0x1001eec
  1972  	XK_Uhorntilde                         = 0x1001eee
  1973  	XK_Ukrainian_GHE_WITH_UPTURN          = 0x06bd
  1974  	XK_Ukrainian_I                        = 0x06b6
  1975  	XK_Ukrainian_IE                       = 0x06b4
  1976  	XK_Ukrainian_YI                       = 0x06b7
  1977  	XK_Ukrainian_ghe_with_upturn          = 0x06ad
  1978  	XK_Ukrainian_i                        = 0x06a6
  1979  	XK_Ukrainian_ie                       = 0x06a4
  1980  	XK_Ukrainian_yi                       = 0x06a7
  1981  	XK_Ukranian_I                         = 0x06b6
  1982  	XK_Ukranian_JE                        = 0x06b4
  1983  	XK_Ukranian_YI                        = 0x06b7
  1984  	XK_Ukranian_i                         = 0x06a6
  1985  	XK_Ukranian_je                        = 0x06a4
  1986  	XK_Ukranian_yi                        = 0x06a7
  1987  	XK_Umacron                            = 0x03de
  1988  	XK_Undo                               = 0xff65
  1989  	XK_Uogonek                            = 0x03d9
  1990  	XK_Up                                 = 0xff52
  1991  	XK_Uring                              = 0x01d9
  1992  	XK_Utilde                             = 0x03dd
  1993  	XK_V                                  = 0x0056
  1994  	XK_VIETNAMESE                         = 0
  1995  	XK_VoidSymbol                         = 0xffffff
  1996  	XK_W                                  = 0x0057
  1997  	XK_Wacute                             = 0x1001e82
  1998  	XK_Wcircumflex                        = 0x1000174
  1999  	XK_Wdiaeresis                         = 0x1001e84
  2000  	XK_Wgrave                             = 0x1001e80
  2001  	XK_WonSign                            = 0x10020a9
  2002  	XK_X                                  = 0x0058
  2003  	XK_XKB_KEYS                           = 0
  2004  	XK_Xabovedot                          = 0x1001e8a
  2005  	XK_Y                                  = 0x0059
  2006  	XK_Yacute                             = 0x00dd
  2007  	XK_Ybelowdot                          = 0x1001ef4
  2008  	XK_Ycircumflex                        = 0x1000176
  2009  	XK_Ydiaeresis                         = 0x13be
  2010  	XK_Ygrave                             = 0x1001ef2
  2011  	XK_Yhook                              = 0x1001ef6
  2012  	XK_Ytilde                             = 0x1001ef8
  2013  	XK_Z                                  = 0x005a
  2014  	XK_Zabovedot                          = 0x01af
  2015  	XK_Zacute                             = 0x01ac
  2016  	XK_Zcaron                             = 0x01ae
  2017  	XK_Zen_Koho                           = 0xff3d
  2018  	XK_Zenkaku                            = 0xff28
  2019  	XK_Zenkaku_Hankaku                    = 0xff2a
  2020  	XK_Zstroke                            = 0x10001b5
  2021  	XK_a                                  = 0x0061
  2022  	XK_aacute                             = 0x00e1
  2023  	XK_abelowdot                          = 0x1001ea1
  2024  	XK_abovedot                           = 0x01ff
  2025  	XK_abreve                             = 0x01e3
  2026  	XK_abreveacute                        = 0x1001eaf
  2027  	XK_abrevebelowdot                     = 0x1001eb7
  2028  	XK_abrevegrave                        = 0x1001eb1
  2029  	XK_abrevehook                         = 0x1001eb3
  2030  	XK_abrevetilde                        = 0x1001eb5
  2031  	XK_acircumflex                        = 0x00e2
  2032  	XK_acircumflexacute                   = 0x1001ea5
  2033  	XK_acircumflexbelowdot                = 0x1001ead
  2034  	XK_acircumflexgrave                   = 0x1001ea7
  2035  	XK_acircumflexhook                    = 0x1001ea9
  2036  	XK_acircumflextilde                   = 0x1001eab
  2037  	XK_acute                              = 0x00b4
  2038  	XK_adiaeresis                         = 0x00e4
  2039  	XK_ae                                 = 0x00e6
  2040  	XK_agrave                             = 0x00e0
  2041  	XK_ahook                              = 0x1001ea3
  2042  	XK_amacron                            = 0x03e0
  2043  	XK_ampersand                          = 0x0026
  2044  	XK_aogonek                            = 0x01b1
  2045  	XK_apostrophe                         = 0x0027
  2046  	XK_approxeq                           = 0x1002248
  2047  	XK_aring                              = 0x00e5
  2048  	XK_asciicircum                        = 0x005e
  2049  	XK_asciitilde                         = 0x007e
  2050  	XK_asterisk                           = 0x002a
  2051  	XK_at                                 = 0x0040
  2052  	XK_atilde                             = 0x00e3
  2053  	XK_b                                  = 0x0062
  2054  	XK_babovedot                          = 0x1001e03
  2055  	XK_backslash                          = 0x005c
  2056  	XK_bar                                = 0x007c
  2057  	XK_because                            = 0x1002235
  2058  	XK_braceleft                          = 0x007b
  2059  	XK_braceright                         = 0x007d
  2060  	XK_bracketleft                        = 0x005b
  2061  	XK_bracketright                       = 0x005d
  2062  	XK_braille_blank                      = 0x1002800
  2063  	XK_braille_dot_1                      = 0xfff1
  2064  	XK_braille_dot_10                     = 0xfffa
  2065  	XK_braille_dot_2                      = 0xfff2
  2066  	XK_braille_dot_3                      = 0xfff3
  2067  	XK_braille_dot_4                      = 0xfff4
  2068  	XK_braille_dot_5                      = 0xfff5
  2069  	XK_braille_dot_6                      = 0xfff6
  2070  	XK_braille_dot_7                      = 0xfff7
  2071  	XK_braille_dot_8                      = 0xfff8
  2072  	XK_braille_dot_9                      = 0xfff9
  2073  	XK_braille_dots_1                     = 0x1002801
  2074  	XK_braille_dots_12                    = 0x1002803
  2075  	XK_braille_dots_123                   = 0x1002807
  2076  	XK_braille_dots_1234                  = 0x100280f
  2077  	XK_braille_dots_12345                 = 0x100281f
  2078  	XK_braille_dots_123456                = 0x100283f
  2079  	XK_braille_dots_1234567               = 0x100287f
  2080  	XK_braille_dots_12345678              = 0x10028ff
  2081  	XK_braille_dots_1234568               = 0x10028bf
  2082  	XK_braille_dots_123457                = 0x100285f
  2083  	XK_braille_dots_1234578               = 0x10028df
  2084  	XK_braille_dots_123458                = 0x100289f
  2085  	XK_braille_dots_12346                 = 0x100282f
  2086  	XK_braille_dots_123467                = 0x100286f
  2087  	XK_braille_dots_1234678               = 0x10028ef
  2088  	XK_braille_dots_123468                = 0x10028af
  2089  	XK_braille_dots_12347                 = 0x100284f
  2090  	XK_braille_dots_123478                = 0x10028cf
  2091  	XK_braille_dots_12348                 = 0x100288f
  2092  	XK_braille_dots_1235                  = 0x1002817
  2093  	XK_braille_dots_12356                 = 0x1002837
  2094  	XK_braille_dots_123567                = 0x1002877
  2095  	XK_braille_dots_1235678               = 0x10028f7
  2096  	XK_braille_dots_123568                = 0x10028b7
  2097  	XK_braille_dots_12357                 = 0x1002857
  2098  	XK_braille_dots_123578                = 0x10028d7
  2099  	XK_braille_dots_12358                 = 0x1002897
  2100  	XK_braille_dots_1236                  = 0x1002827
  2101  	XK_braille_dots_12367                 = 0x1002867
  2102  	XK_braille_dots_123678                = 0x10028e7
  2103  	XK_braille_dots_12368                 = 0x10028a7
  2104  	XK_braille_dots_1237                  = 0x1002847
  2105  	XK_braille_dots_12378                 = 0x10028c7
  2106  	XK_braille_dots_1238                  = 0x1002887
  2107  	XK_braille_dots_124                   = 0x100280b
  2108  	XK_braille_dots_1245                  = 0x100281b
  2109  	XK_braille_dots_12456                 = 0x100283b
  2110  	XK_braille_dots_124567                = 0x100287b
  2111  	XK_braille_dots_1245678               = 0x10028fb
  2112  	XK_braille_dots_124568                = 0x10028bb
  2113  	XK_braille_dots_12457                 = 0x100285b
  2114  	XK_braille_dots_124578                = 0x10028db
  2115  	XK_braille_dots_12458                 = 0x100289b
  2116  	XK_braille_dots_1246                  = 0x100282b
  2117  	XK_braille_dots_12467                 = 0x100286b
  2118  	XK_braille_dots_124678                = 0x10028eb
  2119  	XK_braille_dots_12468                 = 0x10028ab
  2120  	XK_braille_dots_1247                  = 0x100284b
  2121  	XK_braille_dots_12478                 = 0x10028cb
  2122  	XK_braille_dots_1248                  = 0x100288b
  2123  	XK_braille_dots_125                   = 0x1002813
  2124  	XK_braille_dots_1256                  = 0x1002833
  2125  	XK_braille_dots_12567                 = 0x1002873
  2126  	XK_braille_dots_125678                = 0x10028f3
  2127  	XK_braille_dots_12568                 = 0x10028b3
  2128  	XK_braille_dots_1257                  = 0x1002853
  2129  	XK_braille_dots_12578                 = 0x10028d3
  2130  	XK_braille_dots_1258                  = 0x1002893
  2131  	XK_braille_dots_126                   = 0x1002823
  2132  	XK_braille_dots_1267                  = 0x1002863
  2133  	XK_braille_dots_12678                 = 0x10028e3
  2134  	XK_braille_dots_1268                  = 0x10028a3
  2135  	XK_braille_dots_127                   = 0x1002843
  2136  	XK_braille_dots_1278                  = 0x10028c3
  2137  	XK_braille_dots_128                   = 0x1002883
  2138  	XK_braille_dots_13                    = 0x1002805
  2139  	XK_braille_dots_134                   = 0x100280d
  2140  	XK_braille_dots_1345                  = 0x100281d
  2141  	XK_braille_dots_13456                 = 0x100283d
  2142  	XK_braille_dots_134567                = 0x100287d
  2143  	XK_braille_dots_1345678               = 0x10028fd
  2144  	XK_braille_dots_134568                = 0x10028bd
  2145  	XK_braille_dots_13457                 = 0x100285d
  2146  	XK_braille_dots_134578                = 0x10028dd
  2147  	XK_braille_dots_13458                 = 0x100289d
  2148  	XK_braille_dots_1346                  = 0x100282d
  2149  	XK_braille_dots_13467                 = 0x100286d
  2150  	XK_braille_dots_134678                = 0x10028ed
  2151  	XK_braille_dots_13468                 = 0x10028ad
  2152  	XK_braille_dots_1347                  = 0x100284d
  2153  	XK_braille_dots_13478                 = 0x10028cd
  2154  	XK_braille_dots_1348                  = 0x100288d
  2155  	XK_braille_dots_135                   = 0x1002815
  2156  	XK_braille_dots_1356                  = 0x1002835
  2157  	XK_braille_dots_13567                 = 0x1002875
  2158  	XK_braille_dots_135678                = 0x10028f5
  2159  	XK_braille_dots_13568                 = 0x10028b5
  2160  	XK_braille_dots_1357                  = 0x1002855
  2161  	XK_braille_dots_13578                 = 0x10028d5
  2162  	XK_braille_dots_1358                  = 0x1002895
  2163  	XK_braille_dots_136                   = 0x1002825
  2164  	XK_braille_dots_1367                  = 0x1002865
  2165  	XK_braille_dots_13678                 = 0x10028e5
  2166  	XK_braille_dots_1368                  = 0x10028a5
  2167  	XK_braille_dots_137                   = 0x1002845
  2168  	XK_braille_dots_1378                  = 0x10028c5
  2169  	XK_braille_dots_138                   = 0x1002885
  2170  	XK_braille_dots_14                    = 0x1002809
  2171  	XK_braille_dots_145                   = 0x1002819
  2172  	XK_braille_dots_1456                  = 0x1002839
  2173  	XK_braille_dots_14567                 = 0x1002879
  2174  	XK_braille_dots_145678                = 0x10028f9
  2175  	XK_braille_dots_14568                 = 0x10028b9
  2176  	XK_braille_dots_1457                  = 0x1002859
  2177  	XK_braille_dots_14578                 = 0x10028d9
  2178  	XK_braille_dots_1458                  = 0x1002899
  2179  	XK_braille_dots_146                   = 0x1002829
  2180  	XK_braille_dots_1467                  = 0x1002869
  2181  	XK_braille_dots_14678                 = 0x10028e9
  2182  	XK_braille_dots_1468                  = 0x10028a9
  2183  	XK_braille_dots_147                   = 0x1002849
  2184  	XK_braille_dots_1478                  = 0x10028c9
  2185  	XK_braille_dots_148                   = 0x1002889
  2186  	XK_braille_dots_15                    = 0x1002811
  2187  	XK_braille_dots_156                   = 0x1002831
  2188  	XK_braille_dots_1567                  = 0x1002871
  2189  	XK_braille_dots_15678                 = 0x10028f1
  2190  	XK_braille_dots_1568                  = 0x10028b1
  2191  	XK_braille_dots_157                   = 0x1002851
  2192  	XK_braille_dots_1578                  = 0x10028d1
  2193  	XK_braille_dots_158                   = 0x1002891
  2194  	XK_braille_dots_16                    = 0x1002821
  2195  	XK_braille_dots_167                   = 0x1002861
  2196  	XK_braille_dots_1678                  = 0x10028e1
  2197  	XK_braille_dots_168                   = 0x10028a1
  2198  	XK_braille_dots_17                    = 0x1002841
  2199  	XK_braille_dots_178                   = 0x10028c1
  2200  	XK_braille_dots_18                    = 0x1002881
  2201  	XK_braille_dots_2                     = 0x1002802
  2202  	XK_braille_dots_23                    = 0x1002806
  2203  	XK_braille_dots_234                   = 0x100280e
  2204  	XK_braille_dots_2345                  = 0x100281e
  2205  	XK_braille_dots_23456                 = 0x100283e
  2206  	XK_braille_dots_234567                = 0x100287e
  2207  	XK_braille_dots_2345678               = 0x10028fe
  2208  	XK_braille_dots_234568                = 0x10028be
  2209  	XK_braille_dots_23457                 = 0x100285e
  2210  	XK_braille_dots_234578                = 0x10028de
  2211  	XK_braille_dots_23458                 = 0x100289e
  2212  	XK_braille_dots_2346                  = 0x100282e
  2213  	XK_braille_dots_23467                 = 0x100286e
  2214  	XK_braille_dots_234678                = 0x10028ee
  2215  	XK_braille_dots_23468                 = 0x10028ae
  2216  	XK_braille_dots_2347                  = 0x100284e
  2217  	XK_braille_dots_23478                 = 0x10028ce
  2218  	XK_braille_dots_2348                  = 0x100288e
  2219  	XK_braille_dots_235                   = 0x1002816
  2220  	XK_braille_dots_2356                  = 0x1002836
  2221  	XK_braille_dots_23567                 = 0x1002876
  2222  	XK_braille_dots_235678                = 0x10028f6
  2223  	XK_braille_dots_23568                 = 0x10028b6
  2224  	XK_braille_dots_2357                  = 0x1002856
  2225  	XK_braille_dots_23578                 = 0x10028d6
  2226  	XK_braille_dots_2358                  = 0x1002896
  2227  	XK_braille_dots_236                   = 0x1002826
  2228  	XK_braille_dots_2367                  = 0x1002866
  2229  	XK_braille_dots_23678                 = 0x10028e6
  2230  	XK_braille_dots_2368                  = 0x10028a6
  2231  	XK_braille_dots_237                   = 0x1002846
  2232  	XK_braille_dots_2378                  = 0x10028c6
  2233  	XK_braille_dots_238                   = 0x1002886
  2234  	XK_braille_dots_24                    = 0x100280a
  2235  	XK_braille_dots_245                   = 0x100281a
  2236  	XK_braille_dots_2456                  = 0x100283a
  2237  	XK_braille_dots_24567                 = 0x100287a
  2238  	XK_braille_dots_245678                = 0x10028fa
  2239  	XK_braille_dots_24568                 = 0x10028ba
  2240  	XK_braille_dots_2457                  = 0x100285a
  2241  	XK_braille_dots_24578                 = 0x10028da
  2242  	XK_braille_dots_2458                  = 0x100289a
  2243  	XK_braille_dots_246                   = 0x100282a
  2244  	XK_braille_dots_2467                  = 0x100286a
  2245  	XK_braille_dots_24678                 = 0x10028ea
  2246  	XK_braille_dots_2468                  = 0x10028aa
  2247  	XK_braille_dots_247                   = 0x100284a
  2248  	XK_braille_dots_2478                  = 0x10028ca
  2249  	XK_braille_dots_248                   = 0x100288a
  2250  	XK_braille_dots_25                    = 0x1002812
  2251  	XK_braille_dots_256                   = 0x1002832
  2252  	XK_braille_dots_2567                  = 0x1002872
  2253  	XK_braille_dots_25678                 = 0x10028f2
  2254  	XK_braille_dots_2568                  = 0x10028b2
  2255  	XK_braille_dots_257                   = 0x1002852
  2256  	XK_braille_dots_2578                  = 0x10028d2
  2257  	XK_braille_dots_258                   = 0x1002892
  2258  	XK_braille_dots_26                    = 0x1002822
  2259  	XK_braille_dots_267                   = 0x1002862
  2260  	XK_braille_dots_2678                  = 0x10028e2
  2261  	XK_braille_dots_268                   = 0x10028a2
  2262  	XK_braille_dots_27                    = 0x1002842
  2263  	XK_braille_dots_278                   = 0x10028c2
  2264  	XK_braille_dots_28                    = 0x1002882
  2265  	XK_braille_dots_3                     = 0x1002804
  2266  	XK_braille_dots_34                    = 0x100280c
  2267  	XK_braille_dots_345                   = 0x100281c
  2268  	XK_braille_dots_3456                  = 0x100283c
  2269  	XK_braille_dots_34567                 = 0x100287c
  2270  	XK_braille_dots_345678                = 0x10028fc
  2271  	XK_braille_dots_34568                 = 0x10028bc
  2272  	XK_braille_dots_3457                  = 0x100285c
  2273  	XK_braille_dots_34578                 = 0x10028dc
  2274  	XK_braille_dots_3458                  = 0x100289c
  2275  	XK_braille_dots_346                   = 0x100282c
  2276  	XK_braille_dots_3467                  = 0x100286c
  2277  	XK_braille_dots_34678                 = 0x10028ec
  2278  	XK_braille_dots_3468                  = 0x10028ac
  2279  	XK_braille_dots_347                   = 0x100284c
  2280  	XK_braille_dots_3478                  = 0x10028cc
  2281  	XK_braille_dots_348                   = 0x100288c
  2282  	XK_braille_dots_35                    = 0x1002814
  2283  	XK_braille_dots_356                   = 0x1002834
  2284  	XK_braille_dots_3567                  = 0x1002874
  2285  	XK_braille_dots_35678                 = 0x10028f4
  2286  	XK_braille_dots_3568                  = 0x10028b4
  2287  	XK_braille_dots_357                   = 0x1002854
  2288  	XK_braille_dots_3578                  = 0x10028d4
  2289  	XK_braille_dots_358                   = 0x1002894
  2290  	XK_braille_dots_36                    = 0x1002824
  2291  	XK_braille_dots_367                   = 0x1002864
  2292  	XK_braille_dots_3678                  = 0x10028e4
  2293  	XK_braille_dots_368                   = 0x10028a4
  2294  	XK_braille_dots_37                    = 0x1002844
  2295  	XK_braille_dots_378                   = 0x10028c4
  2296  	XK_braille_dots_38                    = 0x1002884
  2297  	XK_braille_dots_4                     = 0x1002808
  2298  	XK_braille_dots_45                    = 0x1002818
  2299  	XK_braille_dots_456                   = 0x1002838
  2300  	XK_braille_dots_4567                  = 0x1002878
  2301  	XK_braille_dots_45678                 = 0x10028f8
  2302  	XK_braille_dots_4568                  = 0x10028b8
  2303  	XK_braille_dots_457                   = 0x1002858
  2304  	XK_braille_dots_4578                  = 0x10028d8
  2305  	XK_braille_dots_458                   = 0x1002898
  2306  	XK_braille_dots_46                    = 0x1002828
  2307  	XK_braille_dots_467                   = 0x1002868
  2308  	XK_braille_dots_4678                  = 0x10028e8
  2309  	XK_braille_dots_468                   = 0x10028a8
  2310  	XK_braille_dots_47                    = 0x1002848
  2311  	XK_braille_dots_478                   = 0x10028c8
  2312  	XK_braille_dots_48                    = 0x1002888
  2313  	XK_braille_dots_5                     = 0x1002810
  2314  	XK_braille_dots_56                    = 0x1002830
  2315  	XK_braille_dots_567                   = 0x1002870
  2316  	XK_braille_dots_5678                  = 0x10028f0
  2317  	XK_braille_dots_568                   = 0x10028b0
  2318  	XK_braille_dots_57                    = 0x1002850
  2319  	XK_braille_dots_578                   = 0x10028d0
  2320  	XK_braille_dots_58                    = 0x1002890
  2321  	XK_braille_dots_6                     = 0x1002820
  2322  	XK_braille_dots_67                    = 0x1002860
  2323  	XK_braille_dots_678                   = 0x10028e0
  2324  	XK_braille_dots_68                    = 0x10028a0
  2325  	XK_braille_dots_7                     = 0x1002840
  2326  	XK_braille_dots_78                    = 0x10028c0
  2327  	XK_braille_dots_8                     = 0x1002880
  2328  	XK_breve                              = 0x01a2
  2329  	XK_brokenbar                          = 0x00a6
  2330  	XK_c                                  = 0x0063
  2331  	XK_c_h                                = 0xfea3
  2332  	XK_cabovedot                          = 0x02e5
  2333  	XK_cacute                             = 0x01e6
  2334  	XK_caron                              = 0x01b7
  2335  	XK_ccaron                             = 0x01e8
  2336  	XK_ccedilla                           = 0x00e7
  2337  	XK_ccircumflex                        = 0x02e6
  2338  	XK_cedilla                            = 0x00b8
  2339  	XK_cent                               = 0x00a2
  2340  	XK_ch                                 = 0xfea0
  2341  	XK_colon                              = 0x003a
  2342  	XK_comma                              = 0x002c
  2343  	XK_containsas                         = 0x100220B
  2344  	XK_copyright                          = 0x00a9
  2345  	XK_cuberoot                           = 0x100221B
  2346  	XK_currency                           = 0x00a4
  2347  	XK_d                                  = 0x0064
  2348  	XK_dabovedot                          = 0x1001e0b
  2349  	XK_dcaron                             = 0x01ef
  2350  	XK_dead_A                             = 0xfe81
  2351  	XK_dead_E                             = 0xfe83
  2352  	XK_dead_I                             = 0xfe85
  2353  	XK_dead_O                             = 0xfe87
  2354  	XK_dead_U                             = 0xfe89
  2355  	XK_dead_a                             = 0xfe80
  2356  	XK_dead_abovecomma                    = 0xfe64
  2357  	XK_dead_abovedot                      = 0xfe56
  2358  	XK_dead_abovereversedcomma            = 0xfe65
  2359  	XK_dead_abovering                     = 0xfe58
  2360  	XK_dead_aboveverticalline             = 0xfe91
  2361  	XK_dead_acute                         = 0xfe51
  2362  	XK_dead_belowbreve                    = 0xfe6b
  2363  	XK_dead_belowcircumflex               = 0xfe69
  2364  	XK_dead_belowcomma                    = 0xfe6e
  2365  	XK_dead_belowdiaeresis                = 0xfe6c
  2366  	XK_dead_belowdot                      = 0xfe60
  2367  	XK_dead_belowmacron                   = 0xfe68
  2368  	XK_dead_belowring                     = 0xfe67
  2369  	XK_dead_belowtilde                    = 0xfe6a
  2370  	XK_dead_belowverticalline             = 0xfe92
  2371  	XK_dead_breve                         = 0xfe55
  2372  	XK_dead_capital_schwa                 = 0xfe8b
  2373  	XK_dead_caron                         = 0xfe5a
  2374  	XK_dead_cedilla                       = 0xfe5b
  2375  	XK_dead_circumflex                    = 0xfe52
  2376  	XK_dead_currency                      = 0xfe6f
  2377  	XK_dead_dasia                         = 0xfe65
  2378  	XK_dead_diaeresis                     = 0xfe57
  2379  	XK_dead_doubleacute                   = 0xfe59
  2380  	XK_dead_doublegrave                   = 0xfe66
  2381  	XK_dead_e                             = 0xfe82
  2382  	XK_dead_grave                         = 0xfe50
  2383  	XK_dead_greek                         = 0xfe8c
  2384  	XK_dead_hook                          = 0xfe61
  2385  	XK_dead_horn                          = 0xfe62
  2386  	XK_dead_i                             = 0xfe84
  2387  	XK_dead_invertedbreve                 = 0xfe6d
  2388  	XK_dead_iota                          = 0xfe5d
  2389  	XK_dead_longsolidusoverlay            = 0xfe93
  2390  	XK_dead_lowline                       = 0xfe90
  2391  	XK_dead_macron                        = 0xfe54
  2392  	XK_dead_o                             = 0xfe86
  2393  	XK_dead_ogonek                        = 0xfe5c
  2394  	XK_dead_perispomeni                   = 0xfe53
  2395  	XK_dead_psili                         = 0xfe64
  2396  	XK_dead_semivoiced_sound              = 0xfe5f
  2397  	XK_dead_small_schwa                   = 0xfe8a
  2398  	XK_dead_stroke                        = 0xfe63
  2399  	XK_dead_tilde                         = 0xfe53
  2400  	XK_dead_u                             = 0xfe88
  2401  	XK_dead_voiced_sound                  = 0xfe5e
  2402  	XK_degree                             = 0x00b0
  2403  	XK_diaeresis                          = 0x00a8
  2404  	XK_dintegral                          = 0x100222C
  2405  	XK_division                           = 0x00f7
  2406  	XK_dollar                             = 0x0024
  2407  	XK_doubleacute                        = 0x01bd
  2408  	XK_dstroke                            = 0x01f0
  2409  	XK_e                                  = 0x0065
  2410  	XK_eabovedot                          = 0x03ec
  2411  	XK_eacute                             = 0x00e9
  2412  	XK_ebelowdot                          = 0x1001eb9
  2413  	XK_ecaron                             = 0x01ec
  2414  	XK_ecircumflex                        = 0x00ea
  2415  	XK_ecircumflexacute                   = 0x1001ebf
  2416  	XK_ecircumflexbelowdot                = 0x1001ec7
  2417  	XK_ecircumflexgrave                   = 0x1001ec1
  2418  	XK_ecircumflexhook                    = 0x1001ec3
  2419  	XK_ecircumflextilde                   = 0x1001ec5
  2420  	XK_ediaeresis                         = 0x00eb
  2421  	XK_egrave                             = 0x00e8
  2422  	XK_ehook                              = 0x1001ebb
  2423  	XK_eightsubscript                     = 0x1002088
  2424  	XK_eightsuperior                      = 0x1002078
  2425  	XK_elementof                          = 0x1002208
  2426  	XK_emacron                            = 0x03ba
  2427  	XK_emptyset                           = 0x1002205
  2428  	XK_eng                                = 0x03bf
  2429  	XK_eogonek                            = 0x01ea
  2430  	XK_equal                              = 0x003d
  2431  	XK_eth                                = 0x00f0
  2432  	XK_etilde                             = 0x1001ebd
  2433  	XK_exclam                             = 0x0021
  2434  	XK_exclamdown                         = 0x00a1
  2435  	XK_ezh                                = 0x1000292
  2436  	XK_f                                  = 0x0066
  2437  	XK_fabovedot                          = 0x1001e1f
  2438  	XK_fivesubscript                      = 0x1002085
  2439  	XK_fivesuperior                       = 0x1002075
  2440  	XK_foursubscript                      = 0x1002084
  2441  	XK_foursuperior                       = 0x1002074
  2442  	XK_fourthroot                         = 0x100221C
  2443  	XK_g                                  = 0x0067
  2444  	XK_gabovedot                          = 0x02f5
  2445  	XK_gbreve                             = 0x02bb
  2446  	XK_gcaron                             = 0x10001e7
  2447  	XK_gcedilla                           = 0x03bb
  2448  	XK_gcircumflex                        = 0x02f8
  2449  	XK_grave                              = 0x0060
  2450  	XK_greater                            = 0x003e
  2451  	XK_guillemotleft                      = 0x00ab
  2452  	XK_guillemotright                     = 0x00bb
  2453  	XK_h                                  = 0x0068
  2454  	XK_hcircumflex                        = 0x02b6
  2455  	XK_hebrew_aleph                       = 0x0ce0
  2456  	XK_hebrew_ayin                        = 0x0cf2
  2457  	XK_hebrew_bet                         = 0x0ce1
  2458  	XK_hebrew_beth                        = 0x0ce1
  2459  	XK_hebrew_chet                        = 0x0ce7
  2460  	XK_hebrew_dalet                       = 0x0ce3
  2461  	XK_hebrew_daleth                      = 0x0ce3
  2462  	XK_hebrew_doublelowline               = 0x0cdf
  2463  	XK_hebrew_finalkaph                   = 0x0cea
  2464  	XK_hebrew_finalmem                    = 0x0ced
  2465  	XK_hebrew_finalnun                    = 0x0cef
  2466  	XK_hebrew_finalpe                     = 0x0cf3
  2467  	XK_hebrew_finalzade                   = 0x0cf5
  2468  	XK_hebrew_finalzadi                   = 0x0cf5
  2469  	XK_hebrew_gimel                       = 0x0ce2
  2470  	XK_hebrew_gimmel                      = 0x0ce2
  2471  	XK_hebrew_he                          = 0x0ce4
  2472  	XK_hebrew_het                         = 0x0ce7
  2473  	XK_hebrew_kaph                        = 0x0ceb
  2474  	XK_hebrew_kuf                         = 0x0cf7
  2475  	XK_hebrew_lamed                       = 0x0cec
  2476  	XK_hebrew_mem                         = 0x0cee
  2477  	XK_hebrew_nun                         = 0x0cf0
  2478  	XK_hebrew_pe                          = 0x0cf4
  2479  	XK_hebrew_qoph                        = 0x0cf7
  2480  	XK_hebrew_resh                        = 0x0cf8
  2481  	XK_hebrew_samech                      = 0x0cf1
  2482  	XK_hebrew_samekh                      = 0x0cf1
  2483  	XK_hebrew_shin                        = 0x0cf9
  2484  	XK_hebrew_taf                         = 0x0cfa
  2485  	XK_hebrew_taw                         = 0x0cfa
  2486  	XK_hebrew_tet                         = 0x0ce8
  2487  	XK_hebrew_teth                        = 0x0ce8
  2488  	XK_hebrew_waw                         = 0x0ce5
  2489  	XK_hebrew_yod                         = 0x0ce9
  2490  	XK_hebrew_zade                        = 0x0cf6
  2491  	XK_hebrew_zadi                        = 0x0cf6
  2492  	XK_hebrew_zain                        = 0x0ce6
  2493  	XK_hebrew_zayin                       = 0x0ce6
  2494  	XK_hstroke                            = 0x02b1
  2495  	XK_hyphen                             = 0x00ad
  2496  	XK_i                                  = 0x0069
  2497  	XK_iacute                             = 0x00ed
  2498  	XK_ibelowdot                          = 0x1001ecb
  2499  	XK_ibreve                             = 0x100012d
  2500  	XK_icircumflex                        = 0x00ee
  2501  	XK_idiaeresis                         = 0x00ef
  2502  	XK_idotless                           = 0x02b9
  2503  	XK_igrave                             = 0x00ec
  2504  	XK_ihook                              = 0x1001ec9
  2505  	XK_imacron                            = 0x03ef
  2506  	XK_iogonek                            = 0x03e7
  2507  	XK_itilde                             = 0x03b5
  2508  	XK_j                                  = 0x006a
  2509  	XK_jcircumflex                        = 0x02bc
  2510  	XK_k                                  = 0x006b
  2511  	XK_kana_A                             = 0x04b1
  2512  	XK_kana_CHI                           = 0x04c1
  2513  	XK_kana_E                             = 0x04b4
  2514  	XK_kana_FU                            = 0x04cc
  2515  	XK_kana_HA                            = 0x04ca
  2516  	XK_kana_HE                            = 0x04cd
  2517  	XK_kana_HI                            = 0x04cb
  2518  	XK_kana_HO                            = 0x04ce
  2519  	XK_kana_HU                            = 0x04cc
  2520  	XK_kana_I                             = 0x04b2
  2521  	XK_kana_KA                            = 0x04b6
  2522  	XK_kana_KE                            = 0x04b9
  2523  	XK_kana_KI                            = 0x04b7
  2524  	XK_kana_KO                            = 0x04ba
  2525  	XK_kana_KU                            = 0x04b8
  2526  	XK_kana_MA                            = 0x04cf
  2527  	XK_kana_ME                            = 0x04d2
  2528  	XK_kana_MI                            = 0x04d0
  2529  	XK_kana_MO                            = 0x04d3
  2530  	XK_kana_MU                            = 0x04d1
  2531  	XK_kana_N                             = 0x04dd
  2532  	XK_kana_NA                            = 0x04c5
  2533  	XK_kana_NE                            = 0x04c8
  2534  	XK_kana_NI                            = 0x04c6
  2535  	XK_kana_NO                            = 0x04c9
  2536  	XK_kana_NU                            = 0x04c7
  2537  	XK_kana_O                             = 0x04b5
  2538  	XK_kana_RA                            = 0x04d7
  2539  	XK_kana_RE                            = 0x04da
  2540  	XK_kana_RI                            = 0x04d8
  2541  	XK_kana_RO                            = 0x04db
  2542  	XK_kana_RU                            = 0x04d9
  2543  	XK_kana_SA                            = 0x04bb
  2544  	XK_kana_SE                            = 0x04be
  2545  	XK_kana_SHI                           = 0x04bc
  2546  	XK_kana_SO                            = 0x04bf
  2547  	XK_kana_SU                            = 0x04bd
  2548  	XK_kana_TA                            = 0x04c0
  2549  	XK_kana_TE                            = 0x04c3
  2550  	XK_kana_TI                            = 0x04c1
  2551  	XK_kana_TO                            = 0x04c4
  2552  	XK_kana_TSU                           = 0x04c2
  2553  	XK_kana_TU                            = 0x04c2
  2554  	XK_kana_U                             = 0x04b3
  2555  	XK_kana_WA                            = 0x04dc
  2556  	XK_kana_WO                            = 0x04a6
  2557  	XK_kana_YA                            = 0x04d4
  2558  	XK_kana_YO                            = 0x04d6
  2559  	XK_kana_YU                            = 0x04d5
  2560  	XK_kana_a                             = 0x04a7
  2561  	XK_kana_closingbracket                = 0x04a3
  2562  	XK_kana_comma                         = 0x04a4
  2563  	XK_kana_conjunctive                   = 0x04a5
  2564  	XK_kana_e                             = 0x04aa
  2565  	XK_kana_fullstop                      = 0x04a1
  2566  	XK_kana_i                             = 0x04a8
  2567  	XK_kana_middledot                     = 0x04a5
  2568  	XK_kana_o                             = 0x04ab
  2569  	XK_kana_openingbracket                = 0x04a2
  2570  	XK_kana_switch                        = 0xff7e
  2571  	XK_kana_tsu                           = 0x04af
  2572  	XK_kana_tu                            = 0x04af
  2573  	XK_kana_u                             = 0x04a9
  2574  	XK_kana_ya                            = 0x04ac
  2575  	XK_kana_yo                            = 0x04ae
  2576  	XK_kana_yu                            = 0x04ad
  2577  	XK_kappa                              = 0x03a2
  2578  	XK_kcedilla                           = 0x03f3
  2579  	XK_kra                                = 0x03a2
  2580  	XK_l                                  = 0x006c
  2581  	XK_lacute                             = 0x01e5
  2582  	XK_lbelowdot                          = 0x1001e37
  2583  	XK_lcaron                             = 0x01b5
  2584  	XK_lcedilla                           = 0x03b6
  2585  	XK_less                               = 0x003c
  2586  	XK_lstroke                            = 0x01b3
  2587  	XK_m                                  = 0x006d
  2588  	XK_mabovedot                          = 0x1001e41
  2589  	XK_macron                             = 0x00af
  2590  	XK_masculine                          = 0x00ba
  2591  	XK_minus                              = 0x002d
  2592  	XK_mu                                 = 0x00b5
  2593  	XK_multiply                           = 0x00d7
  2594  	XK_n                                  = 0x006e
  2595  	XK_nacute                             = 0x01f1
  2596  	XK_ncaron                             = 0x01f2
  2597  	XK_ncedilla                           = 0x03f1
  2598  	XK_ninesubscript                      = 0x1002089
  2599  	XK_ninesuperior                       = 0x1002079
  2600  	XK_nobreakspace                       = 0x00a0
  2601  	XK_notapproxeq                        = 0x1002247
  2602  	XK_notelementof                       = 0x1002209
  2603  	XK_notidentical                       = 0x1002262
  2604  	XK_notsign                            = 0x00ac
  2605  	XK_ntilde                             = 0x00f1
  2606  	XK_numbersign                         = 0x0023
  2607  	XK_numerosign                         = 0x06b0
  2608  	XK_o                                  = 0x006f
  2609  	XK_oacute                             = 0x00f3
  2610  	XK_obarred                            = 0x1000275
  2611  	XK_obelowdot                          = 0x1001ecd
  2612  	XK_ocaron                             = 0x10001d2
  2613  	XK_ocircumflex                        = 0x00f4
  2614  	XK_ocircumflexacute                   = 0x1001ed1
  2615  	XK_ocircumflexbelowdot                = 0x1001ed9
  2616  	XK_ocircumflexgrave                   = 0x1001ed3
  2617  	XK_ocircumflexhook                    = 0x1001ed5
  2618  	XK_ocircumflextilde                   = 0x1001ed7
  2619  	XK_odiaeresis                         = 0x00f6
  2620  	XK_odoubleacute                       = 0x01f5
  2621  	XK_oe                                 = 0x13bd
  2622  	XK_ogonek                             = 0x01b2
  2623  	XK_ograve                             = 0x00f2
  2624  	XK_ohook                              = 0x1001ecf
  2625  	XK_ohorn                              = 0x10001a1
  2626  	XK_ohornacute                         = 0x1001edb
  2627  	XK_ohornbelowdot                      = 0x1001ee3
  2628  	XK_ohorngrave                         = 0x1001edd
  2629  	XK_ohornhook                          = 0x1001edf
  2630  	XK_ohorntilde                         = 0x1001ee1
  2631  	XK_omacron                            = 0x03f2
  2632  	XK_onehalf                            = 0x00bd
  2633  	XK_onequarter                         = 0x00bc
  2634  	XK_onesubscript                       = 0x1002081
  2635  	XK_onesuperior                        = 0x00b9
  2636  	XK_ooblique                           = 0x00f8
  2637  	XK_ordfeminine                        = 0x00aa
  2638  	XK_oslash                             = 0x00f8
  2639  	XK_otilde                             = 0x00f5
  2640  	XK_overline                           = 0x047e
  2641  	XK_p                                  = 0x0070
  2642  	XK_pabovedot                          = 0x1001e57
  2643  	XK_paragraph                          = 0x00b6
  2644  	XK_parenleft                          = 0x0028
  2645  	XK_parenright                         = 0x0029
  2646  	XK_partdifferential                   = 0x1002202
  2647  	XK_percent                            = 0x0025
  2648  	XK_period                             = 0x002e
  2649  	XK_periodcentered                     = 0x00b7
  2650  	XK_plus                               = 0x002b
  2651  	XK_plusminus                          = 0x00b1
  2652  	XK_prolongedsound                     = 0x04b0
  2653  	XK_q                                  = 0x0071
  2654  	XK_question                           = 0x003f
  2655  	XK_questiondown                       = 0x00bf
  2656  	XK_quotedbl                           = 0x0022
  2657  	XK_quoteleft                          = 0x0060
  2658  	XK_quoteright                         = 0x0027
  2659  	XK_r                                  = 0x0072
  2660  	XK_racute                             = 0x01e0
  2661  	XK_rcaron                             = 0x01f8
  2662  	XK_rcedilla                           = 0x03b3
  2663  	XK_registered                         = 0x00ae
  2664  	XK_s                                  = 0x0073
  2665  	XK_sabovedot                          = 0x1001e61
  2666  	XK_sacute                             = 0x01b6
  2667  	XK_scaron                             = 0x01b9
  2668  	XK_scedilla                           = 0x01ba
  2669  	XK_schwa                              = 0x1000259
  2670  	XK_scircumflex                        = 0x02fe
  2671  	XK_script_switch                      = 0xff7e
  2672  	XK_section                            = 0x00a7
  2673  	XK_semicolon                          = 0x003b
  2674  	XK_semivoicedsound                    = 0x04df
  2675  	XK_sevensubscript                     = 0x1002087
  2676  	XK_sevensuperior                      = 0x1002077
  2677  	XK_sixsubscript                       = 0x1002086
  2678  	XK_sixsuperior                        = 0x1002076
  2679  	XK_slash                              = 0x002f
  2680  	XK_space                              = 0x0020
  2681  	XK_squareroot                         = 0x100221A
  2682  	XK_ssharp                             = 0x00df
  2683  	XK_sterling                           = 0x00a3
  2684  	XK_stricteq                           = 0x1002263
  2685  	XK_t                                  = 0x0074
  2686  	XK_tabovedot                          = 0x1001e6b
  2687  	XK_tcaron                             = 0x01bb
  2688  	XK_tcedilla                           = 0x01fe
  2689  	XK_thorn                              = 0x00fe
  2690  	XK_threequarters                      = 0x00be
  2691  	XK_threesubscript                     = 0x1002083
  2692  	XK_threesuperior                      = 0x00b3
  2693  	XK_tintegral                          = 0x100222D
  2694  	XK_tslash                             = 0x03bc
  2695  	XK_twosubscript                       = 0x1002082
  2696  	XK_twosuperior                        = 0x00b2
  2697  	XK_u                                  = 0x0075
  2698  	XK_uacute                             = 0x00fa
  2699  	XK_ubelowdot                          = 0x1001ee5
  2700  	XK_ubreve                             = 0x02fd
  2701  	XK_ucircumflex                        = 0x00fb
  2702  	XK_udiaeresis                         = 0x00fc
  2703  	XK_udoubleacute                       = 0x01fb
  2704  	XK_ugrave                             = 0x00f9
  2705  	XK_uhook                              = 0x1001ee7
  2706  	XK_uhorn                              = 0x10001b0
  2707  	XK_uhornacute                         = 0x1001ee9
  2708  	XK_uhornbelowdot                      = 0x1001ef1
  2709  	XK_uhorngrave                         = 0x1001eeb
  2710  	XK_uhornhook                          = 0x1001eed
  2711  	XK_uhorntilde                         = 0x1001eef
  2712  	XK_umacron                            = 0x03fe
  2713  	XK_underscore                         = 0x005f
  2714  	XK_uogonek                            = 0x03f9
  2715  	XK_uring                              = 0x01f9
  2716  	XK_utilde                             = 0x03fd
  2717  	XK_v                                  = 0x0076
  2718  	XK_voicedsound                        = 0x04de
  2719  	XK_w                                  = 0x0077
  2720  	XK_wacute                             = 0x1001e83
  2721  	XK_wcircumflex                        = 0x1000175
  2722  	XK_wdiaeresis                         = 0x1001e85
  2723  	XK_wgrave                             = 0x1001e81
  2724  	XK_x                                  = 0x0078
  2725  	XK_xabovedot                          = 0x1001e8b
  2726  	XK_y                                  = 0x0079
  2727  	XK_yacute                             = 0x00fd
  2728  	XK_ybelowdot                          = 0x1001ef5
  2729  	XK_ycircumflex                        = 0x1000177
  2730  	XK_ydiaeresis                         = 0x00ff
  2731  	XK_yen                                = 0x00a5
  2732  	XK_ygrave                             = 0x1001ef3
  2733  	XK_yhook                              = 0x1001ef7
  2734  	XK_ytilde                             = 0x1001ef9
  2735  	XK_z                                  = 0x007a
  2736  	XK_zabovedot                          = 0x01bf
  2737  	XK_zacute                             = 0x01bc
  2738  	XK_zcaron                             = 0x01be
  2739  	XK_zerosubscript                      = 0x1002080
  2740  	XK_zerosuperior                       = 0x1002070
  2741  	XK_zstroke                            = 0x10001b6
  2742  	XLocaleNotSupported                   = -2
  2743  	XLookupBoth                           = 4
  2744  	XLookupChars                          = 2
  2745  	XLookupKeySym                         = 3
  2746  	XLookupNone                           = 1
  2747  	XMD_H                                 = 1
  2748  	XNArea                                = "area"
  2749  	XNAreaNeeded                          = "areaNeeded"
  2750  	XNBackground                          = "background"
  2751  	XNBackgroundPixmap                    = "backgroundPixmap"
  2752  	XNBaseFontName                        = "baseFontName"
  2753  	XNClientWindow                        = "clientWindow"
  2754  	XNColormap                            = "colorMap"
  2755  	XNContextualDrawing                   = "contextualDrawing"
  2756  	XNCursor                              = "cursor"
  2757  	XNDefaultString                       = "defaultString"
  2758  	XNDestroyCallback                     = "destroyCallback"
  2759  	XNDirectionalDependentDrawing         = "directionalDependentDrawing"
  2760  	XNFilterEvents                        = "filterEvents"
  2761  	XNFocusWindow                         = "focusWindow"
  2762  	XNFontInfo                            = "fontInfo"
  2763  	XNFontSet                             = "fontSet"
  2764  	XNForeground                          = "foreground"
  2765  	XNGeometryCallback                    = "geometryCallback"
  2766  	XNHotKey                              = "hotKey"
  2767  	XNHotKeyState                         = "hotKeyState"
  2768  	XNInputStyle                          = "inputStyle"
  2769  	XNLineSpace                           = "lineSpace"
  2770  	XNMissingCharSet                      = "missingCharSet"
  2771  	XNOMAutomatic                         = "omAutomatic"
  2772  	XNOrientation                         = "orientation"
  2773  	XNPreeditAttributes                   = "preeditAttributes"
  2774  	XNPreeditCaretCallback                = "preeditCaretCallback"
  2775  	XNPreeditDoneCallback                 = "preeditDoneCallback"
  2776  	XNPreeditDrawCallback                 = "preeditDrawCallback"
  2777  	XNPreeditStartCallback                = "preeditStartCallback"
  2778  	XNPreeditState                        = "preeditState"
  2779  	XNPreeditStateNotifyCallback          = "preeditStateNotifyCallback"
  2780  	XNQueryICValuesList                   = "queryICValuesList"
  2781  	XNQueryIMValuesList                   = "queryIMValuesList"
  2782  	XNQueryInputStyle                     = "queryInputStyle"
  2783  	XNQueryOrientation                    = "queryOrientation"
  2784  	XNR6PreeditCallback                   = "r6PreeditCallback"
  2785  	XNRequiredCharSet                     = "requiredCharSet"
  2786  	XNResetState                          = "resetState"
  2787  	XNResourceClass                       = "resourceClass"
  2788  	XNResourceName                        = "resourceName"
  2789  	XNSeparatorofNestedList               = "separatorofNestedList"
  2790  	XNSpotLocation                        = "spotLocation"
  2791  	XNStatusAttributes                    = "statusAttributes"
  2792  	XNStatusDoneCallback                  = "statusDoneCallback"
  2793  	XNStatusDrawCallback                  = "statusDrawCallback"
  2794  	XNStatusStartCallback                 = "statusStartCallback"
  2795  	XNStdColormap                         = "stdColorMap"
  2796  	XNStringConversion                    = "stringConversion"
  2797  	XNStringConversionCallback            = "stringConversionCallback"
  2798  	XNVaNestedList                        = "XNVaNestedList"
  2799  	XNVisiblePosition                     = "visiblePosition"
  2800  	XNegative                             = 0x0010
  2801  	XNoMemory                             = -1
  2802  	XPROTOSTRUCTS_H                       = 0
  2803  	XPROTO_H                              = 0
  2804  	XTHREADS                              = 1
  2805  	XUSE_MTSAFE_API                       = 1
  2806  	XUrgencyHint                          = 256
  2807  	XValue                                = 0x0001
  2808  	XYBitmap                              = 0
  2809  	XYPixmap                              = 1
  2810  	X_AllocColor                          = 84
  2811  	X_AllocColorCells                     = 86
  2812  	X_AllocColorPlanes                    = 87
  2813  	X_AllocNamedColor                     = 85
  2814  	X_AllowEvents                         = 35
  2815  	X_Bell                                = 104
  2816  	X_ChangeActivePointerGrab             = 30
  2817  	X_ChangeGC                            = 56
  2818  	X_ChangeHosts                         = 109
  2819  	X_ChangeKeyboardControl               = 102
  2820  	X_ChangeKeyboardMapping               = 100
  2821  	X_ChangePointerControl                = 105
  2822  	X_ChangeProperty                      = 18
  2823  	X_ChangeSaveSet                       = 6
  2824  	X_ChangeWindowAttributes              = 2
  2825  	X_CirculateWindow                     = 13
  2826  	X_ClearArea                           = 61
  2827  	X_CloseFont                           = 46
  2828  	X_ConfigureWindow                     = 12
  2829  	X_ConvertSelection                    = 24
  2830  	X_CopyArea                            = 62
  2831  	X_CopyColormapAndFree                 = 80
  2832  	X_CopyGC                              = 57
  2833  	X_CopyPlane                           = 63
  2834  	X_CreateColormap                      = 78
  2835  	X_CreateCursor                        = 93
  2836  	X_CreateGC                            = 55
  2837  	X_CreateGlyphCursor                   = 94
  2838  	X_CreatePixmap                        = 53
  2839  	X_CreateWindow                        = 1
  2840  	X_DeleteProperty                      = 19
  2841  	X_DestroySubwindows                   = 5
  2842  	X_DestroyWindow                       = 4
  2843  	X_Error                               = 0
  2844  	X_FillPoly                            = 69
  2845  	X_ForceScreenSaver                    = 115
  2846  	X_FreeColormap                        = 79
  2847  	X_FreeColors                          = 88
  2848  	X_FreeCursor                          = 95
  2849  	X_FreeGC                              = 60
  2850  	X_FreePixmap                          = 54
  2851  	X_GetAtomName                         = 17
  2852  	X_GetFontPath                         = 52
  2853  	X_GetGeometry                         = 14
  2854  	X_GetImage                            = 73
  2855  	X_GetInputFocus                       = 43
  2856  	X_GetKeyboardControl                  = 103
  2857  	X_GetKeyboardMapping                  = 101
  2858  	X_GetModifierMapping                  = 119
  2859  	X_GetMotionEvents                     = 39
  2860  	X_GetPointerControl                   = 106
  2861  	X_GetPointerMapping                   = 117
  2862  	X_GetProperty                         = 20
  2863  	X_GetScreenSaver                      = 108
  2864  	X_GetSelectionOwner                   = 23
  2865  	X_GetWindowAttributes                 = 3
  2866  	X_GrabButton                          = 28
  2867  	X_GrabKey                             = 33
  2868  	X_GrabKeyboard                        = 31
  2869  	X_GrabPointer                         = 26
  2870  	X_GrabServer                          = 36
  2871  	X_H                                   = 0
  2872  	X_HAVE_UTF8_STRING                    = 1
  2873  	X_ImageText16                         = 77
  2874  	X_ImageText8                          = 76
  2875  	X_InstallColormap                     = 81
  2876  	X_InternAtom                          = 16
  2877  	X_KillClient                          = 113
  2878  	X_ListExtensions                      = 99
  2879  	X_ListFonts                           = 49
  2880  	X_ListFontsWithInfo                   = 50
  2881  	X_ListHosts                           = 110
  2882  	X_ListInstalledColormaps              = 83
  2883  	X_ListProperties                      = 21
  2884  	X_LookupColor                         = 92
  2885  	X_MapSubwindows                       = 9
  2886  	X_MapWindow                           = 8
  2887  	X_NoOperation                         = 127
  2888  	X_OpenFont                            = 45
  2889  	X_PROTOCOL                            = 11
  2890  	X_PROTOCOL_REVISION                   = 0
  2891  	X_PolyArc                             = 68
  2892  	X_PolyFillArc                         = 71
  2893  	X_PolyFillRectangle                   = 70
  2894  	X_PolyLine                            = 65
  2895  	X_PolyPoint                           = 64
  2896  	X_PolyRectangle                       = 67
  2897  	X_PolySegment                         = 66
  2898  	X_PolyText16                          = 75
  2899  	X_PolyText8                           = 74
  2900  	X_PutImage                            = 72
  2901  	X_QueryBestSize                       = 97
  2902  	X_QueryColors                         = 91
  2903  	X_QueryExtension                      = 98
  2904  	X_QueryFont                           = 47
  2905  	X_QueryKeymap                         = 44
  2906  	X_QueryPointer                        = 38
  2907  	X_QueryTextExtents                    = 48
  2908  	X_QueryTree                           = 15
  2909  	X_RecolorCursor                       = 96
  2910  	X_RenderAddGlyphs                     = 20
  2911  	X_RenderAddGlyphsFromPicture          = 21
  2912  	X_RenderAddTraps                      = 32
  2913  	X_RenderChangePicture                 = 5
  2914  	X_RenderColorTrapezoids               = 14
  2915  	X_RenderColorTriangles                = 15
  2916  	X_RenderComposite                     = 8
  2917  	X_RenderCompositeGlyphs16             = 24
  2918  	X_RenderCompositeGlyphs32             = 25
  2919  	X_RenderCompositeGlyphs8              = 23
  2920  	X_RenderCreateAnimCursor              = 31
  2921  	X_RenderCreateConicalGradient         = 36
  2922  	X_RenderCreateCursor                  = 27
  2923  	X_RenderCreateGlyphSet                = 17
  2924  	X_RenderCreateLinearGradient          = 34
  2925  	X_RenderCreatePicture                 = 4
  2926  	X_RenderCreateRadialGradient          = 35
  2927  	X_RenderCreateSolidFill               = 33
  2928  	X_RenderFillRectangles                = 26
  2929  	X_RenderFreeGlyphSet                  = 19
  2930  	X_RenderFreeGlyphs                    = 22
  2931  	X_RenderFreePicture                   = 7
  2932  	X_RenderQueryDithers                  = 3
  2933  	X_RenderQueryFilters                  = 29
  2934  	X_RenderQueryPictFormats              = 1
  2935  	X_RenderQueryPictIndexValues          = 2
  2936  	X_RenderQueryVersion                  = 0
  2937  	X_RenderReferenceGlyphSet             = 18
  2938  	X_RenderScale                         = 9
  2939  	X_RenderSetPictureClipRectangles      = 6
  2940  	X_RenderSetPictureFilter              = 30
  2941  	X_RenderSetPictureTransform           = 28
  2942  	X_RenderTrapezoids                    = 10
  2943  	X_RenderTriFan                        = 13
  2944  	X_RenderTriStrip                      = 12
  2945  	X_RenderTriangles                     = 11
  2946  	X_ReparentWindow                      = 7
  2947  	X_Reply                               = 1
  2948  	X_RotateProperties                    = 114
  2949  	X_SendEvent                           = 25
  2950  	X_SetAccessControl                    = 111
  2951  	X_SetClipRectangles                   = 59
  2952  	X_SetCloseDownMode                    = 112
  2953  	X_SetDashes                           = 58
  2954  	X_SetFontPath                         = 51
  2955  	X_SetInputFocus                       = 42
  2956  	X_SetModifierMapping                  = 118
  2957  	X_SetPointerMapping                   = 116
  2958  	X_SetScreenSaver                      = 107
  2959  	X_SetSelectionOwner                   = 22
  2960  	X_StoreColors                         = 89
  2961  	X_StoreNamedColor                     = 90
  2962  	X_TCP_PORT                            = 6000
  2963  	X_TranslateCoords                     = 40
  2964  	X_UngrabButton                        = 29
  2965  	X_UngrabKey                           = 34
  2966  	X_UngrabKeyboard                      = 32
  2967  	X_UngrabPointer                       = 27
  2968  	X_UngrabServer                        = 37
  2969  	X_UninstallColormap                   = 82
  2970  	X_UnmapSubwindows                     = 11
  2971  	X_UnmapWindow                         = 10
  2972  	X_WarpPointer                         = 41
  2973  	XlibDisplayClosing                    = 2
  2974  	XlibDisplayDfltRMDB                   = 128
  2975  	XlibDisplayIOError                    = 1
  2976  	XlibDisplayNoXkb                      = 4
  2977  	XlibDisplayPrivSync                   = 8
  2978  	XlibDisplayProcConni                  = 16
  2979  	XlibDisplayReadEvents                 = 32
  2980  	XlibDisplayReply                      = 32
  2981  	XlibDisplayWriting                    = 64
  2982  	XlibSpecificationRelease              = 6
  2983  	YNegative                             = 0x0020
  2984  	YSorted                               = 1
  2985  	YValue                                = 0x0002
  2986  	YXBanded                              = 3
  2987  	YXSorted                              = 2
  2988  	ZLNSPERBATCH                          = 1024
  2989  	ZPixmap                               = 2
  2990  	ZRCTSPERBATCH                         = 256
  2991  	ZoomState                             = 2
  2992  	X_ALLOCA_H                            = 1
  2993  	X_ANSI_STDDEF_H                       = 0
  2994  	X_ASM_GENERIC_ERRNO_BASE_H            = 0
  2995  	X_ASM_GENERIC_ERRNO_H                 = 0
  2996  	X_ATFILE_SOURCE                       = 1
  2997  	X_BITS_BYTESWAP_H                     = 1
  2998  	X_BITS_ENDIANNESS_H                   = 1
  2999  	X_BITS_ENDIAN_H                       = 1
  3000  	X_BITS_ERRNO_H                        = 1
  3001  	X_BITS_FLOATN_COMMON_H                = 0
  3002  	X_BITS_PTHREADTYPES_ARCH_H            = 1
  3003  	X_BITS_PTHREADTYPES_COMMON_H          = 1
  3004  	X_BITS_STDINT_INTN_H                  = 1
  3005  	X_BITS_STDINT_UINTN_H                 = 1
  3006  	X_BITS_TIME64_H                       = 1
  3007  	X_BITS_TYPESIZES_H                    = 1
  3008  	X_BITS_TYPES_H                        = 1
  3009  	X_BITS_TYPES_LOCALE_T_H               = 1
  3010  	X_BITS_TYPES___LOCALE_T_H             = 1
  3011  	X_BITS_UINTN_IDENTITY_H               = 1
  3012  	X_BITS_WCHAR_H                        = 1
  3013  	X_BSD_PTRDIFF_T_                      = 0
  3014  	X_BSD_SIZE_T_                         = 0
  3015  	X_BSD_SIZE_T_DEFINED_                 = 0
  3016  	X_DEFAULT_SOURCE                      = 1
  3017  	X_ENDIAN_H                            = 1
  3018  	X_ERRNO_H                             = 1
  3019  	X_FEATURES_H                          = 1
  3020  	X_FILE_OFFSET_BITS                    = 64
  3021  	X_GCC_MAX_ALIGN_T                     = 0
  3022  	X_GCC_PTRDIFF_T                       = 0
  3023  	X_GCC_SIZE_T                          = 0
  3024  	X_GCC_WCHAR_T                         = 0
  3025  	X_GCC_WRAP_STDINT_H                   = 0
  3026  	X_POSIX_C_SOURCE                      = 200809
  3027  	X_POSIX_SOURCE                        = 1
  3028  	X_PTRDIFF_T                           = 0
  3029  	X_PTRDIFF_T_                          = 0
  3030  	X_PTRDIFF_T_DECLARED                  = 0
  3031  	X_RENDER_H_                           = 0
  3032  	X_SIZET_                              = 0
  3033  	X_SIZE_T                              = 0
  3034  	X_SIZE_T_                             = 0
  3035  	X_SIZE_T_DECLARED                     = 0
  3036  	X_SIZE_T_DEFINED                      = 0
  3037  	X_SIZE_T_DEFINED_                     = 0
  3038  	X_STDC_PREDEF_H                       = 1
  3039  	X_STDDEF_H                            = 0
  3040  	X_STDDEF_H_                           = 0
  3041  	X_STDINT_H                            = 1
  3042  	X_STDLIB_H                            = 1
  3043  	X_STRINGS_H                           = 1
  3044  	X_STRING_H                            = 1
  3045  	X_STRUCT_TIMESPEC                     = 1
  3046  	X_SYS_CDEFS_H                         = 1
  3047  	X_SYS_SELECT_H                        = 1
  3048  	X_SYS_SIZE_T_H                        = 0
  3049  	X_SYS_TYPES_H                         = 1
  3050  	X_THREAD_MUTEX_INTERNAL_H             = 1
  3051  	X_THREAD_SHARED_TYPES_H               = 1
  3052  	X_T_PTRDIFF                           = 0
  3053  	X_T_PTRDIFF_                          = 0
  3054  	X_T_SIZE                              = 0
  3055  	X_T_SIZE_                             = 0
  3056  	X_T_WCHAR                             = 0
  3057  	X_T_WCHAR_                            = 0
  3058  	X_WCHAR_T                             = 0
  3059  	X_WCHAR_T_                            = 0
  3060  	X_WCHAR_T_DECLARED                    = 0
  3061  	X_WCHAR_T_DEFINED                     = 0
  3062  	X_WCHAR_T_DEFINED_                    = 0
  3063  	X_WCHAR_T_H                           = 0
  3064  	X_X11_XLIBINT_H_                      = 1
  3065  	X_X11_XLIB_H_                         = 0
  3066  	X_X11_XUTIL_H_                        = 0
  3067  	X_XDEFS_H                             = 0
  3068  	X_XFUNCPROTOBEGIN                     = 0
  3069  	X_XFUNCPROTOEND                       = 0
  3070  	X_XFUNCPROTO_H_                       = 0
  3071  	X_XFUNCS_H_                           = 0
  3072  	X_XFUNCS_H_INCLUDED_STRING_H          = 0
  3073  	X_XLIBCONF_H_                         = 0
  3074  	X_XOSDEFS_H_                          = 0
  3075  	X_XRENDERINT_H_                       = 0
  3076  	X_XRENDERP_H_                         = 0
  3077  	X_XRENDER_H_                          = 0
  3078  	X_XTYPEDEF_ATOM                       = 0
  3079  	X_XTYPEDEF_CLIENTPTR                  = 0
  3080  	X_XTYPEDEF_FONT                       = 0
  3081  	X_XTYPEDEF_FONTPTR                    = 0
  3082  	X_XTYPEDEF_MASK                       = 0
  3083  	X_XTYPEDEF_POINTER                    = 0
  3084  	X_XTYPEDEF_XID                        = 0
  3085  	X_X_NOTSAN                            = 0
  3086  	Linux                                 = 1
  3087  	Sz_xAllocColorCellsReply              = 32
  3088  	Sz_xAllocColorCellsReq                = 12
  3089  	Sz_xAllocColorPlanesReply             = 32
  3090  	Sz_xAllocColorPlanesReq               = 16
  3091  	Sz_xAllocColorReply                   = 32
  3092  	Sz_xAllocColorReq                     = 16
  3093  	Sz_xAllocNamedColorReply              = 32
  3094  	Sz_xAllocNamedColorReq                = 12
  3095  	Sz_xAllowEventsReq                    = 8
  3096  	Sz_xAnimCursorElt                     = 8
  3097  	Sz_xArc                               = 12
  3098  	Sz_xBellReq                           = 4
  3099  	Sz_xChangeActivePointerGrabReq        = 16
  3100  	Sz_xChangeGCReq                       = 12
  3101  	Sz_xChangeHostsReq                    = 8
  3102  	Sz_xChangeKeyboardControlReq          = 8
  3103  	Sz_xChangeKeyboardMappingReq          = 8
  3104  	Sz_xChangeModeReq                     = 4
  3105  	Sz_xChangePointerControlReq           = 12
  3106  	Sz_xChangePropertyReq                 = 24
  3107  	Sz_xChangeSaveSetReq                  = 8
  3108  	Sz_xChangeWindowAttributesReq         = 12
  3109  	Sz_xCharInfo                          = 12
  3110  	Sz_xCirculateWindowReq                = 8
  3111  	Sz_xClearAreaReq                      = 16
  3112  	Sz_xColorItem                         = 12
  3113  	Sz_xConfigureWindowReq                = 12
  3114  	Sz_xConnClientPrefix                  = 12
  3115  	Sz_xConnSetup                         = 32
  3116  	Sz_xConnSetupPrefix                   = 8
  3117  	Sz_xConvertSelectionReq               = 24
  3118  	Sz_xCopyAreaReq                       = 28
  3119  	Sz_xCopyColormapAndFreeReq            = 12
  3120  	Sz_xCopyGCReq                         = 16
  3121  	Sz_xCopyPlaneReq                      = 32
  3122  	Sz_xCreateColormapReq                 = 16
  3123  	Sz_xCreateCursorReq                   = 32
  3124  	Sz_xCreateGCReq                       = 16
  3125  	Sz_xCreateGlyphCursorReq              = 32
  3126  	Sz_xCreatePixmapReq                   = 16
  3127  	Sz_xCreateWindowReq                   = 32
  3128  	Sz_xDeletePropertyReq                 = 12
  3129  	Sz_xDepth                             = 8
  3130  	Sz_xDirectFormat                      = 16
  3131  	Sz_xError                             = 32
  3132  	Sz_xEvent                             = 32
  3133  	Sz_xFillPolyReq                       = 16
  3134  	Sz_xFontProp                          = 8
  3135  	Sz_xForceScreenSaverReq               = 4
  3136  	Sz_xFreeColorsReq                     = 12
  3137  	Sz_xGenericReply                      = 32
  3138  	Sz_xGetAtomNameReply                  = 32
  3139  	Sz_xGetFontPathReply                  = 32
  3140  	Sz_xGetGeometryReply                  = 32
  3141  	Sz_xGetImageReply                     = 32
  3142  	Sz_xGetImageReq                       = 20
  3143  	Sz_xGetInputFocusReply                = 32
  3144  	Sz_xGetKeyboardControlReply           = 52
  3145  	Sz_xGetKeyboardMappingReply           = 32
  3146  	Sz_xGetKeyboardMappingReq             = 8
  3147  	Sz_xGetModifierMappingReply           = 32
  3148  	Sz_xGetMotionEventsReply              = 32
  3149  	Sz_xGetMotionEventsReq                = 16
  3150  	Sz_xGetPointerControlReply            = 32
  3151  	Sz_xGetPointerMappingReply            = 32
  3152  	Sz_xGetPropertyReply                  = 32
  3153  	Sz_xGetPropertyReq                    = 24
  3154  	Sz_xGetScreenSaverReply               = 32
  3155  	Sz_xGetSelectionOwnerReply            = 32
  3156  	Sz_xGetWindowAttributesReply          = 44
  3157  	Sz_xGlyphElt                          = 8
  3158  	Sz_xGlyphInfo                         = 12
  3159  	Sz_xGrabButtonReq                     = 24
  3160  	Sz_xGrabKeyReq                        = 16
  3161  	Sz_xGrabKeyboardReply                 = 32
  3162  	Sz_xGrabKeyboardReq                   = 16
  3163  	Sz_xGrabPointerReply                  = 32
  3164  	Sz_xGrabPointerReq                    = 24
  3165  	Sz_xHostEntry                         = 4
  3166  	Sz_xImageText16Req                    = 16
  3167  	Sz_xImageText8Req                     = 16
  3168  	Sz_xImageTextReq                      = 16
  3169  	Sz_xIndexValue                        = 12
  3170  	Sz_xInternAtomReply                   = 32
  3171  	Sz_xInternAtomReq                     = 8
  3172  	Sz_xKeymapEvent                       = 32
  3173  	Sz_xLineFixed                         = 16
  3174  	Sz_xListExtensionsReply               = 32
  3175  	Sz_xListFontsReply                    = 32
  3176  	Sz_xListFontsReq                      = 8
  3177  	Sz_xListFontsWithInfoReply            = 60
  3178  	Sz_xListFontsWithInfoReq              = 8
  3179  	Sz_xListHostsReply                    = 32
  3180  	Sz_xListHostsReq                      = 4
  3181  	Sz_xListInstalledColormapsReply       = 32
  3182  	Sz_xListPropertiesReply               = 32
  3183  	Sz_xLookupColorReply                  = 32
  3184  	Sz_xLookupColorReq                    = 12
  3185  	Sz_xOpenFontReq                       = 12
  3186  	Sz_xPictDepth                         = 8
  3187  	Sz_xPictFormInfo                      = 28
  3188  	Sz_xPictScreen                        = 8
  3189  	Sz_xPictVisual                        = 8
  3190  	Sz_xPixmapFormat                      = 8
  3191  	Sz_xPoint                             = 4
  3192  	Sz_xPointFixed                        = 8
  3193  	Sz_xPolyArcReq                        = 12
  3194  	Sz_xPolyFillArcReq                    = 12
  3195  	Sz_xPolyFillRectangleReq              = 12
  3196  	Sz_xPolyLineReq                       = 12
  3197  	Sz_xPolyPointReq                      = 12
  3198  	Sz_xPolyRectangleReq                  = 12
  3199  	Sz_xPolySegmentReq                    = 12
  3200  	Sz_xPolyText16Req                     = 16
  3201  	Sz_xPolyText8Req                      = 16
  3202  	Sz_xPolyTextReq                       = 16
  3203  	Sz_xPropIconSize                      = 24
  3204  	Sz_xPutImageReq                       = 24
  3205  	Sz_xQueryBestSizeReply                = 32
  3206  	Sz_xQueryBestSizeReq                  = 12
  3207  	Sz_xQueryColorsReply                  = 32
  3208  	Sz_xQueryColorsReq                    = 8
  3209  	Sz_xQueryExtensionReply               = 32
  3210  	Sz_xQueryExtensionReq                 = 8
  3211  	Sz_xQueryFontReply                    = 60
  3212  	Sz_xQueryKeymapReply                  = 40
  3213  	Sz_xQueryPointerReply                 = 32
  3214  	Sz_xQueryTextExtentsReply             = 32
  3215  	Sz_xQueryTextExtentsReq               = 8
  3216  	Sz_xQueryTreeReply                    = 32
  3217  	Sz_xRecolorCursorReq                  = 20
  3218  	Sz_xRectangle                         = 8
  3219  	Sz_xRenderAddGlyphsReq                = 12
  3220  	Sz_xRenderAddTrapsReq                 = 12
  3221  	Sz_xRenderChangePictureReq            = 12
  3222  	Sz_xRenderColor                       = 8
  3223  	Sz_xRenderCompositeGlyphs16Req        = 28
  3224  	Sz_xRenderCompositeGlyphs32Req        = 28
  3225  	Sz_xRenderCompositeGlyphs8Req         = 28
  3226  	Sz_xRenderCompositeReq                = 36
  3227  	Sz_xRenderCreateAnimCursorReq         = 8
  3228  	Sz_xRenderCreateConicalGradientReq    = 24
  3229  	Sz_xRenderCreateCursorReq             = 16
  3230  	Sz_xRenderCreateGlyphSetReq           = 12
  3231  	Sz_xRenderCreateLinearGradientReq     = 28
  3232  	Sz_xRenderCreatePictureReq            = 20
  3233  	Sz_xRenderCreateRadialGradientReq     = 36
  3234  	Sz_xRenderCreateSolidFillReq          = 16
  3235  	Sz_xRenderFillRectanglesReq           = 20
  3236  	Sz_xRenderFreeGlyphSetReq             = 8
  3237  	Sz_xRenderFreeGlyphsReq               = 8
  3238  	Sz_xRenderFreePictureReq              = 8
  3239  	Sz_xRenderQueryFiltersReply           = 32
  3240  	Sz_xRenderQueryFiltersReq             = 8
  3241  	Sz_xRenderQueryPictFormatsReply       = 32
  3242  	Sz_xRenderQueryPictFormatsReq         = 4
  3243  	Sz_xRenderQueryPictIndexValuesReply   = 32
  3244  	Sz_xRenderQueryPictIndexValuesReq     = 8
  3245  	Sz_xRenderQueryVersionReply           = 32
  3246  	Sz_xRenderQueryVersionReq             = 12
  3247  	Sz_xRenderReferenceGlyphSetReq        = 24
  3248  	Sz_xRenderScaleReq                    = 32
  3249  	Sz_xRenderSetPictureClipRectanglesReq = 12
  3250  	Sz_xRenderSetPictureFilterReq         = 12
  3251  	Sz_xRenderSetPictureTransformReq      = 44
  3252  	Sz_xRenderTransform                   = 36
  3253  	Sz_xRenderTrapezoidsReq               = 24
  3254  	Sz_xRenderTriFanReq                   = 24
  3255  	Sz_xRenderTriStripReq                 = 24
  3256  	Sz_xRenderTrianglesReq                = 24
  3257  	Sz_xReparentWindowReq                 = 16
  3258  	Sz_xReply                             = 32
  3259  	Sz_xReq                               = 4
  3260  	Sz_xResourceReq                       = 8
  3261  	Sz_xRotatePropertiesReq               = 12
  3262  	Sz_xSegment                           = 8
  3263  	Sz_xSendEventReq                      = 44
  3264  	Sz_xSetAccessControlReq               = 4
  3265  	Sz_xSetClipRectanglesReq              = 12
  3266  	Sz_xSetCloseDownModeReq               = 4
  3267  	Sz_xSetDashesReq                      = 12
  3268  	Sz_xSetFontPathReq                    = 8
  3269  	Sz_xSetInputFocusReq                  = 12
  3270  	Sz_xSetMappingReply                   = 32
  3271  	Sz_xSetModifierMappingReply           = 32
  3272  	Sz_xSetModifierMappingReq             = 4
  3273  	Sz_xSetPointerMappingReply            = 32
  3274  	Sz_xSetPointerMappingReq              = 4
  3275  	Sz_xSetScreenSaverReq                 = 12
  3276  	Sz_xSetSelectionOwnerReq              = 16
  3277  	Sz_xSpanFix                           = 12
  3278  	Sz_xStoreColorsReq                    = 8
  3279  	Sz_xStoreNamedColorReq                = 16
  3280  	Sz_xTextElt                           = 2
  3281  	Sz_xTimecoord                         = 8
  3282  	Sz_xTranslateCoordsReply              = 32
  3283  	Sz_xTranslateCoordsReq                = 16
  3284  	Sz_xTrap                              = 24
  3285  	Sz_xTrapezoid                         = 40
  3286  	Sz_xTriangle                          = 24
  3287  	Sz_xUngrabButtonReq                   = 12
  3288  	Sz_xUngrabKeyReq                      = 12
  3289  	Sz_xVisualType                        = 24
  3290  	Sz_xWarpPointerReq                    = 24
  3291  	Sz_xWindowRoot                        = 40
  3292  	Sz_xrgb                               = 8
  3293  	Unix                                  = 1
  3294  	XFalse                                = 0
  3295  	XTrue                                 = 1
  3296  	Size                                  = 2068
  3297  	AIO_PRIO_DELTA_MAX                    = 20
  3298  	BC_BASE_MAX                           = 99
  3299  	BC_DIM_MAX                            = 2048
  3300  	BC_SCALE_MAX                          = 99
  3301  	BC_STRING_MAX                         = 1000
  3302  	CHARCLASS_NAME_MAX                    = 2048
  3303  	CHAR_BIT                              = 8
  3304  	CHAR_MAX                              = 255
  3305  	CHAR_MIN                              = 0
  3306  	COLL_WEIGHTS_MAX                      = 255
  3307  	DELAYTIMER_MAX                        = 2147483647
  3308  	EXPR_NEST_MAX                         = 32
  3309  	HOST_NAME_MAX                         = 64
  3310  	INT_MAX                               = 2147483647
  3311  	INT_MIN                               = -2147483648
  3312  	LINE_MAX                              = 2048
  3313  	LLONG_MAX                             = 9223372036854775807
  3314  	LLONG_MIN                             = -9223372036854775808
  3315  	LOGIN_NAME_MAX                        = 256
  3316  	LONG_MAX                              = 2147483647
  3317  	LONG_MIN                              = -2147483648
  3318  	MAX_CANON                             = 255
  3319  	MAX_INPUT                             = 255
  3320  	MB_LEN_MAX                            = 16
  3321  	MQ_PRIO_MAX                           = 32768
  3322  	NAME_MAX                              = 255
  3323  	NGROUPS_MAX                           = 65536
  3324  	PATH_MAX                              = 4096
  3325  	PIPE_BUF                              = 4096
  3326  	PTHREAD_DESTRUCTOR_ITERATIONS         = 4
  3327  	PTHREAD_KEYS_MAX                      = 1024
  3328  	PTHREAD_STACK_MIN                     = 16384
  3329  	RE_DUP_MAX                            = 32767
  3330  	RTSIG_MAX                             = 32
  3331  	SCHAR_MAX                             = 127
  3332  	SCHAR_MIN                             = -128
  3333  	SEM_VALUE_MAX                         = 2147483647
  3334  	SHRT_MAX                              = 32767
  3335  	SHRT_MIN                              = -32768
  3336  	SSIZE_MAX                             = 2147483647
  3337  	TTY_NAME_MAX                          = 32
  3338  	UCHAR_MAX                             = 255
  3339  	UINT_MAX                              = 4294967295
  3340  	ULLONG_MAX                            = 18446744073709551615
  3341  	ULONG_MAX                             = 4294967295
  3342  	USHRT_MAX                             = 65535
  3343  	XATTR_LIST_MAX                        = 65536
  3344  	XATTR_NAME_MAX                        = 255
  3345  	XATTR_SIZE_MAX                        = 65536
  3346  	X_BITS_POSIX1_LIM_H                   = 1
  3347  	X_BITS_POSIX2_LIM_H                   = 1
  3348  	X_GCC_LIMITS_H_                       = 0
  3349  	X_LIBC_LIMITS_H_                      = 1
  3350  	X_LIMITS_H___                         = 0
  3351  	X_LINUX_LIMITS_H                      = 0
  3352  	X_POSIX2_BC_BASE_MAX                  = 99
  3353  	X_POSIX2_BC_DIM_MAX                   = 2048
  3354  	X_POSIX2_BC_SCALE_MAX                 = 99
  3355  	X_POSIX2_BC_STRING_MAX                = 1000
  3356  	X_POSIX2_CHARCLASS_NAME_MAX           = 14
  3357  	X_POSIX2_COLL_WEIGHTS_MAX             = 2
  3358  	X_POSIX2_EXPR_NEST_MAX                = 32
  3359  	X_POSIX2_LINE_MAX                     = 2048
  3360  	X_POSIX2_RE_DUP_MAX                   = 255
  3361  	X_POSIX_AIO_LISTIO_MAX                = 2
  3362  	X_POSIX_AIO_MAX                       = 1
  3363  	X_POSIX_ARG_MAX                       = 4096
  3364  	X_POSIX_CHILD_MAX                     = 25
  3365  	X_POSIX_CLOCKRES_MIN                  = 20000000
  3366  	X_POSIX_DELAYTIMER_MAX                = 32
  3367  	X_POSIX_HOST_NAME_MAX                 = 255
  3368  	X_POSIX_LINK_MAX                      = 8
  3369  	X_POSIX_LOGIN_NAME_MAX                = 9
  3370  	X_POSIX_MAX_CANON                     = 255
  3371  	X_POSIX_MAX_INPUT                     = 255
  3372  	X_POSIX_MQ_OPEN_MAX                   = 8
  3373  	X_POSIX_MQ_PRIO_MAX                   = 32
  3374  	X_POSIX_NAME_MAX                      = 14
  3375  	X_POSIX_NGROUPS_MAX                   = 8
  3376  	X_POSIX_OPEN_MAX                      = 20
  3377  	X_POSIX_PATH_MAX                      = 256
  3378  	X_POSIX_PIPE_BUF                      = 512
  3379  	X_POSIX_RE_DUP_MAX                    = 255
  3380  	X_POSIX_RTSIG_MAX                     = 8
  3381  	X_POSIX_SEM_NSEMS_MAX                 = 256
  3382  	X_POSIX_SEM_VALUE_MAX                 = 32767
  3383  	X_POSIX_SIGQUEUE_MAX                  = 32
  3384  	X_POSIX_SSIZE_MAX                     = 32767
  3385  	X_POSIX_STREAM_MAX                    = 8
  3386  	X_POSIX_SYMLINK_MAX                   = 255
  3387  	X_POSIX_SYMLOOP_MAX                   = 8
  3388  	X_POSIX_THREAD_DESTRUCTOR_ITERATIONS  = 4
  3389  	X_POSIX_THREAD_KEYS_MAX               = 128
  3390  	X_POSIX_THREAD_THREADS_MAX            = 64
  3391  	X_POSIX_TIMER_MAX                     = 32
  3392  	X_POSIX_TTY_NAME_MAX                  = 9
  3393  	X_POSIX_TZNAME_MAX                    = 6
  3394  	FALSE                                 = 0
  3395  	MAXSHORT                              = 32767
  3396  	MINSHORT                              = -32767
  3397  	NUMPTSTOBUFFER                        = 200
  3398  	TRUE                                  = 1
  3399  	X_X11_XREGION_H_                      = 0
  3400  	REQUIRED_DEPTHS                       = 2155872393
  3401  )
  3402  
  3403  const ( /* Xlib.h:1126:1: */
  3404  	XOMOrientation_LTR_TTB = 0
  3405  	XOMOrientation_RTL_TTB = 1
  3406  	XOMOrientation_TTB_LTR = 2
  3407  	XOMOrientation_TTB_RTL = 3
  3408  	XOMOrientation_Context = 4
  3409  )
  3410  
  3411  const ( /* Xlib.h:1315:1: */
  3412  	XIMForwardChar      = 0
  3413  	XIMBackwardChar     = 1
  3414  	XIMForwardWord      = 2
  3415  	XIMBackwardWord     = 3
  3416  	XIMCaretUp          = 4
  3417  	XIMCaretDown        = 5
  3418  	XIMNextLine         = 6
  3419  	XIMPreviousLine     = 7
  3420  	XIMLineStart        = 8
  3421  	XIMLineEnd          = 9
  3422  	XIMAbsolutePosition = 10
  3423  	XIMDontChange       = 11
  3424  )
  3425  
  3426  const ( /* Xlib.h:1340:1: */
  3427  	XIMIsInvisible = 0 // Disable caret feedback
  3428  	XIMIsPrimary   = 1 // UI defined caret feedback
  3429  	XIMIsSecondary = 2
  3430  )
  3431  
  3432  const ( /* Xlib.h:1352:1: */
  3433  	XIMTextType   = 0
  3434  	XIMBitmapType = 1
  3435  )
  3436  
  3437  const ( /* Xutil.h:174:1: */
  3438  	XStringStyle       = 0 // STRING
  3439  	XCompoundTextStyle = 1 // COMPOUND_TEXT
  3440  	XTextStyle         = 2 // text in owner's encoding (current locale)
  3441  	XStdICCTextStyle   = 3 // STRING, else COMPOUND_TEXT
  3442  	// The following is an XFree86 extension, introduced in November 2000
  3443  	XUTF8StringStyle = 4
  3444  )
  3445  
  3446  // the new Xfuncs.h
  3447  
  3448  // the ANSI C way
  3449  
  3450  //
  3451  //  O/S-dependent (mis)feature macro definitions
  3452  //
  3453  // Copyright 1991, 1998  The Open Group
  3454  //
  3455  // Permission to use, copy, modify, distribute, and sell this software and its
  3456  // documentation for any purpose is hereby granted without fee, provided that
  3457  // the above copyright notice appear in all copies and that both that
  3458  // copyright notice and this permission notice appear in supporting
  3459  // documentation.
  3460  //
  3461  // The above copyright notice and this permission notice shall be included in
  3462  // all copies or substantial portions of the Software.
  3463  //
  3464  // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
  3465  // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
  3466  // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL THE
  3467  // OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
  3468  // AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
  3469  // CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
  3470  //
  3471  // Except as contained in this notice, the name of The Open Group shall not be
  3472  // used in advertising or otherwise to promote the sale, use or other dealings
  3473  // in this Software without prior written authorization from The Open Group.
  3474  //
  3475  
  3476  // Utek leaves kernel macros around in include files (bleah)
  3477  
  3478  // Copyright (C) 1991-2020 Free Software Foundation, Inc.
  3479  //    This file is part of the GNU C Library.
  3480  //
  3481  //    The GNU C Library is free software; you can redistribute it and/or
  3482  //    modify it under the terms of the GNU Lesser General Public
  3483  //    License as published by the Free Software Foundation; either
  3484  //    version 2.1 of the License, or (at your option) any later version.
  3485  //
  3486  //    The GNU C Library is distributed in the hope that it will be useful,
  3487  //    but WITHOUT ANY WARRANTY; without even the implied warranty of
  3488  //    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
  3489  //    Lesser General Public License for more details.
  3490  //
  3491  //    You should have received a copy of the GNU Lesser General Public
  3492  //    License along with the GNU C Library; if not, see
  3493  //    <https://www.gnu.org/licenses/>.
  3494  
  3495  //	ISO C99 Standard: 7.20 General utilities	<stdlib.h>
  3496  
  3497  // Handle feature test macros at the start of a header.
  3498  //    Copyright (C) 2016-2020 Free Software Foundation, Inc.
  3499  //    This file is part of the GNU C Library.
  3500  //
  3501  //    The GNU C Library is free software; you can redistribute it and/or
  3502  //    modify it under the terms of the GNU Lesser General Public
  3503  //    License as published by the Free Software Foundation; either
  3504  //    version 2.1 of the License, or (at your option) any later version.
  3505  //
  3506  //    The GNU C Library is distributed in the hope that it will be useful,
  3507  //    but WITHOUT ANY WARRANTY; without even the implied warranty of
  3508  //    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
  3509  //    Lesser General Public License for more details.
  3510  //
  3511  //    You should have received a copy of the GNU Lesser General Public
  3512  //    License along with the GNU C Library; if not, see
  3513  //    <https://www.gnu.org/licenses/>.
  3514  
  3515  // This header is internal to glibc and should not be included outside
  3516  //    of glibc headers.  Headers including it must define
  3517  //    __GLIBC_INTERNAL_STARTING_HEADER_IMPLEMENTATION first.  This header
  3518  //    cannot have multiple include guards because ISO C feature test
  3519  //    macros depend on the definition of the macro when an affected
  3520  //    header is included, not when the first system header is
  3521  //    included.
  3522  
  3523  // Copyright (C) 1991-2020 Free Software Foundation, Inc.
  3524  //    This file is part of the GNU C Library.
  3525  //
  3526  //    The GNU C Library is free software; you can redistribute it and/or
  3527  //    modify it under the terms of the GNU Lesser General Public
  3528  //    License as published by the Free Software Foundation; either
  3529  //    version 2.1 of the License, or (at your option) any later version.
  3530  //
  3531  //    The GNU C Library is distributed in the hope that it will be useful,
  3532  //    but WITHOUT ANY WARRANTY; without even the implied warranty of
  3533  //    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
  3534  //    Lesser General Public License for more details.
  3535  //
  3536  //    You should have received a copy of the GNU Lesser General Public
  3537  //    License along with the GNU C Library; if not, see
  3538  //    <https://www.gnu.org/licenses/>.
  3539  
  3540  // ISO/IEC TR 24731-2:2010 defines the __STDC_WANT_LIB_EXT2__
  3541  //    macro.
  3542  
  3543  // ISO/IEC TS 18661-1:2014 defines the __STDC_WANT_IEC_60559_BFP_EXT__
  3544  //    macro.  Most but not all symbols enabled by that macro in TS
  3545  //    18661-1 are enabled unconditionally in C2X; the symbols in Annex F
  3546  //    still require that macro in C2X.
  3547  
  3548  // ISO/IEC TS 18661-4:2015 defines the
  3549  //    __STDC_WANT_IEC_60559_FUNCS_EXT__ macro.  Other than the reduction
  3550  //    functions, the symbols from this TS are enabled unconditionally in
  3551  //    C2X.
  3552  
  3553  // ISO/IEC TS 18661-3:2015 defines the
  3554  //    __STDC_WANT_IEC_60559_TYPES_EXT__ macro.
  3555  
  3556  // Get size_t, wchar_t and NULL from <stddef.h>.
  3557  // Copyright (C) 1989-2020 Free Software Foundation, Inc.
  3558  //
  3559  // This file is part of GCC.
  3560  //
  3561  // GCC is free software; you can redistribute it and/or modify
  3562  // it under the terms of the GNU General Public License as published by
  3563  // the Free Software Foundation; either version 3, or (at your option)
  3564  // any later version.
  3565  //
  3566  // GCC is distributed in the hope that it will be useful,
  3567  // but WITHOUT ANY WARRANTY; without even the implied warranty of
  3568  // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  3569  // GNU General Public License for more details.
  3570  //
  3571  // Under Section 7 of GPL version 3, you are granted additional
  3572  // permissions described in the GCC Runtime Library Exception, version
  3573  // 3.1, as published by the Free Software Foundation.
  3574  //
  3575  // You should have received a copy of the GNU General Public License and
  3576  // a copy of the GCC Runtime Library Exception along with this program;
  3577  // see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see
  3578  // <http://www.gnu.org/licenses/>.
  3579  
  3580  // ISO C Standard:  7.17  Common definitions  <stddef.h>
  3581  
  3582  // Any one of these symbols __need_* means that GNU libc
  3583  //    wants us just to define one data type.  So don't define
  3584  //    the symbols that indicate this file's entire job has been done.
  3585  
  3586  // This avoids lossage on SunOS but only if stdtypes.h comes first.
  3587  //    There's no way to win with the other order!  Sun lossage.
  3588  
  3589  // Sequent's header files use _PTRDIFF_T_ in some conflicting way.
  3590  //    Just ignore it.
  3591  
  3592  // On VxWorks, <type/vxTypesBase.h> may have defined macros like
  3593  //    _TYPE_size_t which will typedef size_t.  fixincludes patched the
  3594  //    vxTypesBase.h so that this macro is only defined if _GCC_SIZE_T is
  3595  //    not defined, and so that defining this macro defines _GCC_SIZE_T.
  3596  //    If we find that the macros are still defined at this point, we must
  3597  //    invoke them so that the type is defined as expected.
  3598  
  3599  // In case nobody has defined these types, but we aren't running under
  3600  //    GCC 2.00, make sure that __PTRDIFF_TYPE__, __SIZE_TYPE__, and
  3601  //    __WCHAR_TYPE__ have reasonable values.  This can happen if the
  3602  //    parts of GCC is compiled by an older compiler, that actually
  3603  //    include gstddef.h, such as collect2.
  3604  
  3605  // Signed type of difference of two pointers.
  3606  
  3607  // Define this type if we are doing the whole job,
  3608  //    or if we want this type in particular.
  3609  
  3610  // If this symbol has done its job, get rid of it.
  3611  
  3612  // Unsigned type of `sizeof' something.
  3613  
  3614  // Define this type if we are doing the whole job,
  3615  //    or if we want this type in particular.
  3616  
  3617  // Wide character type.
  3618  //    Locale-writers should change this as necessary to
  3619  //    be big enough to hold unique values not between 0 and 127,
  3620  //    and not (wchar_t) -1, for each defined multibyte character.
  3621  
  3622  // Define this type if we are doing the whole job,
  3623  //    or if we want this type in particular.
  3624  
  3625  // A null pointer constant.
  3626  
  3627  // Offset of member MEMBER in a struct of type TYPE.
  3628  
  3629  // XPG requires a few symbols from <sys/wait.h> being defined.
  3630  // Definitions of flag bits for `waitpid' et al.
  3631  //    Copyright (C) 1992-2020 Free Software Foundation, Inc.
  3632  //    This file is part of the GNU C Library.
  3633  //
  3634  //    The GNU C Library is free software; you can redistribute it and/or
  3635  //    modify it under the terms of the GNU Lesser General Public
  3636  //    License as published by the Free Software Foundation; either
  3637  //    version 2.1 of the License, or (at your option) any later version.
  3638  //
  3639  //    The GNU C Library is distributed in the hope that it will be useful,
  3640  //    but WITHOUT ANY WARRANTY; without even the implied warranty of
  3641  //    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
  3642  //    Lesser General Public License for more details.
  3643  //
  3644  //    You should have received a copy of the GNU Lesser General Public
  3645  //    License along with the GNU C Library; if not, see
  3646  //    <https://www.gnu.org/licenses/>.
  3647  
  3648  // Bits in the third argument to `waitpid'.
  3649  
  3650  // Bits in the fourth argument to `waitid'.
  3651  
  3652  // The following values are used by the `waitid' function.
  3653  
  3654  // The Linux kernel defines these bare, rather than an enum,
  3655  //    which causes a conflict if the include order is reversed.
  3656  
  3657  const ( /* waitflags.h:52:1: */
  3658  	P_ALL  = 0 // Wait for any child.
  3659  	P_PID  = 1 // Wait for specified process.
  3660  	P_PGID = 2
  3661  )
  3662  
  3663  type Ptrdiff_t = int32 /* <builtin>:3:26 */
  3664  
  3665  type Size_t = uint32 /* <builtin>:9:23 */
  3666  
  3667  type Wchar_t = uint32 /* <builtin>:15:24 */
  3668  
  3669  type X__builtin_va_list = uintptr /* <builtin>:46:14 */
  3670  type X__float128 = float64        /* <builtin>:47:21 */
  3671  
  3672  // Copyright © 2004 Keith Packard
  3673  //
  3674  // Permission to use, copy, modify, distribute, and sell this software and its
  3675  // documentation for any purpose is hereby granted without fee, provided that
  3676  // the above copyright notice appear in all copies and that both that
  3677  // copyright notice and this permission notice appear in supporting
  3678  // documentation, and that the name of Keith Packard not be used in
  3679  // advertising or publicity pertaining to distribution of the software without
  3680  // specific, written prior permission.  Keith Packard makes no
  3681  // representations about the suitability of this software for any purpose.  It
  3682  // is provided "as is" without express or implied warranty.
  3683  //
  3684  // KEITH PACKARD DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
  3685  // INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
  3686  // EVENT SHALL KEITH PACKARD BE LIABLE FOR ANY SPECIAL, INDIRECT OR
  3687  // CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
  3688  // DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
  3689  // TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
  3690  // PERFORMANCE OF THIS SOFTWARE.
  3691  
  3692  // config.h.  Generated from config.h.in by configure.
  3693  // config.h.in.  Generated from configure.ac by autoheader.
  3694  
  3695  // Define to 1 if you have the <dlfcn.h> header file.
  3696  
  3697  // Define to 1 if you have the <inttypes.h> header file.
  3698  
  3699  // Define to 1 if you have the <memory.h> header file.
  3700  
  3701  // Define to 1 if you have the <stdint.h> header file.
  3702  
  3703  // Define to 1 if you have the <stdlib.h> header file.
  3704  
  3705  // Define to 1 if you have the <strings.h> header file.
  3706  
  3707  // Define to 1 if you have the <string.h> header file.
  3708  
  3709  // Define to 1 if you have the <sys/stat.h> header file.
  3710  
  3711  // Define to 1 if you have the <sys/types.h> header file.
  3712  
  3713  // Define to 1 if you have the <unistd.h> header file.
  3714  
  3715  // Define to the sub-directory in which libtool stores uninstalled libraries.
  3716  
  3717  // Name of package
  3718  
  3719  // Define to the address where bug reports for this package should be sent.
  3720  
  3721  // Define to the full name of this package.
  3722  
  3723  // Define to the full name and version of this package.
  3724  
  3725  // Define to the one symbol short name of this package.
  3726  
  3727  // Define to the home page for this package.
  3728  
  3729  // Define to the version of this package.
  3730  
  3731  // Major version of this package
  3732  
  3733  // Minor version of this package
  3734  
  3735  // Patch version of this package
  3736  
  3737  // Define to 1 if you have the ANSI C header files.
  3738  
  3739  // Version number of package
  3740  //
  3741  // Copyright © 2000 SuSE, Inc.
  3742  //
  3743  // Permission to use, copy, modify, distribute, and sell this software and its
  3744  // documentation for any purpose is hereby granted without fee, provided that
  3745  // the above copyright notice appear in all copies and that both that
  3746  // copyright notice and this permission notice appear in supporting
  3747  // documentation, and that the name of SuSE not be used in advertising or
  3748  // publicity pertaining to distribution of the software without specific,
  3749  // written prior permission.  SuSE makes no representations about the
  3750  // suitability of this software for any purpose.  It is provided "as is"
  3751  // without express or implied warranty.
  3752  //
  3753  // SuSE DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING ALL
  3754  // IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL SuSE
  3755  // BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
  3756  // WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION
  3757  // OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN
  3758  // CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
  3759  //
  3760  // Author:  Keith Packard, SuSE, Inc.
  3761  
  3762  // config.h.  Generated from config.h.in by configure.
  3763  // config.h.in.  Generated from configure.ac by autoheader.
  3764  
  3765  // Define to 1 if you have the <dlfcn.h> header file.
  3766  
  3767  // Define to 1 if you have the <inttypes.h> header file.
  3768  
  3769  // Define to 1 if you have the <memory.h> header file.
  3770  
  3771  // Define to 1 if you have the <stdint.h> header file.
  3772  
  3773  // Define to 1 if you have the <stdlib.h> header file.
  3774  
  3775  // Define to 1 if you have the <strings.h> header file.
  3776  
  3777  // Define to 1 if you have the <string.h> header file.
  3778  
  3779  // Define to 1 if you have the <sys/stat.h> header file.
  3780  
  3781  // Define to 1 if you have the <sys/types.h> header file.
  3782  
  3783  // Define to 1 if you have the <unistd.h> header file.
  3784  
  3785  // Define to the sub-directory in which libtool stores uninstalled libraries.
  3786  
  3787  // Name of package
  3788  
  3789  // Define to the address where bug reports for this package should be sent.
  3790  
  3791  // Define to the full name of this package.
  3792  
  3793  // Define to the full name and version of this package.
  3794  
  3795  // Define to the one symbol short name of this package.
  3796  
  3797  // Define to the home page for this package.
  3798  
  3799  // Define to the version of this package.
  3800  
  3801  // Major version of this package
  3802  
  3803  // Minor version of this package
  3804  
  3805  // Patch version of this package
  3806  
  3807  // Define to 1 if you have the ANSI C header files.
  3808  
  3809  // Version number of package
  3810  
  3811  //
  3812  //
  3813  // Copyright 1984, 1985, 1987, 1989, 1998  The Open Group
  3814  //
  3815  // Permission to use, copy, modify, distribute, and sell this software and its
  3816  // documentation for any purpose is hereby granted without fee, provided that
  3817  // the above copyright notice appear in all copies and that both that
  3818  // copyright notice and this permission notice appear in supporting
  3819  // documentation.
  3820  //
  3821  // The above copyright notice and this permission notice shall be included
  3822  // in all copies or substantial portions of the Software.
  3823  //
  3824  // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
  3825  // OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
  3826  // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
  3827  // IN NO EVENT SHALL THE OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR
  3828  // OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
  3829  // ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
  3830  // OTHER DEALINGS IN THE SOFTWARE.
  3831  //
  3832  // Except as contained in this notice, the name of The Open Group shall
  3833  // not be used in advertising or otherwise to promote the sale, use or
  3834  // other dealings in this Software without prior written authorization
  3835  // from The Open Group.
  3836  //
  3837  
  3838  //	Xlibint.h - Header definition and support file for the internal
  3839  //	support routines used by the C subroutine interface
  3840  //	library (Xlib) to the X Window System.
  3841  //
  3842  //	Warning, there be dragons here....
  3843  
  3844  // Copyright (C) 1997-2020 Free Software Foundation, Inc.
  3845  //    This file is part of the GNU C Library.
  3846  //
  3847  //    The GNU C Library is free software; you can redistribute it and/or
  3848  //    modify it under the terms of the GNU Lesser General Public
  3849  //    License as published by the Free Software Foundation; either
  3850  //    version 2.1 of the License, or (at your option) any later version.
  3851  //
  3852  //    The GNU C Library is distributed in the hope that it will be useful,
  3853  //    but WITHOUT ANY WARRANTY; without even the implied warranty of
  3854  //    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
  3855  //    Lesser General Public License for more details.
  3856  //
  3857  //    You should have received a copy of the GNU Lesser General Public
  3858  //    License along with the GNU C Library; if not, see
  3859  //    <https://www.gnu.org/licenses/>.
  3860  
  3861  //	ISO C99: 7.18 Integer types <stdint.h>
  3862  
  3863  // Handle feature test macros at the start of a header.
  3864  //    Copyright (C) 2016-2020 Free Software Foundation, Inc.
  3865  //    This file is part of the GNU C Library.
  3866  //
  3867  //    The GNU C Library is free software; you can redistribute it and/or
  3868  //    modify it under the terms of the GNU Lesser General Public
  3869  //    License as published by the Free Software Foundation; either
  3870  //    version 2.1 of the License, or (at your option) any later version.
  3871  //
  3872  //    The GNU C Library is distributed in the hope that it will be useful,
  3873  //    but WITHOUT ANY WARRANTY; without even the implied warranty of
  3874  //    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
  3875  //    Lesser General Public License for more details.
  3876  //
  3877  //    You should have received a copy of the GNU Lesser General Public
  3878  //    License along with the GNU C Library; if not, see
  3879  //    <https://www.gnu.org/licenses/>.
  3880  
  3881  // This header is internal to glibc and should not be included outside
  3882  //    of glibc headers.  Headers including it must define
  3883  //    __GLIBC_INTERNAL_STARTING_HEADER_IMPLEMENTATION first.  This header
  3884  //    cannot have multiple include guards because ISO C feature test
  3885  //    macros depend on the definition of the macro when an affected
  3886  //    header is included, not when the first system header is
  3887  //    included.
  3888  
  3889  // Copyright (C) 1991-2020 Free Software Foundation, Inc.
  3890  //    This file is part of the GNU C Library.
  3891  //
  3892  //    The GNU C Library is free software; you can redistribute it and/or
  3893  //    modify it under the terms of the GNU Lesser General Public
  3894  //    License as published by the Free Software Foundation; either
  3895  //    version 2.1 of the License, or (at your option) any later version.
  3896  //
  3897  //    The GNU C Library is distributed in the hope that it will be useful,
  3898  //    but WITHOUT ANY WARRANTY; without even the implied warranty of
  3899  //    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
  3900  //    Lesser General Public License for more details.
  3901  //
  3902  //    You should have received a copy of the GNU Lesser General Public
  3903  //    License along with the GNU C Library; if not, see
  3904  //    <https://www.gnu.org/licenses/>.
  3905  
  3906  // These are defined by the user (or the compiler)
  3907  //    to specify the desired environment:
  3908  //
  3909  //    __STRICT_ANSI__	ISO Standard C.
  3910  //    _ISOC99_SOURCE	Extensions to ISO C89 from ISO C99.
  3911  //    _ISOC11_SOURCE	Extensions to ISO C99 from ISO C11.
  3912  //    _ISOC2X_SOURCE	Extensions to ISO C99 from ISO C2X.
  3913  //    __STDC_WANT_LIB_EXT2__
  3914  // 			Extensions to ISO C99 from TR 27431-2:2010.
  3915  //    __STDC_WANT_IEC_60559_BFP_EXT__
  3916  // 			Extensions to ISO C11 from TS 18661-1:2014.
  3917  //    __STDC_WANT_IEC_60559_FUNCS_EXT__
  3918  // 			Extensions to ISO C11 from TS 18661-4:2015.
  3919  //    __STDC_WANT_IEC_60559_TYPES_EXT__
  3920  // 			Extensions to ISO C11 from TS 18661-3:2015.
  3921  //
  3922  //    _POSIX_SOURCE	IEEE Std 1003.1.
  3923  //    _POSIX_C_SOURCE	If ==1, like _POSIX_SOURCE; if >=2 add IEEE Std 1003.2;
  3924  // 			if >=199309L, add IEEE Std 1003.1b-1993;
  3925  // 			if >=199506L, add IEEE Std 1003.1c-1995;
  3926  // 			if >=200112L, all of IEEE 1003.1-2004
  3927  // 			if >=200809L, all of IEEE 1003.1-2008
  3928  //    _XOPEN_SOURCE	Includes POSIX and XPG things.  Set to 500 if
  3929  // 			Single Unix conformance is wanted, to 600 for the
  3930  // 			sixth revision, to 700 for the seventh revision.
  3931  //    _XOPEN_SOURCE_EXTENDED XPG things and X/Open Unix extensions.
  3932  //    _LARGEFILE_SOURCE	Some more functions for correct standard I/O.
  3933  //    _LARGEFILE64_SOURCE	Additional functionality from LFS for large files.
  3934  //    _FILE_OFFSET_BITS=N	Select default filesystem interface.
  3935  //    _ATFILE_SOURCE	Additional *at interfaces.
  3936  //    _GNU_SOURCE		All of the above, plus GNU extensions.
  3937  //    _DEFAULT_SOURCE	The default set of features (taking precedence over
  3938  // 			__STRICT_ANSI__).
  3939  //
  3940  //    _FORTIFY_SOURCE	Add security hardening to many library functions.
  3941  // 			Set to 1 or 2; 2 performs stricter checks than 1.
  3942  //
  3943  //    _REENTRANT, _THREAD_SAFE
  3944  // 			Obsolete; equivalent to _POSIX_C_SOURCE=199506L.
  3945  //
  3946  //    The `-ansi' switch to the GNU C compiler, and standards conformance
  3947  //    options such as `-std=c99', define __STRICT_ANSI__.  If none of
  3948  //    these are defined, or if _DEFAULT_SOURCE is defined, the default is
  3949  //    to have _POSIX_SOURCE set to one and _POSIX_C_SOURCE set to
  3950  //    200809L, as well as enabling miscellaneous functions from BSD and
  3951  //    SVID.  If more than one of these are defined, they accumulate.  For
  3952  //    example __STRICT_ANSI__, _POSIX_SOURCE and _POSIX_C_SOURCE together
  3953  //    give you ISO C, 1003.1, and 1003.2, but nothing else.
  3954  //
  3955  //    These are defined by this file and are used by the
  3956  //    header files to decide what to declare or define:
  3957  //
  3958  //    __GLIBC_USE (F)	Define things from feature set F.  This is defined
  3959  // 			to 1 or 0; the subsequent macros are either defined
  3960  // 			or undefined, and those tests should be moved to
  3961  // 			__GLIBC_USE.
  3962  //    __USE_ISOC11		Define ISO C11 things.
  3963  //    __USE_ISOC99		Define ISO C99 things.
  3964  //    __USE_ISOC95		Define ISO C90 AMD1 (C95) things.
  3965  //    __USE_ISOCXX11	Define ISO C++11 things.
  3966  //    __USE_POSIX		Define IEEE Std 1003.1 things.
  3967  //    __USE_POSIX2		Define IEEE Std 1003.2 things.
  3968  //    __USE_POSIX199309	Define IEEE Std 1003.1, and .1b things.
  3969  //    __USE_POSIX199506	Define IEEE Std 1003.1, .1b, .1c and .1i things.
  3970  //    __USE_XOPEN		Define XPG things.
  3971  //    __USE_XOPEN_EXTENDED	Define X/Open Unix things.
  3972  //    __USE_UNIX98		Define Single Unix V2 things.
  3973  //    __USE_XOPEN2K        Define XPG6 things.
  3974  //    __USE_XOPEN2KXSI     Define XPG6 XSI things.
  3975  //    __USE_XOPEN2K8       Define XPG7 things.
  3976  //    __USE_XOPEN2K8XSI    Define XPG7 XSI things.
  3977  //    __USE_LARGEFILE	Define correct standard I/O things.
  3978  //    __USE_LARGEFILE64	Define LFS things with separate names.
  3979  //    __USE_FILE_OFFSET64	Define 64bit interface as default.
  3980  //    __USE_MISC		Define things from 4.3BSD or System V Unix.
  3981  //    __USE_ATFILE		Define *at interfaces and AT_* constants for them.
  3982  //    __USE_GNU		Define GNU extensions.
  3983  //    __USE_FORTIFY_LEVEL	Additional security measures used, according to level.
  3984  //
  3985  //    The macros `__GNU_LIBRARY__', `__GLIBC__', and `__GLIBC_MINOR__' are
  3986  //    defined by this file unconditionally.  `__GNU_LIBRARY__' is provided
  3987  //    only for compatibility.  All new code should use the other symbols
  3988  //    to test for features.
  3989  //
  3990  //    All macros listed above as possibly being defined by this file are
  3991  //    explicitly undefined if they are not explicitly defined.
  3992  //    Feature-test macros that are not defined by the user or compiler
  3993  //    but are implied by the other feature-test macros defined (or by the
  3994  //    lack of any definitions) are defined by the file.
  3995  //
  3996  //    ISO C feature test macros depend on the definition of the macro
  3997  //    when an affected header is included, not when the first system
  3998  //    header is included, and so they are handled in
  3999  //    <bits/libc-header-start.h>, which does not have a multiple include
  4000  //    guard.  Feature test macros that can be handled from the first
  4001  //    system header included are handled here.
  4002  
  4003  // Undefine everything, so we get a clean slate.
  4004  
  4005  // Suppress kernel-name space pollution unless user expressedly asks
  4006  //    for it.
  4007  
  4008  // Convenience macro to test the version of gcc.
  4009  //    Use like this:
  4010  //    #if __GNUC_PREREQ (2,8)
  4011  //    ... code requiring gcc 2.8 or later ...
  4012  //    #endif
  4013  //    Note: only works for GCC 2.0 and later, because __GNUC_MINOR__ was
  4014  //    added in 2.0.
  4015  
  4016  // Similarly for clang.  Features added to GCC after version 4.2 may
  4017  //    or may not also be available in clang, and clang's definitions of
  4018  //    __GNUC(_MINOR)__ are fixed at 4 and 2 respectively.  Not all such
  4019  //    features can be queried via __has_extension/__has_feature.
  4020  
  4021  // Whether to use feature set F.
  4022  
  4023  // _BSD_SOURCE and _SVID_SOURCE are deprecated aliases for
  4024  //    _DEFAULT_SOURCE.  If _DEFAULT_SOURCE is present we do not
  4025  //    issue a warning; the expectation is that the source is being
  4026  //    transitioned to use the new macro.
  4027  
  4028  // If _GNU_SOURCE was defined by the user, turn on all the other features.
  4029  
  4030  // If nothing (other than _GNU_SOURCE and _DEFAULT_SOURCE) is defined,
  4031  //    define _DEFAULT_SOURCE.
  4032  
  4033  // This is to enable the ISO C2X extension.
  4034  
  4035  // This is to enable the ISO C11 extension.
  4036  
  4037  // This is to enable the ISO C99 extension.
  4038  
  4039  // This is to enable the ISO C90 Amendment 1:1995 extension.
  4040  
  4041  // If none of the ANSI/POSIX macros are defined, or if _DEFAULT_SOURCE
  4042  //    is defined, use POSIX.1-2008 (or another version depending on
  4043  //    _XOPEN_SOURCE).
  4044  
  4045  // Some C libraries once required _REENTRANT and/or _THREAD_SAFE to be
  4046  //    defined in all multithreaded code.  GNU libc has not required this
  4047  //    for many years.  We now treat them as compatibility synonyms for
  4048  //    _POSIX_C_SOURCE=199506L, which is the earliest level of POSIX with
  4049  //    comprehensive support for multithreaded code.  Using them never
  4050  //    lowers the selected level of POSIX conformance, only raises it.
  4051  
  4052  // The function 'gets' existed in C89, but is impossible to use
  4053  //    safely.  It has been removed from ISO C11 and ISO C++14.  Note: for
  4054  //    compatibility with various implementations of <cstdio>, this test
  4055  //    must consider only the value of __cplusplus when compiling C++.
  4056  
  4057  // GNU formerly extended the scanf functions with modified format
  4058  //    specifiers %as, %aS, and %a[...] that allocate a buffer for the
  4059  //    input using malloc.  This extension conflicts with ISO C99, which
  4060  //    defines %a as a standalone format specifier that reads a floating-
  4061  //    point number; moreover, POSIX.1-2008 provides the same feature
  4062  //    using the modifier letter 'm' instead (%ms, %mS, %m[...]).
  4063  //
  4064  //    We now follow C99 unless GNU extensions are active and the compiler
  4065  //    is specifically in C89 or C++98 mode (strict or not).  For
  4066  //    instance, with GCC, -std=gnu11 will have C99-compliant scanf with
  4067  //    or without -D_GNU_SOURCE, but -std=c89 -D_GNU_SOURCE will have the
  4068  //    old extension.
  4069  
  4070  // Get definitions of __STDC_* predefined macros, if the compiler has
  4071  //    not preincluded this header automatically.
  4072  // Copyright (C) 1991-2020 Free Software Foundation, Inc.
  4073  //    This file is part of the GNU C Library.
  4074  //
  4075  //    The GNU C Library is free software; you can redistribute it and/or
  4076  //    modify it under the terms of the GNU Lesser General Public
  4077  //    License as published by the Free Software Foundation; either
  4078  //    version 2.1 of the License, or (at your option) any later version.
  4079  //
  4080  //    The GNU C Library is distributed in the hope that it will be useful,
  4081  //    but WITHOUT ANY WARRANTY; without even the implied warranty of
  4082  //    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
  4083  //    Lesser General Public License for more details.
  4084  //
  4085  //    You should have received a copy of the GNU Lesser General Public
  4086  //    License along with the GNU C Library; if not, see
  4087  //    <https://www.gnu.org/licenses/>.
  4088  
  4089  // This macro indicates that the installed library is the GNU C Library.
  4090  //    For historic reasons the value now is 6 and this will stay from now
  4091  //    on.  The use of this variable is deprecated.  Use __GLIBC__ and
  4092  //    __GLIBC_MINOR__ now (see below) when you want to test for a specific
  4093  //    GNU C library version and use the values in <gnu/lib-names.h> to get
  4094  //    the sonames of the shared libraries.
  4095  
  4096  // Major and minor version number of the GNU C library package.  Use
  4097  //    these macros to test for features in specific releases.
  4098  
  4099  // This is here only because every header file already includes this one.
  4100  // Copyright (C) 1992-2020 Free Software Foundation, Inc.
  4101  //    This file is part of the GNU C Library.
  4102  //
  4103  //    The GNU C Library is free software; you can redistribute it and/or
  4104  //    modify it under the terms of the GNU Lesser General Public
  4105  //    License as published by the Free Software Foundation; either
  4106  //    version 2.1 of the License, or (at your option) any later version.
  4107  //
  4108  //    The GNU C Library is distributed in the hope that it will be useful,
  4109  //    but WITHOUT ANY WARRANTY; without even the implied warranty of
  4110  //    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
  4111  //    Lesser General Public License for more details.
  4112  //
  4113  //    You should have received a copy of the GNU Lesser General Public
  4114  //    License along with the GNU C Library; if not, see
  4115  //    <https://www.gnu.org/licenses/>.
  4116  
  4117  // We are almost always included from features.h.
  4118  
  4119  // The GNU libc does not support any K&R compilers or the traditional mode
  4120  //    of ISO C compilers anymore.  Check for some of the combinations not
  4121  //    anymore supported.
  4122  
  4123  // Some user header file might have defined this before.
  4124  
  4125  // All functions, except those with callbacks or those that
  4126  //    synchronize memory, are leaf functions.
  4127  
  4128  // GCC can always grok prototypes.  For C++ programs we add throw()
  4129  //    to help it optimize the function calls.  But this works only with
  4130  //    gcc 2.8.x and egcs.  For gcc 3.2 and up we even mark C functions
  4131  //    as non-throwing using a function attribute since programs can use
  4132  //    the -fexceptions options for C code as well.
  4133  
  4134  // Compilers that are not clang may object to
  4135  //        #if defined __clang__ && __has_extension(...)
  4136  //    even though they do not need to evaluate the right-hand side of the &&.
  4137  
  4138  // These two macros are not used in glibc anymore.  They are kept here
  4139  //    only because some other projects expect the macros to be defined.
  4140  
  4141  // For these things, GCC behaves the ANSI way normally,
  4142  //    and the non-ANSI way under -traditional.
  4143  
  4144  // This is not a typedef so `const __ptr_t' does the right thing.
  4145  
  4146  // C++ needs to know that types and declarations are C, not C++.
  4147  
  4148  // Fortify support.
  4149  
  4150  // Support for flexible arrays.
  4151  //    Headers that should use flexible arrays only if they're "real"
  4152  //    (e.g. only if they won't affect sizeof()) should test
  4153  //    #if __glibc_c99_flexarr_available.
  4154  
  4155  // __asm__ ("xyz") is used throughout the headers to rename functions
  4156  //    at the assembly language level.  This is wrapped by the __REDIRECT
  4157  //    macro, in order to support compilers that can do this some other
  4158  //    way.  When compilers don't support asm-names at all, we have to do
  4159  //    preprocessor tricks instead (which don't have exactly the right
  4160  //    semantics, but it's the best we can do).
  4161  //
  4162  //    Example:
  4163  //    int __REDIRECT(setpgrp, (__pid_t pid, __pid_t pgrp), setpgid);
  4164  
  4165  //
  4166  // #elif __SOME_OTHER_COMPILER__
  4167  //
  4168  // # define __REDIRECT(name, proto, alias) name proto; 	_Pragma("let " #name " = " #alias)
  4169  
  4170  // GCC has various useful declarations that can be made with the
  4171  //    `__attribute__' syntax.  All of the ways we use this do fine if
  4172  //    they are omitted for compilers that don't understand it.
  4173  
  4174  // At some point during the gcc 2.96 development the `malloc' attribute
  4175  //    for functions was introduced.  We don't want to use it unconditionally
  4176  //    (although this would be possible) since it generates warnings.
  4177  
  4178  // Tell the compiler which arguments to an allocation function
  4179  //    indicate the size of the allocation.
  4180  
  4181  // At some point during the gcc 2.96 development the `pure' attribute
  4182  //    for functions was introduced.  We don't want to use it unconditionally
  4183  //    (although this would be possible) since it generates warnings.
  4184  
  4185  // This declaration tells the compiler that the value is constant.
  4186  
  4187  // At some point during the gcc 3.1 development the `used' attribute
  4188  //    for functions was introduced.  We don't want to use it unconditionally
  4189  //    (although this would be possible) since it generates warnings.
  4190  
  4191  // Since version 3.2, gcc allows marking deprecated functions.
  4192  
  4193  // Since version 4.5, gcc also allows one to specify the message printed
  4194  //    when a deprecated function is used.  clang claims to be gcc 4.2, but
  4195  //    may also support this feature.
  4196  
  4197  // At some point during the gcc 2.8 development the `format_arg' attribute
  4198  //    for functions was introduced.  We don't want to use it unconditionally
  4199  //    (although this would be possible) since it generates warnings.
  4200  //    If several `format_arg' attributes are given for the same function, in
  4201  //    gcc-3.0 and older, all but the last one are ignored.  In newer gccs,
  4202  //    all designated arguments are considered.
  4203  
  4204  // At some point during the gcc 2.97 development the `strfmon' format
  4205  //    attribute for functions was introduced.  We don't want to use it
  4206  //    unconditionally (although this would be possible) since it
  4207  //    generates warnings.
  4208  
  4209  // The nonull function attribute allows to mark pointer parameters which
  4210  //    must not be NULL.
  4211  
  4212  // If fortification mode, we warn about unused results of certain
  4213  //    function calls which can lead to problems.
  4214  
  4215  // Forces a function to be always inlined.
  4216  // The Linux kernel defines __always_inline in stddef.h (283d7573), and
  4217  //    it conflicts with this definition.  Therefore undefine it first to
  4218  //    allow either header to be included first.
  4219  
  4220  // Associate error messages with the source location of the call site rather
  4221  //    than with the source location inside the function.
  4222  
  4223  // GCC 4.3 and above with -std=c99 or -std=gnu99 implements ISO C99
  4224  //    inline semantics, unless -fgnu89-inline is used.  Using __GNUC_STDC_INLINE__
  4225  //    or __GNUC_GNU_INLINE is not a good enough check for gcc because gcc versions
  4226  //    older than 4.3 may define these macros and still not guarantee GNU inlining
  4227  //    semantics.
  4228  //
  4229  //    clang++ identifies itself as gcc-4.2, but has support for GNU inlining
  4230  //    semantics, that can be checked for by using the __GNUC_STDC_INLINE_ and
  4231  //    __GNUC_GNU_INLINE__ macro definitions.
  4232  
  4233  // GCC 4.3 and above allow passing all anonymous arguments of an
  4234  //    __extern_always_inline function to some other vararg function.
  4235  
  4236  // It is possible to compile containing GCC extensions even if GCC is
  4237  //    run in pedantic mode if the uses are carefully marked using the
  4238  //    `__extension__' keyword.  But this is not generally available before
  4239  //    version 2.8.
  4240  
  4241  // __restrict is known in EGCS 1.2 and above.
  4242  
  4243  // ISO C99 also allows to declare arrays as non-overlapping.  The syntax is
  4244  //      array_name[restrict]
  4245  //    GCC 3.1 supports this.
  4246  
  4247  // Describes a char array whose address can safely be passed as the first
  4248  //    argument to strncpy and strncat, as the char array is not necessarily
  4249  //    a NUL-terminated string.
  4250  
  4251  // Undefine (also defined in libc-symbols.h).
  4252  // Copies attributes from the declaration or type referenced by
  4253  //    the argument.
  4254  
  4255  // Copyright (C) 1999-2020 Free Software Foundation, Inc.
  4256  //    This file is part of the GNU C Library.
  4257  //
  4258  //    The GNU C Library is free software; you can redistribute it and/or
  4259  //    modify it under the terms of the GNU Lesser General Public
  4260  //    License as published by the Free Software Foundation; either
  4261  //    version 2.1 of the License, or (at your option) any later version.
  4262  //
  4263  //    The GNU C Library is distributed in the hope that it will be useful,
  4264  //    but WITHOUT ANY WARRANTY; without even the implied warranty of
  4265  //    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
  4266  //    Lesser General Public License for more details.
  4267  //
  4268  //    You should have received a copy of the GNU Lesser General Public
  4269  //    License along with the GNU C Library; if not, see
  4270  //    <https://www.gnu.org/licenses/>.
  4271  
  4272  // Properties of long double type.
  4273  //    Copyright (C) 2016-2020 Free Software Foundation, Inc.
  4274  //    This file is part of the GNU C Library.
  4275  //
  4276  //    The GNU C Library is free software; you can redistribute it and/or
  4277  //    modify it under the terms of the GNU Lesser General Public
  4278  //    License  published by the Free Software Foundation; either
  4279  //    version 2.1 of the License, or (at your option) any later version.
  4280  //
  4281  //    The GNU C Library is distributed in the hope that it will be useful,
  4282  //    but WITHOUT ANY WARRANTY; without even the implied warranty of
  4283  //    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
  4284  //    Lesser General Public License for more details.
  4285  //
  4286  //    You should have received a copy of the GNU Lesser General Public
  4287  //    License along with the GNU C Library; if not, see
  4288  //    <https://www.gnu.org/licenses/>.
  4289  
  4290  // This header is included by <sys/cdefs.h>.
  4291  //
  4292  //    If long double is ABI-compatible with double, it should define
  4293  //    __NO_LONG_DOUBLE_MATH to 1; otherwise, it should leave
  4294  //    __NO_LONG_DOUBLE_MATH undefined.
  4295  //
  4296  //    If this build of the GNU C Library supports both long double
  4297  //    ABI-compatible with double and some other long double format not
  4298  //    ABI-compatible with double, it should define
  4299  //    __LONG_DOUBLE_MATH_OPTIONAL to 1; otherwise, it should leave
  4300  //    __LONG_DOUBLE_MATH_OPTIONAL undefined.
  4301  //
  4302  //    If __NO_LONG_DOUBLE_MATH is already defined, this header must not
  4303  //    define anything; this is needed to work with the definition of
  4304  //    __NO_LONG_DOUBLE_MATH in nldbl-compat.h.
  4305  
  4306  // In the default version of this header, long double is
  4307  //    ABI-compatible with double.
  4308  
  4309  // __glibc_macro_warning (MESSAGE) issues warning MESSAGE.  This is
  4310  //    intended for use in preprocessor macros.
  4311  //
  4312  //    Note: MESSAGE must be a _single_ string; concatenation of string
  4313  //    literals is not supported.
  4314  
  4315  // Generic selection (ISO C11) is a C-only feature, available in GCC
  4316  //    since version 4.9.  Previous versions do not provide generic
  4317  //    selection, even though they might set __STDC_VERSION__ to 201112L,
  4318  //    when in -std=c11 mode.  Thus, we must check for !defined __GNUC__
  4319  //    when testing __STDC_VERSION__ for generic selection support.
  4320  //    On the other hand, Clang also defines __GNUC__, so a clang-specific
  4321  //    check is required to enable the use of generic selection.
  4322  
  4323  // If we don't have __REDIRECT, prototypes will be missing if
  4324  //    __USE_FILE_OFFSET64 but not __USE_LARGEFILE[64].
  4325  
  4326  // Decide whether we can define 'extern inline' functions in headers.
  4327  
  4328  // This is here only because every header file already includes this one.
  4329  //    Get the definitions of all the appropriate `__stub_FUNCTION' symbols.
  4330  //    <gnu/stubs.h> contains `#define __stub_FUNCTION' when FUNCTION is a stub
  4331  //    that will always return failure (and set errno to ENOSYS).
  4332  // This file is automatically generated.
  4333  //    This file selects the right generated file of `__stub_FUNCTION' macros
  4334  //    based on the architecture being compiled for.
  4335  
  4336  // This file is automatically generated.
  4337  //    It defines a symbol `__stub_FUNCTION' for each function
  4338  //    in the C library which is a stub, meaning it will fail
  4339  //    every time called, usually setting errno to ENOSYS.
  4340  
  4341  // ISO/IEC TR 24731-2:2010 defines the __STDC_WANT_LIB_EXT2__
  4342  //    macro.
  4343  
  4344  // ISO/IEC TS 18661-1:2014 defines the __STDC_WANT_IEC_60559_BFP_EXT__
  4345  //    macro.  Most but not all symbols enabled by that macro in TS
  4346  //    18661-1 are enabled unconditionally in C2X; the symbols in Annex F
  4347  //    still require that macro in C2X.
  4348  
  4349  // ISO/IEC TS 18661-4:2015 defines the
  4350  //    __STDC_WANT_IEC_60559_FUNCS_EXT__ macro.  Other than the reduction
  4351  //    functions, the symbols from this TS are enabled unconditionally in
  4352  //    C2X.
  4353  
  4354  // ISO/IEC TS 18661-3:2015 defines the
  4355  //    __STDC_WANT_IEC_60559_TYPES_EXT__ macro.
  4356  // bits/types.h -- definitions of __*_t types underlying *_t types.
  4357  //    Copyright (C) 2002-2020 Free Software Foundation, Inc.
  4358  //    This file is part of the GNU C Library.
  4359  //
  4360  //    The GNU C Library is free software; you can redistribute it and/or
  4361  //    modify it under the terms of the GNU Lesser General Public
  4362  //    License as published by the Free Software Foundation; either
  4363  //    version 2.1 of the License, or (at your option) any later version.
  4364  //
  4365  //    The GNU C Library is distributed in the hope that it will be useful,
  4366  //    but WITHOUT ANY WARRANTY; without even the implied warranty of
  4367  //    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
  4368  //    Lesser General Public License for more details.
  4369  //
  4370  //    You should have received a copy of the GNU Lesser General Public
  4371  //    License along with the GNU C Library; if not, see
  4372  //    <https://www.gnu.org/licenses/>.
  4373  
  4374  // Never include this file directly; use <sys/types.h> instead.
  4375  
  4376  // Copyright (C) 1991-2020 Free Software Foundation, Inc.
  4377  //    This file is part of the GNU C Library.
  4378  //
  4379  //    The GNU C Library is free software; you can redistribute it and/or
  4380  //    modify it under the terms of the GNU Lesser General Public
  4381  //    License as published by the Free Software Foundation; either
  4382  //    version 2.1 of the License, or (at your option) any later version.
  4383  //
  4384  //    The GNU C Library is distributed in the hope that it will be useful,
  4385  //    but WITHOUT ANY WARRANTY; without even the implied warranty of
  4386  //    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
  4387  //    Lesser General Public License for more details.
  4388  //
  4389  //    You should have received a copy of the GNU Lesser General Public
  4390  //    License along with the GNU C Library; if not, see
  4391  //    <https://www.gnu.org/licenses/>.
  4392  
  4393  // Copyright (C) 1999-2020 Free Software Foundation, Inc.
  4394  //    This file is part of the GNU C Library.
  4395  //
  4396  //    The GNU C Library is free software; you can redistribute it and/or
  4397  //    modify it under the terms of the GNU Lesser General Public
  4398  //    License as published by the Free Software Foundation; either
  4399  //    version 2.1 of the License, or (at your option) any later version.
  4400  //
  4401  //    The GNU C Library is distributed in the hope that it will be useful,
  4402  //    but WITHOUT ANY WARRANTY; without even the implied warranty of
  4403  //    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
  4404  //    Lesser General Public License for more details.
  4405  //
  4406  //    You should have received a copy of the GNU Lesser General Public
  4407  //    License along with the GNU C Library; if not, see
  4408  //    <https://www.gnu.org/licenses/>.
  4409  
  4410  // Bit size of the time_t type at glibc build time, general case.
  4411  //    Copyright (C) 2018-2020 Free Software Foundation, Inc.
  4412  //    This file is part of the GNU C Library.
  4413  //
  4414  //    The GNU C Library is free software; you can redistribute it and/or
  4415  //    modify it under the terms of the GNU Lesser General Public
  4416  //    License as published by the Free Software Foundation; either
  4417  //    version 2.1 of the License, or (at your option) any later version.
  4418  //
  4419  //    The GNU C Library is distributed in the hope that it will be useful,
  4420  //    but WITHOUT ANY WARRANTY; without even the implied warranty of
  4421  //    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
  4422  //    Lesser General Public License for more details.
  4423  //
  4424  //    You should have received a copy of the GNU Lesser General Public
  4425  //    License along with the GNU C Library; if not, see
  4426  //    <https://www.gnu.org/licenses/>.
  4427  
  4428  // Copyright (C) 1999-2020 Free Software Foundation, Inc.
  4429  //    This file is part of the GNU C Library.
  4430  //
  4431  //    The GNU C Library is free software; you can redistribute it and/or
  4432  //    modify it under the terms of the GNU Lesser General Public
  4433  //    License as published by the Free Software Foundation; either
  4434  //    version 2.1 of the License, or (at your option) any later version.
  4435  //
  4436  //    The GNU C Library is distributed in the hope that it will be useful,
  4437  //    but WITHOUT ANY WARRANTY; without even the implied warranty of
  4438  //    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
  4439  //    Lesser General Public License for more details.
  4440  //
  4441  //    You should have received a copy of the GNU Lesser General Public
  4442  //    License along with the GNU C Library; if not, see
  4443  //    <https://www.gnu.org/licenses/>.
  4444  
  4445  // Size in bits of the 'time_t' type of the default ABI.
  4446  
  4447  // Convenience types.
  4448  type X__u_char = uint8   /* types.h:31:23 */
  4449  type X__u_short = uint16 /* types.h:32:28 */
  4450  type X__u_int = uint32   /* types.h:33:22 */
  4451  type X__u_long = uint32  /* types.h:34:27 */
  4452  
  4453  // Fixed-size types, underlying types depend on word size and compiler.
  4454  type X__int8_t = int8     /* types.h:37:21 */
  4455  type X__uint8_t = uint8   /* types.h:38:23 */
  4456  type X__int16_t = int16   /* types.h:39:26 */
  4457  type X__uint16_t = uint16 /* types.h:40:28 */
  4458  type X__int32_t = int32   /* types.h:41:20 */
  4459  type X__uint32_t = uint32 /* types.h:42:22 */
  4460  type X__int64_t = int64   /* types.h:47:44 */
  4461  type X__uint64_t = uint64 /* types.h:48:46 */
  4462  
  4463  // Smallest types with at least a given width.
  4464  type X__int_least8_t = X__int8_t     /* types.h:52:18 */
  4465  type X__uint_least8_t = X__uint8_t   /* types.h:53:19 */
  4466  type X__int_least16_t = X__int16_t   /* types.h:54:19 */
  4467  type X__uint_least16_t = X__uint16_t /* types.h:55:20 */
  4468  type X__int_least32_t = X__int32_t   /* types.h:56:19 */
  4469  type X__uint_least32_t = X__uint32_t /* types.h:57:20 */
  4470  type X__int_least64_t = X__int64_t   /* types.h:58:19 */
  4471  type X__uint_least64_t = X__uint64_t /* types.h:59:20 */
  4472  
  4473  // quad_t is also 64 bits.
  4474  type X__quad_t = int64    /* types.h:66:37 */
  4475  type X__u_quad_t = uint64 /* types.h:67:46 */
  4476  
  4477  // Largest integral types.
  4478  type X__intmax_t = int64   /* types.h:75:37 */
  4479  type X__uintmax_t = uint64 /* types.h:76:46 */
  4480  
  4481  // The machine-dependent file <bits/typesizes.h> defines __*_T_TYPE
  4482  //    macros for each of the OS types we define below.  The definitions
  4483  //    of those macros must use the following macros for underlying types.
  4484  //    We define __S<SIZE>_TYPE and __U<SIZE>_TYPE for the signed and unsigned
  4485  //    variants of each of the following integer types on this machine.
  4486  //
  4487  // 	16		-- "natural" 16-bit type (always short)
  4488  // 	32		-- "natural" 32-bit type (always int)
  4489  // 	64		-- "natural" 64-bit type (long or long long)
  4490  // 	LONG32		-- 32-bit type, traditionally long
  4491  // 	QUAD		-- 64-bit type, traditionally long long
  4492  // 	WORD		-- natural type of __WORDSIZE bits (int or long)
  4493  // 	LONGWORD	-- type of __WORDSIZE bits, traditionally long
  4494  //
  4495  //    We distinguish WORD/LONGWORD, 32/LONG32, and 64/QUAD so that the
  4496  //    conventional uses of `long' or `long long' type modifiers match the
  4497  //    types we define, even when a less-adorned type would be the same size.
  4498  //    This matters for (somewhat) portably writing printf/scanf formats for
  4499  //    these types, where using the appropriate l or ll format modifiers can
  4500  //    make the typedefs and the formats match up across all GNU platforms.  If
  4501  //    we used `long' when it's 64 bits where `long long' is expected, then the
  4502  //    compiler would warn about the formats not matching the argument types,
  4503  //    and the programmer changing them to shut up the compiler would break the
  4504  //    program's portability.
  4505  //
  4506  //    Here we assume what is presently the case in all the GCC configurations
  4507  //    we support: long long is always 64 bits, long is always word/address size,
  4508  //    and int is always 32 bits.
  4509  
  4510  // We want __extension__ before typedef's that use nonstandard base types
  4511  //    such as `long long' in C89 mode.
  4512  // bits/typesizes.h -- underlying types for *_t.  Generic version.
  4513  //    Copyright (C) 2002-2020 Free Software Foundation, Inc.
  4514  //    This file is part of the GNU C Library.
  4515  //
  4516  //    The GNU C Library is free software; you can redistribute it and/or
  4517  //    modify it under the terms of the GNU Lesser General Public
  4518  //    License as published by the Free Software Foundation; either
  4519  //    version 2.1 of the License, or (at your option) any later version.
  4520  //
  4521  //    The GNU C Library is distributed in the hope that it will be useful,
  4522  //    but WITHOUT ANY WARRANTY; without even the implied warranty of
  4523  //    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
  4524  //    Lesser General Public License for more details.
  4525  //
  4526  //    You should have received a copy of the GNU Lesser General Public
  4527  //    License along with the GNU C Library; if not, see
  4528  //    <https://www.gnu.org/licenses/>.
  4529  
  4530  // See <bits/types.h> for the meaning of these macros.  This file exists so
  4531  //    that <bits/types.h> need not vary across different GNU platforms.
  4532  
  4533  // Number of descriptors that can fit in an `fd_set'.
  4534  
  4535  // bits/time64.h -- underlying types for __time64_t.  Generic version.
  4536  //    Copyright (C) 2018-2020 Free Software Foundation, Inc.
  4537  //    This file is part of the GNU C Library.
  4538  //
  4539  //    The GNU C Library is free software; you can redistribute it and/or
  4540  //    modify it under the terms of the GNU Lesser General Public
  4541  //    License as published by the Free Software Foundation; either
  4542  //    version 2.1 of the License, or (at your option) any later version.
  4543  //
  4544  //    The GNU C Library is distributed in the hope that it will be useful,
  4545  //    but WITHOUT ANY WARRANTY; without even the implied warranty of
  4546  //    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
  4547  //    Lesser General Public License for more details.
  4548  //
  4549  //    You should have received a copy of the GNU Lesser General Public
  4550  //    License along with the GNU C Library; if not, see
  4551  //    <https://www.gnu.org/licenses/>.
  4552  
  4553  // Define __TIME64_T_TYPE so that it is always a 64-bit type.
  4554  
  4555  // Define a 64-bit time type alongsize the 32-bit one.
  4556  
  4557  type X__dev_t = X__uint64_t                /* types.h:145:25 */ // Type of device numbers.
  4558  type X__uid_t = uint32                     /* types.h:146:25 */ // Type of user identifications.
  4559  type X__gid_t = uint32                     /* types.h:147:25 */ // Type of group identifications.
  4560  type X__ino_t = uint32                     /* types.h:148:25 */ // Type of file serial numbers.
  4561  type X__ino64_t = X__uint64_t              /* types.h:149:27 */ // Type of file serial numbers (LFS).
  4562  type X__mode_t = uint32                    /* types.h:150:26 */ // Type of file attribute bitmasks.
  4563  type X__nlink_t = uint32                   /* types.h:151:27 */ // Type of file link counts.
  4564  type X__off_t = int32                      /* types.h:152:25 */ // Type of file sizes and offsets.
  4565  type X__off64_t = X__int64_t               /* types.h:153:27 */ // Type of file sizes and offsets (LFS).
  4566  type X__pid_t = int32                      /* types.h:154:25 */ // Type of process identifications.
  4567  type X__fsid_t = struct{ F__val [2]int32 } /* types.h:155:26 */ // Type of file system IDs.
  4568  type X__clock_t = int32                    /* types.h:156:27 */ // Type of CPU usage counts.
  4569  type X__rlim_t = uint32                    /* types.h:157:26 */ // Type for resource measurement.
  4570  type X__rlim64_t = X__uint64_t             /* types.h:158:28 */ // Type for resource measurement (LFS).
  4571  type X__id_t = uint32                      /* types.h:159:24 */ // General type for IDs.
  4572  type X__time_t = int32                     /* types.h:160:26 */ // Seconds since the Epoch.
  4573  type X__useconds_t = uint32                /* types.h:161:30 */ // Count of microseconds.
  4574  type X__suseconds_t = int32                /* types.h:162:31 */ // Signed count of microseconds.
  4575  
  4576  type X__daddr_t = int32 /* types.h:164:27 */ // The type of a disk address.
  4577  type X__key_t = int32   /* types.h:165:25 */ // Type of an IPC key.
  4578  
  4579  // Clock ID used in clock and timer functions.
  4580  type X__clockid_t = int32 /* types.h:168:29 */
  4581  
  4582  // Timer ID returned by `timer_create'.
  4583  type X__timer_t = uintptr /* types.h:171:12 */
  4584  
  4585  // Type to represent block size.
  4586  type X__blksize_t = int32 /* types.h:174:29 */
  4587  
  4588  // Types from the Large File Support interface.
  4589  
  4590  // Type to count number of disk blocks.
  4591  type X__blkcnt_t = int32        /* types.h:179:28 */
  4592  type X__blkcnt64_t = X__int64_t /* types.h:180:30 */
  4593  
  4594  // Type to count file system blocks.
  4595  type X__fsblkcnt_t = uint32        /* types.h:183:30 */
  4596  type X__fsblkcnt64_t = X__uint64_t /* types.h:184:32 */
  4597  
  4598  // Type to count file system nodes.
  4599  type X__fsfilcnt_t = uint32        /* types.h:187:30 */
  4600  type X__fsfilcnt64_t = X__uint64_t /* types.h:188:32 */
  4601  
  4602  // Type of miscellaneous file system fields.
  4603  type X__fsword_t = int32 /* types.h:191:28 */
  4604  
  4605  type X__ssize_t = int32 /* types.h:193:27 */ // Type of a byte count, or error.
  4606  
  4607  // Signed long type used in system calls.
  4608  type X__syscall_slong_t = int32 /* types.h:196:33 */
  4609  // Unsigned long type used in system calls.
  4610  type X__syscall_ulong_t = uint32 /* types.h:198:33 */
  4611  
  4612  // These few don't really vary by system, they always correspond
  4613  //    to one of the other defined types.
  4614  type X__loff_t = X__off64_t /* types.h:202:19 */ // Type of file sizes and offsets (LFS).
  4615  type X__caddr_t = uintptr   /* types.h:203:14 */
  4616  
  4617  // Duplicates info from stdint.h but this is used in unistd.h.
  4618  type X__intptr_t = int32 /* types.h:206:25 */
  4619  
  4620  // Duplicate info from sys/socket.h.
  4621  type X__socklen_t = uint32 /* types.h:209:23 */
  4622  
  4623  // C99: An integer type that can be accessed as an atomic entity,
  4624  //    even in the presence of asynchronous interrupts.
  4625  //    It is not currently necessary for this to be machine-specific.
  4626  type X__sig_atomic_t = int32 /* types.h:214:13 */
  4627  
  4628  // Seconds since the Epoch, visible to user code when time_t is too
  4629  //    narrow only for consistency with the old way of widening too-narrow
  4630  //    types.  User code should never use __time64_t.
  4631  type X__time64_t = X__int64_t /* types.h:222:28 */
  4632  
  4633  // wchar_t type related definitions.
  4634  //    Copyright (C) 2000-2020 Free Software Foundation, Inc.
  4635  //    This file is part of the GNU C Library.
  4636  //
  4637  //    The GNU C Library is free software; you can redistribute it and/or
  4638  //    modify it under the terms of the GNU Lesser General Public
  4639  //    License as published by the Free Software Foundation; either
  4640  //    version 2.1 of the License, or (at your option) any later version.
  4641  //
  4642  //    The GNU C Library is distributed in the hope that it will be useful,
  4643  //    but WITHOUT ANY WARRANTY; without even the implied warranty of
  4644  //    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
  4645  //    Lesser General Public License for more details.
  4646  //
  4647  //    You should have received a copy of the GNU Lesser General Public
  4648  //    License along with the GNU C Library; if not, see
  4649  //    <https://www.gnu.org/licenses/>.
  4650  
  4651  // The fallback definitions, for when __WCHAR_MAX__ or __WCHAR_MIN__
  4652  //    are not defined, give the right value and type as long as both int
  4653  //    and wchar_t are 32-bit types.  Adding L'\0' to a constant value
  4654  //    ensures that the type is correct; it is necessary to use (L'\0' +
  4655  //    0) rather than just L'\0' so that the type in C++ is the promoted
  4656  //    version of wchar_t rather than the distinct wchar_t type itself.
  4657  //    Because wchar_t in preprocessor #if expressions is treated as
  4658  //    intmax_t or uintmax_t, the expression (L'\0' - 1) would have the
  4659  //    wrong value for WCHAR_MAX in such expressions and so cannot be used
  4660  //    to define __WCHAR_MAX in the unsigned case.
  4661  
  4662  // Copyright (C) 1999-2020 Free Software Foundation, Inc.
  4663  //    This file is part of the GNU C Library.
  4664  //
  4665  //    The GNU C Library is free software; you can redistribute it and/or
  4666  //    modify it under the terms of the GNU Lesser General Public
  4667  //    License as published by the Free Software Foundation; either
  4668  //    version 2.1 of the License, or (at your option) any later version.
  4669  //
  4670  //    The GNU C Library is distributed in the hope that it will be useful,
  4671  //    but WITHOUT ANY WARRANTY; without even the implied warranty of
  4672  //    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
  4673  //    Lesser General Public License for more details.
  4674  //
  4675  //    You should have received a copy of the GNU Lesser General Public
  4676  //    License along with the GNU C Library; if not, see
  4677  //    <https://www.gnu.org/licenses/>.
  4678  
  4679  // Exact integral types.
  4680  
  4681  // Signed.
  4682  // Define intN_t types.
  4683  //    Copyright (C) 2017-2020 Free Software Foundation, Inc.
  4684  //    This file is part of the GNU C Library.
  4685  //
  4686  //    The GNU C Library is free software; you can redistribute it and/or
  4687  //    modify it under the terms of the GNU Lesser General Public
  4688  //    License as published by the Free Software Foundation; either
  4689  //    version 2.1 of the License, or (at your option) any later version.
  4690  //
  4691  //    The GNU C Library is distributed in the hope that it will be useful,
  4692  //    but WITHOUT ANY WARRANTY; without even the implied warranty of
  4693  //    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
  4694  //    Lesser General Public License for more details.
  4695  //
  4696  //    You should have received a copy of the GNU Lesser General Public
  4697  //    License along with the GNU C Library; if not, see
  4698  //    <https://www.gnu.org/licenses/>.
  4699  
  4700  // bits/types.h -- definitions of __*_t types underlying *_t types.
  4701  //    Copyright (C) 2002-2020 Free Software Foundation, Inc.
  4702  //    This file is part of the GNU C Library.
  4703  //
  4704  //    The GNU C Library is free software; you can redistribute it and/or
  4705  //    modify it under the terms of the GNU Lesser General Public
  4706  //    License as published by the Free Software Foundation; either
  4707  //    version 2.1 of the License, or (at your option) any later version.
  4708  //
  4709  //    The GNU C Library is distributed in the hope that it will be useful,
  4710  //    but WITHOUT ANY WARRANTY; without even the implied warranty of
  4711  //    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
  4712  //    Lesser General Public License for more details.
  4713  //
  4714  //    You should have received a copy of the GNU Lesser General Public
  4715  //    License along with the GNU C Library; if not, see
  4716  //    <https://www.gnu.org/licenses/>.
  4717  
  4718  // Never include this file directly; use <sys/types.h> instead.
  4719  
  4720  type Int8_t = X__int8_t   /* stdint-intn.h:24:18 */
  4721  type Int16_t = X__int16_t /* stdint-intn.h:25:19 */
  4722  type Int32_t = X__int32_t /* stdint-intn.h:26:19 */
  4723  type Int64_t = X__int64_t /* stdint-intn.h:27:19 */
  4724  
  4725  // Unsigned.
  4726  // Define uintN_t types.
  4727  //    Copyright (C) 2017-2020 Free Software Foundation, Inc.
  4728  //    This file is part of the GNU C Library.
  4729  //
  4730  //    The GNU C Library is free software; you can redistribute it and/or
  4731  //    modify it under the terms of the GNU Lesser General Public
  4732  //    License as published by the Free Software Foundation; either
  4733  //    version 2.1 of the License, or (at your option) any later version.
  4734  //
  4735  //    The GNU C Library is distributed in the hope that it will be useful,
  4736  //    but WITHOUT ANY WARRANTY; without even the implied warranty of
  4737  //    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
  4738  //    Lesser General Public License for more details.
  4739  //
  4740  //    You should have received a copy of the GNU Lesser General Public
  4741  //    License along with the GNU C Library; if not, see
  4742  //    <https://www.gnu.org/licenses/>.
  4743  
  4744  // bits/types.h -- definitions of __*_t types underlying *_t types.
  4745  //    Copyright (C) 2002-2020 Free Software Foundation, Inc.
  4746  //    This file is part of the GNU C Library.
  4747  //
  4748  //    The GNU C Library is free software; you can redistribute it and/or
  4749  //    modify it under the terms of the GNU Lesser General Public
  4750  //    License as published by the Free Software Foundation; either
  4751  //    version 2.1 of the License, or (at your option) any later version.
  4752  //
  4753  //    The GNU C Library is distributed in the hope that it will be useful,
  4754  //    but WITHOUT ANY WARRANTY; without even the implied warranty of
  4755  //    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
  4756  //    Lesser General Public License for more details.
  4757  //
  4758  //    You should have received a copy of the GNU Lesser General Public
  4759  //    License along with the GNU C Library; if not, see
  4760  //    <https://www.gnu.org/licenses/>.
  4761  
  4762  // Never include this file directly; use <sys/types.h> instead.
  4763  
  4764  type Uint8_t = X__uint8_t   /* stdint-uintn.h:24:19 */
  4765  type Uint16_t = X__uint16_t /* stdint-uintn.h:25:20 */
  4766  type Uint32_t = X__uint32_t /* stdint-uintn.h:26:20 */
  4767  type Uint64_t = X__uint64_t /* stdint-uintn.h:27:20 */
  4768  
  4769  // Small types.
  4770  
  4771  // Signed.
  4772  type Int_least8_t = X__int_least8_t   /* stdint.h:43:24 */
  4773  type Int_least16_t = X__int_least16_t /* stdint.h:44:25 */
  4774  type Int_least32_t = X__int_least32_t /* stdint.h:45:25 */
  4775  type Int_least64_t = X__int_least64_t /* stdint.h:46:25 */
  4776  
  4777  // Unsigned.
  4778  type Uint_least8_t = X__uint_least8_t   /* stdint.h:49:25 */
  4779  type Uint_least16_t = X__uint_least16_t /* stdint.h:50:26 */
  4780  type Uint_least32_t = X__uint_least32_t /* stdint.h:51:26 */
  4781  type Uint_least64_t = X__uint_least64_t /* stdint.h:52:26 */
  4782  
  4783  // Fast types.
  4784  
  4785  // Signed.
  4786  type Int_fast8_t = int8   /* stdint.h:58:22 */
  4787  type Int_fast16_t = int32 /* stdint.h:64:15 */
  4788  type Int_fast32_t = int32 /* stdint.h:65:15 */
  4789  
  4790  type Int_fast64_t = int64 /* stdint.h:67:24 */
  4791  
  4792  // Unsigned.
  4793  type Uint_fast8_t = uint8   /* stdint.h:71:24 */
  4794  type Uint_fast16_t = uint32 /* stdint.h:77:23 */
  4795  type Uint_fast32_t = uint32 /* stdint.h:78:23 */
  4796  
  4797  type Uint_fast64_t = uint64 /* stdint.h:80:32 */
  4798  
  4799  // Types for `void *' pointers.
  4800  type Intptr_t = int32   /* stdint.h:93:15 */
  4801  type Uintptr_t = uint32 /* stdint.h:96:23 */
  4802  
  4803  // Largest integral types.
  4804  type Intmax_t = X__intmax_t   /* stdint.h:101:21 */
  4805  type Uintmax_t = X__uintmax_t /* stdint.h:102:22 */
  4806  
  4807  // Limits of integral types.
  4808  
  4809  // Minimum of signed integral types.
  4810  // Maximum of signed integral types.
  4811  
  4812  // Maximum of unsigned integral types.
  4813  
  4814  // Minimum of signed integral types having a minimum size.
  4815  // Maximum of signed integral types having a minimum size.
  4816  
  4817  // Maximum of unsigned integral types having a minimum size.
  4818  
  4819  // Minimum of fast signed integral types having a minimum size.
  4820  // Maximum of fast signed integral types having a minimum size.
  4821  
  4822  // Maximum of fast unsigned integral types having a minimum size.
  4823  
  4824  // Values to test for integral types holding `void *' pointer.
  4825  
  4826  // Minimum for largest signed integral type.
  4827  // Maximum for largest signed integral type.
  4828  
  4829  // Maximum for largest unsigned integral type.
  4830  
  4831  // Limits of other integer types.
  4832  
  4833  // Limits of `ptrdiff_t' type.
  4834  
  4835  // Limits of `sig_atomic_t'.
  4836  
  4837  // Limit of `size_t' type.
  4838  
  4839  // Limits of `wchar_t'.
  4840  // These constants might also be defined in <wchar.h>.
  4841  
  4842  // Limits of `wint_t'.
  4843  
  4844  // Signed.
  4845  
  4846  // Unsigned.
  4847  
  4848  // Maximal type.
  4849  
  4850  //
  4851  //
  4852  // Copyright 1985, 1986, 1987, 1991, 1998  The Open Group
  4853  //
  4854  // Permission to use, copy, modify, distribute, and sell this software and its
  4855  // documentation for any purpose is hereby granted without fee, provided that
  4856  // the above copyright notice appear in all copies and that both that
  4857  // copyright notice and this permission notice appear in supporting
  4858  // documentation.
  4859  //
  4860  // The above copyright notice and this permission notice shall be included in
  4861  // all copies or substantial portions of the Software.
  4862  //
  4863  // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
  4864  // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
  4865  // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL THE
  4866  // OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
  4867  // AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
  4868  // CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
  4869  //
  4870  // Except as contained in this notice, the name of The Open Group shall not be
  4871  // used in advertising or otherwise to promote the sale, use or other dealings
  4872  // in this Software without prior written authorization from The Open Group.
  4873  //
  4874  
  4875  //	Xlib.h - Header definition and support file for the C subroutine
  4876  //	interface library (Xlib) to the X Window System Protocol (V11).
  4877  //	Structures and symbols starting with "_" are private to the library.
  4878  
  4879  // Copyright (C) 1991-2020 Free Software Foundation, Inc.
  4880  //    This file is part of the GNU C Library.
  4881  //
  4882  //    The GNU C Library is free software; you can redistribute it and/or
  4883  //    modify it under the terms of the GNU Lesser General Public
  4884  //    License as published by the Free Software Foundation; either
  4885  //    version 2.1 of the License, or (at your option) any later version.
  4886  //
  4887  //    The GNU C Library is distributed in the hope that it will be useful,
  4888  //    but WITHOUT ANY WARRANTY; without even the implied warranty of
  4889  //    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
  4890  //    Lesser General Public License for more details.
  4891  //
  4892  //    You should have received a copy of the GNU Lesser General Public
  4893  //    License along with the GNU C Library; if not, see
  4894  //    <https://www.gnu.org/licenses/>.
  4895  
  4896  //	POSIX Standard: 2.6 Primitive System Data Types	<sys/types.h>
  4897  
  4898  // Copyright (C) 1991-2020 Free Software Foundation, Inc.
  4899  //    This file is part of the GNU C Library.
  4900  //
  4901  //    The GNU C Library is free software; you can redistribute it and/or
  4902  //    modify it under the terms of the GNU Lesser General Public
  4903  //    License as published by the Free Software Foundation; either
  4904  //    version 2.1 of the License, or (at your option) any later version.
  4905  //
  4906  //    The GNU C Library is distributed in the hope that it will be useful,
  4907  //    but WITHOUT ANY WARRANTY; without even the implied warranty of
  4908  //    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
  4909  //    Lesser General Public License for more details.
  4910  //
  4911  //    You should have received a copy of the GNU Lesser General Public
  4912  //    License along with the GNU C Library; if not, see
  4913  //    <https://www.gnu.org/licenses/>.
  4914  
  4915  // bits/types.h -- definitions of __*_t types underlying *_t types.
  4916  //    Copyright (C) 2002-2020 Free Software Foundation, Inc.
  4917  //    This file is part of the GNU C Library.
  4918  //
  4919  //    The GNU C Library is free software; you can redistribute it and/or
  4920  //    modify it under the terms of the GNU Lesser General Public
  4921  //    License as published by the Free Software Foundation; either
  4922  //    version 2.1 of the License, or (at your option) any later version.
  4923  //
  4924  //    The GNU C Library is distributed in the hope that it will be useful,
  4925  //    but WITHOUT ANY WARRANTY; without even the implied warranty of
  4926  //    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
  4927  //    Lesser General Public License for more details.
  4928  //
  4929  //    You should have received a copy of the GNU Lesser General Public
  4930  //    License along with the GNU C Library; if not, see
  4931  //    <https://www.gnu.org/licenses/>.
  4932  
  4933  // Never include this file directly; use <sys/types.h> instead.
  4934  
  4935  type U_char = X__u_char     /* types.h:33:18 */
  4936  type U_short = X__u_short   /* types.h:34:19 */
  4937  type U_int = X__u_int       /* types.h:35:17 */
  4938  type U_long = X__u_long     /* types.h:36:18 */
  4939  type Quad_t = X__quad_t     /* types.h:37:18 */
  4940  type U_quad_t = X__u_quad_t /* types.h:38:20 */
  4941  type Fsid_t = X__fsid_t     /* types.h:39:18 */
  4942  type Loff_t = X__loff_t     /* types.h:42:18 */
  4943  
  4944  type Ino_t = X__ino64_t /* types.h:49:19 */
  4945  
  4946  type Dev_t = X__dev_t /* types.h:59:17 */
  4947  
  4948  type Gid_t = X__gid_t /* types.h:64:17 */
  4949  
  4950  type Mode_t = X__mode_t /* types.h:69:18 */
  4951  
  4952  type Nlink_t = X__nlink_t /* types.h:74:19 */
  4953  
  4954  type Uid_t = X__uid_t /* types.h:79:17 */
  4955  
  4956  type Off_t = X__off64_t /* types.h:87:19 */
  4957  
  4958  type Pid_t = X__pid_t /* types.h:97:17 */
  4959  
  4960  type Id_t = X__id_t /* types.h:103:16 */
  4961  
  4962  type Ssize_t = X__ssize_t /* types.h:108:19 */
  4963  
  4964  type Daddr_t = X__daddr_t /* types.h:114:19 */
  4965  type Caddr_t = X__caddr_t /* types.h:115:19 */
  4966  
  4967  type Key_t = X__key_t /* types.h:121:17 */
  4968  
  4969  // bits/types.h -- definitions of __*_t types underlying *_t types.
  4970  //    Copyright (C) 2002-2020 Free Software Foundation, Inc.
  4971  //    This file is part of the GNU C Library.
  4972  //
  4973  //    The GNU C Library is free software; you can redistribute it and/or
  4974  //    modify it under the terms of the GNU Lesser General Public
  4975  //    License as published by the Free Software Foundation; either
  4976  //    version 2.1 of the License, or (at your option) any later version.
  4977  //
  4978  //    The GNU C Library is distributed in the hope that it will be useful,
  4979  //    but WITHOUT ANY WARRANTY; without even the implied warranty of
  4980  //    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
  4981  //    Lesser General Public License for more details.
  4982  //
  4983  //    You should have received a copy of the GNU Lesser General Public
  4984  //    License along with the GNU C Library; if not, see
  4985  //    <https://www.gnu.org/licenses/>.
  4986  
  4987  // Never include this file directly; use <sys/types.h> instead.
  4988  
  4989  // Returned by `clock'.
  4990  type Clock_t = X__clock_t /* clock_t.h:7:19 */
  4991  
  4992  // bits/types.h -- definitions of __*_t types underlying *_t types.
  4993  //    Copyright (C) 2002-2020 Free Software Foundation, Inc.
  4994  //    This file is part of the GNU C Library.
  4995  //
  4996  //    The GNU C Library is free software; you can redistribute it and/or
  4997  //    modify it under the terms of the GNU Lesser General Public
  4998  //    License as published by the Free Software Foundation; either
  4999  //    version 2.1 of the License, or (at your option) any later version.
  5000  //
  5001  //    The GNU C Library is distributed in the hope that it will be useful,
  5002  //    but WITHOUT ANY WARRANTY; without even the implied warranty of
  5003  //    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
  5004  //    Lesser General Public License for more details.
  5005  //
  5006  //    You should have received a copy of the GNU Lesser General Public
  5007  //    License along with the GNU C Library; if not, see
  5008  //    <https://www.gnu.org/licenses/>.
  5009  
  5010  // Never include this file directly; use <sys/types.h> instead.
  5011  
  5012  // Clock ID used in clock and timer functions.
  5013  type Clockid_t = X__clockid_t /* clockid_t.h:7:21 */
  5014  
  5015  // bits/types.h -- definitions of __*_t types underlying *_t types.
  5016  //    Copyright (C) 2002-2020 Free Software Foundation, Inc.
  5017  //    This file is part of the GNU C Library.
  5018  //
  5019  //    The GNU C Library is free software; you can redistribute it and/or
  5020  //    modify it under the terms of the GNU Lesser General Public
  5021  //    License as published by the Free Software Foundation; either
  5022  //    version 2.1 of the License, or (at your option) any later version.
  5023  //
  5024  //    The GNU C Library is distributed in the hope that it will be useful,
  5025  //    but WITHOUT ANY WARRANTY; without even the implied warranty of
  5026  //    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
  5027  //    Lesser General Public License for more details.
  5028  //
  5029  //    You should have received a copy of the GNU Lesser General Public
  5030  //    License along with the GNU C Library; if not, see
  5031  //    <https://www.gnu.org/licenses/>.
  5032  
  5033  // Never include this file directly; use <sys/types.h> instead.
  5034  
  5035  // Returned by `time'.
  5036  type Time_t = X__time_t /* time_t.h:7:18 */
  5037  
  5038  // bits/types.h -- definitions of __*_t types underlying *_t types.
  5039  //    Copyright (C) 2002-2020 Free Software Foundation, Inc.
  5040  //    This file is part of the GNU C Library.
  5041  //
  5042  //    The GNU C Library is free software; you can redistribute it and/or
  5043  //    modify it under the terms of the GNU Lesser General Public
  5044  //    License as published by the Free Software Foundation; either
  5045  //    version 2.1 of the License, or (at your option) any later version.
  5046  //
  5047  //    The GNU C Library is distributed in the hope that it will be useful,
  5048  //    but WITHOUT ANY WARRANTY; without even the implied warranty of
  5049  //    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
  5050  //    Lesser General Public License for more details.
  5051  //
  5052  //    You should have received a copy of the GNU Lesser General Public
  5053  //    License along with the GNU C Library; if not, see
  5054  //    <https://www.gnu.org/licenses/>.
  5055  
  5056  // Never include this file directly; use <sys/types.h> instead.
  5057  
  5058  // Timer ID returned by `timer_create'.
  5059  type Timer_t = X__timer_t /* timer_t.h:7:19 */
  5060  
  5061  // Wide character type.
  5062  //    Locale-writers should change this as necessary to
  5063  //    be big enough to hold unique values not between 0 and 127,
  5064  //    and not (wchar_t) -1, for each defined multibyte character.
  5065  
  5066  // Define this type if we are doing the whole job,
  5067  //    or if we want this type in particular.
  5068  
  5069  // A null pointer constant.
  5070  
  5071  // Old compatibility names for C types.
  5072  type Ulong = uint32  /* types.h:148:27 */
  5073  type Ushort = uint16 /* types.h:149:28 */
  5074  type Uint = uint32   /* types.h:150:22 */
  5075  
  5076  // These size-specific names are used by some of the inet code.
  5077  
  5078  // Define intN_t types.
  5079  //    Copyright (C) 2017-2020 Free Software Foundation, Inc.
  5080  //    This file is part of the GNU C Library.
  5081  //
  5082  //    The GNU C Library is free software; you can redistribute it and/or
  5083  //    modify it under the terms of the GNU Lesser General Public
  5084  //    License as published by the Free Software Foundation; either
  5085  //    version 2.1 of the License, or (at your option) any later version.
  5086  //
  5087  //    The GNU C Library is distributed in the hope that it will be useful,
  5088  //    but WITHOUT ANY WARRANTY; without even the implied warranty of
  5089  //    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
  5090  //    Lesser General Public License for more details.
  5091  //
  5092  //    You should have received a copy of the GNU Lesser General Public
  5093  //    License along with the GNU C Library; if not, see
  5094  //    <https://www.gnu.org/licenses/>.
  5095  
  5096  // These were defined by ISO C without the first `_'.
  5097  type U_int8_t = X__uint8_t   /* types.h:158:19 */
  5098  type U_int16_t = X__uint16_t /* types.h:159:20 */
  5099  type U_int32_t = X__uint32_t /* types.h:160:20 */
  5100  type U_int64_t = X__uint64_t /* types.h:161:20 */
  5101  
  5102  type Register_t = int32 /* types.h:164:13 */
  5103  
  5104  // It also defines `fd_set' and the FD_* macros for `select'.
  5105  // `fd_set' type and related macros, and `select'/`pselect' declarations.
  5106  //    Copyright (C) 1996-2020 Free Software Foundation, Inc.
  5107  //    This file is part of the GNU C Library.
  5108  //
  5109  //    The GNU C Library is free software; you can redistribute it and/or
  5110  //    modify it under the terms of the GNU Lesser General Public
  5111  //    License as published by the Free Software Foundation; either
  5112  //    version 2.1 of the License, or (at your option) any later version.
  5113  //
  5114  //    The GNU C Library is distributed in the hope that it will be useful,
  5115  //    but WITHOUT ANY WARRANTY; without even the implied warranty of
  5116  //    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
  5117  //    Lesser General Public License for more details.
  5118  //
  5119  //    You should have received a copy of the GNU Lesser General Public
  5120  //    License along with the GNU C Library; if not, see
  5121  //    <https://www.gnu.org/licenses/>.
  5122  
  5123  //	POSIX 1003.1g: 6.2 Select from File Descriptor Sets <sys/select.h>
  5124  
  5125  // Copyright (C) 1991-2020 Free Software Foundation, Inc.
  5126  //    This file is part of the GNU C Library.
  5127  //
  5128  //    The GNU C Library is free software; you can redistribute it and/or
  5129  //    modify it under the terms of the GNU Lesser General Public
  5130  //    License as published by the Free Software Foundation; either
  5131  //    version 2.1 of the License, or (at your option) any later version.
  5132  //
  5133  //    The GNU C Library is distributed in the hope that it will be useful,
  5134  //    but WITHOUT ANY WARRANTY; without even the implied warranty of
  5135  //    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
  5136  //    Lesser General Public License for more details.
  5137  //
  5138  //    You should have received a copy of the GNU Lesser General Public
  5139  //    License along with the GNU C Library; if not, see
  5140  //    <https://www.gnu.org/licenses/>.
  5141  
  5142  // Get definition of needed basic types.
  5143  // bits/types.h -- definitions of __*_t types underlying *_t types.
  5144  //    Copyright (C) 2002-2020 Free Software Foundation, Inc.
  5145  //    This file is part of the GNU C Library.
  5146  //
  5147  //    The GNU C Library is free software; you can redistribute it and/or
  5148  //    modify it under the terms of the GNU Lesser General Public
  5149  //    License as published by the Free Software Foundation; either
  5150  //    version 2.1 of the License, or (at your option) any later version.
  5151  //
  5152  //    The GNU C Library is distributed in the hope that it will be useful,
  5153  //    but WITHOUT ANY WARRANTY; without even the implied warranty of
  5154  //    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
  5155  //    Lesser General Public License for more details.
  5156  //
  5157  //    You should have received a copy of the GNU Lesser General Public
  5158  //    License along with the GNU C Library; if not, see
  5159  //    <https://www.gnu.org/licenses/>.
  5160  
  5161  // Never include this file directly; use <sys/types.h> instead.
  5162  
  5163  // Get __FD_* definitions.
  5164  // Copyright (C) 1997-2020 Free Software Foundation, Inc.
  5165  //    This file is part of the GNU C Library.
  5166  //
  5167  //    The GNU C Library is free software; you can redistribute it and/or
  5168  //    modify it under the terms of the GNU Lesser General Public
  5169  //    License as published by the Free Software Foundation; either
  5170  //    version 2.1 of the License, or (at your option) any later version.
  5171  //
  5172  //    The GNU C Library is distributed in the hope that it will be useful,
  5173  //    but WITHOUT ANY WARRANTY; without even the implied warranty of
  5174  //    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
  5175  //    Lesser General Public License for more details.
  5176  //
  5177  //    You should have received a copy of the GNU Lesser General Public
  5178  //    License along with the GNU C Library; if not, see
  5179  //    <https://www.gnu.org/licenses/>.
  5180  
  5181  // We don't use `memset' because this would require a prototype and
  5182  //    the array isn't too big.
  5183  
  5184  // Get sigset_t.
  5185  
  5186  type X__sigset_t = struct{ F__val [32]uint32 } /* __sigset_t.h:8:3 */
  5187  
  5188  // A set of signals to be blocked, unblocked, or waited for.
  5189  type Sigset_t = X__sigset_t /* sigset_t.h:7:20 */
  5190  
  5191  // Get definition of timer specification structures.
  5192  
  5193  // bits/types.h -- definitions of __*_t types underlying *_t types.
  5194  //    Copyright (C) 2002-2020 Free Software Foundation, Inc.
  5195  //    This file is part of the GNU C Library.
  5196  //
  5197  //    The GNU C Library is free software; you can redistribute it and/or
  5198  //    modify it under the terms of the GNU Lesser General Public
  5199  //    License as published by the Free Software Foundation; either
  5200  //    version 2.1 of the License, or (at your option) any later version.
  5201  //
  5202  //    The GNU C Library is distributed in the hope that it will be useful,
  5203  //    but WITHOUT ANY WARRANTY; without even the implied warranty of
  5204  //    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
  5205  //    Lesser General Public License for more details.
  5206  //
  5207  //    You should have received a copy of the GNU Lesser General Public
  5208  //    License along with the GNU C Library; if not, see
  5209  //    <https://www.gnu.org/licenses/>.
  5210  
  5211  // Never include this file directly; use <sys/types.h> instead.
  5212  
  5213  // A time value that is accurate to the nearest
  5214  //    microsecond but also has a range of years.
  5215  type Timeval = struct {
  5216  	Ftv_sec  X__time_t
  5217  	Ftv_usec X__suseconds_t
  5218  } /* struct_timeval.h:8:1 */
  5219  
  5220  // NB: Include guard matches what <linux/time.h> uses.
  5221  
  5222  // bits/types.h -- definitions of __*_t types underlying *_t types.
  5223  //    Copyright (C) 2002-2020 Free Software Foundation, Inc.
  5224  //    This file is part of the GNU C Library.
  5225  //
  5226  //    The GNU C Library is free software; you can redistribute it and/or
  5227  //    modify it under the terms of the GNU Lesser General Public
  5228  //    License as published by the Free Software Foundation; either
  5229  //    version 2.1 of the License, or (at your option) any later version.
  5230  //
  5231  //    The GNU C Library is distributed in the hope that it will be useful,
  5232  //    but WITHOUT ANY WARRANTY; without even the implied warranty of
  5233  //    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
  5234  //    Lesser General Public License for more details.
  5235  //
  5236  //    You should have received a copy of the GNU Lesser General Public
  5237  //    License along with the GNU C Library; if not, see
  5238  //    <https://www.gnu.org/licenses/>.
  5239  
  5240  // Never include this file directly; use <sys/types.h> instead.
  5241  
  5242  // Endian macros for string.h functions
  5243  //    Copyright (C) 1992-2020 Free Software Foundation, Inc.
  5244  //    This file is part of the GNU C Library.
  5245  //
  5246  //    The GNU C Library is free software; you can redistribute it and/or
  5247  //    modify it under the terms of the GNU Lesser General Public
  5248  //    License as published by the Free Software Foundation; either
  5249  //    version 2.1 of the License, or (at your option) any later version.
  5250  //
  5251  //    The GNU C Library is distributed in the hope that it will be useful,
  5252  //    but WITHOUT ANY WARRANTY; without even the implied warranty of
  5253  //    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
  5254  //    Lesser General Public License for more details.
  5255  //
  5256  //    You should have received a copy of the GNU Lesser General Public
  5257  //    License along with the GNU C Library; if not, see
  5258  //    <http://www.gnu.org/licenses/>.
  5259  
  5260  // POSIX.1b structure for a time value.  This is like a `struct timeval' but
  5261  //    has nanoseconds instead of microseconds.
  5262  type Timespec = struct {
  5263  	Ftv_sec  X__time_t
  5264  	Ftv_nsec X__syscall_slong_t
  5265  } /* struct_timespec.h:10:1 */
  5266  
  5267  type Suseconds_t = X__suseconds_t /* select.h:43:23 */
  5268  
  5269  // The fd_set member is required to be an array of longs.
  5270  type X__fd_mask = int32 /* select.h:49:18 */
  5271  
  5272  // Some versions of <linux/posix_types.h> define this macros.
  5273  // It's easier to assume 8-bit bytes than to get CHAR_BIT.
  5274  
  5275  // fd_set for select and pselect.
  5276  type Fd_set = struct{ F__fds_bits [32]X__fd_mask } /* select.h:70:5 */
  5277  
  5278  // Maximum number of file descriptors in `fd_set'.
  5279  
  5280  // Sometimes the fd_set member is assumed to have this type.
  5281  type Fd_mask = X__fd_mask /* select.h:77:19 */
  5282  
  5283  // Define some inlines helping to catch common problems.
  5284  
  5285  type Blksize_t = X__blksize_t /* types.h:185:21 */
  5286  
  5287  // Types from the Large File Support interface.
  5288  type Blkcnt_t = X__blkcnt64_t     /* types.h:205:22 */ // Type to count number of disk blocks.
  5289  type Fsblkcnt_t = X__fsblkcnt64_t /* types.h:209:24 */ // Type to count file system blocks.
  5290  type Fsfilcnt_t = X__fsfilcnt64_t /* types.h:213:24 */ // Type to count file system inodes.
  5291  
  5292  // Now add the thread types.
  5293  // Declaration of common pthread types for all architectures.
  5294  //    Copyright (C) 2017-2020 Free Software Foundation, Inc.
  5295  //    This file is part of the GNU C Library.
  5296  //
  5297  //    The GNU C Library is free software; you can redistribute it and/or
  5298  //    modify it under the terms of the GNU Lesser General Public
  5299  //    License as published by the Free Software Foundation; either
  5300  //    version 2.1 of the License, or (at your option) any later version.
  5301  //
  5302  //    The GNU C Library is distributed in the hope that it will be useful,
  5303  //    but WITHOUT ANY WARRANTY; without even the implied warranty of
  5304  //    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
  5305  //    Lesser General Public License for more details.
  5306  //
  5307  //    You should have received a copy of the GNU Lesser General Public
  5308  //    License along with the GNU C Library; if not, see
  5309  //    <https://www.gnu.org/licenses/>.
  5310  
  5311  // For internal mutex and condition variable definitions.
  5312  // Common threading primitives definitions for both POSIX and C11.
  5313  //    Copyright (C) 2017-2020 Free Software Foundation, Inc.
  5314  //    This file is part of the GNU C Library.
  5315  //
  5316  //    The GNU C Library is free software; you can redistribute it and/or
  5317  //    modify it under the terms of the GNU Lesser General Public
  5318  //    License as published by the Free Software Foundation; either
  5319  //    version 2.1 of the License, or (at your option) any later version.
  5320  //
  5321  //    The GNU C Library is distributed in the hope that it will be useful,
  5322  //    but WITHOUT ANY WARRANTY; without even the implied warranty of
  5323  //    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
  5324  //    Lesser General Public License for more details.
  5325  //
  5326  //    You should have received a copy of the GNU Lesser General Public
  5327  //    License along with the GNU C Library; if not, see
  5328  //    <https://www.gnu.org/licenses/>.
  5329  
  5330  // Arch-specific definitions.  Each architecture must define the following
  5331  //    macros to define the expected sizes of pthread data types:
  5332  //
  5333  //    __SIZEOF_PTHREAD_ATTR_T        - size of pthread_attr_t.
  5334  //    __SIZEOF_PTHREAD_MUTEX_T       - size of pthread_mutex_t.
  5335  //    __SIZEOF_PTHREAD_MUTEXATTR_T   - size of pthread_mutexattr_t.
  5336  //    __SIZEOF_PTHREAD_COND_T        - size of pthread_cond_t.
  5337  //    __SIZEOF_PTHREAD_CONDATTR_T    - size of pthread_condattr_t.
  5338  //    __SIZEOF_PTHREAD_RWLOCK_T      - size of pthread_rwlock_t.
  5339  //    __SIZEOF_PTHREAD_RWLOCKATTR_T  - size of pthread_rwlockattr_t.
  5340  //    __SIZEOF_PTHREAD_BARRIER_T     - size of pthread_barrier_t.
  5341  //    __SIZEOF_PTHREAD_BARRIERATTR_T - size of pthread_barrierattr_t.
  5342  //
  5343  //    The additional macro defines any constraint for the lock alignment
  5344  //    inside the thread structures:
  5345  //
  5346  //    __LOCK_ALIGNMENT - for internal lock/futex usage.
  5347  //
  5348  //    Same idea but for the once locking primitive:
  5349  //
  5350  //    __ONCE_ALIGNMENT - for pthread_once_t/once_flag definition.
  5351  
  5352  // Machine-specific pthread type layouts.  Generic version.
  5353  //    Copyright (C) 2019-2020 Free Software Foundation, Inc.
  5354  //
  5355  //    This file is part of the GNU C Library.
  5356  //
  5357  //    The GNU C Library is free software; you can redistribute it and/or
  5358  //    modify it under the terms of the GNU Lesser General Public
  5359  //    License as published by the Free Software Foundation; either
  5360  //    version 2.1 of the License, or (at your option) any later version.
  5361  //
  5362  //    The GNU C Library is distributed in the hope that it will be useful,
  5363  //    but WITHOUT ANY WARRANTY; without even the implied warranty of
  5364  //    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
  5365  //    Lesser General Public License for more details.
  5366  //
  5367  //    You should have received a copy of the GNU Lesser General Public
  5368  //    License along with the GNU C Library; if not, see
  5369  //    <http://www.gnu.org/licenses/>.
  5370  
  5371  // Copyright (C) 1999-2020 Free Software Foundation, Inc.
  5372  //    This file is part of the GNU C Library.
  5373  //
  5374  //    The GNU C Library is free software; you can redistribute it and/or
  5375  //    modify it under the terms of the GNU Lesser General Public
  5376  //    License as published by the Free Software Foundation; either
  5377  //    version 2.1 of the License, or (at your option) any later version.
  5378  //
  5379  //    The GNU C Library is distributed in the hope that it will be useful,
  5380  //    but WITHOUT ANY WARRANTY; without even the implied warranty of
  5381  //    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
  5382  //    Lesser General Public License for more details.
  5383  //
  5384  //    You should have received a copy of the GNU Lesser General Public
  5385  //    License along with the GNU C Library; if not, see
  5386  //    <https://www.gnu.org/licenses/>.
  5387  
  5388  // Common definition of pthread_mutex_t.
  5389  
  5390  type X__pthread_internal_list = struct {
  5391  	F__prev uintptr
  5392  	F__next uintptr
  5393  } /* thread-shared-types.h:49:9 */
  5394  
  5395  // Type to count file system inodes.
  5396  
  5397  // Now add the thread types.
  5398  // Declaration of common pthread types for all architectures.
  5399  //    Copyright (C) 2017-2020 Free Software Foundation, Inc.
  5400  //    This file is part of the GNU C Library.
  5401  //
  5402  //    The GNU C Library is free software; you can redistribute it and/or
  5403  //    modify it under the terms of the GNU Lesser General Public
  5404  //    License as published by the Free Software Foundation; either
  5405  //    version 2.1 of the License, or (at your option) any later version.
  5406  //
  5407  //    The GNU C Library is distributed in the hope that it will be useful,
  5408  //    but WITHOUT ANY WARRANTY; without even the implied warranty of
  5409  //    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
  5410  //    Lesser General Public License for more details.
  5411  //
  5412  //    You should have received a copy of the GNU Lesser General Public
  5413  //    License along with the GNU C Library; if not, see
  5414  //    <https://www.gnu.org/licenses/>.
  5415  
  5416  // For internal mutex and condition variable definitions.
  5417  // Common threading primitives definitions for both POSIX and C11.
  5418  //    Copyright (C) 2017-2020 Free Software Foundation, Inc.
  5419  //    This file is part of the GNU C Library.
  5420  //
  5421  //    The GNU C Library is free software; you can redistribute it and/or
  5422  //    modify it under the terms of the GNU Lesser General Public
  5423  //    License as published by the Free Software Foundation; either
  5424  //    version 2.1 of the License, or (at your option) any later version.
  5425  //
  5426  //    The GNU C Library is distributed in the hope that it will be useful,
  5427  //    but WITHOUT ANY WARRANTY; without even the implied warranty of
  5428  //    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
  5429  //    Lesser General Public License for more details.
  5430  //
  5431  //    You should have received a copy of the GNU Lesser General Public
  5432  //    License along with the GNU C Library; if not, see
  5433  //    <https://www.gnu.org/licenses/>.
  5434  
  5435  // Arch-specific definitions.  Each architecture must define the following
  5436  //    macros to define the expected sizes of pthread data types:
  5437  //
  5438  //    __SIZEOF_PTHREAD_ATTR_T        - size of pthread_attr_t.
  5439  //    __SIZEOF_PTHREAD_MUTEX_T       - size of pthread_mutex_t.
  5440  //    __SIZEOF_PTHREAD_MUTEXATTR_T   - size of pthread_mutexattr_t.
  5441  //    __SIZEOF_PTHREAD_COND_T        - size of pthread_cond_t.
  5442  //    __SIZEOF_PTHREAD_CONDATTR_T    - size of pthread_condattr_t.
  5443  //    __SIZEOF_PTHREAD_RWLOCK_T      - size of pthread_rwlock_t.
  5444  //    __SIZEOF_PTHREAD_RWLOCKATTR_T  - size of pthread_rwlockattr_t.
  5445  //    __SIZEOF_PTHREAD_BARRIER_T     - size of pthread_barrier_t.
  5446  //    __SIZEOF_PTHREAD_BARRIERATTR_T - size of pthread_barrierattr_t.
  5447  //
  5448  //    The additional macro defines any constraint for the lock alignment
  5449  //    inside the thread structures:
  5450  //
  5451  //    __LOCK_ALIGNMENT - for internal lock/futex usage.
  5452  //
  5453  //    Same idea but for the once locking primitive:
  5454  //
  5455  //    __ONCE_ALIGNMENT - for pthread_once_t/once_flag definition.
  5456  
  5457  // Machine-specific pthread type layouts.  Generic version.
  5458  //    Copyright (C) 2019-2020 Free Software Foundation, Inc.
  5459  //
  5460  //    This file is part of the GNU C Library.
  5461  //
  5462  //    The GNU C Library is free software; you can redistribute it and/or
  5463  //    modify it under the terms of the GNU Lesser General Public
  5464  //    License as published by the Free Software Foundation; either
  5465  //    version 2.1 of the License, or (at your option) any later version.
  5466  //
  5467  //    The GNU C Library is distributed in the hope that it will be useful,
  5468  //    but WITHOUT ANY WARRANTY; without even the implied warranty of
  5469  //    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
  5470  //    Lesser General Public License for more details.
  5471  //
  5472  //    You should have received a copy of the GNU Lesser General Public
  5473  //    License along with the GNU C Library; if not, see
  5474  //    <http://www.gnu.org/licenses/>.
  5475  
  5476  // Copyright (C) 1999-2020 Free Software Foundation, Inc.
  5477  //    This file is part of the GNU C Library.
  5478  //
  5479  //    The GNU C Library is free software; you can redistribute it and/or
  5480  //    modify it under the terms of the GNU Lesser General Public
  5481  //    License as published by the Free Software Foundation; either
  5482  //    version 2.1 of the License, or (at your option) any later version.
  5483  //
  5484  //    The GNU C Library is distributed in the hope that it will be useful,
  5485  //    but WITHOUT ANY WARRANTY; without even the implied warranty of
  5486  //    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
  5487  //    Lesser General Public License for more details.
  5488  //
  5489  //    You should have received a copy of the GNU Lesser General Public
  5490  //    License along with the GNU C Library; if not, see
  5491  //    <https://www.gnu.org/licenses/>.
  5492  
  5493  // Common definition of pthread_mutex_t.
  5494  
  5495  type X__pthread_list_t = X__pthread_internal_list /* thread-shared-types.h:53:3 */
  5496  
  5497  type X__pthread_internal_slist = struct{ F__next uintptr } /* thread-shared-types.h:55:9 */
  5498  
  5499  type X__pthread_slist_t = X__pthread_internal_slist /* thread-shared-types.h:58:3 */
  5500  
  5501  // Arch-specific mutex definitions.  A generic implementation is provided
  5502  //    by sysdeps/nptl/bits/struct_mutex.h.  If required, an architecture
  5503  //    can override it by defining:
  5504  //
  5505  //    1. struct __pthread_mutex_s (used on both pthread_mutex_t and mtx_t
  5506  //       definition).  It should contains at least the internal members
  5507  //       defined in the generic version.
  5508  //
  5509  //    2. __LOCK_ALIGNMENT for any extra attribute for internal lock used with
  5510  //       atomic operations.
  5511  //
  5512  //    3. The macro __PTHREAD_MUTEX_INITIALIZER used for static initialization.
  5513  //       It should initialize the mutex internal flag.
  5514  
  5515  // Default mutex implementation struct definitions.
  5516  //    Copyright (C) 2019-2020 Free Software Foundation, Inc.
  5517  //    This file is part of the GNU C Library.
  5518  //
  5519  //    The GNU C Library is free software; you can redistribute it and/or
  5520  //    modify it under the terms of the GNU Lesser General Public
  5521  //    License as published by the Free Software Foundation; either
  5522  //    version 2.1 of the License, or (at your option) any later version.
  5523  //
  5524  //    The GNU C Library is distributed in the hope that it will be useful,
  5525  //    but WITHOUT ANY WARRANTY; without even the implied warranty of
  5526  //    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
  5527  //    Lesser General Public License for more details.
  5528  //
  5529  //    You should have received a copy of the GNU Lesser General Public
  5530  //    License along with the GNU C Library; if not, see
  5531  //    <http://www.gnu.org/licenses/>.
  5532  
  5533  // Generic struct for both POSIX and C11 mutexes.  New ports are expected
  5534  //    to use the default layout, however architecture can redefine it to
  5535  //    add arch-specific extension (such as lock-elision).  The struct have
  5536  //    a size of 32 bytes on LP32 and 40 bytes on LP64 architectures.
  5537  
  5538  type X__pthread_mutex_s = struct {
  5539  	F__lock   int32
  5540  	F__count  uint32
  5541  	F__owner  int32
  5542  	F__kind   int32
  5543  	F__nusers uint32
  5544  	F__20     struct{ F__spins int32 }
  5545  } /* struct_mutex.h:27:1 */
  5546  
  5547  // Arch-sepecific read-write lock definitions.  A generic implementation is
  5548  //    provided by struct_rwlock.h.  If required, an architecture can override it
  5549  //    by defining:
  5550  //
  5551  //    1. struct __pthread_rwlock_arch_t (used on pthread_rwlock_t definition).
  5552  //       It should contain at least the internal members defined in the
  5553  //       generic version.
  5554  //
  5555  //    2. The macro __PTHREAD_RWLOCK_INITIALIZER used for static initialization.
  5556  //       It should initialize the rwlock internal type.
  5557  
  5558  // Default read-write lock implementation struct definitions.
  5559  //    Copyright (C) 2019-2020 Free Software Foundation, Inc.
  5560  //    This file is part of the GNU C Library.
  5561  //
  5562  //    The GNU C Library is free software; you can redistribute it and/or
  5563  //    modify it under the terms of the GNU Lesser General Public
  5564  //    License as published by the Free Software Foundation; either
  5565  //    version 2.1 of the License, or (at your option) any later version.
  5566  //
  5567  //    The GNU C Library is distributed in the hope that it will be useful,
  5568  //    but WITHOUT ANY WARRANTY; without even the implied warranty of
  5569  //    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
  5570  //    Lesser General Public License for more details.
  5571  //
  5572  //    You should have received a copy of the GNU Lesser General Public
  5573  //    License along with the GNU C Library; if not, see
  5574  //    <http://www.gnu.org/licenses/>.
  5575  
  5576  // Endian macros for string.h functions
  5577  //    Copyright (C) 1992-2020 Free Software Foundation, Inc.
  5578  //    This file is part of the GNU C Library.
  5579  //
  5580  //    The GNU C Library is free software; you can redistribute it and/or
  5581  //    modify it under the terms of the GNU Lesser General Public
  5582  //    License as published by the Free Software Foundation; either
  5583  //    version 2.1 of the License, or (at your option) any later version.
  5584  //
  5585  //    The GNU C Library is distributed in the hope that it will be useful,
  5586  //    but WITHOUT ANY WARRANTY; without even the implied warranty of
  5587  //    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
  5588  //    Lesser General Public License for more details.
  5589  //
  5590  //    You should have received a copy of the GNU Lesser General Public
  5591  //    License along with the GNU C Library; if not, see
  5592  //    <http://www.gnu.org/licenses/>.
  5593  
  5594  // Generic struct for both POSIX read-write lock.  New ports are expected
  5595  //    to use the default layout, however archictetures can redefine it to add
  5596  //    arch-specific extensions (such as lock-elision).  The struct have a size
  5597  //    of 32 bytes on both LP32 and LP64 architectures.
  5598  
  5599  type X__pthread_rwlock_arch_t = struct {
  5600  	F__readers       uint32
  5601  	F__writers       uint32
  5602  	F__wrphase_futex uint32
  5603  	F__writers_futex uint32
  5604  	F__pad3          uint32
  5605  	F__pad4          uint32
  5606  	F__flags         uint8
  5607  	F__shared        uint8
  5608  	F__pad1          uint8
  5609  	F__pad2          uint8
  5610  	F__cur_writer    int32
  5611  } /* struct_rwlock.h:29:1 */
  5612  
  5613  // Common definition of pthread_cond_t.
  5614  
  5615  type X__pthread_cond_s = struct {
  5616  	F__0            struct{ F__wseq uint64 }
  5617  	F__8            struct{ F__g1_start uint64 }
  5618  	F__g_refs       [2]uint32
  5619  	F__g_size       [2]uint32
  5620  	F__g1_orig_size uint32
  5621  	F__wrefs        uint32
  5622  	F__g_signals    [2]uint32
  5623  } /* thread-shared-types.h:92:1 */
  5624  
  5625  // Thread identifiers.  The structure of the attribute type is not
  5626  //    exposed on purpose.
  5627  type Pthread_t = uint32 /* pthreadtypes.h:27:27 */
  5628  
  5629  // Data structures for mutex handling.  The structure of the attribute
  5630  //    type is not exposed on purpose.
  5631  type Pthread_mutexattr_t = struct {
  5632  	F__ccgo_pad1 [0]uint32
  5633  	F__size      [4]uint8
  5634  } /* pthreadtypes.h:36:3 */
  5635  
  5636  // Data structure for condition variable handling.  The structure of
  5637  //    the attribute type is not exposed on purpose.
  5638  type Pthread_condattr_t = struct {
  5639  	F__ccgo_pad1 [0]uint32
  5640  	F__size      [4]uint8
  5641  } /* pthreadtypes.h:45:3 */
  5642  
  5643  // Keys for thread-specific data
  5644  type Pthread_key_t = uint32 /* pthreadtypes.h:49:22 */
  5645  
  5646  // Once-only execution
  5647  type Pthread_once_t = int32 /* pthreadtypes.h:53:30 */
  5648  
  5649  type Pthread_attr_t1 = struct {
  5650  	F__ccgo_pad1 [0]uint32
  5651  	F__size      [36]uint8
  5652  } /* pthreadtypes.h:56:1 */
  5653  
  5654  type Pthread_attr_t = Pthread_attr_t1 /* pthreadtypes.h:62:30 */
  5655  
  5656  type Pthread_mutex_t = struct{ F__data X__pthread_mutex_s } /* pthreadtypes.h:72:3 */
  5657  
  5658  type Pthread_cond_t = struct{ F__data X__pthread_cond_s } /* pthreadtypes.h:80:3 */
  5659  
  5660  // Data structure for reader-writer lock variable handling.  The
  5661  //    structure of the attribute type is deliberately not exposed.
  5662  type Pthread_rwlock_t = struct{ F__data X__pthread_rwlock_arch_t } /* pthreadtypes.h:91:3 */
  5663  
  5664  type Pthread_rwlockattr_t = struct {
  5665  	F__ccgo_pad1 [0]uint32
  5666  	F__size      [8]uint8
  5667  } /* pthreadtypes.h:97:3 */
  5668  
  5669  // POSIX spinlock data type.
  5670  type Pthread_spinlock_t = int32 /* pthreadtypes.h:103:22 */
  5671  
  5672  // POSIX barriers data type.  The structure of the type is
  5673  //    deliberately not exposed.
  5674  type Pthread_barrier_t = struct {
  5675  	F__ccgo_pad1 [0]uint32
  5676  	F__size      [20]uint8
  5677  } /* pthreadtypes.h:112:3 */
  5678  
  5679  type Pthread_barrierattr_t = struct {
  5680  	F__ccgo_pad1 [0]uint32
  5681  	F__size      [4]uint8
  5682  } /* pthreadtypes.h:118:3 */
  5683  
  5684  // Definitions for the X window system likely to be used by applications
  5685  
  5686  //**********************************************************
  5687  //
  5688  // Copyright 1987, 1998  The Open Group
  5689  //
  5690  // Permission to use, copy, modify, distribute, and sell this software and its
  5691  // documentation for any purpose is hereby granted without fee, provided that
  5692  // the above copyright notice appear in all copies and that both that
  5693  // copyright notice and this permission notice appear in supporting
  5694  // documentation.
  5695  //
  5696  // The above copyright notice and this permission notice shall be included in
  5697  // all copies or substantial portions of the Software.
  5698  //
  5699  // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
  5700  // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
  5701  // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL THE
  5702  // OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
  5703  // AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
  5704  // CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
  5705  //
  5706  // Except as contained in this notice, the name of The Open Group shall not be
  5707  // used in advertising or otherwise to promote the sale, use or other dealings
  5708  // in this Software without prior written authorization from The Open Group.
  5709  //
  5710  //
  5711  // Copyright 1987 by Digital Equipment Corporation, Maynard, Massachusetts.
  5712  //
  5713  //                         All Rights Reserved
  5714  //
  5715  // Permission to use, copy, modify, and distribute this software and its
  5716  // documentation for any purpose and without fee is hereby granted,
  5717  // provided that the above copyright notice appear in all copies and that
  5718  // both that copyright notice and this permission notice appear in
  5719  // supporting documentation, and that the name of Digital not be
  5720  // used in advertising or publicity pertaining to distribution of the
  5721  // software without specific, written prior permission.
  5722  //
  5723  // DIGITAL DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING
  5724  // ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL
  5725  // DIGITAL BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR
  5726  // ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
  5727  // WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,
  5728  // ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
  5729  // SOFTWARE.
  5730  //
  5731  // *****************************************************************
  5732  
  5733  // Resources
  5734  
  5735  // _XSERVER64 must ONLY be defined when compiling X server sources on
  5736  // systems where unsigned long is not 32 bits, must NOT be used in
  5737  // client or library code.
  5738  type XID = uint32      /* X.h:66:23 */
  5739  type Mask = uint32     /* X.h:70:23 */
  5740  type Atom = uint32     /* X.h:74:23 */ // Also in Xdefs.h
  5741  type VisualID = uint32 /* X.h:76:23 */
  5742  type Time = uint32     /* X.h:77:23 */
  5743  
  5744  type Window = XID   /* X.h:96:13 */
  5745  type Drawable = XID /* X.h:97:13 */
  5746  type Font = XID     /* X.h:100:13 */
  5747  type Pixmap = XID   /* X.h:102:13 */
  5748  type Cursor = XID   /* X.h:103:13 */
  5749  type Colormap = XID /* X.h:104:13 */
  5750  type GContext = XID /* X.h:105:13 */
  5751  type KeySym = XID   /* X.h:106:13 */
  5752  
  5753  type KeyCode = uint8 /* X.h:108:23 */
  5754  
  5755  // A null pointer constant.
  5756  
  5757  // Offset of member MEMBER in a struct of type TYPE.
  5758  
  5759  // Type whose alignment is supported in every context and is at least
  5760  //    as great as that of any standard type not using alignment
  5761  //    specifiers.
  5762  type Max_align_t = struct {
  5763  	F__max_align_ll int64
  5764  	F__max_align_ld float64
  5765  } /* stddef.h:426:3 */
  5766  
  5767  // API mentioning "UTF8" or "utf8" is an XFree86 extension, introduced in
  5768  //    November 2000. Its presence is indicated through the following macro.
  5769  
  5770  // The Xlib structs are full of implicit padding to properly align members.
  5771  //    We can't clean that up without breaking ABI, so tell clang not to bother
  5772  //    complaining about it.
  5773  
  5774  type XPointer = uintptr /* Xlib.h:80:14 */
  5775  
  5776  // macros for screen oriented applications (toolkit)
  5777  
  5778  // Extensions need a way to hang private data on some structures.
  5779  type X_XExtData = struct {
  5780  	Fnumber       int32
  5781  	Fnext         uintptr
  5782  	Ffree_private uintptr
  5783  	Fprivate_data XPointer
  5784  } /* Xlib.h:148:9 */
  5785  
  5786  // macros for screen oriented applications (toolkit)
  5787  
  5788  // Extensions need a way to hang private data on some structures.
  5789  type XExtData = X_XExtData /* Xlib.h:155:3 */
  5790  
  5791  // This file contains structures used by the extension mechanism.
  5792  type XExtCodes = struct {
  5793  	Fextension    int32
  5794  	Fmajor_opcode int32
  5795  	Ffirst_event  int32
  5796  	Ffirst_error  int32
  5797  } /* Xlib.h:165:3 */
  5798  
  5799  // Data structure for retrieving info about pixmap formats.
  5800  
  5801  type XPixmapFormatValues = struct {
  5802  	Fdepth          int32
  5803  	Fbits_per_pixel int32
  5804  	Fscanline_pad   int32
  5805  } /* Xlib.h:175:3 */
  5806  
  5807  // Data structure for setting graphics context.
  5808  type XGCValues = struct {
  5809  	Ffunction           int32
  5810  	Fplane_mask         uint32
  5811  	Fforeground         uint32
  5812  	Fbackground         uint32
  5813  	Fline_width         int32
  5814  	Fline_style         int32
  5815  	Fcap_style          int32
  5816  	Fjoin_style         int32
  5817  	Ffill_style         int32
  5818  	Ffill_rule          int32
  5819  	Farc_mode           int32
  5820  	Ftile               Pixmap
  5821  	Fstipple            Pixmap
  5822  	Fts_x_origin        int32
  5823  	Fts_y_origin        int32
  5824  	Ffont               Font
  5825  	Fsubwindow_mode     int32
  5826  	Fgraphics_exposures int32
  5827  	Fclip_x_origin      int32
  5828  	Fclip_y_origin      int32
  5829  	Fclip_mask          Pixmap
  5830  	Fdash_offset        int32
  5831  	Fdashes             uint8
  5832  	F__ccgo_pad1        [3]byte
  5833  } /* Xlib.h:207:3 */
  5834  
  5835  // Graphics context.  The contents of this structure are implementation
  5836  // dependent.  A GC should be treated as opaque by application code.
  5837  
  5838  type X_XGC = struct {
  5839  	Fext_data uintptr
  5840  	Fgid      GContext
  5841  	Frects    int32
  5842  	Fdashes   int32
  5843  	Fdirty    uint32
  5844  	Fvalues   XGCValues
  5845  } /* Xlib.h:214:9 */
  5846  
  5847  // Graphics context.  The contents of this structure are implementation
  5848  // dependent.  A GC should be treated as opaque by application code.
  5849  
  5850  type GC = uintptr /* Xlib.h:222:1 */
  5851  
  5852  // Visual structure; contains information about colormapping possible.
  5853  type Visual = struct {
  5854  	Fext_data     uintptr
  5855  	Fvisualid     VisualID
  5856  	Fclass        int32
  5857  	Fred_mask     uint32
  5858  	Fgreen_mask   uint32
  5859  	Fblue_mask    uint32
  5860  	Fbits_per_rgb int32
  5861  	Fmap_entries  int32
  5862  } /* Xlib.h:238:3 */
  5863  
  5864  // Depth structure; contains information for each possible depth.
  5865  type Depth = struct {
  5866  	Fdepth    int32
  5867  	Fnvisuals int32
  5868  	Fvisuals  uintptr
  5869  } /* Xlib.h:247:3 */
  5870  
  5871  // Information about the screen.  The contents of this structure are
  5872  // implementation dependent.  A Screen should be treated as opaque
  5873  // by application code.
  5874  
  5875  type X_XDisplay = struct {
  5876  	Fext_data            uintptr
  5877  	Ffree_funcs          uintptr
  5878  	Ffd                  int32
  5879  	Fconn_checker        int32
  5880  	Fproto_major_version int32
  5881  	Fproto_minor_version int32
  5882  	Fvendor              uintptr
  5883  	Fresource_base       XID
  5884  	Fresource_mask       XID
  5885  	Fresource_id         XID
  5886  	Fresource_shift      int32
  5887  	Fresource_alloc      uintptr
  5888  	Fbyte_order          int32
  5889  	Fbitmap_unit         int32
  5890  	Fbitmap_pad          int32
  5891  	Fbitmap_bit_order    int32
  5892  	Fnformats            int32
  5893  	Fpixmap_format       uintptr
  5894  	Fvnumber             int32
  5895  	Frelease             int32
  5896  	Fhead                uintptr
  5897  	Ftail                uintptr
  5898  	Fqlen                int32
  5899  	Flast_request_read   uint32
  5900  	Frequest             uint32
  5901  	Flast_req            uintptr
  5902  	Fbuffer              uintptr
  5903  	Fbufptr              uintptr
  5904  	Fbufmax              uintptr
  5905  	Fmax_request_size    uint32
  5906  	Fdb                  uintptr
  5907  	Fsynchandler         uintptr
  5908  	Fdisplay_name        uintptr
  5909  	Fdefault_screen      int32
  5910  	Fnscreens            int32
  5911  	Fscreens             uintptr
  5912  	Fmotion_buffer       uint32
  5913  	Fflags               uint32
  5914  	Fmin_keycode         int32
  5915  	Fmax_keycode         int32
  5916  	Fkeysyms             uintptr
  5917  	Fmodifiermap         uintptr
  5918  	Fkeysyms_per_keycode int32
  5919  	Fxdefaults           uintptr
  5920  	Fscratch_buffer      uintptr
  5921  	Fscratch_length      uint32
  5922  	Fext_number          int32
  5923  	Fext_procs           uintptr
  5924  	Fevent_vec           [128]uintptr
  5925  	Fwire_vec            [128]uintptr
  5926  	Flock_meaning        KeySym
  5927  	Flock                uintptr
  5928  	Fasync_handlers      uintptr
  5929  	Fbigreq_size         uint32
  5930  	Flock_fns            uintptr
  5931  	Fidlist_alloc        uintptr
  5932  	Fkey_bindings        uintptr
  5933  	Fcursor_font         Font
  5934  	Fatoms               uintptr
  5935  	Fmode_switch         uint32
  5936  	Fnum_lock            uint32
  5937  	Fcontext_db          uintptr
  5938  	Ferror_vec           uintptr
  5939  	Fcms                 struct {
  5940  		FdefaultCCCs            XPointer
  5941  		FclientCmaps            XPointer
  5942  		FperVisualIntensityMaps XPointer
  5943  	}
  5944  	Fim_filters                   uintptr
  5945  	Fqfree                        uintptr
  5946  	Fnext_event_serial_num        uint32
  5947  	Fflushes                      uintptr
  5948  	Fim_fd_info                   uintptr
  5949  	Fim_fd_length                 int32
  5950  	Fconn_watchers                uintptr
  5951  	Fwatcher_count                int32
  5952  	Ffiledes                      XPointer
  5953  	Fsavedsynchandler             uintptr
  5954  	Fresource_max                 XID
  5955  	Fxcmisc_opcode                int32
  5956  	Fxkb_info                     uintptr
  5957  	Ftrans_conn                   uintptr
  5958  	Fxcb                          uintptr
  5959  	Fnext_cookie                  uint32
  5960  	Fgeneric_event_vec            [128]uintptr
  5961  	Fgeneric_event_copy_vec       [128]uintptr
  5962  	Fcookiejar                    uintptr
  5963  	Flast_request_read_upper32bit uint32
  5964  	Frequest_upper32bit           uint32
  5965  	Ferror_threads                uintptr
  5966  	Fexit_handler                 XIOErrorExitHandler
  5967  	Fexit_handler_data            uintptr
  5968  } /* Xlib.h:255:1 */
  5969  
  5970  // Forward declare before use for C++
  5971  
  5972  type Screen = struct {
  5973  	Fext_data        uintptr
  5974  	Fdisplay         uintptr
  5975  	Froot            Window
  5976  	Fwidth           int32
  5977  	Fheight          int32
  5978  	Fmwidth          int32
  5979  	Fmheight         int32
  5980  	Fndepths         int32
  5981  	Fdepths          uintptr
  5982  	Froot_depth      int32
  5983  	Froot_visual     uintptr
  5984  	Fdefault_gc      GC
  5985  	Fcmap            Colormap
  5986  	Fwhite_pixel     uint32
  5987  	Fblack_pixel     uint32
  5988  	Fmax_maps        int32
  5989  	Fmin_maps        int32
  5990  	Fbacking_store   int32
  5991  	Fsave_unders     int32
  5992  	Froot_input_mask int32
  5993  } /* Xlib.h:275:3 */
  5994  
  5995  // Format structure; describes ZFormat data the screen will understand.
  5996  type ScreenFormat = struct {
  5997  	Fext_data       uintptr
  5998  	Fdepth          int32
  5999  	Fbits_per_pixel int32
  6000  	Fscanline_pad   int32
  6001  } /* Xlib.h:285:3 */
  6002  
  6003  // Data structure for setting window attributes.
  6004  type XSetWindowAttributes = struct {
  6005  	Fbackground_pixmap     Pixmap
  6006  	Fbackground_pixel      uint32
  6007  	Fborder_pixmap         Pixmap
  6008  	Fborder_pixel          uint32
  6009  	Fbit_gravity           int32
  6010  	Fwin_gravity           int32
  6011  	Fbacking_store         int32
  6012  	Fbacking_planes        uint32
  6013  	Fbacking_pixel         uint32
  6014  	Fsave_under            int32
  6015  	Fevent_mask            int32
  6016  	Fdo_not_propagate_mask int32
  6017  	Foverride_redirect     int32
  6018  	Fcolormap              Colormap
  6019  	Fcursor                Cursor
  6020  } /* Xlib.h:306:3 */
  6021  
  6022  type XWindowAttributes = struct {
  6023  	Fx                     int32
  6024  	Fy                     int32
  6025  	Fwidth                 int32
  6026  	Fheight                int32
  6027  	Fborder_width          int32
  6028  	Fdepth                 int32
  6029  	Fvisual                uintptr
  6030  	Froot                  Window
  6031  	Fclass                 int32
  6032  	Fbit_gravity           int32
  6033  	Fwin_gravity           int32
  6034  	Fbacking_store         int32
  6035  	Fbacking_planes        uint32
  6036  	Fbacking_pixel         uint32
  6037  	Fsave_under            int32
  6038  	Fcolormap              Colormap
  6039  	Fmap_installed         int32
  6040  	Fmap_state             int32
  6041  	Fall_event_masks       int32
  6042  	Fyour_event_mask       int32
  6043  	Fdo_not_propagate_mask int32
  6044  	Foverride_redirect     int32
  6045  	Fscreen                uintptr
  6046  } /* Xlib.h:334:3 */
  6047  
  6048  // Data structure for host setting; getting routines.
  6049  //
  6050  
  6051  type XHostAddress = struct {
  6052  	Ffamily  int32
  6053  	Flength  int32
  6054  	Faddress uintptr
  6055  } /* Xlib.h:345:3 */
  6056  
  6057  // Data structure for ServerFamilyInterpreted addresses in host routines
  6058  type XServerInterpretedAddress = struct {
  6059  	Ftypelength  int32
  6060  	Fvaluelength int32
  6061  	Ftype        uintptr
  6062  	Fvalue       uintptr
  6063  } /* Xlib.h:355:3 */
  6064  
  6065  // Data structure for "image" data, used by image manipulation routines.
  6066  type X_XImage = struct {
  6067  	Fwidth            int32
  6068  	Fheight           int32
  6069  	Fxoffset          int32
  6070  	Fformat           int32
  6071  	Fdata             uintptr
  6072  	Fbyte_order       int32
  6073  	Fbitmap_unit      int32
  6074  	Fbitmap_bit_order int32
  6075  	Fbitmap_pad       int32
  6076  	Fdepth            int32
  6077  	Fbytes_per_line   int32
  6078  	Fbits_per_pixel   int32
  6079  	Fred_mask         uint32
  6080  	Fgreen_mask       uint32
  6081  	Fblue_mask        uint32
  6082  	Fobdata           XPointer
  6083  	Ff                struct {
  6084  		Fcreate_image  uintptr
  6085  		Fdestroy_image uintptr
  6086  		Fget_pixel     uintptr
  6087  		Fput_pixel     uintptr
  6088  		Fsub_image     uintptr
  6089  		Fadd_pixel     uintptr
  6090  	}
  6091  } /* Xlib.h:360:9 */
  6092  
  6093  // Data structure for "image" data, used by image manipulation routines.
  6094  type Funcs = struct {
  6095  	Fcreate_image  uintptr
  6096  	Fdestroy_image uintptr
  6097  	Fget_pixel     uintptr
  6098  	Fput_pixel     uintptr
  6099  	Fsub_image     uintptr
  6100  	Fadd_pixel     uintptr
  6101  } /* Xlib.h:360:9 */
  6102  
  6103  // Data structure for "image" data, used by image manipulation routines.
  6104  type XImage = X_XImage /* Xlib.h:394:3 */
  6105  
  6106  // Data structure for XReconfigureWindow
  6107  type XWindowChanges = struct {
  6108  	Fx            int32
  6109  	Fy            int32
  6110  	Fwidth        int32
  6111  	Fheight       int32
  6112  	Fborder_width int32
  6113  	Fsibling      Window
  6114  	Fstack_mode   int32
  6115  } /* Xlib.h:405:3 */
  6116  
  6117  // Data structure used by color operations
  6118  type XColor = struct {
  6119  	Fpixel uint32
  6120  	Fred   uint16
  6121  	Fgreen uint16
  6122  	Fblue  uint16
  6123  	Fflags uint8
  6124  	Fpad   uint8
  6125  } /* Xlib.h:415:3 */
  6126  
  6127  // Data structures for graphics operations.  On most machines, these are
  6128  // congruent with the wire protocol structures, so reformatting the data
  6129  // can be avoided on these architectures.
  6130  type XSegment = struct {
  6131  	Fx1 int16
  6132  	Fy1 int16
  6133  	Fx2 int16
  6134  	Fy2 int16
  6135  } /* Xlib.h:424:3 */
  6136  
  6137  type XPoint = struct {
  6138  	Fx int16
  6139  	Fy int16
  6140  } /* Xlib.h:428:3 */
  6141  
  6142  type XRectangle = struct {
  6143  	Fx      int16
  6144  	Fy      int16
  6145  	Fwidth  uint16
  6146  	Fheight uint16
  6147  } /* Xlib.h:433:3 */
  6148  
  6149  type XArc = struct {
  6150  	Fx      int16
  6151  	Fy      int16
  6152  	Fwidth  uint16
  6153  	Fheight uint16
  6154  	Fangle1 int16
  6155  	Fangle2 int16
  6156  } /* Xlib.h:439:3 */
  6157  
  6158  // Data structure for XChangeKeyboardControl
  6159  
  6160  type XKeyboardControl = struct {
  6161  	Fkey_click_percent int32
  6162  	Fbell_percent      int32
  6163  	Fbell_pitch        int32
  6164  	Fbell_duration     int32
  6165  	Fled               int32
  6166  	Fled_mode          int32
  6167  	Fkey               int32
  6168  	Fauto_repeat_mode  int32
  6169  } /* Xlib.h:453:3 */
  6170  
  6171  // Data structure for XGetKeyboardControl
  6172  
  6173  type XKeyboardState = struct {
  6174  	Fkey_click_percent  int32
  6175  	Fbell_percent       int32
  6176  	Fbell_pitch         uint32
  6177  	Fbell_duration      uint32
  6178  	Fled_mask           uint32
  6179  	Fglobal_auto_repeat int32
  6180  	Fauto_repeats       [32]uint8
  6181  } /* Xlib.h:464:3 */
  6182  
  6183  // Data structure for XGetMotionEvents.
  6184  
  6185  type XTimeCoord = struct {
  6186  	Ftime Time
  6187  	Fx    int16
  6188  	Fy    int16
  6189  } /* Xlib.h:471:3 */
  6190  
  6191  // Data structure for X{Set,Get}ModifierMapping
  6192  
  6193  type XModifierKeymap = struct {
  6194  	Fmax_keypermod int32
  6195  	Fmodifiermap   uintptr
  6196  } /* Xlib.h:478:3 */
  6197  
  6198  // Display datatype maintaining display specific data.
  6199  // The contents of this structure are implementation dependent.
  6200  // A Display should be treated as opaque by application code.
  6201  type Display = X_XDisplay /* Xlib.h:487:26 */
  6202  
  6203  type X_XPrivDisplay = uintptr /* Xlib.h:550:1 */
  6204  
  6205  // Definitions of specific events.
  6206  type XKeyEvent = struct {
  6207  	Ftype        int32
  6208  	Fserial      uint32
  6209  	Fsend_event  int32
  6210  	Fdisplay     uintptr
  6211  	Fwindow      Window
  6212  	Froot        Window
  6213  	Fsubwindow   Window
  6214  	Ftime        Time
  6215  	Fx           int32
  6216  	Fy           int32
  6217  	Fx_root      int32
  6218  	Fy_root      int32
  6219  	Fstate       uint32
  6220  	Fkeycode     uint32
  6221  	Fsame_screen int32
  6222  }                                  /* Xlib.h:571:3 */
  6223  type XKeyPressedEvent = XKeyEvent  /* Xlib.h:572:19 */
  6224  type XKeyReleasedEvent = XKeyEvent /* Xlib.h:573:19 */
  6225  
  6226  type XButtonEvent = struct {
  6227  	Ftype        int32
  6228  	Fserial      uint32
  6229  	Fsend_event  int32
  6230  	Fdisplay     uintptr
  6231  	Fwindow      Window
  6232  	Froot        Window
  6233  	Fsubwindow   Window
  6234  	Ftime        Time
  6235  	Fx           int32
  6236  	Fy           int32
  6237  	Fx_root      int32
  6238  	Fy_root      int32
  6239  	Fstate       uint32
  6240  	Fbutton      uint32
  6241  	Fsame_screen int32
  6242  }                                        /* Xlib.h:589:3 */
  6243  type XButtonPressedEvent = XButtonEvent  /* Xlib.h:590:22 */
  6244  type XButtonReleasedEvent = XButtonEvent /* Xlib.h:591:22 */
  6245  
  6246  type XMotionEvent = struct {
  6247  	Ftype        int32
  6248  	Fserial      uint32
  6249  	Fsend_event  int32
  6250  	Fdisplay     uintptr
  6251  	Fwindow      Window
  6252  	Froot        Window
  6253  	Fsubwindow   Window
  6254  	Ftime        Time
  6255  	Fx           int32
  6256  	Fy           int32
  6257  	Fx_root      int32
  6258  	Fy_root      int32
  6259  	Fstate       uint32
  6260  	Fis_hint     uint8
  6261  	F__ccgo_pad1 [3]byte
  6262  	Fsame_screen int32
  6263  }                                      /* Xlib.h:607:3 */
  6264  type XPointerMovedEvent = XMotionEvent /* Xlib.h:608:22 */
  6265  
  6266  type XCrossingEvent = struct {
  6267  	Ftype        int32
  6268  	Fserial      uint32
  6269  	Fsend_event  int32
  6270  	Fdisplay     uintptr
  6271  	Fwindow      Window
  6272  	Froot        Window
  6273  	Fsubwindow   Window
  6274  	Ftime        Time
  6275  	Fx           int32
  6276  	Fy           int32
  6277  	Fx_root      int32
  6278  	Fy_root      int32
  6279  	Fmode        int32
  6280  	Fdetail      int32
  6281  	Fsame_screen int32
  6282  	Ffocus       int32
  6283  	Fstate       uint32
  6284  }                                       /* Xlib.h:630:3 */
  6285  type XEnterWindowEvent = XCrossingEvent /* Xlib.h:631:24 */
  6286  type XLeaveWindowEvent = XCrossingEvent /* Xlib.h:632:24 */
  6287  
  6288  type XFocusChangeEvent = struct {
  6289  	Ftype       int32
  6290  	Fserial     uint32
  6291  	Fsend_event int32
  6292  	Fdisplay    uintptr
  6293  	Fwindow     Window
  6294  	Fmode       int32
  6295  	Fdetail     int32
  6296  }                                       /* Xlib.h:648:3 */
  6297  type XFocusInEvent = XFocusChangeEvent  /* Xlib.h:649:27 */
  6298  type XFocusOutEvent = XFocusChangeEvent /* Xlib.h:650:27 */
  6299  
  6300  // generated on EnterWindow and FocusIn  when KeyMapState selected
  6301  type XKeymapEvent = struct {
  6302  	Ftype       int32
  6303  	Fserial     uint32
  6304  	Fsend_event int32
  6305  	Fdisplay    uintptr
  6306  	Fwindow     Window
  6307  	Fkey_vector [32]uint8
  6308  } /* Xlib.h:660:3 */
  6309  
  6310  type XExposeEvent = struct {
  6311  	Ftype       int32
  6312  	Fserial     uint32
  6313  	Fsend_event int32
  6314  	Fdisplay    uintptr
  6315  	Fwindow     Window
  6316  	Fx          int32
  6317  	Fy          int32
  6318  	Fwidth      int32
  6319  	Fheight     int32
  6320  	Fcount      int32
  6321  } /* Xlib.h:671:3 */
  6322  
  6323  type XGraphicsExposeEvent = struct {
  6324  	Ftype       int32
  6325  	Fserial     uint32
  6326  	Fsend_event int32
  6327  	Fdisplay    uintptr
  6328  	Fdrawable   Drawable
  6329  	Fx          int32
  6330  	Fy          int32
  6331  	Fwidth      int32
  6332  	Fheight     int32
  6333  	Fcount      int32
  6334  	Fmajor_code int32
  6335  	Fminor_code int32
  6336  } /* Xlib.h:684:3 */
  6337  
  6338  type XNoExposeEvent = struct {
  6339  	Ftype       int32
  6340  	Fserial     uint32
  6341  	Fsend_event int32
  6342  	Fdisplay    uintptr
  6343  	Fdrawable   Drawable
  6344  	Fmajor_code int32
  6345  	Fminor_code int32
  6346  } /* Xlib.h:694:3 */
  6347  
  6348  type XVisibilityEvent = struct {
  6349  	Ftype       int32
  6350  	Fserial     uint32
  6351  	Fsend_event int32
  6352  	Fdisplay    uintptr
  6353  	Fwindow     Window
  6354  	Fstate      int32
  6355  } /* Xlib.h:703:3 */
  6356  
  6357  type XCreateWindowEvent = struct {
  6358  	Ftype              int32
  6359  	Fserial            uint32
  6360  	Fsend_event        int32
  6361  	Fdisplay           uintptr
  6362  	Fparent            Window
  6363  	Fwindow            Window
  6364  	Fx                 int32
  6365  	Fy                 int32
  6366  	Fwidth             int32
  6367  	Fheight            int32
  6368  	Fborder_width      int32
  6369  	Foverride_redirect int32
  6370  } /* Xlib.h:716:3 */
  6371  
  6372  type XDestroyWindowEvent = struct {
  6373  	Ftype       int32
  6374  	Fserial     uint32
  6375  	Fsend_event int32
  6376  	Fdisplay    uintptr
  6377  	Fevent      Window
  6378  	Fwindow     Window
  6379  } /* Xlib.h:725:3 */
  6380  
  6381  type XUnmapEvent = struct {
  6382  	Ftype           int32
  6383  	Fserial         uint32
  6384  	Fsend_event     int32
  6385  	Fdisplay        uintptr
  6386  	Fevent          Window
  6387  	Fwindow         Window
  6388  	Ffrom_configure int32
  6389  } /* Xlib.h:735:3 */
  6390  
  6391  type XMapEvent = struct {
  6392  	Ftype              int32
  6393  	Fserial            uint32
  6394  	Fsend_event        int32
  6395  	Fdisplay           uintptr
  6396  	Fevent             Window
  6397  	Fwindow            Window
  6398  	Foverride_redirect int32
  6399  } /* Xlib.h:745:3 */
  6400  
  6401  type XMapRequestEvent = struct {
  6402  	Ftype       int32
  6403  	Fserial     uint32
  6404  	Fsend_event int32
  6405  	Fdisplay    uintptr
  6406  	Fparent     Window
  6407  	Fwindow     Window
  6408  } /* Xlib.h:754:3 */
  6409  
  6410  type XReparentEvent = struct {
  6411  	Ftype              int32
  6412  	Fserial            uint32
  6413  	Fsend_event        int32
  6414  	Fdisplay           uintptr
  6415  	Fevent             Window
  6416  	Fwindow            Window
  6417  	Fparent            Window
  6418  	Fx                 int32
  6419  	Fy                 int32
  6420  	Foverride_redirect int32
  6421  } /* Xlib.h:766:3 */
  6422  
  6423  type XConfigureEvent = struct {
  6424  	Ftype              int32
  6425  	Fserial            uint32
  6426  	Fsend_event        int32
  6427  	Fdisplay           uintptr
  6428  	Fevent             Window
  6429  	Fwindow            Window
  6430  	Fx                 int32
  6431  	Fy                 int32
  6432  	Fwidth             int32
  6433  	Fheight            int32
  6434  	Fborder_width      int32
  6435  	Fabove             Window
  6436  	Foverride_redirect int32
  6437  } /* Xlib.h:780:3 */
  6438  
  6439  type XGravityEvent = struct {
  6440  	Ftype       int32
  6441  	Fserial     uint32
  6442  	Fsend_event int32
  6443  	Fdisplay    uintptr
  6444  	Fevent      Window
  6445  	Fwindow     Window
  6446  	Fx          int32
  6447  	Fy          int32
  6448  } /* Xlib.h:790:3 */
  6449  
  6450  type XResizeRequestEvent = struct {
  6451  	Ftype       int32
  6452  	Fserial     uint32
  6453  	Fsend_event int32
  6454  	Fdisplay    uintptr
  6455  	Fwindow     Window
  6456  	Fwidth      int32
  6457  	Fheight     int32
  6458  } /* Xlib.h:799:3 */
  6459  
  6460  type XConfigureRequestEvent = struct {
  6461  	Ftype         int32
  6462  	Fserial       uint32
  6463  	Fsend_event   int32
  6464  	Fdisplay      uintptr
  6465  	Fparent       Window
  6466  	Fwindow       Window
  6467  	Fx            int32
  6468  	Fy            int32
  6469  	Fwidth        int32
  6470  	Fheight       int32
  6471  	Fborder_width int32
  6472  	Fabove        Window
  6473  	Fdetail       int32
  6474  	Fvalue_mask   uint32
  6475  } /* Xlib.h:814:3 */
  6476  
  6477  type XCirculateEvent = struct {
  6478  	Ftype       int32
  6479  	Fserial     uint32
  6480  	Fsend_event int32
  6481  	Fdisplay    uintptr
  6482  	Fevent      Window
  6483  	Fwindow     Window
  6484  	Fplace      int32
  6485  } /* Xlib.h:824:3 */
  6486  
  6487  type XCirculateRequestEvent = struct {
  6488  	Ftype       int32
  6489  	Fserial     uint32
  6490  	Fsend_event int32
  6491  	Fdisplay    uintptr
  6492  	Fparent     Window
  6493  	Fwindow     Window
  6494  	Fplace      int32
  6495  } /* Xlib.h:834:3 */
  6496  
  6497  type XPropertyEvent = struct {
  6498  	Ftype       int32
  6499  	Fserial     uint32
  6500  	Fsend_event int32
  6501  	Fdisplay    uintptr
  6502  	Fwindow     Window
  6503  	Fatom       Atom
  6504  	Ftime       Time
  6505  	Fstate      int32
  6506  } /* Xlib.h:845:3 */
  6507  
  6508  type XSelectionClearEvent = struct {
  6509  	Ftype       int32
  6510  	Fserial     uint32
  6511  	Fsend_event int32
  6512  	Fdisplay    uintptr
  6513  	Fwindow     Window
  6514  	Fselection  Atom
  6515  	Ftime       Time
  6516  } /* Xlib.h:855:3 */
  6517  
  6518  type XSelectionRequestEvent = struct {
  6519  	Ftype       int32
  6520  	Fserial     uint32
  6521  	Fsend_event int32
  6522  	Fdisplay    uintptr
  6523  	Fowner      Window
  6524  	Frequestor  Window
  6525  	Fselection  Atom
  6526  	Ftarget     Atom
  6527  	Fproperty   Atom
  6528  	Ftime       Time
  6529  } /* Xlib.h:868:3 */
  6530  
  6531  type XSelectionEvent = struct {
  6532  	Ftype       int32
  6533  	Fserial     uint32
  6534  	Fsend_event int32
  6535  	Fdisplay    uintptr
  6536  	Frequestor  Window
  6537  	Fselection  Atom
  6538  	Ftarget     Atom
  6539  	Fproperty   Atom
  6540  	Ftime       Time
  6541  } /* Xlib.h:880:3 */
  6542  
  6543  type XColormapEvent = struct {
  6544  	Ftype       int32
  6545  	Fserial     uint32
  6546  	Fsend_event int32
  6547  	Fdisplay    uintptr
  6548  	Fwindow     Window
  6549  	Fcolormap   Colormap
  6550  	Fnew        int32
  6551  	Fstate      int32
  6552  } /* Xlib.h:895:3 */
  6553  
  6554  type XClientMessageEvent = struct {
  6555  	Ftype         int32
  6556  	Fserial       uint32
  6557  	Fsend_event   int32
  6558  	Fdisplay      uintptr
  6559  	Fwindow       Window
  6560  	Fmessage_type Atom
  6561  	Fformat       int32
  6562  	Fdata         struct {
  6563  		F__ccgo_pad1 [0]uint32
  6564  		Fb           [20]uint8
  6565  	}
  6566  } /* Xlib.h:910:3 */
  6567  
  6568  type XMappingEvent = struct {
  6569  	Ftype          int32
  6570  	Fserial        uint32
  6571  	Fsend_event    int32
  6572  	Fdisplay       uintptr
  6573  	Fwindow        Window
  6574  	Frequest       int32
  6575  	Ffirst_keycode int32
  6576  	Fcount         int32
  6577  } /* Xlib.h:922:3 */
  6578  
  6579  type XErrorEvent = struct {
  6580  	Ftype         int32
  6581  	Fdisplay      uintptr
  6582  	Fresourceid   XID
  6583  	Fserial       uint32
  6584  	Ferror_code   uint8
  6585  	Frequest_code uint8
  6586  	Fminor_code   uint8
  6587  	F__ccgo_pad1  [1]byte
  6588  } /* Xlib.h:932:3 */
  6589  
  6590  type XAnyEvent = struct {
  6591  	Ftype       int32
  6592  	Fserial     uint32
  6593  	Fsend_event int32
  6594  	Fdisplay    uintptr
  6595  	Fwindow     Window
  6596  } /* Xlib.h:940:3 */
  6597  
  6598  // **************************************************************
  6599  //
  6600  //
  6601  // GenericEvent.  This event is the standard event for all newer extensions.
  6602  
  6603  type XGenericEvent = struct {
  6604  	Ftype       int32
  6605  	Fserial     uint32
  6606  	Fsend_event int32
  6607  	Fdisplay    uintptr
  6608  	Fextension  int32
  6609  	Fevtype     int32
  6610  } /* Xlib.h:956:7 */
  6611  
  6612  type XGenericEventCookie = struct {
  6613  	Ftype       int32
  6614  	Fserial     uint32
  6615  	Fsend_event int32
  6616  	Fdisplay    uintptr
  6617  	Fextension  int32
  6618  	Fevtype     int32
  6619  	Fcookie     uint32
  6620  	Fdata       uintptr
  6621  } /* Xlib.h:967:3 */
  6622  
  6623  // this union is defined so Xlib can always use the same sized
  6624  // event structure internally, to avoid memory fragmentation.
  6625  type X_XEvent = struct {
  6626  	Ftype        int32
  6627  	F__ccgo_pad1 [92]byte
  6628  } /* Xlib.h:255:1 */
  6629  
  6630  // this union is defined so Xlib can always use the same sized
  6631  // event structure internally, to avoid memory fragmentation.
  6632  type XEvent = X_XEvent /* Xlib.h:1009:3 */
  6633  
  6634  // per character font metric information.
  6635  type XCharStruct = struct {
  6636  	Flbearing   int16
  6637  	Frbearing   int16
  6638  	Fwidth      int16
  6639  	Fascent     int16
  6640  	Fdescent    int16
  6641  	Fattributes uint16
  6642  } /* Xlib.h:1024:3 */
  6643  
  6644  // To allow arbitrary information with fonts, there are additional properties
  6645  // returned.
  6646  type XFontProp = struct {
  6647  	Fname   Atom
  6648  	Fcard32 uint32
  6649  } /* Xlib.h:1033:3 */
  6650  
  6651  type XFontStruct = struct {
  6652  	Fext_data          uintptr
  6653  	Ffid               Font
  6654  	Fdirection         uint32
  6655  	Fmin_char_or_byte2 uint32
  6656  	Fmax_char_or_byte2 uint32
  6657  	Fmin_byte1         uint32
  6658  	Fmax_byte1         uint32
  6659  	Fall_chars_exist   int32
  6660  	Fdefault_char      uint32
  6661  	Fn_properties      int32
  6662  	Fproperties        uintptr
  6663  	Fmin_bounds        XCharStruct
  6664  	Fmax_bounds        XCharStruct
  6665  	Fper_char          uintptr
  6666  	Fascent            int32
  6667  	Fdescent           int32
  6668  } /* Xlib.h:1052:3 */
  6669  
  6670  // PolyText routines take these as arguments.
  6671  type XTextItem = struct {
  6672  	Fchars  uintptr
  6673  	Fnchars int32
  6674  	Fdelta  int32
  6675  	Ffont   Font
  6676  } /* Xlib.h:1062:3 */
  6677  
  6678  type XChar2b = struct {
  6679  	Fbyte1 uint8
  6680  	Fbyte2 uint8
  6681  } /* Xlib.h:1067:3 */
  6682  
  6683  type XTextItem16 = struct {
  6684  	Fchars  uintptr
  6685  	Fnchars int32
  6686  	Fdelta  int32
  6687  	Ffont   Font
  6688  } /* Xlib.h:1074:3 */
  6689  
  6690  type XEDataObject = struct{ Fdisplay uintptr } /* Xlib.h:1082:24 */
  6691  
  6692  type XFontSetExtents = struct {
  6693  	Fmax_ink_extent     XRectangle
  6694  	Fmax_logical_extent XRectangle
  6695  } /* Xlib.h:1087:3 */
  6696  
  6697  // unused:
  6698  // typedef void (*XOMProc)();
  6699  //
  6700  
  6701  type XOM = uintptr      /* Xlib.h:1093:21 */
  6702  type XOC = uintptr      /* Xlib.h:1094:21 */
  6703  type XFontSet = uintptr /* Xlib.h:1094:27 */
  6704  
  6705  type XmbTextItem = struct {
  6706  	Fchars    uintptr
  6707  	Fnchars   int32
  6708  	Fdelta    int32
  6709  	Ffont_set XFontSet
  6710  } /* Xlib.h:1101:3 */
  6711  
  6712  type XwcTextItem = struct {
  6713  	Fchars    uintptr
  6714  	Fnchars   int32
  6715  	Fdelta    int32
  6716  	Ffont_set XFontSet
  6717  } /* Xlib.h:1108:3 */
  6718  
  6719  type XOMCharSetList = struct {
  6720  	Fcharset_count int32
  6721  	Fcharset_list  uintptr
  6722  } /* Xlib.h:1124:3 */
  6723  
  6724  type XOrientation = uint32 /* Xlib.h:1132:3 */
  6725  
  6726  type XOMOrientation = struct {
  6727  	Fnum_orientation int32
  6728  	Forientation     uintptr
  6729  } /* Xlib.h:1137:3 */
  6730  
  6731  type XOMFontInfo = struct {
  6732  	Fnum_font         int32
  6733  	Ffont_struct_list uintptr
  6734  	Ffont_name_list   uintptr
  6735  } /* Xlib.h:1143:3 */
  6736  
  6737  type XIM = uintptr /* Xlib.h:1145:21 */
  6738  type XIC = uintptr /* Xlib.h:1146:21 */
  6739  
  6740  type XIMProc = uintptr /* Xlib.h:1148:14 */
  6741  
  6742  type XICProc = uintptr /* Xlib.h:1154:14 */
  6743  
  6744  type XIDProc = uintptr /* Xlib.h:1160:14 */
  6745  
  6746  type XIMStyle = uint32 /* Xlib.h:1166:23 */
  6747  
  6748  type XIMStyles = struct {
  6749  	Fcount_styles     uint16
  6750  	F__ccgo_pad1      [2]byte
  6751  	Fsupported_styles uintptr
  6752  } /* Xlib.h:1171:3 */
  6753  
  6754  type XVaNestedList = uintptr /* Xlib.h:1233:14 */
  6755  
  6756  type XIMCallback = struct {
  6757  	Fclient_data XPointer
  6758  	Fcallback    XIMProc
  6759  } /* Xlib.h:1238:3 */
  6760  
  6761  type XICCallback = struct {
  6762  	Fclient_data XPointer
  6763  	Fcallback    XICProc
  6764  } /* Xlib.h:1243:3 */
  6765  
  6766  type XIMFeedback = uint32 /* Xlib.h:1245:23 */
  6767  
  6768  type X_XIMText = struct {
  6769  	Flength            uint16
  6770  	F__ccgo_pad1       [2]byte
  6771  	Ffeedback          uintptr
  6772  	Fencoding_is_wchar int32
  6773  	Fstring            struct{ Fmulti_byte uintptr }
  6774  } /* Xlib.h:1257:9 */
  6775  
  6776  type XIMText = X_XIMText /* Xlib.h:1265:3 */
  6777  
  6778  type XIMPreeditState = uint32 /* Xlib.h:1267:24 */
  6779  
  6780  type X_XIMPreeditStateNotifyCallbackStruct = struct{ Fstate XIMPreeditState } /* Xlib.h:1273:9 */
  6781  
  6782  type XIMPreeditStateNotifyCallbackStruct = X_XIMPreeditStateNotifyCallbackStruct /* Xlib.h:1275:3 */
  6783  
  6784  type XIMResetState = uint32 /* Xlib.h:1277:24 */
  6785  
  6786  type XIMStringConversionFeedback = uint32 /* Xlib.h:1282:23 */
  6787  
  6788  type X_XIMStringConversionText = struct {
  6789  	Flength            uint16
  6790  	F__ccgo_pad1       [2]byte
  6791  	Ffeedback          uintptr
  6792  	Fencoding_is_wchar int32
  6793  	Fstring            struct{ Fmbs uintptr }
  6794  } /* Xlib.h:1291:9 */
  6795  
  6796  type XIMStringConversionText = X_XIMStringConversionText /* Xlib.h:1299:3 */
  6797  
  6798  type XIMStringConversionPosition = uint16 /* Xlib.h:1301:24 */
  6799  
  6800  type XIMStringConversionType = uint16 /* Xlib.h:1303:24 */
  6801  
  6802  type XIMStringConversionOperation = uint16 /* Xlib.h:1310:24 */
  6803  
  6804  type XIMCaretDirection = uint32 /* Xlib.h:1323:3 */
  6805  
  6806  type X_XIMStringConversionCallbackStruct = struct {
  6807  	Fposition    XIMStringConversionPosition
  6808  	F__ccgo_pad1 [2]byte
  6809  	Fdirection   XIMCaretDirection
  6810  	Foperation   XIMStringConversionOperation
  6811  	Ffactor      uint16
  6812  	Ftext        uintptr
  6813  } /* Xlib.h:1325:9 */
  6814  
  6815  type XIMStringConversionCallbackStruct = X_XIMStringConversionCallbackStruct /* Xlib.h:1331:3 */
  6816  
  6817  type X_XIMPreeditDrawCallbackStruct = struct {
  6818  	Fcaret      int32
  6819  	Fchg_first  int32
  6820  	Fchg_length int32
  6821  	Ftext       uintptr
  6822  } /* Xlib.h:1333:9 */
  6823  
  6824  type XIMPreeditDrawCallbackStruct = X_XIMPreeditDrawCallbackStruct /* Xlib.h:1338:3 */
  6825  
  6826  type XIMCaretStyle = uint32 /* Xlib.h:1344:3 */
  6827  
  6828  type X_XIMPreeditCaretCallbackStruct = struct {
  6829  	Fposition  int32
  6830  	Fdirection XIMCaretDirection
  6831  	Fstyle     XIMCaretStyle
  6832  } /* Xlib.h:1346:9 */
  6833  
  6834  type XIMPreeditCaretCallbackStruct = X_XIMPreeditCaretCallbackStruct /* Xlib.h:1350:3 */
  6835  
  6836  type XIMStatusDataType = uint32 /* Xlib.h:1355:3 */
  6837  
  6838  type X_XIMStatusDrawCallbackStruct = struct {
  6839  	Ftype XIMStatusDataType
  6840  	Fdata struct{ Ftext uintptr }
  6841  } /* Xlib.h:1357:9 */
  6842  
  6843  type XIMStatusDrawCallbackStruct = X_XIMStatusDrawCallbackStruct /* Xlib.h:1363:3 */
  6844  
  6845  type X_XIMHotKeyTrigger = struct {
  6846  	Fkeysym        KeySym
  6847  	Fmodifier      int32
  6848  	Fmodifier_mask int32
  6849  } /* Xlib.h:1365:9 */
  6850  
  6851  type XIMHotKeyTrigger = X_XIMHotKeyTrigger /* Xlib.h:1369:3 */
  6852  
  6853  type X_XIMHotKeyTriggers = struct {
  6854  	Fnum_hot_key int32
  6855  	Fkey         uintptr
  6856  } /* Xlib.h:1371:9 */
  6857  
  6858  type XIMHotKeyTriggers = X_XIMHotKeyTriggers /* Xlib.h:1374:3 */
  6859  
  6860  type XIMHotKeyState = uint32 /* Xlib.h:1376:24 */
  6861  
  6862  type XIMValuesList = struct {
  6863  	Fcount_values     uint16
  6864  	F__ccgo_pad1      [2]byte
  6865  	Fsupported_values uintptr
  6866  } /* Xlib.h:1384:3 */
  6867  
  6868  type XErrorHandler = uintptr /* Xlib.h:1843:13 */
  6869  
  6870  type XIOErrorHandler = uintptr /* Xlib.h:1853:13 */
  6871  
  6872  type XIOErrorExitHandler = uintptr /* Xlib.h:1861:14 */
  6873  
  6874  type XConnectionWatchProc = uintptr /* Xlib.h:3959:14 */
  6875  
  6876  // Definitions for the X window system used by server and c bindings
  6877  
  6878  // This packet-construction scheme makes the following assumptions:
  6879  //
  6880  // 1. The compiler is able
  6881  // to generate code which addresses one- and two-byte quantities.
  6882  // In the worst case, this would be done with bit-fields.  If bit-fields
  6883  // are used it may be necessary to reorder the request fields in this file,
  6884  // depending on the order in which the machine assigns bit fields to
  6885  // machine words.  There may also be a problem with sign extension,
  6886  // as K+R specify that bitfields are always unsigned.
  6887  //
  6888  // 2. 2- and 4-byte fields in packet structures must be ordered by hand
  6889  // such that they are naturally-aligned, so that no compiler will ever
  6890  // insert padding bytes.
  6891  //
  6892  // 3. All packets are hand-padded to a multiple of 4 bytes, for
  6893  // the same reason.
  6894  
  6895  //**********************************************************
  6896  //
  6897  // Copyright 1987, 1998  The Open Group
  6898  //
  6899  // Permission to use, copy, modify, distribute, and sell this software and its
  6900  // documentation for any purpose is hereby granted without fee, provided that
  6901  // the above copyright notice appear in all copies and that both that
  6902  // copyright notice and this permission notice appear in supporting
  6903  // documentation.
  6904  //
  6905  // The above copyright notice and this permission notice shall be included in
  6906  // all copies or substantial portions of the Software.
  6907  //
  6908  // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
  6909  // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
  6910  // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL THE
  6911  // OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
  6912  // AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
  6913  // CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
  6914  //
  6915  // Except as contained in this notice, the name of The Open Group shall not be
  6916  // used in advertising or otherwise to promote the sale, use or other dealings
  6917  // in this Software without prior written authorization from The Open Group.
  6918  //
  6919  //
  6920  // Copyright 1987 by Digital Equipment Corporation, Maynard, Massachusetts.
  6921  //
  6922  //                         All Rights Reserved
  6923  //
  6924  // Permission to use, copy, modify, and distribute this software and its
  6925  // documentation for any purpose and without fee is hereby granted,
  6926  // provided that the above copyright notice appear in all copies and that
  6927  // both that copyright notice and this permission notice appear in
  6928  // supporting documentation, and that the name of Digital not be
  6929  // used in advertising or publicity pertaining to distribution of the
  6930  // software without specific, written prior permission.
  6931  //
  6932  // DIGITAL DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING
  6933  // ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL
  6934  // DIGITAL BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR
  6935  // ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
  6936  // WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,
  6937  // ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
  6938  // SOFTWARE.
  6939  //
  6940  // *****************************************************************
  6941  
  6942  //**********************************************************
  6943  //
  6944  // Copyright 1987, 1998  The Open Group
  6945  //
  6946  // Permission to use, copy, modify, distribute, and sell this software and its
  6947  // documentation for any purpose is hereby granted without fee, provided that
  6948  // the above copyright notice appear in all copies and that both that
  6949  // copyright notice and this permission notice appear in supporting
  6950  // documentation.
  6951  //
  6952  // The above copyright notice and this permission notice shall be included in
  6953  // all copies or substantial portions of the Software.
  6954  //
  6955  // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
  6956  // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
  6957  // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL THE
  6958  // OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
  6959  // AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
  6960  // CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
  6961  //
  6962  // Except as contained in this notice, the name of The Open Group shall not be
  6963  // used in advertising or otherwise to promote the sale, use or other dealings
  6964  // in this Software without prior written authorization from The Open Group.
  6965  //
  6966  //
  6967  // Copyright 1987 by Digital Equipment Corporation, Maynard, Massachusetts.
  6968  //
  6969  //                         All Rights Reserved
  6970  //
  6971  // Permission to use, copy, modify, and distribute this software and its
  6972  // documentation for any purpose and without fee is hereby granted,
  6973  // provided that the above copyright notice appear in all copies and that
  6974  // both that copyright notice and this permission notice appear in
  6975  // supporting documentation, and that the name of Digital not be
  6976  // used in advertising or publicity pertaining to distribution of the
  6977  // software without specific, written prior permission.
  6978  //
  6979  // DIGITAL DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING
  6980  // ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL
  6981  // DIGITAL BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR
  6982  // ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
  6983  // WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,
  6984  // ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
  6985  // SOFTWARE.
  6986  //
  6987  // *****************************************************************
  6988  //  Xmd.h: MACHINE DEPENDENT DECLARATIONS.
  6989  
  6990  // Special per-machine configuration flags.
  6991  
  6992  // Definition of macro used to set constants for size of network structures;
  6993  // machines with preprocessors that can't handle all of the sz_ symbols
  6994  // can define this macro to be sizeof(x) if and only if their compiler doesn't
  6995  // pad out structures (esp. the xTextElt structure which contains only two
  6996  // one-byte fields).  Network structures should always define sz_symbols.
  6997  //
  6998  // The sz_ prefix is used instead of something more descriptive so that the
  6999  // symbols are no more than 32 characters long (which causes problems for some
  7000  // compilers and preprocessors).
  7001  //
  7002  // The extra indirection is to get macro arguments to expand correctly before
  7003  // the concatenation, rather than afterward.
  7004  
  7005  // Bitfield suffixes for the protocol structure elements, if you
  7006  // need them.  Note that bitfields are not guaranteed to be signed
  7007  // (or even unsigned) according to ANSI C.
  7008  type INT32 = int32 /* Xmd.h:100:14 */
  7009  type INT16 = int16 /* Xmd.h:102:15 */
  7010  
  7011  type INT8 = int8 /* Xmd.h:104:24 */
  7012  
  7013  type CARD64 = uint64 /* Xmd.h:110:28 */
  7014  type CARD32 = uint32 /* Xmd.h:111:23 */
  7015  type CARD16 = uint16 /* Xmd.h:113:24 */
  7016  type CARD8 = uint8   /* Xmd.h:114:24 */
  7017  
  7018  type BITS32 = CARD32 /* Xmd.h:116:17 */
  7019  type BITS16 = CARD16 /* Xmd.h:117:17 */
  7020  
  7021  type BYTE = CARD8 /* Xmd.h:119:16 */
  7022  type BOOL = CARD8 /* Xmd.h:120:16 */
  7023  
  7024  // was definitions for sign-extending bitfields on architectures without
  7025  // native types smaller than 64-bit, now just backwards compatibility
  7026  
  7027  // this version should leave result of type (t *), but that should only be
  7028  // used when not in MUSTCOPY
  7029  
  7030  //**********************************************************
  7031  //
  7032  // Copyright 1987, 1998  The Open Group
  7033  //
  7034  // Permission to use, copy, modify, distribute, and sell this software and its
  7035  // documentation for any purpose is hereby granted without fee, provided that
  7036  // the above copyright notice appear in all copies and that both that
  7037  // copyright notice and this permission notice appear in supporting
  7038  // documentation.
  7039  //
  7040  // The above copyright notice and this permission notice shall be included in
  7041  // all copies or substantial portions of the Software.
  7042  //
  7043  // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
  7044  // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
  7045  // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL THE
  7046  // OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
  7047  // AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
  7048  // CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
  7049  //
  7050  // Except as contained in this notice, the name of The Open Group shall not be
  7051  // used in advertising or otherwise to promote the sale, use or other dealings
  7052  // in this Software without prior written authorization from The Open Group.
  7053  //
  7054  //
  7055  // Copyright 1987 by Digital Equipment Corporation, Maynard, Massachusetts.
  7056  //
  7057  //                         All Rights Reserved
  7058  //
  7059  // Permission to use, copy, modify, and distribute this software and its
  7060  // documentation for any purpose and without fee is hereby granted,
  7061  // provided that the above copyright notice appear in all copies and that
  7062  // both that copyright notice and this permission notice appear in
  7063  // supporting documentation, and that the name of Digital not be
  7064  // used in advertising or publicity pertaining to distribution of the
  7065  // software without specific, written prior permission.
  7066  //
  7067  // DIGITAL DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING
  7068  // ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL
  7069  // DIGITAL BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR
  7070  // ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
  7071  // WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,
  7072  // ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
  7073  // SOFTWARE.
  7074  //
  7075  // *****************************************************************
  7076  //**********************************************************
  7077  //
  7078  // Copyright 1987, 1998  The Open Group
  7079  //
  7080  // Permission to use, copy, modify, distribute, and sell this software and its
  7081  // documentation for any purpose is hereby granted without fee, provided that
  7082  // the above copyright notice appear in all copies and that both that
  7083  // copyright notice and this permission notice appear in supporting
  7084  // documentation.
  7085  //
  7086  // The above copyright notice and this permission notice shall be included in
  7087  // all copies or substantial portions of the Software.
  7088  //
  7089  // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
  7090  // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
  7091  // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL THE
  7092  // OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
  7093  // AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
  7094  // CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
  7095  //
  7096  // Except as contained in this notice, the name of The Open Group shall not be
  7097  // used in advertising or otherwise to promote the sale, use or other dealings
  7098  // in this Software without prior written authorization from The Open Group.
  7099  //
  7100  //
  7101  // Copyright 1987 by Digital Equipment Corporation, Maynard, Massachusetts.
  7102  //
  7103  //                         All Rights Reserved
  7104  //
  7105  // Permission to use, copy, modify, and distribute this software and its
  7106  // documentation for any purpose and without fee is hereby granted,
  7107  // provided that the above copyright notice appear in all copies and that
  7108  // both that copyright notice and this permission notice appear in
  7109  // supporting documentation, and that the name of Digital not be
  7110  // used in advertising or publicity pertaining to distribution of the
  7111  // software without specific, written prior permission.
  7112  //
  7113  // DIGITAL DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING
  7114  // ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL
  7115  // DIGITAL BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR
  7116  // ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
  7117  // WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,
  7118  // ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
  7119  // SOFTWARE.
  7120  //
  7121  // *****************************************************************
  7122  
  7123  // Used by PolySegment
  7124  
  7125  type X_xSegment = struct {
  7126  	Fx1 INT16
  7127  	Fy1 INT16
  7128  	Fx2 INT16
  7129  	Fy2 INT16
  7130  } /* Xprotostr.h:54:9 */
  7131  
  7132  // was definitions for sign-extending bitfields on architectures without
  7133  // native types smaller than 64-bit, now just backwards compatibility
  7134  
  7135  // this version should leave result of type (t *), but that should only be
  7136  // used when not in MUSTCOPY
  7137  
  7138  //**********************************************************
  7139  //
  7140  // Copyright 1987, 1998  The Open Group
  7141  //
  7142  // Permission to use, copy, modify, distribute, and sell this software and its
  7143  // documentation for any purpose is hereby granted without fee, provided that
  7144  // the above copyright notice appear in all copies and that both that
  7145  // copyright notice and this permission notice appear in supporting
  7146  // documentation.
  7147  //
  7148  // The above copyright notice and this permission notice shall be included in
  7149  // all copies or substantial portions of the Software.
  7150  //
  7151  // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
  7152  // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
  7153  // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL THE
  7154  // OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
  7155  // AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
  7156  // CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
  7157  //
  7158  // Except as contained in this notice, the name of The Open Group shall not be
  7159  // used in advertising or otherwise to promote the sale, use or other dealings
  7160  // in this Software without prior written authorization from The Open Group.
  7161  //
  7162  //
  7163  // Copyright 1987 by Digital Equipment Corporation, Maynard, Massachusetts.
  7164  //
  7165  //                         All Rights Reserved
  7166  //
  7167  // Permission to use, copy, modify, and distribute this software and its
  7168  // documentation for any purpose and without fee is hereby granted,
  7169  // provided that the above copyright notice appear in all copies and that
  7170  // both that copyright notice and this permission notice appear in
  7171  // supporting documentation, and that the name of Digital not be
  7172  // used in advertising or publicity pertaining to distribution of the
  7173  // software without specific, written prior permission.
  7174  //
  7175  // DIGITAL DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING
  7176  // ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL
  7177  // DIGITAL BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR
  7178  // ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
  7179  // WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,
  7180  // ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
  7181  // SOFTWARE.
  7182  //
  7183  // *****************************************************************
  7184  //**********************************************************
  7185  //
  7186  // Copyright 1987, 1998  The Open Group
  7187  //
  7188  // Permission to use, copy, modify, distribute, and sell this software and its
  7189  // documentation for any purpose is hereby granted without fee, provided that
  7190  // the above copyright notice appear in all copies and that both that
  7191  // copyright notice and this permission notice appear in supporting
  7192  // documentation.
  7193  //
  7194  // The above copyright notice and this permission notice shall be included in
  7195  // all copies or substantial portions of the Software.
  7196  //
  7197  // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
  7198  // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
  7199  // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL THE
  7200  // OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
  7201  // AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
  7202  // CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
  7203  //
  7204  // Except as contained in this notice, the name of The Open Group shall not be
  7205  // used in advertising or otherwise to promote the sale, use or other dealings
  7206  // in this Software without prior written authorization from The Open Group.
  7207  //
  7208  //
  7209  // Copyright 1987 by Digital Equipment Corporation, Maynard, Massachusetts.
  7210  //
  7211  //                         All Rights Reserved
  7212  //
  7213  // Permission to use, copy, modify, and distribute this software and its
  7214  // documentation for any purpose and without fee is hereby granted,
  7215  // provided that the above copyright notice appear in all copies and that
  7216  // both that copyright notice and this permission notice appear in
  7217  // supporting documentation, and that the name of Digital not be
  7218  // used in advertising or publicity pertaining to distribution of the
  7219  // software without specific, written prior permission.
  7220  //
  7221  // DIGITAL DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING
  7222  // ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL
  7223  // DIGITAL BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR
  7224  // ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
  7225  // WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,
  7226  // ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
  7227  // SOFTWARE.
  7228  //
  7229  // *****************************************************************
  7230  
  7231  // Used by PolySegment
  7232  
  7233  type XSegment1 = X_xSegment /* Xprotostr.h:56:3 */
  7234  
  7235  // POINT
  7236  
  7237  type X_xPoint = struct {
  7238  	Fx INT16
  7239  	Fy INT16
  7240  } /* Xprotostr.h:60:9 */
  7241  
  7242  // POINT
  7243  
  7244  type XPoint1 = X_xPoint /* Xprotostr.h:62:3 */
  7245  
  7246  type X_xRectangle = struct {
  7247  	Fx      INT16
  7248  	Fy      INT16
  7249  	Fwidth  CARD16
  7250  	Fheight CARD16
  7251  } /* Xprotostr.h:64:9 */
  7252  
  7253  type XRectangle1 = X_xRectangle /* Xprotostr.h:67:3 */
  7254  
  7255  //  ARC
  7256  
  7257  type X_xArc = struct {
  7258  	Fx      INT16
  7259  	Fy      INT16
  7260  	Fwidth  CARD16
  7261  	Fheight CARD16
  7262  	Fangle1 INT16
  7263  	Fangle2 INT16
  7264  } /* Xprotostr.h:71:9 */
  7265  
  7266  //  ARC
  7267  
  7268  type XArc1 = X_xArc /* Xprotostr.h:75:3 */
  7269  
  7270  // Define constants for the sizes of the network packets.  The sz_ prefix is
  7271  // used instead of something more descriptive so that the symbols are no more
  7272  // than 32 characters in length (which causes problems for some compilers).
  7273  
  7274  // For the purpose of the structure definitions in this file,
  7275  // we must redefine the following types in terms of Xmd.h's types, which may
  7276  // include bit fields.  All of these are #undef'd at the end of this file,
  7277  // restoring the definitions in X.h.
  7278  
  7279  type KeyButMask = CARD16 /* Xproto.h:259:16 */
  7280  
  7281  //****************
  7282  //    Connection setup structures.  See Chapter 8: Connection Setup
  7283  //    of the X Window System Protocol specification for details.
  7284  // ****************
  7285  
  7286  // Client initiates handshake with this data, followed by the strings
  7287  // for the auth protocol & data.
  7288  type XConnClientPrefix = struct {
  7289  	FbyteOrder        CARD8
  7290  	Fpad              BYTE
  7291  	FmajorVersion     CARD16
  7292  	FminorVersion     CARD16
  7293  	FnbytesAuthProto  CARD16
  7294  	FnbytesAuthString CARD16
  7295  	Fpad2             CARD16
  7296  } /* Xproto.h:276:3 */
  7297  
  7298  // Server response to xConnClientPrefix.
  7299  //
  7300  // If success == Success, this is followed by xConnSetup and
  7301  // numRoots xWindowRoot structs.
  7302  //
  7303  // If success == Failure, this is followed by a reason string.
  7304  //
  7305  // The protocol also defines a case of success == Authenticate, but
  7306  // that doesn't seem to have ever been implemented by the X Consortium.
  7307  type XConnSetupPrefix = struct {
  7308  	Fsuccess      CARD8
  7309  	FlengthReason BYTE
  7310  	FmajorVersion CARD16
  7311  	FminorVersion CARD16
  7312  	Flength       CARD16
  7313  } /* Xproto.h:294:3 */
  7314  
  7315  type XConnSetup = struct {
  7316  	Frelease            CARD32
  7317  	FridBase            CARD32
  7318  	FridMask            CARD32
  7319  	FmotionBufferSize   CARD32
  7320  	FnbytesVendor       CARD16
  7321  	FmaxRequestSize     CARD16
  7322  	FnumRoots           CARD8
  7323  	FnumFormats         CARD8
  7324  	FimageByteOrder     CARD8
  7325  	FbitmapBitOrder     CARD8
  7326  	FbitmapScanlineUnit CARD8
  7327  	FbitmapScanlinePad  CARD8
  7328  	FminKeyCode         CARD8
  7329  	FmaxKeyCode         CARD8
  7330  	Fpad2               CARD32
  7331  } /* Xproto.h:312:3 */
  7332  
  7333  type XPixmapFormat = struct {
  7334  	Fdepth        CARD8
  7335  	FbitsPerPixel CARD8
  7336  	FscanLinePad  CARD8
  7337  	Fpad1         CARD8
  7338  	Fpad2         CARD32
  7339  } /* Xproto.h:320:3 */
  7340  
  7341  // window root
  7342  
  7343  type XDepth = struct {
  7344  	Fdepth    CARD8
  7345  	Fpad1     CARD8
  7346  	FnVisuals CARD16
  7347  	Fpad2     CARD32
  7348  } /* Xproto.h:329:7 */
  7349  
  7350  type XVisualType = struct {
  7351  	FvisualID        CARD32
  7352  	Fclass           CARD8
  7353  	FbitsPerRGB      CARD8
  7354  	FcolormapEntries CARD16
  7355  	FredMask         CARD32
  7356  	FgreenMask       CARD32
  7357  	FblueMask        CARD32
  7358  	Fpad             CARD32
  7359  } /* Xproto.h:342:7 */
  7360  
  7361  type XWindowRoot = struct {
  7362  	FwindowId         CARD32
  7363  	FdefaultColormap  CARD32
  7364  	FwhitePixel       CARD32
  7365  	FblackPixel       CARD32
  7366  	FcurrentInputMask CARD32
  7367  	FpixWidth         CARD16
  7368  	FpixHeight        CARD16
  7369  	FmmWidth          CARD16
  7370  	FmmHeight         CARD16
  7371  	FminInstalledMaps CARD16
  7372  	FmaxInstalledMaps CARD16
  7373  	FrootVisualID     CARD32
  7374  	FbackingStore     CARD8
  7375  	FsaveUnders       BOOL
  7376  	FrootDepth        CARD8
  7377  	FnDepths          CARD8
  7378  } /* Xproto.h:357:3 */
  7379  
  7380  // ****************************************************************
  7381  //
  7382  // Structure Defns
  7383  //   Structures needed for replies
  7384  //
  7385  
  7386  // Used in GetMotionEvents
  7387  
  7388  type XTimecoord = struct {
  7389  	Ftime CARD32
  7390  	Fx    INT16
  7391  	Fy    INT16
  7392  } /* Xproto.h:370:3 */
  7393  
  7394  type XHostEntry = struct {
  7395  	Ffamily CARD8
  7396  	Fpad    BYTE
  7397  	Flength CARD16
  7398  } /* Xproto.h:376:3 */
  7399  
  7400  type XCharInfo = struct {
  7401  	FleftSideBearing  INT16
  7402  	FrightSideBearing INT16
  7403  	FcharacterWidth   INT16
  7404  	Fascent           INT16
  7405  	Fdescent          INT16
  7406  	Fattributes       CARD16
  7407  } /* Xproto.h:385:3 */
  7408  
  7409  type XFontProp1 = struct {
  7410  	Fname  CARD32
  7411  	Fvalue CARD32
  7412  } /* Xproto.h:390:3 */
  7413  
  7414  // non-aligned big-endian font ID follows this struct
  7415  type XTextElt = struct {
  7416  	Flen   CARD8
  7417  	Fdelta INT8
  7418  } /* Xproto.h:399:3 */
  7419  
  7420  type XColorItem = struct {
  7421  	Fpixel CARD32
  7422  	Fred   CARD16
  7423  	Fgreen CARD16
  7424  	Fblue  CARD16
  7425  	Fflags CARD8
  7426  	Fpad   CARD8
  7427  } /* Xproto.h:407:3 */
  7428  
  7429  type Xrgb = struct {
  7430  	Fred   CARD16
  7431  	Fgreen CARD16
  7432  	Fblue  CARD16
  7433  	Fpad   CARD16
  7434  } /* Xproto.h:412:3 */
  7435  
  7436  type KEYCODE = CARD8 /* Xproto.h:414:15 */
  7437  
  7438  // ****************
  7439  //
  7440  // XRep:
  7441  //    meant to be 32 byte quantity
  7442  //
  7443  
  7444  // GenericReply is the common format of all replies.  The "data" items
  7445  //    are specific to each individual reply type.
  7446  
  7447  type XGenericReply = struct {
  7448  	Ftype           BYTE
  7449  	Fdata1          BYTE
  7450  	FsequenceNumber CARD16
  7451  	Flength         CARD32
  7452  	Fdata00         CARD32
  7453  	Fdata01         CARD32
  7454  	Fdata02         CARD32
  7455  	Fdata03         CARD32
  7456  	Fdata04         CARD32
  7457  	Fdata05         CARD32
  7458  } /* Xproto.h:436:7 */
  7459  
  7460  // Individual reply formats.
  7461  
  7462  type XGetWindowAttributesReply = struct {
  7463  	Ftype               BYTE
  7464  	FbackingStore       CARD8
  7465  	FsequenceNumber     CARD16
  7466  	Flength             CARD32
  7467  	FvisualID           CARD32
  7468  	Fclass              CARD16
  7469  	FbitGravity         CARD8
  7470  	FwinGravity         CARD8
  7471  	FbackingBitPlanes   CARD32
  7472  	FbackingPixel       CARD32
  7473  	FsaveUnder          BOOL
  7474  	FmapInstalled       BOOL
  7475  	FmapState           CARD8
  7476  	Foverride           BOOL
  7477  	Fcolormap           CARD32
  7478  	FallEventMasks      CARD32
  7479  	FyourEventMask      CARD32
  7480  	FdoNotPropagateMask CARD16
  7481  	Fpad                CARD16
  7482  } /* Xproto.h:464:7 */
  7483  
  7484  type XGetGeometryReply = struct {
  7485  	Ftype           BYTE
  7486  	Fdepth          CARD8
  7487  	FsequenceNumber CARD16
  7488  	Flength         CARD32
  7489  	Froot           CARD32
  7490  	Fx              INT16
  7491  	Fy              INT16
  7492  	Fwidth          CARD16
  7493  	Fheight         CARD16
  7494  	FborderWidth    CARD16
  7495  	Fpad1           CARD16
  7496  	Fpad2           CARD32
  7497  	Fpad3           CARD32
  7498  } /* Xproto.h:478:7 */
  7499  
  7500  type XQueryTreeReply = struct {
  7501  	Ftype           BYTE
  7502  	Fpad1           BYTE
  7503  	FsequenceNumber CARD16
  7504  	Flength         CARD32
  7505  	Froot           CARD32
  7506  	Fparent         CARD32
  7507  	FnChildren      CARD16
  7508  	Fpad2           CARD16
  7509  	Fpad3           CARD32
  7510  	Fpad4           CARD32
  7511  	Fpad5           CARD32
  7512  } /* Xproto.h:491:7 */
  7513  
  7514  type XInternAtomReply = struct {
  7515  	Ftype           BYTE
  7516  	Fpad1           BYTE
  7517  	FsequenceNumber CARD16
  7518  	Flength         CARD32
  7519  	Fatom           CARD32
  7520  	Fpad2           CARD32
  7521  	Fpad3           CARD32
  7522  	Fpad4           CARD32
  7523  	Fpad5           CARD32
  7524  	Fpad6           CARD32
  7525  } /* Xproto.h:504:7 */
  7526  
  7527  type XGetAtomNameReply = struct {
  7528  	Ftype           BYTE
  7529  	Fpad1           BYTE
  7530  	FsequenceNumber CARD16
  7531  	Flength         CARD32
  7532  	FnameLength     CARD16
  7533  	Fpad2           CARD16
  7534  	Fpad3           CARD32
  7535  	Fpad4           CARD32
  7536  	Fpad5           CARD32
  7537  	Fpad6           CARD32
  7538  	Fpad7           CARD32
  7539  } /* Xproto.h:518:7 */
  7540  
  7541  type XGetPropertyReply = struct {
  7542  	Ftype           BYTE
  7543  	Fformat         CARD8
  7544  	FsequenceNumber CARD16
  7545  	Flength         CARD32
  7546  	FpropertyType   CARD32
  7547  	FbytesAfter     CARD32
  7548  	FnItems         CARD32
  7549  	Fpad1           CARD32
  7550  	Fpad2           CARD32
  7551  	Fpad3           CARD32
  7552  } /* Xproto.h:531:7 */
  7553  
  7554  type XListPropertiesReply = struct {
  7555  	Ftype           BYTE
  7556  	Fpad1           BYTE
  7557  	FsequenceNumber CARD16
  7558  	Flength         CARD32
  7559  	FnProperties    CARD16
  7560  	Fpad2           CARD16
  7561  	Fpad3           CARD32
  7562  	Fpad4           CARD32
  7563  	Fpad5           CARD32
  7564  	Fpad6           CARD32
  7565  	Fpad7           CARD32
  7566  } /* Xproto.h:545:7 */
  7567  
  7568  type XGetSelectionOwnerReply = struct {
  7569  	Ftype           BYTE
  7570  	Fpad1           BYTE
  7571  	FsequenceNumber CARD16
  7572  	Flength         CARD32
  7573  	Fowner          CARD32
  7574  	Fpad2           CARD32
  7575  	Fpad3           CARD32
  7576  	Fpad4           CARD32
  7577  	Fpad5           CARD32
  7578  	Fpad6           CARD32
  7579  } /* Xproto.h:558:7 */
  7580  
  7581  type XGrabPointerReply = struct {
  7582  	Ftype           BYTE
  7583  	Fstatus         BYTE
  7584  	FsequenceNumber CARD16
  7585  	Flength         CARD32
  7586  	Fpad1           CARD32
  7587  	Fpad2           CARD32
  7588  	Fpad3           CARD32
  7589  	Fpad4           CARD32
  7590  	Fpad5           CARD32
  7591  	Fpad6           CARD32
  7592  } /* Xproto.h:571:7 */
  7593  
  7594  type XGrabKeyboardReply = XGrabPointerReply /* Xproto.h:573:27 */
  7595  
  7596  type XQueryPointerReply = struct {
  7597  	Ftype           BYTE
  7598  	FsameScreen     BOOL
  7599  	FsequenceNumber CARD16
  7600  	Flength         CARD32
  7601  	Froot           CARD32
  7602  	Fchild          CARD32
  7603  	FrootX          INT16
  7604  	FrootY          INT16
  7605  	FwinX           INT16
  7606  	FwinY           INT16
  7607  	Fmask           CARD16
  7608  	Fpad1           CARD16
  7609  	Fpad            CARD32
  7610  } /* Xproto.h:585:7 */
  7611  
  7612  type XGetMotionEventsReply = struct {
  7613  	Ftype           BYTE
  7614  	Fpad1           BYTE
  7615  	FsequenceNumber CARD16
  7616  	Flength         CARD32
  7617  	FnEvents        CARD32
  7618  	Fpad2           CARD32
  7619  	Fpad3           CARD32
  7620  	Fpad4           CARD32
  7621  	Fpad5           CARD32
  7622  	Fpad6           CARD32
  7623  } /* Xproto.h:598:7 */
  7624  
  7625  type XTranslateCoordsReply = struct {
  7626  	Ftype           BYTE
  7627  	FsameScreen     BOOL
  7628  	FsequenceNumber CARD16
  7629  	Flength         CARD32
  7630  	Fchild          CARD32
  7631  	FdstX           INT16
  7632  	FdstY           INT16
  7633  	Fpad2           CARD32
  7634  	Fpad3           CARD32
  7635  	Fpad4           CARD32
  7636  	Fpad5           CARD32
  7637  } /* Xproto.h:611:7 */
  7638  
  7639  type XGetInputFocusReply = struct {
  7640  	Ftype           BYTE
  7641  	FrevertTo       CARD8
  7642  	FsequenceNumber CARD16
  7643  	Flength         CARD32
  7644  	Ffocus          CARD32
  7645  	Fpad1           CARD32
  7646  	Fpad2           CARD32
  7647  	Fpad3           CARD32
  7648  	Fpad4           CARD32
  7649  	Fpad5           CARD32
  7650  } /* Xproto.h:624:7 */
  7651  
  7652  type XQueryKeymapReply = struct {
  7653  	Ftype           BYTE
  7654  	Fpad1           BYTE
  7655  	FsequenceNumber CARD16
  7656  	Flength         CARD32
  7657  	Fmap            [32]BYTE
  7658  } /* Xproto.h:632:7 */
  7659  
  7660  // Warning: this MUST match (up to component renaming) xListFontsWithInfoReply
  7661  type X_xQueryFontReply = struct {
  7662  	Ftype           BYTE
  7663  	Fpad1           BYTE
  7664  	FsequenceNumber CARD16
  7665  	Flength         CARD32
  7666  	FminBounds      XCharInfo
  7667  	Fwalign1        CARD32
  7668  	FmaxBounds      XCharInfo
  7669  	Fwalign2        CARD32
  7670  	FminCharOrByte2 CARD16
  7671  	FmaxCharOrByte2 CARD16
  7672  	FdefaultChar    CARD16
  7673  	FnFontProps     CARD16
  7674  	FdrawDirection  CARD8
  7675  	FminByte1       CARD8
  7676  	FmaxByte1       CARD8
  7677  	FallCharsExist  BOOL
  7678  	FfontAscent     INT16
  7679  	FfontDescent    INT16
  7680  	FnCharInfos     CARD32
  7681  } /* Xproto.h:635:9 */
  7682  
  7683  // Warning: this MUST match (up to component renaming) xListFontsWithInfoReply
  7684  type XQueryFontReply = X_xQueryFontReply /* Xproto.h:652:3 */
  7685  
  7686  type XQueryTextExtentsReply = struct {
  7687  	Ftype           BYTE
  7688  	FdrawDirection  CARD8
  7689  	FsequenceNumber CARD16
  7690  	Flength         CARD32
  7691  	FfontAscent     INT16
  7692  	FfontDescent    INT16
  7693  	FoverallAscent  INT16
  7694  	FoverallDescent INT16
  7695  	FoverallWidth   INT32
  7696  	FoverallLeft    INT32
  7697  	FoverallRight   INT32
  7698  	Fpad            CARD32
  7699  } /* Xproto.h:663:7 */
  7700  
  7701  type XListFontsReply = struct {
  7702  	Ftype           BYTE
  7703  	Fpad1           BYTE
  7704  	FsequenceNumber CARD16
  7705  	Flength         CARD32
  7706  	FnFonts         CARD16
  7707  	Fpad2           CARD16
  7708  	Fpad3           CARD32
  7709  	Fpad4           CARD32
  7710  	Fpad5           CARD32
  7711  	Fpad6           CARD32
  7712  	Fpad7           CARD32
  7713  } /* Xproto.h:677:7 */
  7714  
  7715  // Warning: this MUST match (up to component renaming) xQueryFontReply
  7716  type XListFontsWithInfoReply = struct {
  7717  	Ftype           BYTE
  7718  	FnameLength     CARD8
  7719  	FsequenceNumber CARD16
  7720  	Flength         CARD32
  7721  	FminBounds      XCharInfo
  7722  	Fwalign1        CARD32
  7723  	FmaxBounds      XCharInfo
  7724  	Fwalign2        CARD32
  7725  	FminCharOrByte2 CARD16
  7726  	FmaxCharOrByte2 CARD16
  7727  	FdefaultChar    CARD16
  7728  	FnFontProps     CARD16
  7729  	FdrawDirection  CARD8
  7730  	FminByte1       CARD8
  7731  	FmaxByte1       CARD8
  7732  	FallCharsExist  BOOL
  7733  	FfontAscent     INT16
  7734  	FfontDescent    INT16
  7735  	FnReplies       CARD32
  7736  } /* Xproto.h:697:3 */
  7737  
  7738  type XGetFontPathReply = struct {
  7739  	Ftype           BYTE
  7740  	Fpad1           BYTE
  7741  	FsequenceNumber CARD16
  7742  	Flength         CARD32
  7743  	FnPaths         CARD16
  7744  	Fpad2           CARD16
  7745  	Fpad3           CARD32
  7746  	Fpad4           CARD32
  7747  	Fpad5           CARD32
  7748  	Fpad6           CARD32
  7749  	Fpad7           CARD32
  7750  } /* Xproto.h:711:7 */
  7751  
  7752  type XGetImageReply = struct {
  7753  	Ftype           BYTE
  7754  	Fdepth          CARD8
  7755  	FsequenceNumber CARD16
  7756  	Flength         CARD32
  7757  	Fvisual         CARD32
  7758  	Fpad3           CARD32
  7759  	Fpad4           CARD32
  7760  	Fpad5           CARD32
  7761  	Fpad6           CARD32
  7762  	Fpad7           CARD32
  7763  } /* Xproto.h:724:7 */
  7764  
  7765  type XListInstalledColormapsReply = struct {
  7766  	Ftype           BYTE
  7767  	Fpad1           BYTE
  7768  	FsequenceNumber CARD16
  7769  	Flength         CARD32
  7770  	FnColormaps     CARD16
  7771  	Fpad2           CARD16
  7772  	Fpad3           CARD32
  7773  	Fpad4           CARD32
  7774  	Fpad5           CARD32
  7775  	Fpad6           CARD32
  7776  	Fpad7           CARD32
  7777  } /* Xproto.h:738:7 */
  7778  
  7779  type XAllocColorReply = struct {
  7780  	Ftype           BYTE
  7781  	Fpad1           BYTE
  7782  	FsequenceNumber CARD16
  7783  	Flength         CARD32
  7784  	Fred            CARD16
  7785  	Fgreen          CARD16
  7786  	Fblue           CARD16
  7787  	Fpad2           CARD16
  7788  	Fpixel          CARD32
  7789  	Fpad3           CARD32
  7790  	Fpad4           CARD32
  7791  	Fpad5           CARD32
  7792  } /* Xproto.h:751:7 */
  7793  
  7794  type XAllocNamedColorReply = struct {
  7795  	Ftype           BYTE
  7796  	Fpad1           BYTE
  7797  	FsequenceNumber CARD16
  7798  	Flength         CARD32
  7799  	Fpixel          CARD32
  7800  	FexactRed       CARD16
  7801  	FexactGreen     CARD16
  7802  	FexactBlue      CARD16
  7803  	FscreenRed      CARD16
  7804  	FscreenGreen    CARD16
  7805  	FscreenBlue     CARD16
  7806  	Fpad2           CARD32
  7807  	Fpad3           CARD32
  7808  } /* Xproto.h:763:7 */
  7809  
  7810  type XAllocColorCellsReply = struct {
  7811  	Ftype           BYTE
  7812  	Fpad1           BYTE
  7813  	FsequenceNumber CARD16
  7814  	Flength         CARD32
  7815  	FnPixels        CARD16
  7816  	FnMasks         CARD16
  7817  	Fpad3           CARD32
  7818  	Fpad4           CARD32
  7819  	Fpad5           CARD32
  7820  	Fpad6           CARD32
  7821  	Fpad7           CARD32
  7822  } /* Xproto.h:776:7 */
  7823  
  7824  type XAllocColorPlanesReply = struct {
  7825  	Ftype           BYTE
  7826  	Fpad1           BYTE
  7827  	FsequenceNumber CARD16
  7828  	Flength         CARD32
  7829  	FnPixels        CARD16
  7830  	Fpad2           CARD16
  7831  	FredMask        CARD32
  7832  	FgreenMask      CARD32
  7833  	FblueMask       CARD32
  7834  	Fpad3           CARD32
  7835  	Fpad4           CARD32
  7836  } /* Xproto.h:788:7 */
  7837  
  7838  type XQueryColorsReply = struct {
  7839  	Ftype           BYTE
  7840  	Fpad1           BYTE
  7841  	FsequenceNumber CARD16
  7842  	Flength         CARD32
  7843  	FnColors        CARD16
  7844  	Fpad2           CARD16
  7845  	Fpad3           CARD32
  7846  	Fpad4           CARD32
  7847  	Fpad5           CARD32
  7848  	Fpad6           CARD32
  7849  	Fpad7           CARD32
  7850  } /* Xproto.h:802:7 */
  7851  
  7852  type XLookupColorReply = struct {
  7853  	Ftype           BYTE
  7854  	Fpad1           BYTE
  7855  	FsequenceNumber CARD16
  7856  	Flength         CARD32
  7857  	FexactRed       CARD16
  7858  	FexactGreen     CARD16
  7859  	FexactBlue      CARD16
  7860  	FscreenRed      CARD16
  7861  	FscreenGreen    CARD16
  7862  	FscreenBlue     CARD16
  7863  	Fpad3           CARD32
  7864  	Fpad4           CARD32
  7865  	Fpad5           CARD32
  7866  } /* Xproto.h:814:7 */
  7867  
  7868  type XQueryBestSizeReply = struct {
  7869  	Ftype           BYTE
  7870  	Fpad1           BYTE
  7871  	FsequenceNumber CARD16
  7872  	Flength         CARD32
  7873  	Fwidth          CARD16
  7874  	Fheight         CARD16
  7875  	Fpad3           CARD32
  7876  	Fpad4           CARD32
  7877  	Fpad5           CARD32
  7878  	Fpad6           CARD32
  7879  	Fpad7           CARD32
  7880  } /* Xproto.h:827:7 */
  7881  
  7882  type XQueryExtensionReply = struct {
  7883  	Ftype           BYTE
  7884  	Fpad1           BYTE
  7885  	FsequenceNumber CARD16
  7886  	Flength         CARD32
  7887  	Fpresent        BOOL
  7888  	Fmajor_opcode   CARD8
  7889  	Ffirst_event    CARD8
  7890  	Ffirst_error    CARD8
  7891  	Fpad3           CARD32
  7892  	Fpad4           CARD32
  7893  	Fpad5           CARD32
  7894  	Fpad6           CARD32
  7895  	Fpad7           CARD32
  7896  } /* Xproto.h:843:7 */
  7897  
  7898  type XListExtensionsReply = struct {
  7899  	Ftype           BYTE
  7900  	FnExtensions    CARD8
  7901  	FsequenceNumber CARD16
  7902  	Flength         CARD32
  7903  	Fpad2           CARD32
  7904  	Fpad3           CARD32
  7905  	Fpad4           CARD32
  7906  	Fpad5           CARD32
  7907  	Fpad6           CARD32
  7908  	Fpad7           CARD32
  7909  } /* Xproto.h:856:7 */
  7910  
  7911  type XSetMappingReply = struct {
  7912  	Ftype           BYTE
  7913  	Fsuccess        CARD8
  7914  	FsequenceNumber CARD16
  7915  	Flength         CARD32
  7916  	Fpad2           CARD32
  7917  	Fpad3           CARD32
  7918  	Fpad4           CARD32
  7919  	Fpad5           CARD32
  7920  	Fpad6           CARD32
  7921  	Fpad7           CARD32
  7922  }                                                /* Xproto.h:870:7 */
  7923  type XSetPointerMappingReply = XSetMappingReply  /* Xproto.h:871:26 */
  7924  type XSetModifierMappingReply = XSetMappingReply /* Xproto.h:872:26 */
  7925  
  7926  type XGetPointerMappingReply = struct {
  7927  	Ftype           BYTE
  7928  	FnElts          CARD8
  7929  	FsequenceNumber CARD16
  7930  	Flength         CARD32
  7931  	Fpad2           CARD32
  7932  	Fpad3           CARD32
  7933  	Fpad4           CARD32
  7934  	Fpad5           CARD32
  7935  	Fpad6           CARD32
  7936  	Fpad7           CARD32
  7937  } /* Xproto.h:885:7 */
  7938  
  7939  type XGetKeyboardMappingReply = struct {
  7940  	Ftype              BYTE
  7941  	FkeySymsPerKeyCode CARD8
  7942  	FsequenceNumber    CARD16
  7943  	Flength            CARD32
  7944  	Fpad2              CARD32
  7945  	Fpad3              CARD32
  7946  	Fpad4              CARD32
  7947  	Fpad5              CARD32
  7948  	Fpad6              CARD32
  7949  	Fpad7              CARD32
  7950  } /* Xproto.h:898:3 */
  7951  
  7952  type XGetModifierMappingReply = struct {
  7953  	Ftype              BYTE
  7954  	FnumKeyPerModifier CARD8
  7955  	FsequenceNumber    CARD16
  7956  	Flength            CARD32
  7957  	Fpad1              CARD32
  7958  	Fpad2              CARD32
  7959  	Fpad3              CARD32
  7960  	Fpad4              CARD32
  7961  	Fpad5              CARD32
  7962  	Fpad6              CARD32
  7963  } /* Xproto.h:911:3 */
  7964  
  7965  type XGetKeyboardControlReply = struct {
  7966  	Ftype             BYTE
  7967  	FglobalAutoRepeat BOOL
  7968  	FsequenceNumber   CARD16
  7969  	Flength           CARD32
  7970  	FledMask          CARD32
  7971  	FkeyClickPercent  CARD8
  7972  	FbellPercent      CARD8
  7973  	FbellPitch        CARD16
  7974  	FbellDuration     CARD16
  7975  	Fpad              CARD16
  7976  	Fmap              [32]BYTE
  7977  } /* Xproto.h:923:7 */
  7978  
  7979  type XGetPointerControlReply = struct {
  7980  	Ftype             BYTE
  7981  	Fpad1             BYTE
  7982  	FsequenceNumber   CARD16
  7983  	Flength           CARD32
  7984  	FaccelNumerator   CARD16
  7985  	FaccelDenominator CARD16
  7986  	Fthreshold        CARD16
  7987  	Fpad2             CARD16
  7988  	Fpad3             CARD32
  7989  	Fpad4             CARD32
  7990  	Fpad5             CARD32
  7991  	Fpad6             CARD32
  7992  } /* Xproto.h:937:7 */
  7993  
  7994  type XGetScreenSaverReply = struct {
  7995  	Ftype           BYTE
  7996  	Fpad1           BYTE
  7997  	FsequenceNumber CARD16
  7998  	Flength         CARD32
  7999  	Ftimeout        CARD16
  8000  	Finterval       CARD16
  8001  	FpreferBlanking BOOL
  8002  	FallowExposures BOOL
  8003  	Fpad2           CARD16
  8004  	Fpad3           CARD32
  8005  	Fpad4           CARD32
  8006  	Fpad5           CARD32
  8007  	Fpad6           CARD32
  8008  } /* Xproto.h:952:7 */
  8009  
  8010  type XListHostsReply = struct {
  8011  	Ftype           BYTE
  8012  	Fenabled        BOOL
  8013  	FsequenceNumber CARD16
  8014  	Flength         CARD32
  8015  	FnHosts         CARD16
  8016  	Fpad1           CARD16
  8017  	Fpad3           CARD32
  8018  	Fpad4           CARD32
  8019  	Fpad5           CARD32
  8020  	Fpad6           CARD32
  8021  	Fpad7           CARD32
  8022  } /* Xproto.h:966:7 */
  8023  
  8024  // ****************************************************************
  8025  //
  8026  // Xerror
  8027  //    All errors  are 32 bytes
  8028  //
  8029  
  8030  type XError = struct {
  8031  	Ftype           BYTE
  8032  	FerrorCode      BYTE
  8033  	FsequenceNumber CARD16
  8034  	FresourceID     CARD32
  8035  	FminorCode      CARD16
  8036  	FmajorCode      CARD8
  8037  	Fpad1           BYTE
  8038  	Fpad3           CARD32
  8039  	Fpad4           CARD32
  8040  	Fpad5           CARD32
  8041  	Fpad6           CARD32
  8042  	Fpad7           CARD32
  8043  } /* Xproto.h:989:3 */
  8044  
  8045  // ****************************************************************
  8046  //
  8047  // xEvent
  8048  //    All events are 32 bytes
  8049  //
  8050  
  8051  type X_xEvent = struct {
  8052  	Fu struct {
  8053  		F__ccgo_pad1 [0]uint32
  8054  		Fu           struct {
  8055  			Ftype           BYTE
  8056  			Fdetail         BYTE
  8057  			FsequenceNumber CARD16
  8058  		}
  8059  		F__ccgo_pad2 [28]byte
  8060  	}
  8061  } /* Xproto.h:996:9 */
  8062  
  8063  // ****************************************************************
  8064  //
  8065  // xEvent
  8066  //    All events are 32 bytes
  8067  //
  8068  
  8069  type XEvent1 = X_xEvent /* Xproto.h:1214:3 */
  8070  
  8071  // ********************************************************
  8072  //
  8073  //
  8074  // Generic event
  8075  //
  8076  // Those events are not part of the core protocol spec and can be used by
  8077  // various extensions.
  8078  // type is always GenericEvent
  8079  // extension is the minor opcode of the extension the event belongs to.
  8080  // evtype is the actual event type, unique __per extension__.
  8081  //
  8082  // GenericEvents can be longer than 32 bytes, with the length field
  8083  // specifying the number of 4 byte blocks after the first 32 bytes.
  8084  //
  8085  //
  8086  type XGenericEvent1 = struct {
  8087  	Ftype           BYTE
  8088  	Fextension      CARD8
  8089  	FsequenceNumber CARD16
  8090  	Flength         CARD32
  8091  	Fevtype         CARD16
  8092  	Fpad2           CARD16
  8093  	Fpad3           CARD32
  8094  	Fpad4           CARD32
  8095  	Fpad5           CARD32
  8096  	Fpad6           CARD32
  8097  	Fpad7           CARD32
  8098  } /* Xproto.h:1244:3 */
  8099  
  8100  // KeymapNotify events are not included in the above union because they
  8101  //    are different from all other events: they do not have a "detail"
  8102  //    or "sequenceNumber", so there is room for a 248-bit key mask.
  8103  
  8104  type XKeymapEvent1 = struct {
  8105  	Ftype BYTE
  8106  	Fmap  [31]BYTE
  8107  } /* Xproto.h:1255:7 */
  8108  
  8109  // XReply is the union of all the replies above whose "fixed part"
  8110  // fits in 32 bytes.  It does NOT include GetWindowAttributesReply,
  8111  // QueryFontReply, QueryKeymapReply, or GetKeyboardControlReply
  8112  // ListFontsWithInfoReply
  8113  
  8114  type XReply = struct{ Fgeneric XGenericReply } /* Xproto.h:1303:3 */
  8115  
  8116  // ****************************************************************
  8117  //
  8118  // REQUESTS
  8119  //
  8120  
  8121  // Request structure
  8122  
  8123  type X_xReq = struct {
  8124  	FreqType CARD8
  8125  	Fdata    CARD8
  8126  	Flength  CARD16
  8127  } /* Xproto.h:1314:9 */
  8128  
  8129  // ****************************************************************
  8130  //
  8131  // REQUESTS
  8132  //
  8133  
  8134  // Request structure
  8135  
  8136  type XReq = X_xReq /* Xproto.h:1319:3 */
  8137  
  8138  // ****************************************************************
  8139  //
  8140  //  structures that follow request.
  8141  //
  8142  
  8143  // ResourceReq is used for any request which has a resource ID
  8144  //    (or Atom or Time) as its one and only argument.
  8145  
  8146  type XResourceReq = struct {
  8147  	FreqType CARD8
  8148  	Fpad     BYTE
  8149  	Flength  CARD16
  8150  	Fid      CARD32
  8151  } /* Xproto.h:1333:7 */
  8152  
  8153  type XCreateWindowReq = struct {
  8154  	FreqType     CARD8
  8155  	Fdepth       CARD8
  8156  	Flength      CARD16
  8157  	Fwid         CARD32
  8158  	Fparent      CARD32
  8159  	Fx           INT16
  8160  	Fy           INT16
  8161  	Fwidth       CARD16
  8162  	Fheight      CARD16
  8163  	FborderWidth CARD16
  8164  	Fclass       CARD16
  8165  	Fvisual      CARD32
  8166  	Fmask        CARD32
  8167  } /* Xproto.h:1349:3 */
  8168  
  8169  type XChangeWindowAttributesReq = struct {
  8170  	FreqType   CARD8
  8171  	Fpad       BYTE
  8172  	Flength    CARD16
  8173  	Fwindow    CARD32
  8174  	FvalueMask CARD32
  8175  } /* Xproto.h:1357:3 */
  8176  
  8177  type XChangeSaveSetReq = struct {
  8178  	FreqType CARD8
  8179  	Fmode    BYTE
  8180  	Flength  CARD16
  8181  	Fwindow  CARD32
  8182  } /* Xproto.h:1364:3 */
  8183  
  8184  type XReparentWindowReq = struct {
  8185  	FreqType CARD8
  8186  	Fpad     BYTE
  8187  	Flength  CARD16
  8188  	Fwindow  CARD32
  8189  	Fparent  CARD32
  8190  	Fx       INT16
  8191  	Fy       INT16
  8192  } /* Xproto.h:1372:3 */
  8193  
  8194  type XConfigureWindowReq = struct {
  8195  	FreqType CARD8
  8196  	Fpad     CARD8
  8197  	Flength  CARD16
  8198  	Fwindow  CARD32
  8199  	Fmask    CARD16
  8200  	Fpad2    CARD16
  8201  } /* Xproto.h:1381:3 */
  8202  
  8203  type XCirculateWindowReq = struct {
  8204  	FreqType   CARD8
  8205  	Fdirection CARD8
  8206  	Flength    CARD16
  8207  	Fwindow    CARD32
  8208  } /* Xproto.h:1388:3 */
  8209  
  8210  type XInternAtomReq = struct {
  8211  	FreqType      CARD8
  8212  	FonlyIfExists BOOL
  8213  	Flength       CARD16
  8214  	Fnbytes       CARD16
  8215  	Fpad          CARD16
  8216  } /* Xproto.h:1396:3 */
  8217  
  8218  type XChangePropertyReq = struct {
  8219  	FreqType  CARD8
  8220  	Fmode     CARD8
  8221  	Flength   CARD16
  8222  	Fwindow   CARD32
  8223  	Fproperty CARD32
  8224  	Ftype     CARD32
  8225  	Fformat   CARD8
  8226  	Fpad      [3]BYTE
  8227  	FnUnits   CARD32
  8228  } /* Xproto.h:1407:3 */
  8229  
  8230  type XDeletePropertyReq = struct {
  8231  	FreqType  CARD8
  8232  	Fpad      BYTE
  8233  	Flength   CARD16
  8234  	Fwindow   CARD32
  8235  	Fproperty CARD32
  8236  } /* Xproto.h:1415:3 */
  8237  
  8238  type XGetPropertyReq = struct {
  8239  	FreqType    CARD8
  8240  	Fdelete     BOOL
  8241  	Flength     CARD16
  8242  	Fwindow     CARD32
  8243  	Fproperty   CARD32
  8244  	Ftype       CARD32
  8245  	FlongOffset CARD32
  8246  	FlongLength CARD32
  8247  } /* Xproto.h:1429:3 */
  8248  
  8249  type XSetSelectionOwnerReq = struct {
  8250  	FreqType   CARD8
  8251  	Fpad       BYTE
  8252  	Flength    CARD16
  8253  	Fwindow    CARD32
  8254  	Fselection CARD32
  8255  	Ftime      CARD32
  8256  } /* Xproto.h:1438:3 */
  8257  
  8258  type XConvertSelectionReq = struct {
  8259  	FreqType   CARD8
  8260  	Fpad       BYTE
  8261  	Flength    CARD16
  8262  	Frequestor CARD32
  8263  	Fselection CARD32
  8264  	Ftarget    CARD32
  8265  	Fproperty  CARD32
  8266  	Ftime      CARD32
  8267  } /* Xproto.h:1447:7 */
  8268  
  8269  type XSendEventReq = struct {
  8270  	FreqType     CARD8
  8271  	Fpropagate   BOOL
  8272  	Flength      CARD16
  8273  	Fdestination CARD32
  8274  	FeventMask   CARD32
  8275  	Fevent       XEvent1
  8276  } /* Xproto.h:1456:3 */
  8277  
  8278  type XGrabPointerReq = struct {
  8279  	FreqType      CARD8
  8280  	FownerEvents  BOOL
  8281  	Flength       CARD16
  8282  	FgrabWindow   CARD32
  8283  	FeventMask    CARD16
  8284  	FpointerMode  BYTE
  8285  	FkeyboardMode BYTE
  8286  	FconfineTo    CARD32
  8287  	Fcursor       CARD32
  8288  	Ftime         CARD32
  8289  } /* Xproto.h:1468:3 */
  8290  
  8291  type XGrabButtonReq = struct {
  8292  	FreqType      CARD8
  8293  	FownerEvents  BOOL
  8294  	Flength       CARD16
  8295  	FgrabWindow   CARD32
  8296  	FeventMask    CARD16
  8297  	FpointerMode  BYTE
  8298  	FkeyboardMode BYTE
  8299  	FconfineTo    CARD32
  8300  	Fcursor       CARD32
  8301  	Fbutton       CARD8
  8302  	Fpad          BYTE
  8303  	Fmodifiers    CARD16
  8304  } /* Xproto.h:1482:3 */
  8305  
  8306  type XUngrabButtonReq = struct {
  8307  	FreqType    CARD8
  8308  	Fbutton     CARD8
  8309  	Flength     CARD16
  8310  	FgrabWindow CARD32
  8311  	Fmodifiers  CARD16
  8312  	Fpad        CARD16
  8313  } /* Xproto.h:1491:3 */
  8314  
  8315  type XChangeActivePointerGrabReq = struct {
  8316  	FreqType   CARD8
  8317  	Fpad       BYTE
  8318  	Flength    CARD16
  8319  	Fcursor    CARD32
  8320  	Ftime      CARD32
  8321  	FeventMask CARD16
  8322  	Fpad2      CARD16
  8323  } /* Xproto.h:1501:3 */
  8324  
  8325  type XGrabKeyboardReq = struct {
  8326  	FreqType      CARD8
  8327  	FownerEvents  BOOL
  8328  	Flength       CARD16
  8329  	FgrabWindow   CARD32
  8330  	Ftime         CARD32
  8331  	FpointerMode  BYTE
  8332  	FkeyboardMode BYTE
  8333  	Fpad          CARD16
  8334  } /* Xproto.h:1511:3 */
  8335  
  8336  type XGrabKeyReq = struct {
  8337  	FreqType      CARD8
  8338  	FownerEvents  BOOL
  8339  	Flength       CARD16
  8340  	FgrabWindow   CARD32
  8341  	Fmodifiers    CARD16
  8342  	Fkey          CARD8
  8343  	FpointerMode  BYTE
  8344  	FkeyboardMode BYTE
  8345  	Fpad1         BYTE
  8346  	Fpad2         BYTE
  8347  	Fpad3         BYTE
  8348  } /* Xproto.h:1522:3 */
  8349  
  8350  type XUngrabKeyReq = struct {
  8351  	FreqType    CARD8
  8352  	Fkey        CARD8
  8353  	Flength     CARD16
  8354  	FgrabWindow CARD32
  8355  	Fmodifiers  CARD16
  8356  	Fpad        CARD16
  8357  } /* Xproto.h:1531:3 */
  8358  
  8359  type XAllowEventsReq = struct {
  8360  	FreqType CARD8
  8361  	Fmode    CARD8
  8362  	Flength  CARD16
  8363  	Ftime    CARD32
  8364  } /* Xproto.h:1538:3 */
  8365  
  8366  type XGetMotionEventsReq = struct {
  8367  	FreqType CARD8
  8368  	Fpad     BYTE
  8369  	Flength  CARD16
  8370  	Fwindow  CARD32
  8371  	Fstart   CARD32
  8372  	Fstop    CARD32
  8373  } /* Xproto.h:1546:3 */
  8374  
  8375  type XTranslateCoordsReq = struct {
  8376  	FreqType CARD8
  8377  	Fpad     BYTE
  8378  	Flength  CARD16
  8379  	FsrcWid  CARD32
  8380  	FdstWid  CARD32
  8381  	FsrcX    INT16
  8382  	FsrcY    INT16
  8383  } /* Xproto.h:1554:3 */
  8384  
  8385  type XWarpPointerReq = struct {
  8386  	FreqType   CARD8
  8387  	Fpad       BYTE
  8388  	Flength    CARD16
  8389  	FsrcWid    CARD32
  8390  	FdstWid    CARD32
  8391  	FsrcX      INT16
  8392  	FsrcY      INT16
  8393  	FsrcWidth  CARD16
  8394  	FsrcHeight CARD16
  8395  	FdstX      INT16
  8396  	FdstY      INT16
  8397  } /* Xproto.h:1564:3 */
  8398  
  8399  type XSetInputFocusReq = struct {
  8400  	FreqType  CARD8
  8401  	FrevertTo CARD8
  8402  	Flength   CARD16
  8403  	Ffocus    CARD32
  8404  	Ftime     CARD32
  8405  } /* Xproto.h:1572:3 */
  8406  
  8407  type XOpenFontReq = struct {
  8408  	FreqType CARD8
  8409  	Fpad     BYTE
  8410  	Flength  CARD16
  8411  	Ffid     CARD32
  8412  	Fnbytes  CARD16
  8413  	Fpad1    BYTE
  8414  	Fpad2    BYTE
  8415  } /* Xproto.h:1581:3 */
  8416  
  8417  type XQueryTextExtentsReq = struct {
  8418  	FreqType   CARD8
  8419  	FoddLength BOOL
  8420  	Flength    CARD16
  8421  	Ffid       CARD32
  8422  } /* Xproto.h:1588:7 */
  8423  
  8424  type XListFontsReq = struct {
  8425  	FreqType  CARD8
  8426  	Fpad      BYTE
  8427  	Flength   CARD16
  8428  	FmaxNames CARD16
  8429  	Fnbytes   CARD16
  8430  } /* Xproto.h:1596:3 */
  8431  
  8432  type XListFontsWithInfoReq = XListFontsReq /* Xproto.h:1598:23 */
  8433  
  8434  type XSetFontPathReq = struct {
  8435  	FreqType CARD8
  8436  	Fpad     BYTE
  8437  	Flength  CARD16
  8438  	FnFonts  CARD16
  8439  	Fpad1    BYTE
  8440  	Fpad2    BYTE
  8441  } /* Xproto.h:1606:3 */
  8442  
  8443  type XCreatePixmapReq = struct {
  8444  	FreqType  CARD8
  8445  	Fdepth    CARD8
  8446  	Flength   CARD16
  8447  	Fpid      CARD32
  8448  	Fdrawable CARD32
  8449  	Fwidth    CARD16
  8450  	Fheight   CARD16
  8451  } /* Xproto.h:1615:3 */
  8452  
  8453  type XCreateGCReq = struct {
  8454  	FreqType  CARD8
  8455  	Fpad      BYTE
  8456  	Flength   CARD16
  8457  	Fgc       CARD32
  8458  	Fdrawable CARD32
  8459  	Fmask     CARD32
  8460  } /* Xproto.h:1624:3 */
  8461  
  8462  type XChangeGCReq = struct {
  8463  	FreqType CARD8
  8464  	Fpad     BYTE
  8465  	Flength  CARD16
  8466  	Fgc      CARD32
  8467  	Fmask    CARD32
  8468  } /* Xproto.h:1632:3 */
  8469  
  8470  type XCopyGCReq = struct {
  8471  	FreqType CARD8
  8472  	Fpad     BYTE
  8473  	Flength  CARD16
  8474  	FsrcGC   CARD32
  8475  	FdstGC   CARD32
  8476  	Fmask    CARD32
  8477  } /* Xproto.h:1640:3 */
  8478  
  8479  type XSetDashesReq = struct {
  8480  	FreqType    CARD8
  8481  	Fpad        BYTE
  8482  	Flength     CARD16
  8483  	Fgc         CARD32
  8484  	FdashOffset CARD16
  8485  	FnDashes    CARD16
  8486  } /* Xproto.h:1649:3 */
  8487  
  8488  type XSetClipRectanglesReq = struct {
  8489  	FreqType  CARD8
  8490  	Fordering BYTE
  8491  	Flength   CARD16
  8492  	Fgc       CARD32
  8493  	FxOrigin  INT16
  8494  	FyOrigin  INT16
  8495  } /* Xproto.h:1657:3 */
  8496  
  8497  type XClearAreaReq = struct {
  8498  	FreqType   CARD8
  8499  	Fexposures BOOL
  8500  	Flength    CARD16
  8501  	Fwindow    CARD32
  8502  	Fx         INT16
  8503  	Fy         INT16
  8504  	Fwidth     CARD16
  8505  	Fheight    CARD16
  8506  } /* Xproto.h:1666:3 */
  8507  
  8508  type XCopyAreaReq = struct {
  8509  	FreqType     CARD8
  8510  	Fpad         BYTE
  8511  	Flength      CARD16
  8512  	FsrcDrawable CARD32
  8513  	FdstDrawable CARD32
  8514  	Fgc          CARD32
  8515  	FsrcX        INT16
  8516  	FsrcY        INT16
  8517  	FdstX        INT16
  8518  	FdstY        INT16
  8519  	Fwidth       CARD16
  8520  	Fheight      CARD16
  8521  } /* Xproto.h:1676:3 */
  8522  
  8523  type XCopyPlaneReq = struct {
  8524  	FreqType     CARD8
  8525  	Fpad         BYTE
  8526  	Flength      CARD16
  8527  	FsrcDrawable CARD32
  8528  	FdstDrawable CARD32
  8529  	Fgc          CARD32
  8530  	FsrcX        INT16
  8531  	FsrcY        INT16
  8532  	FdstX        INT16
  8533  	FdstY        INT16
  8534  	Fwidth       CARD16
  8535  	Fheight      CARD16
  8536  	FbitPlane    CARD32
  8537  } /* Xproto.h:1687:3 */
  8538  
  8539  type XPolyPointReq = struct {
  8540  	FreqType   CARD8
  8541  	FcoordMode BYTE
  8542  	Flength    CARD16
  8543  	Fdrawable  CARD32
  8544  	Fgc        CARD32
  8545  } /* Xproto.h:1695:3 */
  8546  
  8547  type XPolyLineReq = XPolyPointReq /* Xproto.h:1697:23 */ // same request structure
  8548  
  8549  // The following used for PolySegment, PolyRectangle, PolyArc, PolyFillRectangle, PolyFillArc
  8550  
  8551  type XPolySegmentReq = struct {
  8552  	FreqType  CARD8
  8553  	Fpad      BYTE
  8554  	Flength   CARD16
  8555  	Fdrawable CARD32
  8556  	Fgc       CARD32
  8557  } /* Xproto.h:1707:3 */
  8558  
  8559  type XPolyArcReq = XPolySegmentReq           /* Xproto.h:1709:25 */
  8560  type XPolyRectangleReq = XPolySegmentReq     /* Xproto.h:1710:25 */
  8561  type XPolyFillRectangleReq = XPolySegmentReq /* Xproto.h:1711:25 */
  8562  type XPolyFillArcReq = XPolySegmentReq       /* Xproto.h:1712:25 */
  8563  
  8564  type X_FillPolyReq = struct {
  8565  	FreqType   CARD8
  8566  	Fpad       BYTE
  8567  	Flength    CARD16
  8568  	Fdrawable  CARD32
  8569  	Fgc        CARD32
  8570  	Fshape     BYTE
  8571  	FcoordMode BYTE
  8572  	Fpad1      CARD16
  8573  } /* Xproto.h:1714:9 */
  8574  
  8575  type XFillPolyReq = X_FillPolyReq /* Xproto.h:1723:3 */
  8576  
  8577  type X_PutImageReq = struct {
  8578  	FreqType  CARD8
  8579  	Fformat   CARD8
  8580  	Flength   CARD16
  8581  	Fdrawable CARD32
  8582  	Fgc       CARD32
  8583  	Fwidth    CARD16
  8584  	Fheight   CARD16
  8585  	FdstX     INT16
  8586  	FdstY     INT16
  8587  	FleftPad  CARD8
  8588  	Fdepth    CARD8
  8589  	Fpad      CARD16
  8590  } /* Xproto.h:1726:9 */
  8591  
  8592  type XPutImageReq = X_PutImageReq /* Xproto.h:1737:3 */
  8593  
  8594  type XGetImageReq = struct {
  8595  	FreqType   CARD8
  8596  	Fformat    CARD8
  8597  	Flength    CARD16
  8598  	Fdrawable  CARD32
  8599  	Fx         INT16
  8600  	Fy         INT16
  8601  	Fwidth     CARD16
  8602  	Fheight    CARD16
  8603  	FplaneMask CARD32
  8604  } /* Xproto.h:1747:3 */
  8605  
  8606  // the following used by PolyText8 and PolyText16
  8607  
  8608  type XPolyTextReq = struct {
  8609  	FreqType  CARD8
  8610  	Fpad      CARD8
  8611  	Flength   CARD16
  8612  	Fdrawable CARD32
  8613  	Fgc       CARD32
  8614  	Fx        INT16
  8615  	Fy        INT16
  8616  } /* Xproto.h:1758:3 */
  8617  
  8618  type XPolyText8Req = XPolyTextReq  /* Xproto.h:1760:22 */
  8619  type XPolyText16Req = XPolyTextReq /* Xproto.h:1761:22 */
  8620  
  8621  type XImageTextReq = struct {
  8622  	FreqType  CARD8
  8623  	FnChars   BYTE
  8624  	Flength   CARD16
  8625  	Fdrawable CARD32
  8626  	Fgc       CARD32
  8627  	Fx        INT16
  8628  	Fy        INT16
  8629  } /* Xproto.h:1770:3 */
  8630  
  8631  type XImageText8Req = XImageTextReq  /* Xproto.h:1772:23 */
  8632  type XImageText16Req = XImageTextReq /* Xproto.h:1773:23 */
  8633  
  8634  type XCreateColormapReq = struct {
  8635  	FreqType CARD8
  8636  	Falloc   BYTE
  8637  	Flength  CARD16
  8638  	Fmid     CARD32
  8639  	Fwindow  CARD32
  8640  	Fvisual  CARD32
  8641  } /* Xproto.h:1782:3 */
  8642  
  8643  type XCopyColormapAndFreeReq = struct {
  8644  	FreqType CARD8
  8645  	Fpad     BYTE
  8646  	Flength  CARD16
  8647  	Fmid     CARD32
  8648  	FsrcCmap CARD32
  8649  } /* Xproto.h:1790:3 */
  8650  
  8651  type XAllocColorReq = struct {
  8652  	FreqType CARD8
  8653  	Fpad     BYTE
  8654  	Flength  CARD16
  8655  	Fcmap    CARD32
  8656  	Fred     CARD16
  8657  	Fgreen   CARD16
  8658  	Fblue    CARD16
  8659  	Fpad2    CARD16
  8660  } /* Xproto.h:1799:3 */
  8661  
  8662  type XAllocNamedColorReq = struct {
  8663  	FreqType CARD8
  8664  	Fpad     BYTE
  8665  	Flength  CARD16
  8666  	Fcmap    CARD32
  8667  	Fnbytes  CARD16
  8668  	Fpad1    BYTE
  8669  	Fpad2    BYTE
  8670  } /* Xproto.h:1808:3 */
  8671  
  8672  type XAllocColorCellsReq = struct {
  8673  	FreqType    CARD8
  8674  	Fcontiguous BOOL
  8675  	Flength     CARD16
  8676  	Fcmap       CARD32
  8677  	Fcolors     CARD16
  8678  	Fplanes     CARD16
  8679  } /* Xproto.h:1816:3 */
  8680  
  8681  type XAllocColorPlanesReq = struct {
  8682  	FreqType    CARD8
  8683  	Fcontiguous BOOL
  8684  	Flength     CARD16
  8685  	Fcmap       CARD32
  8686  	Fcolors     CARD16
  8687  	Fred        CARD16
  8688  	Fgreen      CARD16
  8689  	Fblue       CARD16
  8690  } /* Xproto.h:1824:3 */
  8691  
  8692  type XFreeColorsReq = struct {
  8693  	FreqType   CARD8
  8694  	Fpad       BYTE
  8695  	Flength    CARD16
  8696  	Fcmap      CARD32
  8697  	FplaneMask CARD32
  8698  } /* Xproto.h:1832:3 */
  8699  
  8700  type XStoreColorsReq = struct {
  8701  	FreqType CARD8
  8702  	Fpad     BYTE
  8703  	Flength  CARD16
  8704  	Fcmap    CARD32
  8705  } /* Xproto.h:1839:3 */
  8706  
  8707  type XStoreNamedColorReq = struct {
  8708  	FreqType CARD8
  8709  	Fflags   CARD8
  8710  	Flength  CARD16
  8711  	Fcmap    CARD32
  8712  	Fpixel   CARD32
  8713  	Fnbytes  CARD16
  8714  	Fpad1    BYTE
  8715  	Fpad2    BYTE
  8716  } /* Xproto.h:1849:7 */
  8717  
  8718  type XQueryColorsReq = struct {
  8719  	FreqType CARD8
  8720  	Fpad     BYTE
  8721  	Flength  CARD16
  8722  	Fcmap    CARD32
  8723  } /* Xproto.h:1856:3 */
  8724  
  8725  type XLookupColorReq = struct {
  8726  	FreqType CARD8
  8727  	Fpad     BYTE
  8728  	Flength  CARD16
  8729  	Fcmap    CARD32
  8730  	Fnbytes  CARD16
  8731  	Fpad1    BYTE
  8732  	Fpad2    BYTE
  8733  } /* Xproto.h:1865:3 */
  8734  
  8735  type XCreateCursorReq = struct {
  8736  	FreqType   CARD8
  8737  	Fpad       BYTE
  8738  	Flength    CARD16
  8739  	Fcid       CARD32
  8740  	Fsource    CARD32
  8741  	Fmask      CARD32
  8742  	FforeRed   CARD16
  8743  	FforeGreen CARD16
  8744  	FforeBlue  CARD16
  8745  	FbackRed   CARD16
  8746  	FbackGreen CARD16
  8747  	FbackBlue  CARD16
  8748  	Fx         CARD16
  8749  	Fy         CARD16
  8750  } /* Xproto.h:1876:3 */
  8751  
  8752  type XCreateGlyphCursorReq = struct {
  8753  	FreqType    CARD8
  8754  	Fpad        BYTE
  8755  	Flength     CARD16
  8756  	Fcid        CARD32
  8757  	Fsource     CARD32
  8758  	Fmask       CARD32
  8759  	FsourceChar CARD16
  8760  	FmaskChar   CARD16
  8761  	FforeRed    CARD16
  8762  	FforeGreen  CARD16
  8763  	FforeBlue   CARD16
  8764  	FbackRed    CARD16
  8765  	FbackGreen  CARD16
  8766  	FbackBlue   CARD16
  8767  } /* Xproto.h:1887:3 */
  8768  
  8769  type XRecolorCursorReq = struct {
  8770  	FreqType   CARD8
  8771  	Fpad       BYTE
  8772  	Flength    CARD16
  8773  	Fcursor    CARD32
  8774  	FforeRed   CARD16
  8775  	FforeGreen CARD16
  8776  	FforeBlue  CARD16
  8777  	FbackRed   CARD16
  8778  	FbackGreen CARD16
  8779  	FbackBlue  CARD16
  8780  } /* Xproto.h:1896:3 */
  8781  
  8782  type XQueryBestSizeReq = struct {
  8783  	FreqType  CARD8
  8784  	Fclass    CARD8
  8785  	Flength   CARD16
  8786  	Fdrawable CARD32
  8787  	Fwidth    CARD16
  8788  	Fheight   CARD16
  8789  } /* Xproto.h:1908:3 */
  8790  
  8791  type XQueryExtensionReq = struct {
  8792  	FreqType CARD8
  8793  	Fpad     BYTE
  8794  	Flength  CARD16
  8795  	Fnbytes  CARD16
  8796  	Fpad1    BYTE
  8797  	Fpad2    BYTE
  8798  } /* Xproto.h:1916:3 */
  8799  
  8800  type XSetModifierMappingReq = struct {
  8801  	FreqType           CARD8
  8802  	FnumKeyPerModifier CARD8
  8803  	Flength            CARD16
  8804  } /* Xproto.h:1922:3 */
  8805  
  8806  type XSetPointerMappingReq = struct {
  8807  	FreqType CARD8
  8808  	FnElts   CARD8
  8809  	Flength  CARD16
  8810  } /* Xproto.h:1928:3 */
  8811  
  8812  type XGetKeyboardMappingReq = struct {
  8813  	FreqType      CARD8
  8814  	Fpad          BYTE
  8815  	Flength       CARD16
  8816  	FfirstKeyCode CARD8
  8817  	Fcount        CARD8
  8818  	Fpad1         CARD16
  8819  } /* Xproto.h:1937:3 */
  8820  
  8821  type XChangeKeyboardMappingReq = struct {
  8822  	FreqType           CARD8
  8823  	FkeyCodes          CARD8
  8824  	Flength            CARD16
  8825  	FfirstKeyCode      CARD8
  8826  	FkeySymsPerKeyCode CARD8
  8827  	Fpad1              CARD16
  8828  } /* Xproto.h:1946:3 */
  8829  
  8830  type XChangeKeyboardControlReq = struct {
  8831  	FreqType CARD8
  8832  	Fpad     BYTE
  8833  	Flength  CARD16
  8834  	Fmask    CARD32
  8835  } /* Xproto.h:1953:3 */
  8836  
  8837  type XBellReq = struct {
  8838  	FreqType CARD8
  8839  	Fpercent INT8
  8840  	Flength  CARD16
  8841  } /* Xproto.h:1959:3 */
  8842  
  8843  type XChangePointerControlReq = struct {
  8844  	FreqType    CARD8
  8845  	Fpad        BYTE
  8846  	Flength     CARD16
  8847  	FaccelNum   INT16
  8848  	FaccelDenum INT16
  8849  	Fthreshold  INT16
  8850  	FdoAccel    BOOL
  8851  	FdoThresh   BOOL
  8852  } /* Xproto.h:1968:3 */
  8853  
  8854  type XSetScreenSaverReq = struct {
  8855  	FreqType     CARD8
  8856  	Fpad         BYTE
  8857  	Flength      CARD16
  8858  	Ftimeout     INT16
  8859  	Finterval    INT16
  8860  	FpreferBlank BYTE
  8861  	FallowExpose BYTE
  8862  	Fpad2        CARD16
  8863  } /* Xproto.h:1977:3 */
  8864  
  8865  type XChangeHostsReq = struct {
  8866  	FreqType    CARD8
  8867  	Fmode       BYTE
  8868  	Flength     CARD16
  8869  	FhostFamily CARD8
  8870  	Fpad        BYTE
  8871  	FhostLength CARD16
  8872  } /* Xproto.h:1986:3 */
  8873  
  8874  type XListHostsReq = struct {
  8875  	FreqType CARD8
  8876  	Fpad     BYTE
  8877  	Flength  CARD16
  8878  } /* Xproto.h:1992:7 */
  8879  
  8880  type XChangeModeReq = struct {
  8881  	FreqType CARD8
  8882  	Fmode    BYTE
  8883  	Flength  CARD16
  8884  } /* Xproto.h:1998:7 */
  8885  
  8886  type XSetAccessControlReq = XChangeModeReq /* Xproto.h:2000:24 */
  8887  type XSetCloseDownModeReq = XChangeModeReq /* Xproto.h:2001:24 */
  8888  type XForceScreenSaverReq = XChangeModeReq /* Xproto.h:2002:24 */
  8889  
  8890  type XRotatePropertiesReq = struct {
  8891  	FreqType    CARD8
  8892  	Fpad        BYTE
  8893  	Flength     CARD16
  8894  	Fwindow     CARD32
  8895  	FnAtoms     CARD16
  8896  	FnPositions INT16
  8897  } /* Xproto.h:2011:7 */
  8898  
  8899  type X_XFreeFuncs = struct {
  8900  	Fatoms         FreeFuncType
  8901  	Fmodifiermap   FreeModmapType
  8902  	Fkey_bindings  FreeFuncType
  8903  	Fcontext_db    FreeFuncType
  8904  	FdefaultCCCs   FreeFuncType
  8905  	FclientCmaps   FreeFuncType
  8906  	FintensityMaps FreeFuncType
  8907  	Fim_filters    FreeFuncType
  8908  	Fxkb           FreeFuncType
  8909  } /* Xlib.h:255:1 */
  8910  
  8911  type X_XSQEvent = struct {
  8912  	Fnext        uintptr
  8913  	Fevent       XEvent
  8914  	Fqserial_num uint32
  8915  } /* Xlib.h:255:1 */
  8916  
  8917  type X_XExten = struct {
  8918  	Fnext          uintptr
  8919  	Fcodes         XExtCodes
  8920  	Fcreate_GC     CreateGCType
  8921  	Fcopy_GC       CopyGCType
  8922  	Fflush_GC      FlushGCType
  8923  	Ffree_GC       FreeGCType
  8924  	Fcreate_Font   CreateFontType
  8925  	Ffree_Font     FreeFontType
  8926  	Fclose_display CloseDisplayType
  8927  	Ferror         ErrorType
  8928  	Ferror_string  ErrorStringType
  8929  	Fname          uintptr
  8930  	Ferror_values  PrintErrorType
  8931  	Fbefore_flush  BeforeFlushType
  8932  	Fnext_flush    uintptr
  8933  } /* Xlib.h:255:1 */
  8934  
  8935  type X_XInternalAsync = struct {
  8936  	Fnext    uintptr
  8937  	Fhandler uintptr
  8938  	Fdata    XPointer
  8939  } /* Xlib.h:255:1 */
  8940  
  8941  type X_XLockPtrs = struct {
  8942  	Flock_display   uintptr
  8943  	Funlock_display uintptr
  8944  } /* Xlib.h:255:1 */
  8945  
  8946  type X_XConnectionInfo = struct {
  8947  	Ffd            int32
  8948  	Fread_callback X_XInternalConnectionProc
  8949  	Fcall_data     XPointer
  8950  	Fwatch_data    uintptr
  8951  	Fnext          uintptr
  8952  } /* Xlib.h:255:1 */
  8953  
  8954  type X_XConnWatchInfo = struct {
  8955  	Ffn          XConnectionWatchProc
  8956  	Fclient_data XPointer
  8957  	Fnext        uintptr
  8958  } /* Xlib.h:255:1 */
  8959  
  8960  // access "last_request_read" and "request" with 64bit
  8961  // warning: the value argument of the SET-macros must not
  8962  // have any side-effects because it may get called twice.
  8963  // accessors for 32-bit unsigned long
  8964  
  8965  // widen a 32-bit sequence number to a 64 sequence number.
  8966  // This macro makes the following assumptions:
  8967  // - ulseq refers to a sequence that has already been sent
  8968  // - ulseq means the most recent possible sequence number
  8969  //   with these lower 32 bits.
  8970  //
  8971  // The following optimization is used:
  8972  // The comparison result is taken a 0 or 1 to avoid a branch.
  8973  
  8974  // _QEvent datatype for use in input queueing.
  8975  type X_XQEvent = X_XSQEvent /* Xlibint.h:331:3 */
  8976  
  8977  // POSIX.1-2008 extended locale interface (see locale.h).
  8978  // Definition of locale_t.
  8979  //    Copyright (C) 2017-2020 Free Software Foundation, Inc.
  8980  //    This file is part of the GNU C Library.
  8981  //
  8982  //    The GNU C Library is free software; you can redistribute it and/or
  8983  //    modify it under the terms of the GNU Lesser General Public
  8984  //    License as published by the Free Software Foundation; either
  8985  //    version 2.1 of the License, or (at your option) any later version.
  8986  //
  8987  //    The GNU C Library is distributed in the hope that it will be useful,
  8988  //    but WITHOUT ANY WARRANTY; without even the implied warranty of
  8989  //    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
  8990  //    Lesser General Public License for more details.
  8991  //
  8992  //    You should have received a copy of the GNU Lesser General Public
  8993  //    License along with the GNU C Library; if not, see
  8994  //    <https://www.gnu.org/licenses/>.
  8995  
  8996  // Definition of struct __locale_struct and __locale_t.
  8997  //    Copyright (C) 1997-2020 Free Software Foundation, Inc.
  8998  //    This file is part of the GNU C Library.
  8999  //    Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997.
  9000  //
  9001  //    The GNU C Library is free software; you can redistribute it and/or
  9002  //    modify it under the terms of the GNU Lesser General Public
  9003  //    License as published by the Free Software Foundation; either
  9004  //    version 2.1 of the License, or (at your option) any later version.
  9005  //
  9006  //    The GNU C Library is distributed in the hope that it will be useful,
  9007  //    but WITHOUT ANY WARRANTY; without even the implied warranty of
  9008  //    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
  9009  //    Lesser General Public License for more details.
  9010  //
  9011  //    You should have received a copy of the GNU Lesser General Public
  9012  //    License along with the GNU C Library; if not, see
  9013  //    <https://www.gnu.org/licenses/>.
  9014  
  9015  // POSIX.1-2008: the locale_t type, representing a locale context
  9016  //    (implementation-namespace version).  This type should be treated
  9017  //    as opaque by applications; some details are exposed for the sake of
  9018  //    efficiency in e.g. ctype functions.
  9019  
  9020  type X__locale_struct = struct {
  9021  	F__locales       [13]uintptr
  9022  	F__ctype_b       uintptr
  9023  	F__ctype_tolower uintptr
  9024  	F__ctype_toupper uintptr
  9025  	F__names         [13]uintptr
  9026  } /* __locale_t.h:28:1 */
  9027  
  9028  type X__locale_t = uintptr /* __locale_t.h:42:32 */
  9029  
  9030  type Locale_t = X__locale_t /* locale_t.h:24:20 */
  9031  
  9032  // the new Xfuncs.h
  9033  
  9034  // the ANSI C way
  9035  
  9036  //
  9037  //  O/S-dependent (mis)feature macro definitions
  9038  //
  9039  // Copyright 1991, 1998  The Open Group
  9040  //
  9041  // Permission to use, copy, modify, distribute, and sell this software and its
  9042  // documentation for any purpose is hereby granted without fee, provided that
  9043  // the above copyright notice appear in all copies and that both that
  9044  // copyright notice and this permission notice appear in supporting
  9045  // documentation.
  9046  //
  9047  // The above copyright notice and this permission notice shall be included in
  9048  // all copies or substantial portions of the Software.
  9049  //
  9050  // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
  9051  // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
  9052  // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL THE
  9053  // OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
  9054  // AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
  9055  // CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
  9056  //
  9057  // Except as contained in this notice, the name of The Open Group shall not be
  9058  // used in advertising or otherwise to promote the sale, use or other dealings
  9059  // in this Software without prior written authorization from The Open Group.
  9060  //
  9061  
  9062  // Utek leaves kernel macros around in include files (bleah)
  9063  
  9064  // Copyright (C) 1991-2020 Free Software Foundation, Inc.
  9065  //    This file is part of the GNU C Library.
  9066  //
  9067  //    The GNU C Library is free software; you can redistribute it and/or
  9068  //    modify it under the terms of the GNU Lesser General Public
  9069  //    License as published by the Free Software Foundation; either
  9070  //    version 2.1 of the License, or (at your option) any later version.
  9071  //
  9072  //    The GNU C Library is distributed in the hope that it will be useful,
  9073  //    but WITHOUT ANY WARRANTY; without even the implied warranty of
  9074  //    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
  9075  //    Lesser General Public License for more details.
  9076  //
  9077  //    You should have received a copy of the GNU Lesser General Public
  9078  //    License along with the GNU C Library; if not, see
  9079  //    <https://www.gnu.org/licenses/>.
  9080  
  9081  //	ISO C99 Standard: 7.20 General utilities	<stdlib.h>
  9082  
  9083  // Handle feature test macros at the start of a header.
  9084  //    Copyright (C) 2016-2020 Free Software Foundation, Inc.
  9085  //    This file is part of the GNU C Library.
  9086  //
  9087  //    The GNU C Library is free software; you can redistribute it and/or
  9088  //    modify it under the terms of the GNU Lesser General Public
  9089  //    License as published by the Free Software Foundation; either
  9090  //    version 2.1 of the License, or (at your option) any later version.
  9091  //
  9092  //    The GNU C Library is distributed in the hope that it will be useful,
  9093  //    but WITHOUT ANY WARRANTY; without even the implied warranty of
  9094  //    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
  9095  //    Lesser General Public License for more details.
  9096  //
  9097  //    You should have received a copy of the GNU Lesser General Public
  9098  //    License along with the GNU C Library; if not, see
  9099  //    <https://www.gnu.org/licenses/>.
  9100  
  9101  // This header is internal to glibc and should not be included outside
  9102  //    of glibc headers.  Headers including it must define
  9103  //    __GLIBC_INTERNAL_STARTING_HEADER_IMPLEMENTATION first.  This header
  9104  //    cannot have multiple include guards because ISO C feature test
  9105  //    macros depend on the definition of the macro when an affected
  9106  //    header is included, not when the first system header is
  9107  //    included.
  9108  
  9109  // Copyright (C) 1991-2020 Free Software Foundation, Inc.
  9110  //    This file is part of the GNU C Library.
  9111  //
  9112  //    The GNU C Library is free software; you can redistribute it and/or
  9113  //    modify it under the terms of the GNU Lesser General Public
  9114  //    License as published by the Free Software Foundation; either
  9115  //    version 2.1 of the License, or (at your option) any later version.
  9116  //
  9117  //    The GNU C Library is distributed in the hope that it will be useful,
  9118  //    but WITHOUT ANY WARRANTY; without even the implied warranty of
  9119  //    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
  9120  //    Lesser General Public License for more details.
  9121  //
  9122  //    You should have received a copy of the GNU Lesser General Public
  9123  //    License along with the GNU C Library; if not, see
  9124  //    <https://www.gnu.org/licenses/>.
  9125  
  9126  // ISO/IEC TR 24731-2:2010 defines the __STDC_WANT_LIB_EXT2__
  9127  //    macro.
  9128  
  9129  // ISO/IEC TS 18661-1:2014 defines the __STDC_WANT_IEC_60559_BFP_EXT__
  9130  //    macro.  Most but not all symbols enabled by that macro in TS
  9131  //    18661-1 are enabled unconditionally in C2X; the symbols in Annex F
  9132  //    still require that macro in C2X.
  9133  
  9134  // ISO/IEC TS 18661-4:2015 defines the
  9135  //    __STDC_WANT_IEC_60559_FUNCS_EXT__ macro.  Other than the reduction
  9136  //    functions, the symbols from this TS are enabled unconditionally in
  9137  //    C2X.
  9138  
  9139  // ISO/IEC TS 18661-3:2015 defines the
  9140  //    __STDC_WANT_IEC_60559_TYPES_EXT__ macro.
  9141  
  9142  // Get size_t, wchar_t and NULL from <stddef.h>.
  9143  // Copyright (C) 1989-2020 Free Software Foundation, Inc.
  9144  //
  9145  // This file is part of GCC.
  9146  //
  9147  // GCC is free software; you can redistribute it and/or modify
  9148  // it under the terms of the GNU General Public License as published by
  9149  // the Free Software Foundation; either version 3, or (at your option)
  9150  // any later version.
  9151  //
  9152  // GCC is distributed in the hope that it will be useful,
  9153  // but WITHOUT ANY WARRANTY; without even the implied warranty of
  9154  // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  9155  // GNU General Public License for more details.
  9156  //
  9157  // Under Section 7 of GPL version 3, you are granted additional
  9158  // permissions described in the GCC Runtime Library Exception, version
  9159  // 3.1, as published by the Free Software Foundation.
  9160  //
  9161  // You should have received a copy of the GNU General Public License and
  9162  // a copy of the GCC Runtime Library Exception along with this program;
  9163  // see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see
  9164  // <http://www.gnu.org/licenses/>.
  9165  
  9166  // ISO C Standard:  7.17  Common definitions  <stddef.h>
  9167  
  9168  // Any one of these symbols __need_* means that GNU libc
  9169  //    wants us just to define one data type.  So don't define
  9170  //    the symbols that indicate this file's entire job has been done.
  9171  
  9172  // This avoids lossage on SunOS but only if stdtypes.h comes first.
  9173  //    There's no way to win with the other order!  Sun lossage.
  9174  
  9175  // Sequent's header files use _PTRDIFF_T_ in some conflicting way.
  9176  //    Just ignore it.
  9177  
  9178  // On VxWorks, <type/vxTypesBase.h> may have defined macros like
  9179  //    _TYPE_size_t which will typedef size_t.  fixincludes patched the
  9180  //    vxTypesBase.h so that this macro is only defined if _GCC_SIZE_T is
  9181  //    not defined, and so that defining this macro defines _GCC_SIZE_T.
  9182  //    If we find that the macros are still defined at this point, we must
  9183  //    invoke them so that the type is defined as expected.
  9184  
  9185  // In case nobody has defined these types, but we aren't running under
  9186  //    GCC 2.00, make sure that __PTRDIFF_TYPE__, __SIZE_TYPE__, and
  9187  //    __WCHAR_TYPE__ have reasonable values.  This can happen if the
  9188  //    parts of GCC is compiled by an older compiler, that actually
  9189  //    include gstddef.h, such as collect2.
  9190  
  9191  // Signed type of difference of two pointers.
  9192  
  9193  // Define this type if we are doing the whole job,
  9194  //    or if we want this type in particular.
  9195  
  9196  // If this symbol has done its job, get rid of it.
  9197  
  9198  // Unsigned type of `sizeof' something.
  9199  
  9200  // Define this type if we are doing the whole job,
  9201  //    or if we want this type in particular.
  9202  
  9203  // Wide character type.
  9204  //    Locale-writers should change this as necessary to
  9205  //    be big enough to hold unique values not between 0 and 127,
  9206  //    and not (wchar_t) -1, for each defined multibyte character.
  9207  
  9208  // Define this type if we are doing the whole job,
  9209  //    or if we want this type in particular.
  9210  
  9211  // A null pointer constant.
  9212  
  9213  // Offset of member MEMBER in a struct of type TYPE.
  9214  
  9215  // XPG requires a few symbols from <sys/wait.h> being defined.
  9216  // Definitions of flag bits for `waitpid' et al.
  9217  //    Copyright (C) 1992-2020 Free Software Foundation, Inc.
  9218  //    This file is part of the GNU C Library.
  9219  //
  9220  //    The GNU C Library is free software; you can redistribute it and/or
  9221  //    modify it under the terms of the GNU Lesser General Public
  9222  //    License as published by the Free Software Foundation; either
  9223  //    version 2.1 of the License, or (at your option) any later version.
  9224  //
  9225  //    The GNU C Library is distributed in the hope that it will be useful,
  9226  //    but WITHOUT ANY WARRANTY; without even the implied warranty of
  9227  //    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
  9228  //    Lesser General Public License for more details.
  9229  //
  9230  //    You should have received a copy of the GNU Lesser General Public
  9231  //    License along with the GNU C Library; if not, see
  9232  //    <https://www.gnu.org/licenses/>.
  9233  
  9234  // Bits in the third argument to `waitpid'.
  9235  
  9236  // Bits in the fourth argument to `waitid'.
  9237  
  9238  // The following values are used by the `waitid' function.
  9239  
  9240  // The Linux kernel defines these bare, rather than an enum,
  9241  //    which causes a conflict if the include order is reversed.
  9242  
  9243  type Idtype_t = uint32 /* waitflags.h:57:3 */
  9244  // Definitions of status bits for `wait' et al.
  9245  //    Copyright (C) 1992-2020 Free Software Foundation, Inc.
  9246  //    This file is part of the GNU C Library.
  9247  //
  9248  //    The GNU C Library is free software; you can redistribute it and/or
  9249  //    modify it under the terms of the GNU Lesser General Public
  9250  //    License as published by the Free Software Foundation; either
  9251  //    version 2.1 of the License, or (at your option) any later version.
  9252  //
  9253  //    The GNU C Library is distributed in the hope that it will be useful,
  9254  //    but WITHOUT ANY WARRANTY; without even the implied warranty of
  9255  //    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
  9256  //    Lesser General Public License for more details.
  9257  //
  9258  //    You should have received a copy of the GNU Lesser General Public
  9259  //    License along with the GNU C Library; if not, see
  9260  //    <https://www.gnu.org/licenses/>.
  9261  
  9262  // Everything extant so far uses these same bits.
  9263  
  9264  // If WIFEXITED(STATUS), the low-order 8 bits of the status.
  9265  
  9266  // If WIFSIGNALED(STATUS), the terminating signal.
  9267  
  9268  // If WIFSTOPPED(STATUS), the signal that stopped the child.
  9269  
  9270  // Nonzero if STATUS indicates normal termination.
  9271  
  9272  // Nonzero if STATUS indicates termination by a signal.
  9273  
  9274  // Nonzero if STATUS indicates the child is stopped.
  9275  
  9276  // Nonzero if STATUS indicates the child continued after a stop.  We only
  9277  //    define this if <bits/waitflags.h> provides the WCONTINUED flag bit.
  9278  
  9279  // Nonzero if STATUS indicates the child dumped core.
  9280  
  9281  // Macros for constructing status values.
  9282  
  9283  // Define the macros <sys/wait.h> also would define this way.
  9284  
  9285  // _FloatN API tests for enablement.
  9286  // Macros to control TS 18661-3 glibc features.
  9287  //    Copyright (C) 2017-2020 Free Software Foundation, Inc.
  9288  //    This file is part of the GNU C Library.
  9289  //
  9290  //    The GNU C Library is free software; you can redistribute it and/or
  9291  //    modify it under the terms of the GNU Lesser General Public
  9292  //    License as published by the Free Software Foundation; either
  9293  //    version 2.1 of the License, or (at your option) any later version.
  9294  //
  9295  //    The GNU C Library is distributed in the hope that it will be useful,
  9296  //    but WITHOUT ANY WARRANTY; without even the implied warranty of
  9297  //    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
  9298  //    Lesser General Public License for more details.
  9299  //
  9300  //    You should have received a copy of the GNU Lesser General Public
  9301  //    License along with the GNU C Library; if not, see
  9302  //    <https://www.gnu.org/licenses/>.
  9303  
  9304  // Defined to 1 if the current compiler invocation provides a
  9305  //    floating-point type with the IEEE 754 binary128 format, and this glibc
  9306  //    includes corresponding *f128 interfaces for it.
  9307  
  9308  // Defined to 1 if __HAVE_FLOAT128 is 1 and the type is ABI-distinct
  9309  //    from the default float, double and long double types in this glibc.
  9310  
  9311  // Defined to 1 if the current compiler invocation provides a
  9312  //    floating-point type with the right format for _Float64x, and this
  9313  //    glibc includes corresponding *f64x interfaces for it.
  9314  
  9315  // Defined to 1 if __HAVE_FLOAT64X is 1 and _Float64x has the format
  9316  //    of long double.  Otherwise, if __HAVE_FLOAT64X is 1, _Float64x has
  9317  //    the format of _Float128, which must be different from that of long
  9318  //    double.
  9319  
  9320  // Defined to concatenate the literal suffix to be used with _Float128
  9321  //    types, if __HAVE_FLOAT128 is 1.
  9322  //    E.g.: #define __f128(x) x##f128.
  9323  
  9324  // Defined to a complex binary128 type if __HAVE_FLOAT128 is 1.
  9325  //    E.g.: #define __CFLOAT128 _Complex _Float128.
  9326  
  9327  // Macros to control TS 18661-3 glibc features where the same
  9328  //    definitions are appropriate for all platforms.
  9329  //    Copyright (C) 2017-2020 Free Software Foundation, Inc.
  9330  //    This file is part of the GNU C Library.
  9331  //
  9332  //    The GNU C Library is free software; you can redistribute it and/or
  9333  //    modify it under the terms of the GNU Lesser General Public
  9334  //    License as published by the Free Software Foundation; either
  9335  //    version 2.1 of the License, or (at your option) any later version.
  9336  //
  9337  //    The GNU C Library is distributed in the hope that it will be useful,
  9338  //    but WITHOUT ANY WARRANTY; without even the implied warranty of
  9339  //    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
  9340  //    Lesser General Public License for more details.
  9341  //
  9342  //    You should have received a copy of the GNU Lesser General Public
  9343  //    License along with the GNU C Library; if not, see
  9344  //    <https://www.gnu.org/licenses/>.
  9345  
  9346  // Copyright (C) 1991-2020 Free Software Foundation, Inc.
  9347  //    This file is part of the GNU C Library.
  9348  //
  9349  //    The GNU C Library is free software; you can redistribute it and/or
  9350  //    modify it under the terms of the GNU Lesser General Public
  9351  //    License as published by the Free Software Foundation; either
  9352  //    version 2.1 of the License, or (at your option) any later version.
  9353  //
  9354  //    The GNU C Library is distributed in the hope that it will be useful,
  9355  //    but WITHOUT ANY WARRANTY; without even the implied warranty of
  9356  //    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
  9357  //    Lesser General Public License for more details.
  9358  //
  9359  //    You should have received a copy of the GNU Lesser General Public
  9360  //    License along with the GNU C Library; if not, see
  9361  //    <https://www.gnu.org/licenses/>.
  9362  
  9363  // Properties of long double type.
  9364  //    Copyright (C) 2016-2020 Free Software Foundation, Inc.
  9365  //    This file is part of the GNU C Library.
  9366  //
  9367  //    The GNU C Library is free software; you can redistribute it and/or
  9368  //    modify it under the terms of the GNU Lesser General Public
  9369  //    License  published by the Free Software Foundation; either
  9370  //    version 2.1 of the License, or (at your option) any later version.
  9371  //
  9372  //    The GNU C Library is distributed in the hope that it will be useful,
  9373  //    but WITHOUT ANY WARRANTY; without even the implied warranty of
  9374  //    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
  9375  //    Lesser General Public License for more details.
  9376  //
  9377  //    You should have received a copy of the GNU Lesser General Public
  9378  //    License along with the GNU C Library; if not, see
  9379  //    <https://www.gnu.org/licenses/>.
  9380  
  9381  // This header is included by <sys/cdefs.h>.
  9382  //
  9383  //    If long double is ABI-compatible with double, it should define
  9384  //    __NO_LONG_DOUBLE_MATH to 1; otherwise, it should leave
  9385  //    __NO_LONG_DOUBLE_MATH undefined.
  9386  //
  9387  //    If this build of the GNU C Library supports both long double
  9388  //    ABI-compatible with double and some other long double format not
  9389  //    ABI-compatible with double, it should define
  9390  //    __LONG_DOUBLE_MATH_OPTIONAL to 1; otherwise, it should leave
  9391  //    __LONG_DOUBLE_MATH_OPTIONAL undefined.
  9392  //
  9393  //    If __NO_LONG_DOUBLE_MATH is already defined, this header must not
  9394  //    define anything; this is needed to work with the definition of
  9395  //    __NO_LONG_DOUBLE_MATH in nldbl-compat.h.
  9396  
  9397  // In the default version of this header, long double is
  9398  //    ABI-compatible with double.
  9399  
  9400  // This header should be included at the bottom of each bits/floatn.h.
  9401  //    It defines the following macros for each _FloatN and _FloatNx type,
  9402  //    where the same definitions, or definitions based only on the macros
  9403  //    in bits/floatn.h, are appropriate for all glibc configurations.
  9404  
  9405  // Defined to 1 if the current compiler invocation provides a
  9406  //    floating-point type with the right format for this type, and this
  9407  //    glibc includes corresponding *fN or *fNx interfaces for it.
  9408  
  9409  // Defined to 1 if the corresponding __HAVE_<type> macro is 1 and the
  9410  //    type is the first with its format in the sequence of (the default
  9411  //    choices for) float, double, long double, _Float16, _Float32,
  9412  //    _Float64, _Float128, _Float32x, _Float64x, _Float128x for this
  9413  //    glibc; that is, if functions present once per floating-point format
  9414  //    rather than once per type are present for this type.
  9415  //
  9416  //    All configurations supported by glibc have _Float32 the same format
  9417  //    as float, _Float64 and _Float32x the same format as double, the
  9418  //    _Float64x the same format as either long double or _Float128.  No
  9419  //    configurations support _Float128x or, as of GCC 7, have compiler
  9420  //    support for a type meeting the requirements for _Float128x.
  9421  
  9422  // Defined to 1 if the corresponding _FloatN type is not binary compatible
  9423  //    with the corresponding ISO C type in the current compilation unit as
  9424  //    opposed to __HAVE_DISTINCT_FLOATN, which indicates the default types built
  9425  //    in glibc.
  9426  
  9427  // Defined to 1 if any _FloatN or _FloatNx types that are not
  9428  //    ABI-distinct are however distinct types at the C language level (so
  9429  //    for the purposes of __builtin_types_compatible_p and _Generic).
  9430  
  9431  // Defined to concatenate the literal suffix to be used with _FloatN
  9432  //    or _FloatNx types, if __HAVE_<type> is 1.  The corresponding
  9433  //    literal suffixes exist since GCC 7, for C only.
  9434  
  9435  // Defined to a complex type if __HAVE_<type> is 1.
  9436  
  9437  // The remaining of this file provides support for older compilers.
  9438  
  9439  // If double, long double and _Float64 all have the same set of
  9440  //    values, TS 18661-3 requires the usual arithmetic conversions on
  9441  //    long double and _Float64 to produce _Float64.  For this to be the
  9442  //    case when building with a compiler without a distinct _Float64
  9443  //    type, _Float64 must be a typedef for long double, not for
  9444  //    double.
  9445  
  9446  // Returned by `div'.
  9447  type Div_t = struct {
  9448  	Fquot int32
  9449  	Frem  int32
  9450  } /* stdlib.h:62:5 */
  9451  
  9452  // Returned by `ldiv'.
  9453  type Ldiv_t = struct {
  9454  	Fquot int32
  9455  	Frem  int32
  9456  } /* stdlib.h:70:5 */
  9457  
  9458  // Returned by `lldiv'.
  9459  type Lldiv_t = struct {
  9460  	Fquot int64
  9461  	Frem  int64
  9462  } /* stdlib.h:80:5 */
  9463  
  9464  // Reentrant versions of the `random' family of functions.
  9465  //    These functions all use the following data structure to contain
  9466  //    state, rather than global state variables.
  9467  
  9468  type Random_data = struct {
  9469  	Ffptr      uintptr
  9470  	Frptr      uintptr
  9471  	Fstate     uintptr
  9472  	Frand_type int32
  9473  	Frand_deg  int32
  9474  	Frand_sep  int32
  9475  	Fend_ptr   uintptr
  9476  } /* stdlib.h:423:1 */
  9477  
  9478  // Data structure for communication with thread safe versions.  This
  9479  //    type is to be regarded as opaque.  It's only exported because users
  9480  //    have to allocate objects of this type.
  9481  type Drand48_data = struct {
  9482  	F__x     [3]uint16
  9483  	F__old_x [3]uint16
  9484  	F__c     uint16
  9485  	F__init  uint16
  9486  	F__a     uint64
  9487  } /* stdlib.h:490:1 */
  9488  
  9489  // Shorthand for type of comparison functions.
  9490  type X__compar_fn_t = uintptr /* stdlib.h:808:13 */
  9491  
  9492  // Floating-point inline functions for stdlib.h.
  9493  //    Copyright (C) 2012-2020 Free Software Foundation, Inc.
  9494  //    This file is part of the GNU C Library.
  9495  //
  9496  //    The GNU C Library is free software; you can redistribute it and/or
  9497  //    modify it under the terms of the GNU Lesser General Public
  9498  //    License as published by the Free Software Foundation; either
  9499  //    version 2.1 of the License, or (at your option) any later version.
  9500  //
  9501  //    The GNU C Library is distributed in the hope that it will be useful,
  9502  //    but WITHOUT ANY WARRANTY; without even the implied warranty of
  9503  //    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
  9504  //    Lesser General Public License for more details.
  9505  //
  9506  //    You should have received a copy of the GNU Lesser General Public
  9507  //    License along with the GNU C Library; if not, see
  9508  //    <https://www.gnu.org/licenses/>.
  9509  
  9510  // Define some macros helping to catch buffer overflows.
  9511  
  9512  // Copyright (C) 1991-2020 Free Software Foundation, Inc.
  9513  //    This file is part of the GNU C Library.
  9514  //
  9515  //    The GNU C Library is free software; you can redistribute it and/or
  9516  //    modify it under the terms of the GNU Lesser General Public
  9517  //    License as published by the Free Software Foundation; either
  9518  //    version 2.1 of the License, or (at your option) any later version.
  9519  //
  9520  //    The GNU C Library is distributed in the hope that it will be useful,
  9521  //    but WITHOUT ANY WARRANTY; without even the implied warranty of
  9522  //    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
  9523  //    Lesser General Public License for more details.
  9524  //
  9525  //    You should have received a copy of the GNU Lesser General Public
  9526  //    License along with the GNU C Library; if not, see
  9527  //    <https://www.gnu.org/licenses/>.
  9528  
  9529  //	ISO C99 Standard: 7.21 String handling	<string.h>
  9530  
  9531  //
  9532  //
  9533  // Copyright 1989, 1991, 1998  The Open Group
  9534  //
  9535  // Permission to use, copy, modify, distribute, and sell this software and its
  9536  // documentation for any purpose is hereby granted without fee, provided that
  9537  // the above copyright notice appear in all copies and that both that
  9538  // copyright notice and this permission notice appear in supporting
  9539  // documentation.
  9540  //
  9541  // The above copyright notice and this permission notice shall be included in
  9542  // all copies or substantial portions of the Software.
  9543  //
  9544  // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
  9545  // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
  9546  // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL THE
  9547  // OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
  9548  // AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
  9549  // CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
  9550  //
  9551  // Except as contained in this notice, the name of The Open Group shall not be
  9552  // used in advertising or otherwise to promote the sale, use or other dealings
  9553  // in this Software without prior written authorization from The Open Group.
  9554  //  *
  9555  //
  9556  
  9557  // Definitions to make function prototypes manageable
  9558  
  9559  // The following definitions can be used for locking requests in multi-threaded
  9560  // address spaces.
  9561  // Author: Stephen Gildea, MIT X Consortium
  9562  //
  9563  // declarations for C Threads locking
  9564  
  9565  type LockInfoPtr = uintptr /* Xlibint.h:365:29 */
  9566  // Data - Place data in the buffer and pad the end to provide
  9567  // 32 bit word alignment.  Transmit if the buffer fills.
  9568  //
  9569  // "dpy" is a pointer to a Display.
  9570  // "data" is a pointer to a data buffer.
  9571  // "len" is the length of the data buffer.
  9572  
  9573  // Allocate bytes from the buffer.  No padding is done, so if
  9574  // the length is not a multiple of 4, the caller must be
  9575  // careful to leave the buffer aligned after sending the
  9576  // current request.
  9577  //
  9578  // "type" is the type of the pointer being assigned to.
  9579  // "ptr" is the pointer being assigned to.
  9580  // "n" is the number of bytes to allocate.
  9581  //
  9582  // Example:
  9583  //    xTextElt *elt;
  9584  //    BufAlloc (xTextElt *, elt, nbytes)
  9585  
  9586  // Xlib manual is bogus
  9587  
  9588  // CI_GET_CHAR_INFO_1D - return the charinfo struct for the indicated 8bit
  9589  // character.  If the character is in the column and exists, then return the
  9590  // appropriate metrics (note that fonts with common per-character metrics will
  9591  // return min_bounds).  If none of these hold true, try again with the default
  9592  // char.
  9593  
  9594  // CI_GET_CHAR_INFO_2D - return the charinfo struct for the indicated row and
  9595  // column.  This is used for fonts that have more than row zero.
  9596  
  9597  // srcvar must be a variable for large architecture version
  9598  
  9599  type X_XAsyncHandler = X_XInternalAsync /* Xlibint.h:784:3 */
  9600  
  9601  // This struct is part of the ABI and is defined by value
  9602  // in user-code. This means that we cannot make
  9603  // the sequence-numbers 64bit.
  9604  type X_XAsyncEState = struct {
  9605  	Fmin_sequence_number uint32
  9606  	Fmax_sequence_number uint32
  9607  	Ferror_code          uint8
  9608  	Fmajor_opcode        uint8
  9609  	Fminor_opcode        uint16
  9610  	Flast_error_received uint8
  9611  	F__ccgo_pad1         [3]byte
  9612  	Ferror_count         int32
  9613  } /* Xlibint.h:791:9 */
  9614  
  9615  // This struct is part of the ABI and is defined by value
  9616  // in user-code. This means that we cannot make
  9617  // the sequence-numbers 64bit.
  9618  type X_XAsyncErrorState = X_XAsyncEState /* Xlibint.h:799:3 */
  9619  
  9620  type FreeFuncType = uintptr /* Xlibint.h:809:14 */
  9621  
  9622  type FreeModmapType = uintptr /* Xlibint.h:813:13 */
  9623  
  9624  // This structure is private to the library.
  9625  type X_XFreeFuncRec = X_XFreeFuncs /* Xlibint.h:830:3 */
  9626  
  9627  // types for InitExt.c
  9628  type CreateGCType = uintptr /* Xlibint.h:833:13 */
  9629  
  9630  type CopyGCType = uintptr /* Xlibint.h:839:13 */
  9631  
  9632  type FlushGCType = uintptr /* Xlibint.h:845:13 */
  9633  
  9634  type FreeGCType = uintptr /* Xlibint.h:851:13 */
  9635  
  9636  type CreateFontType = uintptr /* Xlibint.h:857:13 */
  9637  
  9638  type FreeFontType = uintptr /* Xlibint.h:863:13 */
  9639  
  9640  type CloseDisplayType = uintptr /* Xlibint.h:869:13 */
  9641  
  9642  type ErrorType = uintptr /* Xlibint.h:874:13 */
  9643  
  9644  type ErrorStringType = uintptr /* Xlibint.h:881:13 */
  9645  
  9646  type PrintErrorType = uintptr /* Xlibint.h:889:14 */
  9647  
  9648  type BeforeFlushType = uintptr /* Xlibint.h:895:14 */
  9649  
  9650  // This structure is private to the library.
  9651  type X_XExtension = X_XExten /* Xlibint.h:921:3 */
  9652  
  9653  // internal connections for IMs
  9654  
  9655  type X_XInternalConnectionProc = uintptr /* Xlibint.h:1282:14 */
  9656  
  9657  //**********************************************************
  9658  //
  9659  // Copyright 1987, 1998  The Open Group
  9660  //
  9661  // Permission to use, copy, modify, distribute, and sell this software and its
  9662  // documentation for any purpose is hereby granted without fee, provided that
  9663  // the above copyright notice appear in all copies and that both that
  9664  // copyright notice and this permission notice appear in supporting
  9665  // documentation.
  9666  //
  9667  // The above copyright notice and this permission notice shall be included in
  9668  // all copies or substantial portions of the Software.
  9669  //
  9670  // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
  9671  // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
  9672  // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL THE
  9673  // OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
  9674  // AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
  9675  // CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
  9676  //
  9677  // Except as contained in this notice, the name of The Open Group shall not be
  9678  // used in advertising or otherwise to promote the sale, use or other dealings
  9679  // in this Software without prior written authorization from The Open Group.
  9680  //
  9681  //
  9682  // Copyright 1987 by Digital Equipment Corporation, Maynard, Massachusetts.
  9683  //
  9684  //                         All Rights Reserved
  9685  //
  9686  // Permission to use, copy, modify, and distribute this software and its
  9687  // documentation for any purpose and without fee is hereby granted,
  9688  // provided that the above copyright notice appear in all copies and that
  9689  // both that copyright notice and this permission notice appear in
  9690  // supporting documentation, and that the name of Digital not be
  9691  // used in advertising or publicity pertaining to distribution of the
  9692  // software without specific, written prior permission.
  9693  //
  9694  // DIGITAL DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING
  9695  // ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL
  9696  // DIGITAL BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR
  9697  // ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
  9698  // WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,
  9699  // ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
  9700  // SOFTWARE.
  9701  //
  9702  // *****************************************************************
  9703  
  9704  // You must include <X11/Xlib.h> before including this file
  9705  //
  9706  //
  9707  // Copyright 1985, 1986, 1987, 1991, 1998  The Open Group
  9708  //
  9709  // Permission to use, copy, modify, distribute, and sell this software and its
  9710  // documentation for any purpose is hereby granted without fee, provided that
  9711  // the above copyright notice appear in all copies and that both that
  9712  // copyright notice and this permission notice appear in supporting
  9713  // documentation.
  9714  //
  9715  // The above copyright notice and this permission notice shall be included in
  9716  // all copies or substantial portions of the Software.
  9717  //
  9718  // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
  9719  // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
  9720  // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL THE
  9721  // OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
  9722  // AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
  9723  // CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
  9724  //
  9725  // Except as contained in this notice, the name of The Open Group shall not be
  9726  // used in advertising or otherwise to promote the sale, use or other dealings
  9727  // in this Software without prior written authorization from The Open Group.
  9728  //
  9729  
  9730  //	Xlib.h - Header definition and support file for the C subroutine
  9731  //	interface library (Xlib) to the X Window System Protocol (V11).
  9732  //	Structures and symbols starting with "_" are private to the library.
  9733  //**********************************************************
  9734  //
  9735  // Copyright 1987, 1998  The Open Group
  9736  //
  9737  // Permission to use, copy, modify, distribute, and sell this software and its
  9738  // documentation for any purpose is hereby granted without fee, provided that
  9739  // the above copyright notice appear in all copies and that both that
  9740  // copyright notice and this permission notice appear in supporting
  9741  // documentation.
  9742  //
  9743  // The above copyright notice and this permission notice shall be included in
  9744  // all copies or substantial portions of the Software.
  9745  //
  9746  // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
  9747  // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
  9748  // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL THE
  9749  // OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
  9750  // AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
  9751  // CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
  9752  //
  9753  // Except as contained in this notice, the name of The Open Group shall not be
  9754  // used in advertising or otherwise to promote the sale, use or other dealings
  9755  // in this Software without prior written authorization from The Open Group.
  9756  //
  9757  //
  9758  // Copyright 1987 by Digital Equipment Corporation, Maynard, Massachusetts.
  9759  //
  9760  //                         All Rights Reserved
  9761  //
  9762  // Permission to use, copy, modify, and distribute this software and its
  9763  // documentation for any purpose and without fee is hereby granted,
  9764  // provided that the above copyright notice appear in all copies and that
  9765  // both that copyright notice and this permission notice appear in
  9766  // supporting documentation, and that the name of Digital not be
  9767  // used in advertising or publicity pertaining to distribution of the
  9768  // software without specific, written prior permission.
  9769  //
  9770  // DIGITAL DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING
  9771  // ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL
  9772  // DIGITAL BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR
  9773  // ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
  9774  // WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,
  9775  // ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
  9776  // SOFTWARE.
  9777  //
  9778  // *****************************************************************
  9779  
  9780  // default keysyms
  9781  
  9782  //**********************************************************
  9783  // Copyright 1987, 1994, 1998  The Open Group
  9784  //
  9785  // Permission to use, copy, modify, distribute, and sell this software and its
  9786  // documentation for any purpose is hereby granted without fee, provided that
  9787  // the above copyright notice appear in all copies and that both that
  9788  // copyright notice and this permission notice appear in supporting
  9789  // documentation.
  9790  //
  9791  // The above copyright notice and this permission notice shall be included
  9792  // in all copies or substantial portions of the Software.
  9793  //
  9794  // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
  9795  // OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
  9796  // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
  9797  // IN NO EVENT SHALL THE OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR
  9798  // OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
  9799  // ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
  9800  // OTHER DEALINGS IN THE SOFTWARE.
  9801  //
  9802  // Except as contained in this notice, the name of The Open Group shall
  9803  // not be used in advertising or otherwise to promote the sale, use or
  9804  // other dealings in this Software without prior written authorization
  9805  // from The Open Group.
  9806  //
  9807  //
  9808  // Copyright 1987 by Digital Equipment Corporation, Maynard, Massachusetts
  9809  //
  9810  //                         All Rights Reserved
  9811  //
  9812  // Permission to use, copy, modify, and distribute this software and its
  9813  // documentation for any purpose and without fee is hereby granted,
  9814  // provided that the above copyright notice appear in all copies and that
  9815  // both that copyright notice and this permission notice appear in
  9816  // supporting documentation, and that the name of Digital not be
  9817  // used in advertising or publicity pertaining to distribution of the
  9818  // software without specific, written prior permission.
  9819  //
  9820  // DIGITAL DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING
  9821  // ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL
  9822  // DIGITAL BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR
  9823  // ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
  9824  // WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,
  9825  // ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
  9826  // SOFTWARE.
  9827  //
  9828  // *****************************************************************
  9829  
  9830  // The "X11 Window System Protocol" standard defines in Appendix A the
  9831  // keysym codes. These 29-bit integer values identify characters or
  9832  // functions associated with each key (e.g., via the visible
  9833  // engraving) of a keyboard layout. This file assigns mnemonic macro
  9834  // names for these keysyms.
  9835  //
  9836  // This file is also compiled (by src/util/makekeys.c in libX11) into
  9837  // hash tables that can be accessed with X11 library functions such as
  9838  // XStringToKeysym() and XKeysymToString().
  9839  //
  9840  // Where a keysym corresponds one-to-one to an ISO 10646 / Unicode
  9841  // character, this is noted in a comment that provides both the U+xxxx
  9842  // Unicode position, as well as the official Unicode name of the
  9843  // character.
  9844  //
  9845  // Where the correspondence is either not one-to-one or semantically
  9846  // unclear, the Unicode position and name are enclosed in
  9847  // parentheses. Such legacy keysyms should be considered deprecated
  9848  // and are not recommended for use in future keyboard mappings.
  9849  //
  9850  // For any future extension of the keysyms with characters already
  9851  // found in ISO 10646 / Unicode, the following algorithm shall be
  9852  // used. The new keysym code position will simply be the character's
  9853  // Unicode number plus 0x01000000. The keysym values in the range
  9854  // 0x01000100 to 0x0110ffff are reserved to represent Unicode
  9855  // characters in the range U+0100 to U+10FFFF.
  9856  //
  9857  // While most newer Unicode-based X11 clients do already accept
  9858  // Unicode-mapped keysyms in the range 0x01000100 to 0x0110ffff, it
  9859  // will remain necessary for clients -- in the interest of
  9860  // compatibility with existing servers -- to also understand the
  9861  // existing legacy keysym values in the range 0x0100 to 0x20ff.
  9862  //
  9863  // Where several mnemonic names are defined for the same keysym in this
  9864  // file, all but the first one listed should be considered deprecated.
  9865  //
  9866  // Mnemonic names for keysyms are defined in this file with lines
  9867  // that match one of these Perl regular expressions:
  9868  //
  9869  //    /^\#define XK_([a-zA-Z_0-9]+)\s+0x([0-9a-f]+)\s*\/\* U+([0-9A-F]{4,6}) (.*) \*\/\s*$/
  9870  //    /^\#define XK_([a-zA-Z_0-9]+)\s+0x([0-9a-f]+)\s*\/\*\(U+([0-9A-F]{4,6}) (.*)\)\*\/\s*$/
  9871  //    /^\#define XK_([a-zA-Z_0-9]+)\s+0x([0-9a-f]+)\s*(\/\*\s*(.*)\s*\*\/)?\s*$/
  9872  //
  9873  // Before adding new keysyms, please do consider the following: In
  9874  // addition to the keysym names defined in this file, the
  9875  // XStringToKeysym() and XKeysymToString() functions will also handle
  9876  // any keysym string of the form "U0020" to "U007E" and "U00A0" to
  9877  // "U10FFFF" for all possible Unicode characters. In other words,
  9878  // every possible Unicode character has already a keysym string
  9879  // defined algorithmically, even if it is not listed here. Therefore,
  9880  // defining an additional keysym macro is only necessary where a
  9881  // non-hexadecimal mnemonic name is needed, or where the new keysym
  9882  // does not represent any existing Unicode character.
  9883  //
  9884  // When adding new keysyms to this file, do not forget to also update the
  9885  // following as needed:
  9886  //
  9887  //   - the mappings in src/KeyBind.c in the libX11 repo
  9888  //     https://gitlab.freedesktop.org/xorg/lib/libx11
  9889  //
  9890  //   - the protocol specification in specs/keysyms.xml in this repo
  9891  //     https://gitlab.freedesktop.org/xorg/proto/xorgproto
  9892  //
  9893  
  9894  // TTY function keys, cleverly chosen to map to ASCII, for convenience of
  9895  // programming, but could have been arbitrary (at the cost of lookup
  9896  // tables in client code).
  9897  
  9898  // International & multi-key character composition
  9899  
  9900  // Japanese keyboard support
  9901  
  9902  // 0xff31 thru 0xff3f are under XK_KOREAN
  9903  
  9904  // Cursor control & motion
  9905  
  9906  // Misc functions
  9907  
  9908  // Keypad functions, keypad numbers cleverly chosen to map to ASCII
  9909  
  9910  // Auxiliary functions; note the duplicate definitions for left and right
  9911  // function keys;  Sun keyboards and a few other manufacturers have such
  9912  // function key groups on the left and/or right sides of the keyboard.
  9913  // We've not found a keyboard with more than 35 function keys total.
  9914  
  9915  // Modifiers
  9916  
  9917  // Keyboard (XKB) Extension function and modifier keys
  9918  // (from Appendix C of "The X Keyboard Extension: Protocol Specification")
  9919  // Byte 3 = 0xfe
  9920  
  9921  // extra dead elements for German T3 layout
  9922  
  9923  // dead vowels for universal syllable entry
  9924  
  9925  // Single-Stroke Multiple-Character N-Graph Keysyms For The X Input Method
  9926  
  9927  // 3270 Terminal Keys
  9928  // Byte 3 = 0xfd
  9929  
  9930  // Latin 1
  9931  // (ISO/IEC 8859-1 = Unicode U+0020..U+00FF)
  9932  // Byte 3 = 0
  9933  
  9934  // Latin 2
  9935  // Byte 3 = 1
  9936  
  9937  // Latin 3
  9938  // Byte 3 = 2
  9939  
  9940  // Latin 4
  9941  // Byte 3 = 3
  9942  
  9943  // Latin 8
  9944  
  9945  // Latin 9
  9946  // Byte 3 = 0x13
  9947  
  9948  // Katakana
  9949  // Byte 3 = 4
  9950  
  9951  // Arabic
  9952  // Byte 3 = 5
  9953  
  9954  // Cyrillic
  9955  // Byte 3 = 6
  9956  
  9957  // Greek
  9958  // (based on an early draft of, and not quite identical to, ISO/IEC 8859-7)
  9959  // Byte 3 = 7
  9960  
  9961  // Technical
  9962  // (from the DEC VT330/VT420 Technical Character Set, http://vt100.net/charsets/technical.html)
  9963  // Byte 3 = 8
  9964  
  9965  // Special
  9966  // (from the DEC VT100 Special Graphics Character Set)
  9967  // Byte 3 = 9
  9968  
  9969  // Publishing
  9970  // (these are probably from a long forgotten DEC Publishing
  9971  // font that once shipped with DECwrite)
  9972  // Byte 3 = 0x0a
  9973  
  9974  // APL
  9975  // Byte 3 = 0x0b
  9976  
  9977  // Hebrew
  9978  // Byte 3 = 0x0c
  9979  
  9980  // Thai
  9981  // Byte 3 = 0x0d
  9982  
  9983  // Korean
  9984  // Byte 3 = 0x0e
  9985  
  9986  // Hangul Consonant Characters
  9987  
  9988  // Hangul Vowel Characters
  9989  
  9990  // Hangul syllable-final (JongSeong) Characters
  9991  
  9992  // Ancient Hangul Consonant Characters
  9993  
  9994  // Ancient Hangul Vowel Characters
  9995  
  9996  // Ancient Hangul syllable-final (JongSeong) Characters
  9997  
  9998  // Korean currency symbol
  9999  
 10000  // Armenian
 10001  
 10002  // Georgian
 10003  
 10004  // Azeri (and other Turkic or Caucasian languages)
 10005  
 10006  // latin
 10007  // those are not really Caucasus
 10008  // For Inupiak
 10009  
 10010  // Vietnamese
 10011  
 10012  // one, two and three are defined above.
 10013  
 10014  // Sinhala (http://unicode.org/charts/PDF/U0D80.pdf)
 10015  // http://www.nongnu.org/sinhala/doc/transliteration/sinhala-transliteration_6.html
 10016  
 10017  // The Xlib structs are full of implicit padding to properly align members.
 10018  //    We can't clean that up without breaking ABI, so tell clang not to bother
 10019  //    complaining about it.
 10020  
 10021  // Bitmask returned by XParseGeometry().  Each bit tells if the corresponding
 10022  // value (x, y, width, height) was found in the parsed string.
 10023  
 10024  // new version containing base_width, base_height, and win_gravity fields;
 10025  // used with WM_NORMAL_HINTS.
 10026  type XSizeHints = struct {
 10027  	Fflags      int32
 10028  	Fx          int32
 10029  	Fy          int32
 10030  	Fwidth      int32
 10031  	Fheight     int32
 10032  	Fmin_width  int32
 10033  	Fmin_height int32
 10034  	Fmax_width  int32
 10035  	Fmax_height int32
 10036  	Fwidth_inc  int32
 10037  	Fheight_inc int32
 10038  	Fmin_aspect struct {
 10039  		Fx int32
 10040  		Fy int32
 10041  	}
 10042  	Fmax_aspect struct {
 10043  		Fx int32
 10044  		Fy int32
 10045  	}
 10046  	Fbase_width  int32
 10047  	Fbase_height int32
 10048  	Fwin_gravity int32
 10049  } /* Xutil.h:94:3 */
 10050  
 10051  // The next block of definitions are for window manager properties that
 10052  // clients and applications use for communication.
 10053  
 10054  // flags argument in size hints
 10055  
 10056  // obsolete
 10057  
 10058  type XWMHints = struct {
 10059  	Fflags         int32
 10060  	Finput         int32
 10061  	Finitial_state int32
 10062  	Ficon_pixmap   Pixmap
 10063  	Ficon_window   Window
 10064  	Ficon_x        int32
 10065  	Ficon_y        int32
 10066  	Ficon_mask     Pixmap
 10067  	Fwindow_group  XID
 10068  } /* Xutil.h:130:3 */
 10069  
 10070  // definition for flags of XWMHints
 10071  
 10072  // definitions for initial window state
 10073  
 10074  // Obsolete states no longer defined by ICCCM
 10075  // some wm's may put it on inactive menu
 10076  
 10077  // new structure for manipulating TEXT properties; used with WM_NAME,
 10078  // WM_ICON_NAME, WM_CLIENT_MACHINE, and WM_COMMAND.
 10079  type XTextProperty = struct {
 10080  	Fvalue    uintptr
 10081  	Fencoding Atom
 10082  	Fformat   int32
 10083  	Fnitems   uint32
 10084  } /* Xutil.h:168:3 */
 10085  
 10086  type XICCEncodingStyle = uint32 /* Xutil.h:181:3 */
 10087  
 10088  type XIconSize = struct {
 10089  	Fmin_width  int32
 10090  	Fmin_height int32
 10091  	Fmax_width  int32
 10092  	Fmax_height int32
 10093  	Fwidth_inc  int32
 10094  	Fheight_inc int32
 10095  } /* Xutil.h:187:3 */
 10096  
 10097  type XClassHint = struct {
 10098  	Fres_name  uintptr
 10099  	Fres_class uintptr
 10100  } /* Xutil.h:192:3 */
 10101  
 10102  // These macros are used to give some sugar to the image routines so that
 10103  // naive people are more comfortable with them.
 10104  
 10105  // Compose sequence status structure, used in calling XLookupString.
 10106  type X_XComposeStatus = struct {
 10107  	Fcompose_ptr   XPointer
 10108  	Fchars_matched int32
 10109  } /* Xutil.h:231:9 */
 10110  
 10111  // These macros are used to give some sugar to the image routines so that
 10112  // naive people are more comfortable with them.
 10113  
 10114  // Compose sequence status structure, used in calling XLookupString.
 10115  type XComposeStatus = X_XComposeStatus /* Xutil.h:234:3 */
 10116  
 10117  // Keysym macros, used on Keysyms to test for classes of symbols
 10118  
 10119  // opaque reference to Region data type
 10120  type X_XRegion = struct {
 10121  	Fsize     int32
 10122  	FnumRects int32
 10123  	Frects    uintptr
 10124  	Fextents  BOX
 10125  } /* Xutil.h:273:9 */
 10126  
 10127  // Keysym macros, used on Keysyms to test for classes of symbols
 10128  
 10129  // opaque reference to Region data type
 10130  type Region = uintptr /* Xutil.h:273:25 */
 10131  
 10132  // Return values from XRectInRegion()
 10133  
 10134  // Information used by the visual utility routines to find desired visual
 10135  // type from the many visuals a display may support.
 10136  
 10137  type XVisualInfo = struct {
 10138  	Fvisual        uintptr
 10139  	Fvisualid      VisualID
 10140  	Fscreen        int32
 10141  	Fdepth         int32
 10142  	Fclass         int32
 10143  	Fred_mask      uint32
 10144  	Fgreen_mask    uint32
 10145  	Fblue_mask     uint32
 10146  	Fcolormap_size int32
 10147  	Fbits_per_rgb  int32
 10148  } /* Xutil.h:302:3 */
 10149  
 10150  // This defines a window manager property that clients may use to
 10151  // share standard color maps of type RGB_COLOR_MAP:
 10152  type XStandardColormap = struct {
 10153  	Fcolormap   Colormap
 10154  	Fred_max    uint32
 10155  	Fred_mult   uint32
 10156  	Fgreen_max  uint32
 10157  	Fgreen_mult uint32
 10158  	Fblue_max   uint32
 10159  	Fblue_mult  uint32
 10160  	Fbase_pixel uint32
 10161  	Fvisualid   VisualID
 10162  	Fkillid     XID
 10163  } /* Xutil.h:331:3 */
 10164  
 10165  // return codes for XReadBitmapFile and XWriteBitmapFile
 10166  
 10167  // ***************************************************************
 10168  //
 10169  //
 10170  // Context Management
 10171  //
 10172  //
 10173  
 10174  // Associative lookup table return codes
 10175  
 10176  type XContext = int32 /* Xutil.h:357:13 */
 10177  
 10178  // Copyright © 2000 SuSE, Inc.
 10179  //
 10180  // Permission to use, copy, modify, distribute, and sell this software and its
 10181  // documentation for any purpose is hereby granted without fee, provided that
 10182  // the above copyright notice appear in all copies and that both that
 10183  // copyright notice and this permission notice appear in supporting
 10184  // documentation, and that the name of SuSE not be used in advertising or
 10185  // publicity pertaining to distribution of the software without specific,
 10186  // written prior permission.  SuSE makes no representations about the
 10187  // suitability of this software for any purpose.  It is provided "as is"
 10188  // without express or implied warranty.
 10189  //
 10190  // SuSE DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING ALL
 10191  // IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL SuSE
 10192  // BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
 10193  // WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION
 10194  // OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN
 10195  // CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
 10196  //
 10197  // Author:  Keith Packard, SuSE, Inc.
 10198  
 10199  //**********************************************************
 10200  //
 10201  // Copyright 1987, 1998  The Open Group
 10202  //
 10203  // Permission to use, copy, modify, distribute, and sell this software and its
 10204  // documentation for any purpose is hereby granted without fee, provided that
 10205  // the above copyright notice appear in all copies and that both that
 10206  // copyright notice and this permission notice appear in supporting
 10207  // documentation.
 10208  //
 10209  // The above copyright notice and this permission notice shall be included in
 10210  // all copies or substantial portions of the Software.
 10211  //
 10212  // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
 10213  // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
 10214  // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL THE
 10215  // OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
 10216  // AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
 10217  // CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 10218  //
 10219  // Except as contained in this notice, the name of The Open Group shall not be
 10220  // used in advertising or otherwise to promote the sale, use or other dealings
 10221  // in this Software without prior written authorization from The Open Group.
 10222  //
 10223  //
 10224  // Copyright 1987 by Digital Equipment Corporation, Maynard, Massachusetts.
 10225  //
 10226  //                         All Rights Reserved
 10227  //
 10228  // Permission to use, copy, modify, and distribute this software and its
 10229  // documentation for any purpose and without fee is hereby granted,
 10230  // provided that the above copyright notice appear in all copies and that
 10231  // both that copyright notice and this permission notice appear in
 10232  // supporting documentation, and that the name of Digital not be
 10233  // used in advertising or publicity pertaining to distribution of the
 10234  // software without specific, written prior permission.
 10235  //
 10236  // DIGITAL DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING
 10237  // ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL
 10238  // DIGITAL BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR
 10239  // ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
 10240  // WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,
 10241  // ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
 10242  // SOFTWARE.
 10243  //
 10244  // *****************************************************************
 10245  // Copyright © 2000 SuSE, Inc.
 10246  //
 10247  // Permission to use, copy, modify, distribute, and sell this software and its
 10248  // documentation for any purpose is hereby granted without fee, provided that
 10249  // the above copyright notice appear in all copies and that both that
 10250  // copyright notice and this permission notice appear in supporting
 10251  // documentation, and that the name of SuSE not be used in advertising or
 10252  // publicity pertaining to distribution of the software without specific,
 10253  // written prior permission.  SuSE makes no representations about the
 10254  // suitability of this software for any purpose.  It is provided "as is"
 10255  // without express or implied warranty.
 10256  //
 10257  // SuSE DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING ALL
 10258  // IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL SuSE
 10259  // BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
 10260  // WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION
 10261  // OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN
 10262  // CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
 10263  //
 10264  // Author:  Keith Packard, SuSE, Inc.
 10265  
 10266  //**********************************************************
 10267  //
 10268  // Copyright (c) 1999  The XFree86 Project Inc.
 10269  //
 10270  // All Rights Reserved.
 10271  //
 10272  // The above copyright notice and this permission notice shall be included in
 10273  // all copies or substantial portions of the Software.
 10274  //
 10275  // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
 10276  // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
 10277  // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL THE
 10278  // OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
 10279  // AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
 10280  // CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 10281  //
 10282  // Except as contained in this notice, the name of The XFree86 Project
 10283  // Inc. shall not be used in advertising or otherwise to promote the
 10284  // sale, use or other dealings in this Software without prior written
 10285  // authorization from The XFree86 Project Inc..
 10286  //
 10287  
 10288  // *
 10289  // Types definitions shared between server and clients
 10290  //
 10291  
 10292  type Pointer = uintptr /* Xdefs.h:53:14 */
 10293  
 10294  type ClientPtr = uintptr /* Xdefs.h:57:24 */
 10295  
 10296  type FontPtr = uintptr /* Xdefs.h:81:22 */ // also in fonts/include/font.h
 10297  
 10298  type FSID = uint32 /* Xdefs.h:91:23 */
 10299  
 10300  type AccContext = FSID /* Xdefs.h:97:14 */
 10301  
 10302  // OS independent time value
 10303  //    XXX Should probably go in Xos.h
 10304  type OSTimePtr = uintptr /* Xdefs.h:101:24 */
 10305  
 10306  type BlockHandlerProcPtr = uintptr /* Xdefs.h:104:14 */
 10307  
 10308  type Glyph = XID      /* render.h:29:14 */
 10309  type GlyphSet = XID   /* render.h:30:14 */
 10310  type Picture = XID    /* render.h:31:14 */
 10311  type PictFormat = XID /* render.h:32:14 */
 10312  
 10313  // #define X_RenderTransform		    16
 10314  // 0.5
 10315  // 0.6
 10316  // 0.8
 10317  // 0.9
 10318  // 0.10
 10319  
 10320  // Operators only available in version 0.2
 10321  
 10322  // Operators only available in version 0.11
 10323  
 10324  // Filters included in 0.6
 10325  // Filters included in 0.10
 10326  
 10327  // Subpixel orders included in 0.6
 10328  
 10329  // Extended repeat attributes included in 0.10
 10330  
 10331  // data structures
 10332  
 10333  type XDirectFormat = struct {
 10334  	Fred       CARD16
 10335  	FredMask   CARD16
 10336  	Fgreen     CARD16
 10337  	FgreenMask CARD16
 10338  	Fblue      CARD16
 10339  	FblueMask  CARD16
 10340  	Falpha     CARD16
 10341  	FalphaMask CARD16
 10342  } /* renderproto.h:61:3 */
 10343  
 10344  type XPictFormInfo = struct {
 10345  	Fid       CARD32
 10346  	Ftype     CARD8
 10347  	Fdepth    CARD8
 10348  	Fpad1     CARD16
 10349  	Fdirect   XDirectFormat
 10350  	Fcolormap CARD32
 10351  } /* renderproto.h:72:3 */
 10352  
 10353  type XPictVisual = struct {
 10354  	Fvisual CARD32
 10355  	Fformat CARD32
 10356  } /* renderproto.h:79:3 */
 10357  
 10358  type XPictDepth = struct {
 10359  	Fdepth        CARD8
 10360  	Fpad1         CARD8
 10361  	FnPictVisuals CARD16
 10362  	Fpad2         CARD32
 10363  } /* renderproto.h:88:3 */
 10364  
 10365  type XPictScreen = struct {
 10366  	FnDepth   CARD32
 10367  	Ffallback CARD32
 10368  } /* renderproto.h:95:3 */
 10369  
 10370  type XIndexValue = struct {
 10371  	Fpixel CARD32
 10372  	Fred   CARD16
 10373  	Fgreen CARD16
 10374  	Fblue  CARD16
 10375  	Falpha CARD16
 10376  } /* renderproto.h:105:3 */
 10377  
 10378  type XRenderColor = struct {
 10379  	Fred   CARD16
 10380  	Fgreen CARD16
 10381  	Fblue  CARD16
 10382  	Falpha CARD16
 10383  } /* renderproto.h:114:3 */
 10384  
 10385  type XPointFixed = struct {
 10386  	Fx INT32
 10387  	Fy INT32
 10388  } /* renderproto.h:121:3 */
 10389  
 10390  type XLineFixed = struct {
 10391  	Fp1 XPointFixed
 10392  	Fp2 XPointFixed
 10393  } /* renderproto.h:128:3 */
 10394  
 10395  type XTriangle = struct {
 10396  	Fp1 XPointFixed
 10397  	Fp2 XPointFixed
 10398  	Fp3 XPointFixed
 10399  } /* renderproto.h:134:3 */
 10400  
 10401  type XTrapezoid = struct {
 10402  	Ftop    INT32
 10403  	Fbottom INT32
 10404  	Fleft   XLineFixed
 10405  	Fright  XLineFixed
 10406  } /* renderproto.h:143:3 */
 10407  
 10408  type XGlyphInfo = struct {
 10409  	Fwidth  CARD16
 10410  	Fheight CARD16
 10411  	Fx      INT16
 10412  	Fy      INT16
 10413  	FxOff   INT16
 10414  	FyOff   INT16
 10415  } /* renderproto.h:154:3 */
 10416  
 10417  type XGlyphElt = struct {
 10418  	Flen    CARD8
 10419  	Fpad1   CARD8
 10420  	Fpad2   CARD16
 10421  	Fdeltax INT16
 10422  	Fdeltay INT16
 10423  } /* renderproto.h:164:3 */
 10424  
 10425  type XSpanFix = struct {
 10426  	Fl INT32
 10427  	Fr INT32
 10428  	Fy INT32
 10429  } /* renderproto.h:170:3 */
 10430  
 10431  type XTrap = struct {
 10432  	Ftop XSpanFix
 10433  	Fbot XSpanFix
 10434  } /* renderproto.h:176:3 */
 10435  
 10436  // requests and replies
 10437  type XRenderQueryVersionReq = struct {
 10438  	FreqType       CARD8
 10439  	FrenderReqType CARD8
 10440  	Flength        CARD16
 10441  	FmajorVersion  CARD32
 10442  	FminorVersion  CARD32
 10443  } /* renderproto.h:189:3 */
 10444  
 10445  type XRenderQueryVersionReply = struct {
 10446  	Ftype           BYTE
 10447  	Fpad1           BYTE
 10448  	FsequenceNumber CARD16
 10449  	Flength         CARD32
 10450  	FmajorVersion   CARD32
 10451  	FminorVersion   CARD32
 10452  	Fpad2           CARD32
 10453  	Fpad3           CARD32
 10454  	Fpad4           CARD32
 10455  	Fpad5           CARD32
 10456  } /* renderproto.h:204:3 */
 10457  
 10458  type XRenderQueryPictFormatsReq = struct {
 10459  	FreqType       CARD8
 10460  	FrenderReqType CARD8
 10461  	Flength        CARD16
 10462  } /* renderproto.h:212:3 */
 10463  
 10464  type XRenderQueryPictFormatsReply = struct {
 10465  	Ftype           BYTE
 10466  	Fpad1           BYTE
 10467  	FsequenceNumber CARD16
 10468  	Flength         CARD32
 10469  	FnumFormats     CARD32
 10470  	FnumScreens     CARD32
 10471  	FnumDepths      CARD32
 10472  	FnumVisuals     CARD32
 10473  	FnumSubpixel    CARD32
 10474  	Fpad5           CARD32
 10475  } /* renderproto.h:227:3 */
 10476  
 10477  type XRenderQueryPictIndexValuesReq = struct {
 10478  	FreqType       CARD8
 10479  	FrenderReqType CARD8
 10480  	Flength        CARD16
 10481  	Fformat        CARD32
 10482  } /* renderproto.h:236:3 */
 10483  
 10484  type XRenderQueryPictIndexValuesReply = struct {
 10485  	Ftype           BYTE
 10486  	Fpad1           BYTE
 10487  	FsequenceNumber CARD16
 10488  	Flength         CARD32
 10489  	FnumIndexValues CARD32
 10490  	Fpad2           CARD32
 10491  	Fpad3           CARD32
 10492  	Fpad4           CARD32
 10493  	Fpad5           CARD32
 10494  	Fpad6           CARD32
 10495  } /* renderproto.h:251:3 */
 10496  
 10497  type XRenderCreatePictureReq = struct {
 10498  	FreqType       CARD8
 10499  	FrenderReqType CARD8
 10500  	Flength        CARD16
 10501  	Fpid           CARD32
 10502  	Fdrawable      CARD32
 10503  	Fformat        CARD32
 10504  	Fmask          CARD32
 10505  } /* renderproto.h:263:3 */
 10506  
 10507  type XRenderChangePictureReq = struct {
 10508  	FreqType       CARD8
 10509  	FrenderReqType CARD8
 10510  	Flength        CARD16
 10511  	Fpicture       CARD32
 10512  	Fmask          CARD32
 10513  } /* renderproto.h:273:3 */
 10514  
 10515  type XRenderSetPictureClipRectanglesReq = struct {
 10516  	FreqType       CARD8
 10517  	FrenderReqType CARD8
 10518  	Flength        CARD16
 10519  	Fpicture       CARD32
 10520  	FxOrigin       INT16
 10521  	FyOrigin       INT16
 10522  } /* renderproto.h:284:3 */
 10523  
 10524  type XRenderFreePictureReq = struct {
 10525  	FreqType       CARD8
 10526  	FrenderReqType CARD8
 10527  	Flength        CARD16
 10528  	Fpicture       CARD32
 10529  } /* renderproto.h:293:3 */
 10530  
 10531  type XRenderCompositeReq = struct {
 10532  	FreqType       CARD8
 10533  	FrenderReqType CARD8
 10534  	Flength        CARD16
 10535  	Fop            CARD8
 10536  	Fpad1          CARD8
 10537  	Fpad2          CARD16
 10538  	Fsrc           CARD32
 10539  	Fmask          CARD32
 10540  	Fdst           CARD32
 10541  	FxSrc          INT16
 10542  	FySrc          INT16
 10543  	FxMask         INT16
 10544  	FyMask         INT16
 10545  	FxDst          INT16
 10546  	FyDst          INT16
 10547  	Fwidth         CARD16
 10548  	Fheight        CARD16
 10549  } /* renderproto.h:315:3 */
 10550  
 10551  type XRenderScaleReq = struct {
 10552  	FreqType       CARD8
 10553  	FrenderReqType CARD8
 10554  	Flength        CARD16
 10555  	Fsrc           CARD32
 10556  	Fdst           CARD32
 10557  	FcolorScale    CARD32
 10558  	FalphaScale    CARD32
 10559  	FxSrc          INT16
 10560  	FySrc          INT16
 10561  	FxDst          INT16
 10562  	FyDst          INT16
 10563  	Fwidth         CARD16
 10564  	Fheight        CARD16
 10565  } /* renderproto.h:333:3 */
 10566  
 10567  type XRenderTrapezoidsReq = struct {
 10568  	FreqType       CARD8
 10569  	FrenderReqType CARD8
 10570  	Flength        CARD16
 10571  	Fop            CARD8
 10572  	Fpad1          CARD8
 10573  	Fpad2          CARD16
 10574  	Fsrc           CARD32
 10575  	Fdst           CARD32
 10576  	FmaskFormat    CARD32
 10577  	FxSrc          INT16
 10578  	FySrc          INT16
 10579  } /* renderproto.h:349:3 */
 10580  
 10581  type XRenderTrianglesReq = struct {
 10582  	FreqType       CARD8
 10583  	FrenderReqType CARD8
 10584  	Flength        CARD16
 10585  	Fop            CARD8
 10586  	Fpad1          CARD8
 10587  	Fpad2          CARD16
 10588  	Fsrc           CARD32
 10589  	Fdst           CARD32
 10590  	FmaskFormat    CARD32
 10591  	FxSrc          INT16
 10592  	FySrc          INT16
 10593  } /* renderproto.h:365:3 */
 10594  
 10595  type XRenderTriStripReq = struct {
 10596  	FreqType       CARD8
 10597  	FrenderReqType CARD8
 10598  	Flength        CARD16
 10599  	Fop            CARD8
 10600  	Fpad1          CARD8
 10601  	Fpad2          CARD16
 10602  	Fsrc           CARD32
 10603  	Fdst           CARD32
 10604  	FmaskFormat    CARD32
 10605  	FxSrc          INT16
 10606  	FySrc          INT16
 10607  } /* renderproto.h:381:3 */
 10608  
 10609  type XRenderTriFanReq = struct {
 10610  	FreqType       CARD8
 10611  	FrenderReqType CARD8
 10612  	Flength        CARD16
 10613  	Fop            CARD8
 10614  	Fpad1          CARD8
 10615  	Fpad2          CARD16
 10616  	Fsrc           CARD32
 10617  	Fdst           CARD32
 10618  	FmaskFormat    CARD32
 10619  	FxSrc          INT16
 10620  	FySrc          INT16
 10621  } /* renderproto.h:397:3 */
 10622  
 10623  type XRenderCreateGlyphSetReq = struct {
 10624  	FreqType       CARD8
 10625  	FrenderReqType CARD8
 10626  	Flength        CARD16
 10627  	Fgsid          CARD32
 10628  	Fformat        CARD32
 10629  } /* renderproto.h:407:3 */
 10630  
 10631  type XRenderReferenceGlyphSetReq = struct {
 10632  	FreqType       CARD8
 10633  	FrenderReqType CARD8
 10634  	Flength        CARD16
 10635  	Fgsid          CARD32
 10636  	Fexisting      CARD32
 10637  } /* renderproto.h:417:3 */
 10638  
 10639  type XRenderFreeGlyphSetReq = struct {
 10640  	FreqType       CARD8
 10641  	FrenderReqType CARD8
 10642  	Flength        CARD16
 10643  	Fglyphset      CARD32
 10644  } /* renderproto.h:426:3 */
 10645  
 10646  type XRenderAddGlyphsReq = struct {
 10647  	FreqType       CARD8
 10648  	FrenderReqType CARD8
 10649  	Flength        CARD16
 10650  	Fglyphset      CARD32
 10651  	Fnglyphs       CARD32
 10652  } /* renderproto.h:436:3 */
 10653  
 10654  type XRenderFreeGlyphsReq = struct {
 10655  	FreqType       CARD8
 10656  	FrenderReqType CARD8
 10657  	Flength        CARD16
 10658  	Fglyphset      CARD32
 10659  } /* renderproto.h:445:3 */
 10660  
 10661  type XRenderCompositeGlyphsReq = struct {
 10662  	FreqType       CARD8
 10663  	FrenderReqType CARD8
 10664  	Flength        CARD16
 10665  	Fop            CARD8
 10666  	Fpad1          CARD8
 10667  	Fpad2          CARD16
 10668  	Fsrc           CARD32
 10669  	Fdst           CARD32
 10670  	FmaskFormat    CARD32
 10671  	Fglyphset      CARD32
 10672  	FxSrc          INT16
 10673  	FySrc          INT16
 10674  } /* renderproto.h:462:3 */
 10675  type XRenderCompositeGlyphs8Req = struct {
 10676  	FreqType       CARD8
 10677  	FrenderReqType CARD8
 10678  	Flength        CARD16
 10679  	Fop            CARD8
 10680  	Fpad1          CARD8
 10681  	Fpad2          CARD16
 10682  	Fsrc           CARD32
 10683  	Fdst           CARD32
 10684  	FmaskFormat    CARD32
 10685  	Fglyphset      CARD32
 10686  	FxSrc          INT16
 10687  	FySrc          INT16
 10688  } /* renderproto.h:462:30 */
 10689  type XRenderCompositeGlyphs16Req = struct {
 10690  	FreqType       CARD8
 10691  	FrenderReqType CARD8
 10692  	Flength        CARD16
 10693  	Fop            CARD8
 10694  	Fpad1          CARD8
 10695  	Fpad2          CARD16
 10696  	Fsrc           CARD32
 10697  	Fdst           CARD32
 10698  	FmaskFormat    CARD32
 10699  	Fglyphset      CARD32
 10700  	FxSrc          INT16
 10701  	FySrc          INT16
 10702  } /* renderproto.h:463:1 */
 10703  type XRenderCompositeGlyphs32Req = struct {
 10704  	FreqType       CARD8
 10705  	FrenderReqType CARD8
 10706  	Flength        CARD16
 10707  	Fop            CARD8
 10708  	Fpad1          CARD8
 10709  	Fpad2          CARD16
 10710  	Fsrc           CARD32
 10711  	Fdst           CARD32
 10712  	FmaskFormat    CARD32
 10713  	Fglyphset      CARD32
 10714  	FxSrc          INT16
 10715  	FySrc          INT16
 10716  } /* renderproto.h:463:30 */
 10717  
 10718  // 0.1 and higher
 10719  
 10720  type XRenderFillRectanglesReq = struct {
 10721  	FreqType       CARD8
 10722  	FrenderReqType CARD8
 10723  	Flength        CARD16
 10724  	Fop            CARD8
 10725  	Fpad1          CARD8
 10726  	Fpad2          CARD16
 10727  	Fdst           CARD32
 10728  	Fcolor         XRenderColor
 10729  } /* renderproto.h:480:3 */
 10730  
 10731  // 0.5 and higher
 10732  
 10733  type XRenderCreateCursorReq = struct {
 10734  	FreqType       CARD8
 10735  	FrenderReqType CARD8
 10736  	Flength        CARD16
 10737  	Fcid           CARD32
 10738  	Fsrc           CARD32
 10739  	Fx             CARD16
 10740  	Fy             CARD16
 10741  } /* renderproto.h:494:3 */
 10742  
 10743  // 0.6 and higher
 10744  
 10745  // This can't use an array because 32-bit values may be in bitfields
 10746  type XRenderTransform = struct {
 10747  	Fmatrix11 INT32
 10748  	Fmatrix12 INT32
 10749  	Fmatrix13 INT32
 10750  	Fmatrix21 INT32
 10751  	Fmatrix22 INT32
 10752  	Fmatrix23 INT32
 10753  	Fmatrix31 INT32
 10754  	Fmatrix32 INT32
 10755  	Fmatrix33 INT32
 10756  } /* renderproto.h:513:3 */
 10757  
 10758  type XRenderSetPictureTransformReq = struct {
 10759  	FreqType       CARD8
 10760  	FrenderReqType CARD8
 10761  	Flength        CARD16
 10762  	Fpicture       CARD32
 10763  	Ftransform     XRenderTransform
 10764  } /* renderproto.h:523:3 */
 10765  
 10766  type XRenderQueryFiltersReq = struct {
 10767  	FreqType       CARD8
 10768  	FrenderReqType CARD8
 10769  	Flength        CARD16
 10770  	Fdrawable      CARD32
 10771  } /* renderproto.h:532:3 */
 10772  
 10773  type XRenderQueryFiltersReply = struct {
 10774  	Ftype           BYTE
 10775  	Fpad1           BYTE
 10776  	FsequenceNumber CARD16
 10777  	Flength         CARD32
 10778  	FnumAliases     CARD32
 10779  	FnumFilters     CARD32
 10780  	Fpad2           CARD32
 10781  	Fpad3           CARD32
 10782  	Fpad4           CARD32
 10783  	Fpad5           CARD32
 10784  } /* renderproto.h:547:3 */
 10785  
 10786  type XRenderSetPictureFilterReq = struct {
 10787  	FreqType       CARD8
 10788  	FrenderReqType CARD8
 10789  	Flength        CARD16
 10790  	Fpicture       CARD32
 10791  	Fnbytes        CARD16
 10792  	Fpad           CARD16
 10793  } /* renderproto.h:558:3 */
 10794  
 10795  // 0.8 and higher
 10796  
 10797  type XAnimCursorElt = struct {
 10798  	Fcursor CARD32
 10799  	Fdelay  CARD32
 10800  } /* renderproto.h:567:3 */
 10801  
 10802  type XRenderCreateAnimCursorReq = struct {
 10803  	FreqType       CARD8
 10804  	FrenderReqType CARD8
 10805  	Flength        CARD16
 10806  	Fcid           CARD32
 10807  } /* renderproto.h:576:3 */
 10808  
 10809  // 0.9 and higher
 10810  
 10811  type XRenderAddTrapsReq = struct {
 10812  	FreqType       CARD8
 10813  	FrenderReqType CARD8
 10814  	Flength        CARD16
 10815  	Fpicture       CARD32
 10816  	FxOff          INT16
 10817  	FyOff          INT16
 10818  } /* renderproto.h:589:3 */
 10819  
 10820  // 0.10 and higher
 10821  
 10822  type XRenderCreateSolidFillReq = struct {
 10823  	FreqType       CARD8
 10824  	FrenderReqType CARD8
 10825  	Flength        CARD16
 10826  	Fpid           CARD32
 10827  	Fcolor         XRenderColor
 10828  } /* renderproto.h:601:3 */
 10829  
 10830  type XRenderCreateLinearGradientReq = struct {
 10831  	FreqType       CARD8
 10832  	FrenderReqType CARD8
 10833  	Flength        CARD16
 10834  	Fpid           CARD32
 10835  	Fp1            XPointFixed
 10836  	Fp2            XPointFixed
 10837  	FnStops        CARD32
 10838  } /* renderproto.h:613:3 */
 10839  
 10840  type XRenderCreateRadialGradientReq = struct {
 10841  	FreqType       CARD8
 10842  	FrenderReqType CARD8
 10843  	Flength        CARD16
 10844  	Fpid           CARD32
 10845  	Finner         XPointFixed
 10846  	Fouter         XPointFixed
 10847  	Finner_radius  INT32
 10848  	Fouter_radius  INT32
 10849  	FnStops        CARD32
 10850  } /* renderproto.h:627:3 */
 10851  
 10852  type XRenderCreateConicalGradientReq = struct {
 10853  	FreqType       CARD8
 10854  	FrenderReqType CARD8
 10855  	Flength        CARD16
 10856  	Fpid           CARD32
 10857  	Fcenter        XPointFixed
 10858  	Fangle         INT32
 10859  	FnStops        CARD32
 10860  } /* renderproto.h:639:3 */
 10861  
 10862  //
 10863  // Copyright © 2000 SuSE, Inc.
 10864  //
 10865  // Permission to use, copy, modify, distribute, and sell this software and its
 10866  // documentation for any purpose is hereby granted without fee, provided that
 10867  // the above copyright notice appear in all copies and that both that
 10868  // copyright notice and this permission notice appear in supporting
 10869  // documentation, and that the name of SuSE not be used in advertising or
 10870  // publicity pertaining to distribution of the software without specific,
 10871  // written prior permission.  SuSE makes no representations about the
 10872  // suitability of this software for any purpose.  It is provided "as is"
 10873  // without express or implied warranty.
 10874  //
 10875  // SuSE DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING ALL
 10876  // IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL SuSE
 10877  // BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
 10878  // WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION
 10879  // OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN
 10880  // CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
 10881  //
 10882  // Author:  Keith Packard, SuSE, Inc.
 10883  
 10884  //
 10885  //
 10886  // Copyright 1985, 1986, 1987, 1991, 1998  The Open Group
 10887  //
 10888  // Permission to use, copy, modify, distribute, and sell this software and its
 10889  // documentation for any purpose is hereby granted without fee, provided that
 10890  // the above copyright notice appear in all copies and that both that
 10891  // copyright notice and this permission notice appear in supporting
 10892  // documentation.
 10893  //
 10894  // The above copyright notice and this permission notice shall be included in
 10895  // all copies or substantial portions of the Software.
 10896  //
 10897  // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
 10898  // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
 10899  // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL THE
 10900  // OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
 10901  // AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
 10902  // CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 10903  //
 10904  // Except as contained in this notice, the name of The Open Group shall not be
 10905  // used in advertising or otherwise to promote the sale, use or other dealings
 10906  // in this Software without prior written authorization from The Open Group.
 10907  //
 10908  
 10909  //	Xlib.h - Header definition and support file for the C subroutine
 10910  //	interface library (Xlib) to the X Window System Protocol (V11).
 10911  //	Structures and symbols starting with "_" are private to the library.
 10912  //
 10913  //
 10914  // Copyright 1989, 1991, 1998  The Open Group
 10915  //
 10916  // Permission to use, copy, modify, distribute, and sell this software and its
 10917  // documentation for any purpose is hereby granted without fee, provided that
 10918  // the above copyright notice appear in all copies and that both that
 10919  // copyright notice and this permission notice appear in supporting
 10920  // documentation.
 10921  //
 10922  // The above copyright notice and this permission notice shall be included in
 10923  // all copies or substantial portions of the Software.
 10924  //
 10925  // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
 10926  // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
 10927  // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL THE
 10928  // OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
 10929  // AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
 10930  // CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 10931  //
 10932  // Except as contained in this notice, the name of The Open Group shall not be
 10933  // used in advertising or otherwise to promote the sale, use or other dealings
 10934  // in this Software without prior written authorization from The Open Group.
 10935  //  *
 10936  //
 10937  
 10938  // Definitions to make function prototypes manageable
 10939  
 10940  //
 10941  //  O/S-dependent (mis)feature macro definitions
 10942  //
 10943  // Copyright 1991, 1998  The Open Group
 10944  //
 10945  // Permission to use, copy, modify, distribute, and sell this software and its
 10946  // documentation for any purpose is hereby granted without fee, provided that
 10947  // the above copyright notice appear in all copies and that both that
 10948  // copyright notice and this permission notice appear in supporting
 10949  // documentation.
 10950  //
 10951  // The above copyright notice and this permission notice shall be included in
 10952  // all copies or substantial portions of the Software.
 10953  //
 10954  // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
 10955  // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
 10956  // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL THE
 10957  // OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
 10958  // AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
 10959  // CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 10960  //
 10961  // Except as contained in this notice, the name of The Open Group shall not be
 10962  // used in advertising or otherwise to promote the sale, use or other dealings
 10963  // in this Software without prior written authorization from The Open Group.
 10964  //
 10965  
 10966  //**********************************************************
 10967  //
 10968  // Copyright 1987, 1998  The Open Group
 10969  //
 10970  // Permission to use, copy, modify, distribute, and sell this software and its
 10971  // documentation for any purpose is hereby granted without fee, provided that
 10972  // the above copyright notice appear in all copies and that both that
 10973  // copyright notice and this permission notice appear in supporting
 10974  // documentation.
 10975  //
 10976  // The above copyright notice and this permission notice shall be included in
 10977  // all copies or substantial portions of the Software.
 10978  //
 10979  // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
 10980  // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
 10981  // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL THE
 10982  // OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
 10983  // AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
 10984  // CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 10985  //
 10986  // Except as contained in this notice, the name of The Open Group shall not be
 10987  // used in advertising or otherwise to promote the sale, use or other dealings
 10988  // in this Software without prior written authorization from The Open Group.
 10989  //
 10990  //
 10991  // Copyright 1987 by Digital Equipment Corporation, Maynard, Massachusetts.
 10992  //
 10993  //                         All Rights Reserved
 10994  //
 10995  // Permission to use, copy, modify, and distribute this software and its
 10996  // documentation for any purpose and without fee is hereby granted,
 10997  // provided that the above copyright notice appear in all copies and that
 10998  // both that copyright notice and this permission notice appear in
 10999  // supporting documentation, and that the name of Digital not be
 11000  // used in advertising or publicity pertaining to distribution of the
 11001  // software without specific, written prior permission.
 11002  //
 11003  // DIGITAL DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING
 11004  // ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL
 11005  // DIGITAL BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR
 11006  // ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
 11007  // WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,
 11008  // ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
 11009  // SOFTWARE.
 11010  //
 11011  // *****************************************************************
 11012  
 11013  // Copyright © 2000 SuSE, Inc.
 11014  //
 11015  // Permission to use, copy, modify, distribute, and sell this software and its
 11016  // documentation for any purpose is hereby granted without fee, provided that
 11017  // the above copyright notice appear in all copies and that both that
 11018  // copyright notice and this permission notice appear in supporting
 11019  // documentation, and that the name of SuSE not be used in advertising or
 11020  // publicity pertaining to distribution of the software without specific,
 11021  // written prior permission.  SuSE makes no representations about the
 11022  // suitability of this software for any purpose.  It is provided "as is"
 11023  // without express or implied warranty.
 11024  //
 11025  // SuSE DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING ALL
 11026  // IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL SuSE
 11027  // BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
 11028  // WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION
 11029  // OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN
 11030  // CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
 11031  //
 11032  // Author:  Keith Packard, SuSE, Inc.
 11033  
 11034  type XRenderDirectFormat = struct {
 11035  	Fred       int16
 11036  	FredMask   int16
 11037  	Fgreen     int16
 11038  	FgreenMask int16
 11039  	Fblue      int16
 11040  	FblueMask  int16
 11041  	Falpha     int16
 11042  	FalphaMask int16
 11043  } /* Xrender.h:44:3 */
 11044  
 11045  type XRenderPictFormat = struct {
 11046  	Fid       PictFormat
 11047  	Ftype     int32
 11048  	Fdepth    int32
 11049  	Fdirect   XRenderDirectFormat
 11050  	Fcolormap Colormap
 11051  } /* Xrender.h:52:3 */
 11052  
 11053  type X_XRenderPictureAttributes = struct {
 11054  	Frepeat             int32
 11055  	Falpha_map          Picture
 11056  	Falpha_x_origin     int32
 11057  	Falpha_y_origin     int32
 11058  	Fclip_x_origin      int32
 11059  	Fclip_y_origin      int32
 11060  	Fclip_mask          Pixmap
 11061  	Fgraphics_exposures int32
 11062  	Fsubwindow_mode     int32
 11063  	Fpoly_edge          int32
 11064  	Fpoly_mode          int32
 11065  	Fdither             Atom
 11066  	Fcomponent_alpha    int32
 11067  } /* Xrender.h:67:9 */
 11068  
 11069  type XRenderPictureAttributes = X_XRenderPictureAttributes /* Xrender.h:81:3 */
 11070  
 11071  type XRenderColor1 = struct {
 11072  	Fred   uint16
 11073  	Fgreen uint16
 11074  	Fblue  uint16
 11075  	Falpha uint16
 11076  } /* Xrender.h:88:3 */
 11077  
 11078  type X_XGlyphInfo = struct {
 11079  	Fwidth  uint16
 11080  	Fheight uint16
 11081  	Fx      int16
 11082  	Fy      int16
 11083  	FxOff   int16
 11084  	FyOff   int16
 11085  } /* Xrender.h:90:9 */
 11086  
 11087  type XGlyphInfo1 = X_XGlyphInfo /* Xrender.h:97:3 */
 11088  
 11089  type X_XGlyphElt8 = struct {
 11090  	Fglyphset GlyphSet
 11091  	Fchars    uintptr
 11092  	Fnchars   int32
 11093  	FxOff     int32
 11094  	FyOff     int32
 11095  } /* Xrender.h:99:9 */
 11096  
 11097  type XGlyphElt8 = X_XGlyphElt8 /* Xrender.h:105:3 */
 11098  
 11099  type X_XGlyphElt16 = struct {
 11100  	Fglyphset GlyphSet
 11101  	Fchars    uintptr
 11102  	Fnchars   int32
 11103  	FxOff     int32
 11104  	FyOff     int32
 11105  } /* Xrender.h:107:9 */
 11106  
 11107  type XGlyphElt16 = X_XGlyphElt16 /* Xrender.h:113:3 */
 11108  
 11109  type X_XGlyphElt32 = struct {
 11110  	Fglyphset GlyphSet
 11111  	Fchars    uintptr
 11112  	Fnchars   int32
 11113  	FxOff     int32
 11114  	FyOff     int32
 11115  } /* Xrender.h:115:9 */
 11116  
 11117  type XGlyphElt32 = X_XGlyphElt32 /* Xrender.h:121:3 */
 11118  
 11119  type XDouble = float64 /* Xrender.h:123:16 */
 11120  
 11121  type X_XPointDouble = struct {
 11122  	Fx XDouble
 11123  	Fy XDouble
 11124  } /* Xrender.h:125:9 */
 11125  
 11126  type XPointDouble = X_XPointDouble /* Xrender.h:127:3 */
 11127  
 11128  type XFixed = int32 /* Xrender.h:132:13 */
 11129  
 11130  type X_XPointFixed = struct {
 11131  	Fx XFixed
 11132  	Fy XFixed
 11133  } /* Xrender.h:134:9 */
 11134  
 11135  type XPointFixed1 = X_XPointFixed /* Xrender.h:136:3 */
 11136  
 11137  type X_XLineFixed = struct {
 11138  	Fp1 XPointFixed1
 11139  	Fp2 XPointFixed1
 11140  } /* Xrender.h:138:9 */
 11141  
 11142  type XLineFixed1 = X_XLineFixed /* Xrender.h:140:3 */
 11143  
 11144  type X_XTriangle = struct {
 11145  	Fp1 XPointFixed1
 11146  	Fp2 XPointFixed1
 11147  	Fp3 XPointFixed1
 11148  } /* Xrender.h:142:9 */
 11149  
 11150  type XTriangle1 = X_XTriangle /* Xrender.h:144:3 */
 11151  
 11152  type X_XCircle = struct {
 11153  	Fx      XFixed
 11154  	Fy      XFixed
 11155  	Fradius XFixed
 11156  } /* Xrender.h:146:9 */
 11157  
 11158  type XCircle = X_XCircle /* Xrender.h:150:3 */
 11159  
 11160  type X_XTrapezoid = struct {
 11161  	Ftop    XFixed
 11162  	Fbottom XFixed
 11163  	Fleft   XLineFixed1
 11164  	Fright  XLineFixed1
 11165  } /* Xrender.h:152:9 */
 11166  
 11167  type XTrapezoid1 = X_XTrapezoid /* Xrender.h:155:3 */
 11168  
 11169  type X_XTransform = struct{ Fmatrix [3][3]XFixed } /* Xrender.h:157:9 */
 11170  
 11171  type XTransform = X_XTransform /* Xrender.h:159:3 */
 11172  
 11173  type X_XFilters = struct {
 11174  	Fnfilter int32
 11175  	Ffilter  uintptr
 11176  	Fnalias  int32
 11177  	Falias   uintptr
 11178  } /* Xrender.h:161:9 */
 11179  
 11180  type XFilters = X_XFilters /* Xrender.h:166:3 */
 11181  
 11182  type X_XIndexValue = struct {
 11183  	Fpixel uint32
 11184  	Fred   uint16
 11185  	Fgreen uint16
 11186  	Fblue  uint16
 11187  	Falpha uint16
 11188  } /* Xrender.h:168:9 */
 11189  
 11190  type XIndexValue1 = X_XIndexValue /* Xrender.h:171:3 */
 11191  
 11192  type X_XAnimCursor = struct {
 11193  	Fcursor Cursor
 11194  	Fdelay  uint32
 11195  } /* Xrender.h:173:9 */
 11196  
 11197  type XAnimCursor = X_XAnimCursor /* Xrender.h:176:3 */
 11198  
 11199  type X_XSpanFix = struct {
 11200  	Fleft  XFixed
 11201  	Fright XFixed
 11202  	Fy     XFixed
 11203  } /* Xrender.h:178:9 */
 11204  
 11205  type XSpanFix1 = X_XSpanFix /* Xrender.h:180:3 */
 11206  
 11207  type X_XTrap = struct {
 11208  	Ftop    XSpanFix1
 11209  	Fbottom XSpanFix1
 11210  } /* Xrender.h:182:9 */
 11211  
 11212  type XTrap1 = X_XTrap /* Xrender.h:184:3 */
 11213  
 11214  type X_XLinearGradient = struct {
 11215  	Fp1 XPointFixed1
 11216  	Fp2 XPointFixed1
 11217  } /* Xrender.h:186:9 */
 11218  
 11219  type XLinearGradient = X_XLinearGradient /* Xrender.h:189:3 */
 11220  
 11221  type X_XRadialGradient = struct {
 11222  	Finner XCircle
 11223  	Fouter XCircle
 11224  } /* Xrender.h:191:9 */
 11225  
 11226  type XRadialGradient = X_XRadialGradient /* Xrender.h:194:3 */
 11227  
 11228  type X_XConicalGradient = struct {
 11229  	Fcenter XPointFixed1
 11230  	Fangle  XFixed
 11231  } /* Xrender.h:196:9 */
 11232  
 11233  type XConicalGradient = X_XConicalGradient /* Xrender.h:199:3 */
 11234  
 11235  type XRenderVisual = struct {
 11236  	Fvisual uintptr
 11237  	Fformat uintptr
 11238  } /* Xrenderint.h:37:3 */
 11239  
 11240  type XRenderDepth = struct {
 11241  	Fdepth    int32
 11242  	Fnvisuals int32
 11243  	Fvisuals  uintptr
 11244  } /* Xrenderint.h:43:3 */
 11245  
 11246  type XRenderScreen = struct {
 11247  	Fdepths   uintptr
 11248  	Fndepths  int32
 11249  	Ffallback uintptr
 11250  	Fsubpixel int32
 11251  } /* Xrenderint.h:50:3 */
 11252  
 11253  type X_XRenderInfo = struct {
 11254  	Fmajor_version int32
 11255  	Fminor_version int32
 11256  	Fformat        uintptr
 11257  	Fnformat       int32
 11258  	Fscreen        uintptr
 11259  	Fnscreen       int32
 11260  	Fdepth         uintptr
 11261  	Fndepth        int32
 11262  	Fvisual        uintptr
 11263  	Fnvisual       int32
 11264  	Fsubpixel      uintptr
 11265  	Fnsubpixel     int32
 11266  	Ffilter        uintptr
 11267  	Fnfilter       int32
 11268  	Ffilter_alias  uintptr
 11269  	Fnfilter_alias int32
 11270  } /* Xrenderint.h:52:9 */
 11271  
 11272  type XRenderInfo = X_XRenderInfo /* Xrenderint.h:69:3 */
 11273  
 11274  // replaces XRenderExtDisplayInfo
 11275  type X_XRenderExtDisplayInfo = struct {
 11276  	Fnext    uintptr
 11277  	Fdisplay uintptr
 11278  	Fcodes   uintptr
 11279  	Finfo    uintptr
 11280  } /* Xrenderint.h:72:9 */
 11281  
 11282  // replaces XRenderExtDisplayInfo
 11283  type XRenderExtDisplayInfo = X_XRenderExtDisplayInfo /* Xrenderint.h:77:3 */
 11284  
 11285  // replaces XExtensionInfo
 11286  type X_XRenderExtInfo = struct {
 11287  	Fhead      uintptr
 11288  	Fcur       uintptr
 11289  	Fndisplays int32
 11290  } /* Xrenderint.h:80:9 */
 11291  
 11292  // replaces XExtensionInfo
 11293  type XRenderExtInfo = X_XRenderExtInfo /* Xrenderint.h:84:3 */
 11294  
 11295  // Xlib uses long for 32-bit values.  Xrender uses int.  This
 11296  // matters on alpha.  Note that this macro assumes that int is 32 bits
 11297  // except on WORD64 machines where it is 64 bits.
 11298  
 11299  func XXRenderAddTraps(tls *libc.TLS, dpy uintptr, picture Picture, xOff int32, yOff int32, traps uintptr, ntrap int32) { /* AddTrap.c:31:1: */
 11300  	bp := tls.Alloc(4)
 11301  	defer tls.Free(4)
 11302  
 11303  	var info uintptr = XXRenderFindDisplay(tls, dpy)
 11304  	var req uintptr
 11305  	var n int32
 11306  	var len int32
 11307  	var max_req uint32
 11308  	if (*Display)(unsafe.Pointer(dpy)).Fbigreq_size != 0 {
 11309  		max_req = (*Display)(unsafe.Pointer(dpy)).Fbigreq_size
 11310  	} else {
 11311  		max_req = uint32((*Display)(unsafe.Pointer(dpy)).Fmax_request_size)
 11312  	}
 11313  
 11314  	if !(info != 0 && (*XRenderExtDisplayInfo)(unsafe.Pointer(info)).Fcodes != 0) {
 11315  		return
 11316  	}
 11317  
 11318  	if (*Display)(unsafe.Pointer(dpy)).Flock_fns != 0 {
 11319  		(*struct{ f func(*libc.TLS, uintptr) })(unsafe.Pointer(&struct{ uintptr }{(*X_XLockPtrs)(unsafe.Pointer((*Display)(unsafe.Pointer(dpy)).Flock_fns)).Flock_display})).f(tls, dpy)
 11320  	}
 11321  	for ntrap != 0 {
 11322  		req = x11.X_XGetRequest(tls, dpy, uint8(X_RenderAddTraps), uint32(Sz_xRenderAddTrapsReq))
 11323  		(*XRenderAddTrapsReq)(unsafe.Pointer(req)).FreqType = CARD8((*XExtCodes)(unsafe.Pointer((*XRenderExtDisplayInfo)(unsafe.Pointer(info)).Fcodes)).Fmajor_opcode)
 11324  		(*XRenderAddTrapsReq)(unsafe.Pointer(req)).FrenderReqType = CARD8(X_RenderAddTraps)
 11325  		(*XRenderAddTrapsReq)(unsafe.Pointer(req)).Fpicture = picture
 11326  		(*XRenderAddTrapsReq)(unsafe.Pointer(req)).FxOff = INT16(xOff)
 11327  		(*XRenderAddTrapsReq)(unsafe.Pointer(req)).FyOff = INT16(yOff)
 11328  		n = ntrap
 11329  		len = int32(n) * (int32(Sz_xTrap) >> 2)
 11330  		if uint32(len) > max_req-uint32((*XRenderAddTrapsReq)(unsafe.Pointer(req)).Flength) {
 11331  			n = int32((max_req - uint32((*XRenderAddTrapsReq)(unsafe.Pointer(req)).Flength)) / uint32(int32(Sz_xTrap)>>2))
 11332  			len = int32(n) * (int32(Sz_xTrap) >> 2)
 11333  		}
 11334  		if uint32(int32((*XRenderAddTrapsReq)(unsafe.Pointer(req)).Flength)+len) > uint32(uint32(65535)) {
 11335  			if (*Display)(unsafe.Pointer(dpy)).Fbigreq_size != 0 {
 11336  				{
 11337  					// var _BRdat CARD32 at bp, 4
 11338  					var _BRlen CARD32 = CARD32(int32((*XRenderAddTrapsReq)(unsafe.Pointer(req)).Flength) - 1)
 11339  					(*XRenderAddTrapsReq)(unsafe.Pointer(req)).Flength = CARD16(0)
 11340  					*(*CARD32)(unsafe.Pointer(bp /* _BRdat */)) = *(*CARD32)(unsafe.Pointer(req + uintptr(_BRlen)*4))
 11341  					libc.Xmemmove(tls, req+uintptr(8), req+uintptr(4), uint32((_BRlen-CARD32(1))<<2))
 11342  					*(*CARD32)(unsafe.Pointer(req + 1*4)) = _BRlen + CARD32(len) + CARD32(2)
 11343  					{
 11344  						if (*Display)(unsafe.Pointer(dpy)).Fbufptr+uintptr(4) <= (*Display)(unsafe.Pointer(dpy)).Fbufmax {
 11345  							libc.Xmemcpy(tls, (*Display)(unsafe.Pointer(dpy)).Fbufptr, bp, uint32(4))
 11346  							*(*uintptr)(unsafe.Pointer(dpy + 108)) += uintptr((4 + 3) & libc.CplInt32(3))
 11347  						} else {
 11348  							x11.X_XSend(tls, dpy, bp, 4)
 11349  						}
 11350  					}
 11351  
 11352  				}
 11353  			} else {
 11354  				len = len
 11355  				*(*CARD16)(unsafe.Pointer(req + 2)) += CARD16(len)
 11356  			}
 11357  		} else {
 11358  			*(*CARD16)(unsafe.Pointer(req + 2)) += CARD16(len)
 11359  		}
 11360  		len <<= 2
 11361  		{
 11362  			if (*Display)(unsafe.Pointer(dpy)).Fbufptr+uintptr(len) <= (*Display)(unsafe.Pointer(dpy)).Fbufmax {
 11363  				libc.Xmemcpy(tls, (*Display)(unsafe.Pointer(dpy)).Fbufptr, traps, uint32(int32(len)))
 11364  				*(*uintptr)(unsafe.Pointer(dpy + 108)) += uintptr((len + 3) & libc.CplInt32(3))
 11365  			} else {
 11366  				x11.X_XSend(tls, dpy, traps, len)
 11367  			}
 11368  		}
 11369  
 11370  		ntrap = ntrap - n
 11371  		traps += 24 * uintptr(n)
 11372  	}
 11373  	if (*Display)(unsafe.Pointer(dpy)).Flock_fns != 0 {
 11374  		(*struct{ f func(*libc.TLS, uintptr) })(unsafe.Pointer(&struct{ uintptr }{(*X_XLockPtrs)(unsafe.Pointer((*Display)(unsafe.Pointer(dpy)).Flock_fns)).Funlock_display})).f(tls, dpy)
 11375  	}
 11376  	if (*Display)(unsafe.Pointer(dpy)).Fsynchandler != 0 {
 11377  		(*struct {
 11378  			f func(*libc.TLS, uintptr) int32
 11379  		})(unsafe.Pointer(&struct{ uintptr }{(*Display)(unsafe.Pointer(dpy)).Fsynchandler})).f(tls, dpy)
 11380  	}
 11381  }
 11382  
 11383  // Xlib uses long for 32-bit values.  Xrender uses int.  This
 11384  // matters on alpha.  Note that this macro assumes that int is 32 bits
 11385  // except on WORD64 machines where it is 64 bits.
 11386  
 11387  func XXRenderParseColor(tls *libc.TLS, dpy uintptr, spec uintptr, def uintptr) int32 { /* Color.c:30:1: */
 11388  	bp := tls.Alloc(20)
 11389  	defer tls.Free(20)
 11390  
 11391  	if !(libc.Xstrncmp(tls, spec, ts, uint32(5)) != 0) {
 11392  		// var elements [4]uint16 at bp, 8
 11393  
 11394  		var pShort uintptr
 11395  		var i int32
 11396  		var n int32
 11397  		var c uint8
 11398  
 11399  		spec += uintptr(5)
 11400  		// Attempt to parse the value portion.
 11401  		pShort = bp /* &elements[0] */
 11402  		i = 0
 11403  	__1:
 11404  		if !(i < 4) {
 11405  			goto __3
 11406  		}
 11407  		{
 11408  			n = 0
 11409  			*(*uint16)(unsafe.Pointer(pShort)) = uint16(0)
 11410  			for int32(*(*uint8)(unsafe.Pointer(spec))) != '/' && int32(*(*uint8)(unsafe.Pointer(spec))) != 0 {
 11411  				if libc.PreIncInt32(&n, 1) > 4 {
 11412  					return 0
 11413  				}
 11414  				c = *(*uint8)(unsafe.Pointer(libc.PostIncUintptr(&spec, 1)))
 11415  				libc.AssignShlPtrUint16(pShort, int(4))
 11416  				if int32(c) >= '0' && int32(c) <= '9' {
 11417  					*(*uint16)(unsafe.Pointer(pShort)) |= uint16(int32(c) - '0')
 11418  				} else if int32(c) >= 'a' && int32(c) <= 'f' {
 11419  					*(*uint16)(unsafe.Pointer(pShort)) |= uint16(int32(c) - ('a' - 10))
 11420  				} else {
 11421  					return 0
 11422  				}
 11423  			}
 11424  			if n == 0 {
 11425  				return 0
 11426  			}
 11427  			if n < 4 {
 11428  				*(*uint16)(unsafe.Pointer(pShort)) = uint16(uint32(*(*uint16)(unsafe.Pointer(pShort))) * uint32(0xFFFF) / uint32(int32(1)<<(n*4)-1))
 11429  			}
 11430  
 11431  		}
 11432  		goto __2
 11433  	__2:
 11434  		i++
 11435  		pShort += 2
 11436  		spec++
 11437  		goto __1
 11438  		goto __3
 11439  	__3:
 11440  		;
 11441  		(*XRenderColor1)(unsafe.Pointer(def)).Fred = *(*uint16)(unsafe.Pointer(bp))
 11442  		(*XRenderColor1)(unsafe.Pointer(def)).Fgreen = *(*uint16)(unsafe.Pointer(bp + 1*2))
 11443  		(*XRenderColor1)(unsafe.Pointer(def)).Fblue = *(*uint16)(unsafe.Pointer(bp + 2*2))
 11444  		(*XRenderColor1)(unsafe.Pointer(def)).Falpha = *(*uint16)(unsafe.Pointer(bp + 3*2))
 11445  	} else {
 11446  		// var coreColor XColor at bp+8, 12
 11447  
 11448  		var colormap Colormap
 11449  
 11450  		colormap = (*Screen)(unsafe.Pointer((*struct {
 11451  			Fext_data            uintptr
 11452  			Fprivate1            uintptr
 11453  			Ffd                  int32
 11454  			Fprivate2            int32
 11455  			Fproto_major_version int32
 11456  			Fproto_minor_version int32
 11457  			Fvendor              uintptr
 11458  			Fprivate3            XID
 11459  			Fprivate4            XID
 11460  			Fprivate5            XID
 11461  			Fprivate6            int32
 11462  			Fresource_alloc      uintptr
 11463  			Fbyte_order          int32
 11464  			Fbitmap_unit         int32
 11465  			Fbitmap_pad          int32
 11466  			Fbitmap_bit_order    int32
 11467  			Fnformats            int32
 11468  			Fpixmap_format       uintptr
 11469  			Fprivate8            int32
 11470  			Frelease             int32
 11471  			Fprivate9            uintptr
 11472  			Fprivate10           uintptr
 11473  			Fqlen                int32
 11474  			Flast_request_read   uint32
 11475  			Frequest             uint32
 11476  			Fprivate11           XPointer
 11477  			Fprivate12           XPointer
 11478  			Fprivate13           XPointer
 11479  			Fprivate14           XPointer
 11480  			Fmax_request_size    uint32
 11481  			Fdb                  uintptr
 11482  			Fprivate15           uintptr
 11483  			Fdisplay_name        uintptr
 11484  			Fdefault_screen      int32
 11485  			Fnscreens            int32
 11486  			Fscreens             uintptr
 11487  			Fmotion_buffer       uint32
 11488  			Fprivate16           uint32
 11489  			Fmin_keycode         int32
 11490  			Fmax_keycode         int32
 11491  			Fprivate17           XPointer
 11492  			Fprivate18           XPointer
 11493  			Fprivate19           int32
 11494  			Fxdefaults           uintptr
 11495  		})(unsafe.Pointer(dpy)).Fscreens + uintptr((*struct {
 11496  			Fext_data            uintptr
 11497  			Fprivate1            uintptr
 11498  			Ffd                  int32
 11499  			Fprivate2            int32
 11500  			Fproto_major_version int32
 11501  			Fproto_minor_version int32
 11502  			Fvendor              uintptr
 11503  			Fprivate3            XID
 11504  			Fprivate4            XID
 11505  			Fprivate5            XID
 11506  			Fprivate6            int32
 11507  			Fresource_alloc      uintptr
 11508  			Fbyte_order          int32
 11509  			Fbitmap_unit         int32
 11510  			Fbitmap_pad          int32
 11511  			Fbitmap_bit_order    int32
 11512  			Fnformats            int32
 11513  			Fpixmap_format       uintptr
 11514  			Fprivate8            int32
 11515  			Frelease             int32
 11516  			Fprivate9            uintptr
 11517  			Fprivate10           uintptr
 11518  			Fqlen                int32
 11519  			Flast_request_read   uint32
 11520  			Frequest             uint32
 11521  			Fprivate11           XPointer
 11522  			Fprivate12           XPointer
 11523  			Fprivate13           XPointer
 11524  			Fprivate14           XPointer
 11525  			Fmax_request_size    uint32
 11526  			Fdb                  uintptr
 11527  			Fprivate15           uintptr
 11528  			Fdisplay_name        uintptr
 11529  			Fdefault_screen      int32
 11530  			Fnscreens            int32
 11531  			Fscreens             uintptr
 11532  			Fmotion_buffer       uint32
 11533  			Fprivate16           uint32
 11534  			Fmin_keycode         int32
 11535  			Fmax_keycode         int32
 11536  			Fprivate17           XPointer
 11537  			Fprivate18           XPointer
 11538  			Fprivate19           int32
 11539  			Fxdefaults           uintptr
 11540  		})(unsafe.Pointer(dpy)).Fdefault_screen)*80)).Fcmap
 11541  		if !(x11.XXParseColor(tls, dpy, colormap, spec, bp+8) != 0) {
 11542  			return 0
 11543  		}
 11544  		(*XRenderColor1)(unsafe.Pointer(def)).Fred = (*XColor)(unsafe.Pointer(bp + 8 /* &coreColor */)).Fred
 11545  		(*XRenderColor1)(unsafe.Pointer(def)).Fgreen = (*XColor)(unsafe.Pointer(bp + 8 /* &coreColor */)).Fgreen
 11546  		(*XRenderColor1)(unsafe.Pointer(def)).Fblue = (*XColor)(unsafe.Pointer(bp + 8 /* &coreColor */)).Fblue
 11547  		(*XRenderColor1)(unsafe.Pointer(def)).Falpha = uint16(0xffff)
 11548  	}
 11549  	(*XRenderColor1)(unsafe.Pointer(def)).Fred = uint16(uint32(int32((*XRenderColor1)(unsafe.Pointer(def)).Fred)*int32((*XRenderColor1)(unsafe.Pointer(def)).Falpha)) / 0xffff)
 11550  	(*XRenderColor1)(unsafe.Pointer(def)).Fgreen = uint16(uint32(int32((*XRenderColor1)(unsafe.Pointer(def)).Fgreen)*int32((*XRenderColor1)(unsafe.Pointer(def)).Falpha)) / 0xffff)
 11551  	(*XRenderColor1)(unsafe.Pointer(def)).Fblue = uint16(uint32(int32((*XRenderColor1)(unsafe.Pointer(def)).Fblue)*int32((*XRenderColor1)(unsafe.Pointer(def)).Falpha)) / 0xffff)
 11552  	return 1
 11553  }
 11554  
 11555  // Xlib uses long for 32-bit values.  Xrender uses int.  This
 11556  // matters on alpha.  Note that this macro assumes that int is 32 bits
 11557  // except on WORD64 machines where it is 64 bits.
 11558  
 11559  func XXRenderComposite(tls *libc.TLS, dpy uintptr, op int32, src Picture, mask Picture, dst Picture, src_x int32, src_y int32, mask_x int32, mask_y int32, dst_x int32, dst_y int32, width uint32, height uint32) { /* Composite.c:31:1: */
 11560  	var info uintptr = XXRenderFindDisplay(tls, dpy)
 11561  	var req uintptr
 11562  
 11563  	if !(info != 0 && (*XRenderExtDisplayInfo)(unsafe.Pointer(info)).Fcodes != 0) {
 11564  		return
 11565  	}
 11566  
 11567  	if (*Display)(unsafe.Pointer(dpy)).Flock_fns != 0 {
 11568  		(*struct{ f func(*libc.TLS, uintptr) })(unsafe.Pointer(&struct{ uintptr }{(*X_XLockPtrs)(unsafe.Pointer((*Display)(unsafe.Pointer(dpy)).Flock_fns)).Flock_display})).f(tls, dpy)
 11569  	}
 11570  	req = x11.X_XGetRequest(tls, dpy, uint8(X_RenderComposite), uint32(Sz_xRenderCompositeReq))
 11571  	(*XRenderCompositeReq)(unsafe.Pointer(req)).FreqType = CARD8((*XExtCodes)(unsafe.Pointer((*XRenderExtDisplayInfo)(unsafe.Pointer(info)).Fcodes)).Fmajor_opcode)
 11572  	(*XRenderCompositeReq)(unsafe.Pointer(req)).FrenderReqType = CARD8(X_RenderComposite)
 11573  	(*XRenderCompositeReq)(unsafe.Pointer(req)).Fop = CARD8(op)
 11574  	(*XRenderCompositeReq)(unsafe.Pointer(req)).Fsrc = src
 11575  	(*XRenderCompositeReq)(unsafe.Pointer(req)).Fmask = mask
 11576  	(*XRenderCompositeReq)(unsafe.Pointer(req)).Fdst = dst
 11577  	(*XRenderCompositeReq)(unsafe.Pointer(req)).FxSrc = INT16(src_x)
 11578  	(*XRenderCompositeReq)(unsafe.Pointer(req)).FySrc = INT16(src_y)
 11579  	(*XRenderCompositeReq)(unsafe.Pointer(req)).FxMask = INT16(mask_x)
 11580  	(*XRenderCompositeReq)(unsafe.Pointer(req)).FyMask = INT16(mask_y)
 11581  	(*XRenderCompositeReq)(unsafe.Pointer(req)).FxDst = INT16(dst_x)
 11582  	(*XRenderCompositeReq)(unsafe.Pointer(req)).FyDst = INT16(dst_y)
 11583  	(*XRenderCompositeReq)(unsafe.Pointer(req)).Fwidth = CARD16(width)
 11584  	(*XRenderCompositeReq)(unsafe.Pointer(req)).Fheight = CARD16(height)
 11585  	if (*Display)(unsafe.Pointer(dpy)).Flock_fns != 0 {
 11586  		(*struct{ f func(*libc.TLS, uintptr) })(unsafe.Pointer(&struct{ uintptr }{(*X_XLockPtrs)(unsafe.Pointer((*Display)(unsafe.Pointer(dpy)).Flock_fns)).Funlock_display})).f(tls, dpy)
 11587  	}
 11588  	if (*Display)(unsafe.Pointer(dpy)).Fsynchandler != 0 {
 11589  		(*struct {
 11590  			f func(*libc.TLS, uintptr) int32
 11591  		})(unsafe.Pointer(&struct{ uintptr }{(*Display)(unsafe.Pointer(dpy)).Fsynchandler})).f(tls, dpy)
 11592  	}
 11593  }
 11594  
 11595  // Xlib uses long for 32-bit values.  Xrender uses int.  This
 11596  // matters on alpha.  Note that this macro assumes that int is 32 bits
 11597  // except on WORD64 machines where it is 64 bits.
 11598  
 11599  func XXRenderCreateCursor(tls *libc.TLS, dpy uintptr, source Picture, x uint32, y uint32) Cursor { /* Cursor.c:30:1: */
 11600  	var info uintptr = XXRenderFindDisplay(tls, dpy)
 11601  	var cid Cursor
 11602  	var req uintptr
 11603  
 11604  	if !(info != 0 && (*XRenderExtDisplayInfo)(unsafe.Pointer(info)).Fcodes != 0) {
 11605  		return Cursor(0)
 11606  	}
 11607  
 11608  	if (*Display)(unsafe.Pointer(dpy)).Flock_fns != 0 {
 11609  		(*struct{ f func(*libc.TLS, uintptr) })(unsafe.Pointer(&struct{ uintptr }{(*X_XLockPtrs)(unsafe.Pointer((*Display)(unsafe.Pointer(dpy)).Flock_fns)).Flock_display})).f(tls, dpy)
 11610  	}
 11611  	req = x11.X_XGetRequest(tls, dpy, uint8(X_RenderCreateCursor), uint32(Sz_xRenderCreateCursorReq))
 11612  	(*XRenderCreateCursorReq)(unsafe.Pointer(req)).FreqType = CARD8((*XExtCodes)(unsafe.Pointer((*XRenderExtDisplayInfo)(unsafe.Pointer(info)).Fcodes)).Fmajor_opcode)
 11613  	(*XRenderCreateCursorReq)(unsafe.Pointer(req)).FrenderReqType = CARD8(X_RenderCreateCursor)
 11614  	(*XRenderCreateCursorReq)(unsafe.Pointer(req)).Fcid = libc.AssignUint32(&cid, (*struct{ f func(*libc.TLS, uintptr) XID })(unsafe.Pointer(&struct{ uintptr }{(*struct {
 11615  		Fext_data            uintptr
 11616  		Fprivate1            uintptr
 11617  		Ffd                  int32
 11618  		Fprivate2            int32
 11619  		Fproto_major_version int32
 11620  		Fproto_minor_version int32
 11621  		Fvendor              uintptr
 11622  		Fprivate3            XID
 11623  		Fprivate4            XID
 11624  		Fprivate5            XID
 11625  		Fprivate6            int32
 11626  		Fresource_alloc      uintptr
 11627  		Fbyte_order          int32
 11628  		Fbitmap_unit         int32
 11629  		Fbitmap_pad          int32
 11630  		Fbitmap_bit_order    int32
 11631  		Fnformats            int32
 11632  		Fpixmap_format       uintptr
 11633  		Fprivate8            int32
 11634  		Frelease             int32
 11635  		Fprivate9            uintptr
 11636  		Fprivate10           uintptr
 11637  		Fqlen                int32
 11638  		Flast_request_read   uint32
 11639  		Frequest             uint32
 11640  		Fprivate11           XPointer
 11641  		Fprivate12           XPointer
 11642  		Fprivate13           XPointer
 11643  		Fprivate14           XPointer
 11644  		Fmax_request_size    uint32
 11645  		Fdb                  uintptr
 11646  		Fprivate15           uintptr
 11647  		Fdisplay_name        uintptr
 11648  		Fdefault_screen      int32
 11649  		Fnscreens            int32
 11650  		Fscreens             uintptr
 11651  		Fmotion_buffer       uint32
 11652  		Fprivate16           uint32
 11653  		Fmin_keycode         int32
 11654  		Fmax_keycode         int32
 11655  		Fprivate17           XPointer
 11656  		Fprivate18           XPointer
 11657  		Fprivate19           int32
 11658  		Fxdefaults           uintptr
 11659  	})(unsafe.Pointer(dpy)).Fresource_alloc})).f(tls, dpy))
 11660  	(*XRenderCreateCursorReq)(unsafe.Pointer(req)).Fsrc = source
 11661  	(*XRenderCreateCursorReq)(unsafe.Pointer(req)).Fx = CARD16(x)
 11662  	(*XRenderCreateCursorReq)(unsafe.Pointer(req)).Fy = CARD16(y)
 11663  
 11664  	if (*Display)(unsafe.Pointer(dpy)).Flock_fns != 0 {
 11665  		(*struct{ f func(*libc.TLS, uintptr) })(unsafe.Pointer(&struct{ uintptr }{(*X_XLockPtrs)(unsafe.Pointer((*Display)(unsafe.Pointer(dpy)).Flock_fns)).Funlock_display})).f(tls, dpy)
 11666  	}
 11667  	if (*Display)(unsafe.Pointer(dpy)).Fsynchandler != 0 {
 11668  		(*struct {
 11669  			f func(*libc.TLS, uintptr) int32
 11670  		})(unsafe.Pointer(&struct{ uintptr }{(*Display)(unsafe.Pointer(dpy)).Fsynchandler})).f(tls, dpy)
 11671  	}
 11672  	return cid
 11673  }
 11674  
 11675  func XXRenderCreateAnimCursor(tls *libc.TLS, dpy uintptr, ncursor int32, cursors uintptr) Cursor { /* Cursor.c:55:1: */
 11676  	bp := tls.Alloc(4)
 11677  	defer tls.Free(4)
 11678  
 11679  	var info uintptr = XXRenderFindDisplay(tls, dpy)
 11680  	var cid Cursor
 11681  	var req uintptr
 11682  	var len int32
 11683  
 11684  	if !(info != 0 && (*XRenderExtDisplayInfo)(unsafe.Pointer(info)).Fcodes != 0) {
 11685  		return Cursor(0)
 11686  	}
 11687  
 11688  	if (*Display)(unsafe.Pointer(dpy)).Flock_fns != 0 {
 11689  		(*struct{ f func(*libc.TLS, uintptr) })(unsafe.Pointer(&struct{ uintptr }{(*X_XLockPtrs)(unsafe.Pointer((*Display)(unsafe.Pointer(dpy)).Flock_fns)).Flock_display})).f(tls, dpy)
 11690  	}
 11691  	req = x11.X_XGetRequest(tls, dpy, uint8(X_RenderCreateAnimCursor), uint32(Sz_xRenderCreateAnimCursorReq))
 11692  	(*XRenderCreateAnimCursorReq)(unsafe.Pointer(req)).FreqType = CARD8((*XExtCodes)(unsafe.Pointer((*XRenderExtDisplayInfo)(unsafe.Pointer(info)).Fcodes)).Fmajor_opcode)
 11693  	(*XRenderCreateAnimCursorReq)(unsafe.Pointer(req)).FrenderReqType = CARD8(X_RenderCreateAnimCursor)
 11694  	(*XRenderCreateAnimCursorReq)(unsafe.Pointer(req)).Fcid = libc.AssignUint32(&cid, (*struct{ f func(*libc.TLS, uintptr) XID })(unsafe.Pointer(&struct{ uintptr }{(*struct {
 11695  		Fext_data            uintptr
 11696  		Fprivate1            uintptr
 11697  		Ffd                  int32
 11698  		Fprivate2            int32
 11699  		Fproto_major_version int32
 11700  		Fproto_minor_version int32
 11701  		Fvendor              uintptr
 11702  		Fprivate3            XID
 11703  		Fprivate4            XID
 11704  		Fprivate5            XID
 11705  		Fprivate6            int32
 11706  		Fresource_alloc      uintptr
 11707  		Fbyte_order          int32
 11708  		Fbitmap_unit         int32
 11709  		Fbitmap_pad          int32
 11710  		Fbitmap_bit_order    int32
 11711  		Fnformats            int32
 11712  		Fpixmap_format       uintptr
 11713  		Fprivate8            int32
 11714  		Frelease             int32
 11715  		Fprivate9            uintptr
 11716  		Fprivate10           uintptr
 11717  		Fqlen                int32
 11718  		Flast_request_read   uint32
 11719  		Frequest             uint32
 11720  		Fprivate11           XPointer
 11721  		Fprivate12           XPointer
 11722  		Fprivate13           XPointer
 11723  		Fprivate14           XPointer
 11724  		Fmax_request_size    uint32
 11725  		Fdb                  uintptr
 11726  		Fprivate15           uintptr
 11727  		Fdisplay_name        uintptr
 11728  		Fdefault_screen      int32
 11729  		Fnscreens            int32
 11730  		Fscreens             uintptr
 11731  		Fmotion_buffer       uint32
 11732  		Fprivate16           uint32
 11733  		Fmin_keycode         int32
 11734  		Fmax_keycode         int32
 11735  		Fprivate17           XPointer
 11736  		Fprivate18           XPointer
 11737  		Fprivate19           int32
 11738  		Fxdefaults           uintptr
 11739  	})(unsafe.Pointer(dpy)).Fresource_alloc})).f(tls, dpy))
 11740  
 11741  	len = int32(ncursor) * Sz_xAnimCursorElt >> 2
 11742  	if uint32(int32((*XRenderCreateAnimCursorReq)(unsafe.Pointer(req)).Flength)+len) > uint32(uint32(65535)) {
 11743  		if (*Display)(unsafe.Pointer(dpy)).Fbigreq_size != 0 {
 11744  			{
 11745  				// var _BRdat CARD32 at bp, 4
 11746  				var _BRlen CARD32 = CARD32(int32((*XRenderCreateAnimCursorReq)(unsafe.Pointer(req)).Flength) - 1)
 11747  				(*XRenderCreateAnimCursorReq)(unsafe.Pointer(req)).Flength = CARD16(0)
 11748  				*(*CARD32)(unsafe.Pointer(bp /* _BRdat */)) = *(*CARD32)(unsafe.Pointer(req + uintptr(_BRlen)*4))
 11749  				libc.Xmemmove(tls, req+uintptr(8), req+uintptr(4), uint32((_BRlen-CARD32(1))<<2))
 11750  				*(*CARD32)(unsafe.Pointer(req + 1*4)) = _BRlen + CARD32(len) + CARD32(2)
 11751  				{
 11752  					if (*Display)(unsafe.Pointer(dpy)).Fbufptr+uintptr(4) <= (*Display)(unsafe.Pointer(dpy)).Fbufmax {
 11753  						libc.Xmemcpy(tls, (*Display)(unsafe.Pointer(dpy)).Fbufptr, bp, uint32(4))
 11754  						*(*uintptr)(unsafe.Pointer(dpy + 108)) += uintptr((4 + 3) & libc.CplInt32(3))
 11755  					} else {
 11756  						x11.X_XSend(tls, dpy, bp, 4)
 11757  					}
 11758  				}
 11759  
 11760  			}
 11761  		} else {
 11762  			len = len
 11763  			*(*CARD16)(unsafe.Pointer(req + 2)) += CARD16(len)
 11764  		}
 11765  	} else {
 11766  		*(*CARD16)(unsafe.Pointer(req + 2)) += CARD16(len)
 11767  	}
 11768  	len <<= 2
 11769  	{
 11770  		if (*Display)(unsafe.Pointer(dpy)).Fbufptr+uintptr(len) <= (*Display)(unsafe.Pointer(dpy)).Fbufmax {
 11771  			libc.Xmemcpy(tls, (*Display)(unsafe.Pointer(dpy)).Fbufptr, cursors, uint32(int32(len)))
 11772  			*(*uintptr)(unsafe.Pointer(dpy + 108)) += uintptr((len + 3) & libc.CplInt32(3))
 11773  		} else {
 11774  			x11.X_XSend(tls, dpy, cursors, len)
 11775  		}
 11776  	}
 11777  
 11778  	if (*Display)(unsafe.Pointer(dpy)).Flock_fns != 0 {
 11779  		(*struct{ f func(*libc.TLS, uintptr) })(unsafe.Pointer(&struct{ uintptr }{(*X_XLockPtrs)(unsafe.Pointer((*Display)(unsafe.Pointer(dpy)).Flock_fns)).Funlock_display})).f(tls, dpy)
 11780  	}
 11781  	if (*Display)(unsafe.Pointer(dpy)).Fsynchandler != 0 {
 11782  		(*struct {
 11783  			f func(*libc.TLS, uintptr) int32
 11784  		})(unsafe.Pointer(&struct{ uintptr }{(*Display)(unsafe.Pointer(dpy)).Fsynchandler})).f(tls, dpy)
 11785  	}
 11786  	return cid
 11787  }
 11788  
 11789  // Xlib uses long for 32-bit values.  Xrender uses int.  This
 11790  // matters on alpha.  Note that this macro assumes that int is 32 bits
 11791  // except on WORD64 machines where it is 64 bits.
 11792  
 11793  // precompute the maximum size of batching request allowed
 11794  
 11795  func XXRenderFillRectangle(tls *libc.TLS, dpy uintptr, op int32, dst Picture, color uintptr, x int32, y int32, width uint32, height uint32) { /* FillRect.c:35:1: */
 11796  	var info uintptr = XXRenderFindDisplay(tls, dpy)
 11797  	var rect uintptr
 11798  	var req uintptr
 11799  
 11800  	if !(info != 0 && (*XRenderExtDisplayInfo)(unsafe.Pointer(info)).Fcodes != 0) {
 11801  		return
 11802  	}
 11803  
 11804  	if (*Display)(unsafe.Pointer(dpy)).Flock_fns != 0 {
 11805  		(*struct{ f func(*libc.TLS, uintptr) })(unsafe.Pointer(&struct{ uintptr }{(*X_XLockPtrs)(unsafe.Pointer((*Display)(unsafe.Pointer(dpy)).Flock_fns)).Flock_display})).f(tls, dpy)
 11806  	}
 11807  
 11808  	req = (*Display)(unsafe.Pointer(dpy)).Flast_req
 11809  	// if same as previous request, with same drawable, batch requests
 11810  	if int32((*XRenderFillRectanglesReq)(unsafe.Pointer(req)).FreqType) == (*XExtCodes)(unsafe.Pointer((*XRenderExtDisplayInfo)(unsafe.Pointer(info)).Fcodes)).Fmajor_opcode && int32((*XRenderFillRectanglesReq)(unsafe.Pointer(req)).FrenderReqType) == X_RenderFillRectangles && int32((*XRenderFillRectanglesReq)(unsafe.Pointer(req)).Fop) == op && (*XRenderFillRectanglesReq)(unsafe.Pointer(req)).Fdst == dst && int32((*XRenderFillRectanglesReq)(unsafe.Pointer(req)).Fcolor.Fred) == int32((*XRenderColor1)(unsafe.Pointer(color)).Fred) && int32((*XRenderFillRectanglesReq)(unsafe.Pointer(req)).Fcolor.Fgreen) == int32((*XRenderColor1)(unsafe.Pointer(color)).Fgreen) && int32((*XRenderFillRectanglesReq)(unsafe.Pointer(req)).Fcolor.Fblue) == int32((*XRenderColor1)(unsafe.Pointer(color)).Fblue) && int32((*XRenderFillRectanglesReq)(unsafe.Pointer(req)).Fcolor.Falpha) == int32((*XRenderColor1)(unsafe.Pointer(color)).Falpha) && (*Display)(unsafe.Pointer(dpy)).Fbufptr+uintptr(Sz_xRectangle) <= (*Display)(unsafe.Pointer(dpy)).Fbufmax && (int32((*Display)(unsafe.Pointer(dpy)).Fbufptr)-int32(req))/1 < Sz_xRenderFillRectanglesReq+FRCTSPERBATCH*Sz_xRectangle {
 11811  		*(*CARD16)(unsafe.Pointer(req + 2)) += CARD16(int32(Sz_xRectangle) >> 2)
 11812  		rect = (*Display)(unsafe.Pointer(dpy)).Fbufptr
 11813  		*(*uintptr)(unsafe.Pointer(dpy + 108)) += uintptr(Sz_xRectangle)
 11814  	} else {
 11815  		req = x11.X_XGetRequest(tls, dpy, uint8(X_RenderFillRectangles), uint32(Sz_xRenderFillRectanglesReq+Sz_xRectangle))
 11816  
 11817  		(*XRenderFillRectanglesReq)(unsafe.Pointer(req)).FreqType = CARD8((*XExtCodes)(unsafe.Pointer((*XRenderExtDisplayInfo)(unsafe.Pointer(info)).Fcodes)).Fmajor_opcode)
 11818  		(*XRenderFillRectanglesReq)(unsafe.Pointer(req)).FrenderReqType = CARD8(X_RenderFillRectangles)
 11819  		(*XRenderFillRectanglesReq)(unsafe.Pointer(req)).Fop = CARD8(op)
 11820  		(*XRenderFillRectanglesReq)(unsafe.Pointer(req)).Fdst = dst
 11821  		(*XRenderFillRectanglesReq)(unsafe.Pointer(req)).Fcolor.Fred = (*XRenderColor1)(unsafe.Pointer(color)).Fred
 11822  		(*XRenderFillRectanglesReq)(unsafe.Pointer(req)).Fcolor.Fgreen = (*XRenderColor1)(unsafe.Pointer(color)).Fgreen
 11823  		(*XRenderFillRectanglesReq)(unsafe.Pointer(req)).Fcolor.Fblue = (*XRenderColor1)(unsafe.Pointer(color)).Fblue
 11824  		(*XRenderFillRectanglesReq)(unsafe.Pointer(req)).Fcolor.Falpha = (*XRenderColor1)(unsafe.Pointer(color)).Falpha
 11825  
 11826  		rect = req + uintptr(1)*20
 11827  	}
 11828  	(*XRectangle1)(unsafe.Pointer(rect)).Fx = INT16(x)
 11829  	(*XRectangle1)(unsafe.Pointer(rect)).Fy = INT16(y)
 11830  	(*XRectangle1)(unsafe.Pointer(rect)).Fwidth = CARD16(width)
 11831  	(*XRectangle1)(unsafe.Pointer(rect)).Fheight = CARD16(height)
 11832  
 11833  	if (*Display)(unsafe.Pointer(dpy)).Flock_fns != 0 {
 11834  		(*struct{ f func(*libc.TLS, uintptr) })(unsafe.Pointer(&struct{ uintptr }{(*X_XLockPtrs)(unsafe.Pointer((*Display)(unsafe.Pointer(dpy)).Flock_fns)).Funlock_display})).f(tls, dpy)
 11835  	}
 11836  	if (*Display)(unsafe.Pointer(dpy)).Fsynchandler != 0 {
 11837  		(*struct {
 11838  			f func(*libc.TLS, uintptr) int32
 11839  		})(unsafe.Pointer(&struct{ uintptr }{(*Display)(unsafe.Pointer(dpy)).Fsynchandler})).f(tls, dpy)
 11840  	}
 11841  }
 11842  
 11843  // Xlib uses long for 32-bit values.  Xrender uses int.  This
 11844  // matters on alpha.  Note that this macro assumes that int is 32 bits
 11845  // except on WORD64 machines where it is 64 bits.
 11846  
 11847  // precompute the maximum size of batching request allowed
 11848  
 11849  func XXRenderFillRectangles(tls *libc.TLS, dpy uintptr, op int32, dst Picture, color uintptr, rectangles uintptr, n_rects int32) { /* FillRects.c:35:1: */
 11850  	bp := tls.Alloc(4)
 11851  	defer tls.Free(4)
 11852  
 11853  	var info uintptr = XXRenderFindDisplay(tls, dpy)
 11854  	var req uintptr
 11855  	var len int32
 11856  	var n int32
 11857  
 11858  	if !(info != 0 && (*XRenderExtDisplayInfo)(unsafe.Pointer(info)).Fcodes != 0) {
 11859  		return
 11860  	}
 11861  
 11862  	if (*Display)(unsafe.Pointer(dpy)).Flock_fns != 0 {
 11863  		(*struct{ f func(*libc.TLS, uintptr) })(unsafe.Pointer(&struct{ uintptr }{(*X_XLockPtrs)(unsafe.Pointer((*Display)(unsafe.Pointer(dpy)).Flock_fns)).Flock_display})).f(tls, dpy)
 11864  	}
 11865  
 11866  	for n_rects != 0 {
 11867  		req = x11.X_XGetRequest(tls, dpy, uint8(X_RenderFillRectangles), uint32(Sz_xRenderFillRectanglesReq))
 11868  
 11869  		(*XRenderFillRectanglesReq)(unsafe.Pointer(req)).FreqType = CARD8((*XExtCodes)(unsafe.Pointer((*XRenderExtDisplayInfo)(unsafe.Pointer(info)).Fcodes)).Fmajor_opcode)
 11870  		(*XRenderFillRectanglesReq)(unsafe.Pointer(req)).FrenderReqType = CARD8(X_RenderFillRectangles)
 11871  		(*XRenderFillRectanglesReq)(unsafe.Pointer(req)).Fop = CARD8(op)
 11872  		(*XRenderFillRectanglesReq)(unsafe.Pointer(req)).Fdst = dst
 11873  		(*XRenderFillRectanglesReq)(unsafe.Pointer(req)).Fcolor.Fred = (*XRenderColor1)(unsafe.Pointer(color)).Fred
 11874  		(*XRenderFillRectanglesReq)(unsafe.Pointer(req)).Fcolor.Fgreen = (*XRenderColor1)(unsafe.Pointer(color)).Fgreen
 11875  		(*XRenderFillRectanglesReq)(unsafe.Pointer(req)).Fcolor.Fblue = (*XRenderColor1)(unsafe.Pointer(color)).Fblue
 11876  		(*XRenderFillRectanglesReq)(unsafe.Pointer(req)).Fcolor.Falpha = (*XRenderColor1)(unsafe.Pointer(color)).Falpha
 11877  
 11878  		n = n_rects
 11879  		len = int32(n) << 1
 11880  		if !(int32((*Display)(unsafe.Pointer(dpy)).Fbigreq_size) != 0) && uint32(len) > uint32((*Display)(unsafe.Pointer(dpy)).Fmax_request_size-uint32((*XRenderFillRectanglesReq)(unsafe.Pointer(req)).Flength)) {
 11881  			n = int32(((*Display)(unsafe.Pointer(dpy)).Fmax_request_size - uint32((*XRenderFillRectanglesReq)(unsafe.Pointer(req)).Flength)) >> 1)
 11882  			len = int32(n) << 1
 11883  		}
 11884  		if uint32(int32((*XRenderFillRectanglesReq)(unsafe.Pointer(req)).Flength)+len) > uint32(uint32(65535)) {
 11885  			if (*Display)(unsafe.Pointer(dpy)).Fbigreq_size != 0 {
 11886  				{
 11887  					// var _BRdat CARD32 at bp, 4
 11888  					var _BRlen CARD32 = CARD32(int32((*XRenderFillRectanglesReq)(unsafe.Pointer(req)).Flength) - 1)
 11889  					(*XRenderFillRectanglesReq)(unsafe.Pointer(req)).Flength = CARD16(0)
 11890  					*(*CARD32)(unsafe.Pointer(bp /* _BRdat */)) = *(*CARD32)(unsafe.Pointer(req + uintptr(_BRlen)*4))
 11891  					libc.Xmemmove(tls, req+uintptr(8), req+uintptr(4), uint32((_BRlen-CARD32(1))<<2))
 11892  					*(*CARD32)(unsafe.Pointer(req + 1*4)) = _BRlen + CARD32(len) + CARD32(2)
 11893  					{
 11894  						if (*Display)(unsafe.Pointer(dpy)).Fbufptr+uintptr(4) <= (*Display)(unsafe.Pointer(dpy)).Fbufmax {
 11895  							libc.Xmemcpy(tls, (*Display)(unsafe.Pointer(dpy)).Fbufptr, bp, uint32(4))
 11896  							*(*uintptr)(unsafe.Pointer(dpy + 108)) += uintptr((4 + 3) & libc.CplInt32(3))
 11897  						} else {
 11898  							x11.X_XSend(tls, dpy, bp, 4)
 11899  						}
 11900  					}
 11901  
 11902  				}
 11903  			} else {
 11904  				len = len
 11905  				*(*CARD16)(unsafe.Pointer(req + 2)) += CARD16(len)
 11906  			}
 11907  		} else {
 11908  			*(*CARD16)(unsafe.Pointer(req + 2)) += CARD16(len)
 11909  		}
 11910  		len <<= 2 /* watch out for macros... */
 11911  		{
 11912  			if (*Display)(unsafe.Pointer(dpy)).Fbufptr+uintptr(len) <= (*Display)(unsafe.Pointer(dpy)).Fbufmax {
 11913  				libc.Xmemcpy(tls, (*Display)(unsafe.Pointer(dpy)).Fbufptr, rectangles, uint32(int32(len)))
 11914  				*(*uintptr)(unsafe.Pointer(dpy + 108)) += uintptr((len + 3) & libc.CplInt32(3))
 11915  			} else {
 11916  				x11.X_XSend(tls, dpy, rectangles, len)
 11917  			}
 11918  		}
 11919  
 11920  		n_rects = n_rects - n
 11921  		rectangles += 8 * uintptr(n)
 11922  	}
 11923  	if (*Display)(unsafe.Pointer(dpy)).Flock_fns != 0 {
 11924  		(*struct{ f func(*libc.TLS, uintptr) })(unsafe.Pointer(&struct{ uintptr }{(*X_XLockPtrs)(unsafe.Pointer((*Display)(unsafe.Pointer(dpy)).Flock_fns)).Funlock_display})).f(tls, dpy)
 11925  	}
 11926  	if (*Display)(unsafe.Pointer(dpy)).Fsynchandler != 0 {
 11927  		(*struct {
 11928  			f func(*libc.TLS, uintptr) int32
 11929  		})(unsafe.Pointer(&struct{ uintptr }{(*Display)(unsafe.Pointer(dpy)).Fsynchandler})).f(tls, dpy)
 11930  	}
 11931  }
 11932  
 11933  // Xlib uses long for 32-bit values.  Xrender uses int.  This
 11934  // matters on alpha.  Note that this macro assumes that int is 32 bits
 11935  // except on WORD64 machines where it is 64 bits.
 11936  
 11937  // Copyright (C) 1992-2020 Free Software Foundation, Inc.
 11938  //
 11939  // This file is part of GCC.
 11940  //
 11941  // GCC is free software; you can redistribute it and/or modify it under
 11942  // the terms of the GNU General Public License as published by the Free
 11943  // Software Foundation; either version 3, or (at your option) any later
 11944  // version.
 11945  //
 11946  // GCC is distributed in the hope that it will be useful, but WITHOUT ANY
 11947  // WARRANTY; without even the implied warranty of MERCHANTABILITY or
 11948  // FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
 11949  // for more details.
 11950  //
 11951  // Under Section 7 of GPL version 3, you are granted additional
 11952  // permissions described in the GCC Runtime Library Exception, version
 11953  // 3.1, as published by the Free Software Foundation.
 11954  //
 11955  // You should have received a copy of the GNU General Public License and
 11956  // a copy of the GCC Runtime Library Exception along with this program;
 11957  // see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see
 11958  // <http://www.gnu.org/licenses/>.
 11959  
 11960  // This administrivia gets added to the beginning of limits.h
 11961  //    if the system has its own version of limits.h.
 11962  
 11963  // We use _GCC_LIMITS_H_ because we want this not to match
 11964  //    any macros that the system's limits.h uses for its own purposes.
 11965  
 11966  // Use "..." so that we find syslimits.h only in this same directory.
 11967  // syslimits.h stands for the system's own limits.h file.
 11968  //    If we can use it ok unmodified, then we install this text.
 11969  //    If fixincludes fixes it, then the fixed version is installed
 11970  //    instead of this text.
 11971  
 11972  // Copyright (C) 1991-2020 Free Software Foundation, Inc.
 11973  //    This file is part of the GNU C Library.
 11974  //
 11975  //    The GNU C Library is free software; you can redistribute it and/or
 11976  //    modify it under the terms of the GNU Lesser General Public
 11977  //    License as published by the Free Software Foundation; either
 11978  //    version 2.1 of the License, or (at your option) any later version.
 11979  //
 11980  //    The GNU C Library is distributed in the hope that it will be useful,
 11981  //    but WITHOUT ANY WARRANTY; without even the implied warranty of
 11982  //    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 11983  //    Lesser General Public License for more details.
 11984  //
 11985  //    You should have received a copy of the GNU Lesser General Public
 11986  //    License along with the GNU C Library; if not, see
 11987  //    <https://www.gnu.org/licenses/>.
 11988  
 11989  //	ISO C99 Standard: 7.10/5.2.4.2.1 Sizes of integer types	<limits.h>
 11990  
 11991  // Handle feature test macros at the start of a header.
 11992  //    Copyright (C) 2016-2020 Free Software Foundation, Inc.
 11993  //    This file is part of the GNU C Library.
 11994  //
 11995  //    The GNU C Library is free software; you can redistribute it and/or
 11996  //    modify it under the terms of the GNU Lesser General Public
 11997  //    License as published by the Free Software Foundation; either
 11998  //    version 2.1 of the License, or (at your option) any later version.
 11999  //
 12000  //    The GNU C Library is distributed in the hope that it will be useful,
 12001  //    but WITHOUT ANY WARRANTY; without even the implied warranty of
 12002  //    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 12003  //    Lesser General Public License for more details.
 12004  //
 12005  //    You should have received a copy of the GNU Lesser General Public
 12006  //    License along with the GNU C Library; if not, see
 12007  //    <https://www.gnu.org/licenses/>.
 12008  
 12009  // This header is internal to glibc and should not be included outside
 12010  //    of glibc headers.  Headers including it must define
 12011  //    __GLIBC_INTERNAL_STARTING_HEADER_IMPLEMENTATION first.  This header
 12012  //    cannot have multiple include guards because ISO C feature test
 12013  //    macros depend on the definition of the macro when an affected
 12014  //    header is included, not when the first system header is
 12015  //    included.
 12016  
 12017  // Copyright (C) 1991-2020 Free Software Foundation, Inc.
 12018  //    This file is part of the GNU C Library.
 12019  //
 12020  //    The GNU C Library is free software; you can redistribute it and/or
 12021  //    modify it under the terms of the GNU Lesser General Public
 12022  //    License as published by the Free Software Foundation; either
 12023  //    version 2.1 of the License, or (at your option) any later version.
 12024  //
 12025  //    The GNU C Library is distributed in the hope that it will be useful,
 12026  //    but WITHOUT ANY WARRANTY; without even the implied warranty of
 12027  //    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 12028  //    Lesser General Public License for more details.
 12029  //
 12030  //    You should have received a copy of the GNU Lesser General Public
 12031  //    License along with the GNU C Library; if not, see
 12032  //    <https://www.gnu.org/licenses/>.
 12033  
 12034  // ISO/IEC TR 24731-2:2010 defines the __STDC_WANT_LIB_EXT2__
 12035  //    macro.
 12036  
 12037  // ISO/IEC TS 18661-1:2014 defines the __STDC_WANT_IEC_60559_BFP_EXT__
 12038  //    macro.  Most but not all symbols enabled by that macro in TS
 12039  //    18661-1 are enabled unconditionally in C2X; the symbols in Annex F
 12040  //    still require that macro in C2X.
 12041  
 12042  // ISO/IEC TS 18661-4:2015 defines the
 12043  //    __STDC_WANT_IEC_60559_FUNCS_EXT__ macro.  Other than the reduction
 12044  //    functions, the symbols from this TS are enabled unconditionally in
 12045  //    C2X.
 12046  
 12047  // ISO/IEC TS 18661-3:2015 defines the
 12048  //    __STDC_WANT_IEC_60559_TYPES_EXT__ macro.
 12049  
 12050  // Maximum length of any multibyte character in any locale.
 12051  //    We define this value here since the gcc header does not define
 12052  //    the correct value.
 12053  
 12054  // If we are not using GNU CC we have to define all the symbols ourself.
 12055  //    Otherwise use gcc's definitions (see below).
 12056  
 12057  // Get the compiler's limits.h, which defines almost all the ISO constants.
 12058  //
 12059  //     We put this #include_next outside the double inclusion check because
 12060  //     it should be possible to include this file more than once and still get
 12061  //     the definitions from gcc's header.
 12062  
 12063  // The <limits.h> files in some gcc versions don't define LLONG_MIN,
 12064  //    LLONG_MAX, and ULLONG_MAX.  Instead only the values gcc defined for
 12065  //    ages are available.
 12066  
 12067  // The integer width macros are not defined by GCC's <limits.h> before
 12068  //    GCC 7, or if _GNU_SOURCE rather than
 12069  //    __STDC_WANT_IEC_60559_BFP_EXT__ is used to enable this feature.
 12070  
 12071  // POSIX adds things to <limits.h>.
 12072  // Copyright (C) 1991-2020 Free Software Foundation, Inc.
 12073  //    This file is part of the GNU C Library.
 12074  //
 12075  //    The GNU C Library is free software; you can redistribute it and/or
 12076  //    modify it under the terms of the GNU Lesser General Public
 12077  //    License as published by the Free Software Foundation; either
 12078  //    version 2.1 of the License, or (at your option) any later version.
 12079  //
 12080  //    The GNU C Library is distributed in the hope that it will be useful,
 12081  //    but WITHOUT ANY WARRANTY; without even the implied warranty of
 12082  //    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 12083  //    Lesser General Public License for more details.
 12084  //
 12085  //    You should have received a copy of the GNU Lesser General Public
 12086  //    License along with the GNU C Library; if not, see
 12087  //    <https://www.gnu.org/licenses/>.
 12088  
 12089  //	POSIX Standard: 2.9.2 Minimum Values	Added to <limits.h>
 12090  //
 12091  //	Never include this file directly; use <limits.h> instead.
 12092  
 12093  // Copyright (C) 1999-2020 Free Software Foundation, Inc.
 12094  //    This file is part of the GNU C Library.
 12095  //
 12096  //    The GNU C Library is free software; you can redistribute it and/or
 12097  //    modify it under the terms of the GNU Lesser General Public
 12098  //    License as published by the Free Software Foundation; either
 12099  //    version 2.1 of the License, or (at your option) any later version.
 12100  //
 12101  //    The GNU C Library is distributed in the hope that it will be useful,
 12102  //    but WITHOUT ANY WARRANTY; without even the implied warranty of
 12103  //    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 12104  //    Lesser General Public License for more details.
 12105  //
 12106  //    You should have received a copy of the GNU Lesser General Public
 12107  //    License along with the GNU C Library; if not, see
 12108  //    <https://www.gnu.org/licenses/>.
 12109  
 12110  // These are the standard-mandated minimum values.
 12111  
 12112  // Minimum number of operations in one list I/O call.
 12113  
 12114  // Minimal number of outstanding asynchronous I/O operations.
 12115  
 12116  // Maximum length of arguments to `execve', including environment.
 12117  
 12118  // Maximum simultaneous processes per real user ID.
 12119  
 12120  // Minimal number of timer expiration overruns.
 12121  
 12122  // Maximum length of a host name (not including the terminating null)
 12123  //    as returned from the GETHOSTNAME function.
 12124  
 12125  // Maximum link count of a file.
 12126  
 12127  // Maximum length of login name.
 12128  
 12129  // Number of bytes in a terminal canonical input queue.
 12130  
 12131  // Number of bytes for which space will be
 12132  //    available in a terminal input queue.
 12133  
 12134  // Maximum number of message queues open for a process.
 12135  
 12136  // Maximum number of supported message priorities.
 12137  
 12138  // Number of bytes in a filename.
 12139  
 12140  // Number of simultaneous supplementary group IDs per process.
 12141  
 12142  // Number of files one process can have open at once.
 12143  
 12144  // Number of bytes in a pathname.
 12145  
 12146  // Number of bytes than can be written atomically to a pipe.
 12147  
 12148  // The number of repeated occurrences of a BRE permitted by the
 12149  //    REGEXEC and REGCOMP functions when using the interval notation.
 12150  
 12151  // Minimal number of realtime signals reserved for the application.
 12152  
 12153  // Number of semaphores a process can have.
 12154  
 12155  // Maximal value of a semaphore.
 12156  
 12157  // Number of pending realtime signals.
 12158  
 12159  // Largest value of a `ssize_t'.
 12160  
 12161  // Number of streams a process can have open at once.
 12162  
 12163  // The number of bytes in a symbolic link.
 12164  
 12165  // The number of symbolic links that can be traversed in the
 12166  //    resolution of a pathname in the absence of a loop.
 12167  
 12168  // Number of timer for a process.
 12169  
 12170  // Maximum number of characters in a tty name.
 12171  
 12172  // Maximum length of a timezone name (element of `tzname').
 12173  
 12174  // Maximum clock resolution in nanoseconds.
 12175  
 12176  // Get the implementation-specific values for the above.
 12177  // Minimum guaranteed maximum values for system limits.  Linux version.
 12178  //    Copyright (C) 1993-2020 Free Software Foundation, Inc.
 12179  //    This file is part of the GNU C Library.
 12180  //
 12181  //    The GNU C Library is free software; you can redistribute it and/or
 12182  //    modify it under the terms of the GNU Lesser General Public License as
 12183  //    published by the Free Software Foundation; either version 2.1 of the
 12184  //    License, or (at your option) any later version.
 12185  //
 12186  //    The GNU C Library is distributed in the hope that it will be useful,
 12187  //    but WITHOUT ANY WARRANTY; without even the implied warranty of
 12188  //    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 12189  //    Lesser General Public License for more details.
 12190  //
 12191  //    You should have received a copy of the GNU Lesser General Public
 12192  //    License along with the GNU C Library; see the file COPYING.LIB.  If
 12193  //    not, see <https://www.gnu.org/licenses/>.
 12194  
 12195  // The kernel header pollutes the namespace with the NR_OPEN symbol
 12196  //    and defines LINK_MAX although filesystems have different maxima.  A
 12197  //    similar thing is true for OPEN_MAX: the limit can be changed at
 12198  //    runtime and therefore the macro must not be defined.  Remove this
 12199  //    after including the header if necessary.
 12200  
 12201  // The kernel sources contain a file with all the needed information.
 12202  // SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note
 12203  
 12204  // Have to remove NR_OPEN?
 12205  // Have to remove LINK_MAX?
 12206  // Have to remove OPEN_MAX?
 12207  // Have to remove ARG_MAX?
 12208  
 12209  // The number of data keys per process.
 12210  // This is the value this implementation supports.
 12211  
 12212  // Controlling the iterations of destructors for thread-specific data.
 12213  // Number of iterations this implementation does.
 12214  
 12215  // The number of threads per process.
 12216  // We have no predefined limit on the number of threads.
 12217  
 12218  // Maximum amount by which a process can descrease its asynchronous I/O
 12219  //    priority level.
 12220  
 12221  // Minimum size for a thread.  We are free to choose a reasonable value.
 12222  
 12223  // Maximum number of timer expiration overruns.
 12224  
 12225  // Maximum tty name length.
 12226  
 12227  // Maximum login name length.  This is arbitrary.
 12228  
 12229  // Maximum host name length.
 12230  
 12231  // Maximum message queue priority level.
 12232  
 12233  // Maximum value the semaphore can have.
 12234  
 12235  // ssize_t is not formally required to be the signed type
 12236  //    corresponding to size_t, but it is for all configurations supported
 12237  //    by glibc.
 12238  
 12239  // This value is a guaranteed minimum maximum.
 12240  //    The current maximum can be got from `sysconf'.
 12241  
 12242  // Copyright (C) 1991-2020 Free Software Foundation, Inc.
 12243  //    This file is part of the GNU C Library.
 12244  //
 12245  //    The GNU C Library is free software; you can redistribute it and/or
 12246  //    modify it under the terms of the GNU Lesser General Public
 12247  //    License as published by the Free Software Foundation; either
 12248  //    version 2.1 of the License, or (at your option) any later version.
 12249  //
 12250  //    The GNU C Library is distributed in the hope that it will be useful,
 12251  //    but WITHOUT ANY WARRANTY; without even the implied warranty of
 12252  //    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 12253  //    Lesser General Public License for more details.
 12254  //
 12255  //    You should have received a copy of the GNU Lesser General Public
 12256  //    License along with the GNU C Library; if not, see
 12257  //    <https://www.gnu.org/licenses/>.
 12258  
 12259  // Never include this file directly; include <limits.h> instead.
 12260  
 12261  // The maximum `ibase' and `obase' values allowed by the `bc' utility.
 12262  
 12263  // The maximum number of elements allowed in an array by the `bc' utility.
 12264  
 12265  // The maximum `scale' value allowed by the `bc' utility.
 12266  
 12267  // The maximum length of a string constant accepted by the `bc' utility.
 12268  
 12269  // The maximum number of weights that can be assigned to an entry of
 12270  //    the LC_COLLATE `order' keyword in the locale definition file.
 12271  
 12272  // The maximum number of expressions that can be nested
 12273  //    within parentheses by the `expr' utility.
 12274  
 12275  // The maximum length, in bytes, of an input line.
 12276  
 12277  // The maximum number of repeated occurrences of a regular expression
 12278  //    permitted when using the interval notation `\{M,N\}'.
 12279  
 12280  // The maximum number of bytes in a character class name.  We have no
 12281  //    fixed limit, 2048 is a high number.
 12282  
 12283  // These values are implementation-specific,
 12284  //    and may vary within the implementation.
 12285  //    Their precise values can be obtained from sysconf.
 12286  
 12287  // This value is defined like this in regex.h.
 12288  
 12289  // Copyright (C) 1991-2020 Free Software Foundation, Inc.
 12290  //
 12291  // This file is part of GCC.
 12292  //
 12293  // GCC is free software; you can redistribute it and/or modify it under
 12294  // the terms of the GNU General Public License as published by the Free
 12295  // Software Foundation; either version 3, or (at your option) any later
 12296  // version.
 12297  //
 12298  // GCC is distributed in the hope that it will be useful, but WITHOUT ANY
 12299  // WARRANTY; without even the implied warranty of MERCHANTABILITY or
 12300  // FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
 12301  // for more details.
 12302  //
 12303  // Under Section 7 of GPL version 3, you are granted additional
 12304  // permissions described in the GCC Runtime Library Exception, version
 12305  // 3.1, as published by the Free Software Foundation.
 12306  //
 12307  // You should have received a copy of the GNU General Public License and
 12308  // a copy of the GCC Runtime Library Exception along with this program;
 12309  // see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see
 12310  // <http://www.gnu.org/licenses/>.
 12311  
 12312  // Number of bits in a `char'.
 12313  
 12314  // Maximum length of a multibyte character.
 12315  
 12316  // Minimum and maximum values a `signed char' can hold.
 12317  
 12318  // Maximum value an `unsigned char' can hold.  (Minimum is 0).
 12319  
 12320  // Minimum and maximum values a `char' can hold.
 12321  
 12322  // Minimum and maximum values a `signed short int' can hold.
 12323  
 12324  // Maximum value an `unsigned short int' can hold.  (Minimum is 0).
 12325  
 12326  // Minimum and maximum values a `signed int' can hold.
 12327  
 12328  // Maximum value an `unsigned int' can hold.  (Minimum is 0).
 12329  
 12330  // Minimum and maximum values a `signed long int' can hold.
 12331  //    (Same as `int').
 12332  
 12333  // Maximum value an `unsigned long int' can hold.  (Minimum is 0).
 12334  
 12335  // Minimum and maximum values a `signed long long int' can hold.
 12336  
 12337  // Maximum value an `unsigned long long int' can hold.  (Minimum is 0).
 12338  
 12339  // This administrivia gets added to the end of limits.h
 12340  //    if the system has its own version of limits.h.
 12341  
 12342  func XXRenderQueryFilters(tls *libc.TLS, dpy uintptr, drawable Drawable) uintptr { /* Filter.c:30:10: */
 12343  	bp := tls.Alloc(33)
 12344  	defer tls.Free(33)
 12345  
 12346  	var info uintptr = XXRenderFindDisplay(tls, dpy)
 12347  	var xri uintptr
 12348  	var req uintptr
 12349  	// var rep XRenderQueryFiltersReply at bp, 32
 12350  
 12351  	var filters uintptr
 12352  	var name uintptr
 12353  	// var len uint8 at bp+32, 1
 12354  
 12355  	var i int32
 12356  	var nbytes uint32
 12357  	var nbytesAlias uint32
 12358  	var nbytesName uint32
 12359  	var reply_left uint32
 12360  
 12361  	if !(info != 0 && (*XRenderExtDisplayInfo)(unsafe.Pointer(info)).Fcodes != 0) {
 12362  		return uintptr(0)
 12363  	}
 12364  
 12365  	if !(XXRenderQueryFormats(tls, dpy) != 0) {
 12366  		return uintptr(0)
 12367  	}
 12368  
 12369  	xri = (*XRenderExtDisplayInfo)(unsafe.Pointer(info)).Finfo
 12370  	if (*XRenderInfo)(unsafe.Pointer(xri)).Fminor_version < 6 {
 12371  		return uintptr(0)
 12372  	}
 12373  
 12374  	if (*Display)(unsafe.Pointer(dpy)).Flock_fns != 0 {
 12375  		(*struct{ f func(*libc.TLS, uintptr) })(unsafe.Pointer(&struct{ uintptr }{(*X_XLockPtrs)(unsafe.Pointer((*Display)(unsafe.Pointer(dpy)).Flock_fns)).Flock_display})).f(tls, dpy)
 12376  	}
 12377  	req = x11.X_XGetRequest(tls, dpy, uint8(X_RenderQueryFilters), uint32(Sz_xRenderQueryFiltersReq))
 12378  	(*XRenderQueryFiltersReq)(unsafe.Pointer(req)).FreqType = CARD8((*XExtCodes)(unsafe.Pointer((*XRenderExtDisplayInfo)(unsafe.Pointer(info)).Fcodes)).Fmajor_opcode)
 12379  	(*XRenderQueryFiltersReq)(unsafe.Pointer(req)).FrenderReqType = CARD8(X_RenderQueryFilters)
 12380  	(*XRenderQueryFiltersReq)(unsafe.Pointer(req)).Fdrawable = drawable
 12381  	if !(x11.X_XReply(tls, dpy, bp, 0, XFalse) != 0) {
 12382  		if (*Display)(unsafe.Pointer(dpy)).Flock_fns != 0 {
 12383  			(*struct{ f func(*libc.TLS, uintptr) })(unsafe.Pointer(&struct{ uintptr }{(*X_XLockPtrs)(unsafe.Pointer((*Display)(unsafe.Pointer(dpy)).Flock_fns)).Funlock_display})).f(tls, dpy)
 12384  		}
 12385  		if (*Display)(unsafe.Pointer(dpy)).Fsynchandler != 0 {
 12386  			(*struct {
 12387  				f func(*libc.TLS, uintptr) int32
 12388  			})(unsafe.Pointer(&struct{ uintptr }{(*Display)(unsafe.Pointer(dpy)).Fsynchandler})).f(tls, dpy)
 12389  		}
 12390  		return uintptr(0)
 12391  	}
 12392  
 12393  	// Limit each component of combined size to 1/4 the max, which is far
 12394  	// more than they should ever possibly need.
 12395  	if (*XRenderQueryFiltersReply)(unsafe.Pointer(bp)).Flength < CARD32(int32(0x7fffffff)>>2) && (*XRenderQueryFiltersReply)(unsafe.Pointer(bp)).FnumFilters < uint32(0x7fffffff/4)/uint32(unsafe.Sizeof(uintptr(0))) && (*XRenderQueryFiltersReply)(unsafe.Pointer(bp)).FnumAliases < uint32(0x7fffffff/4)/uint32(unsafe.Sizeof(int16(0))) {
 12396  		// Compute total number of bytes for filter names
 12397  		nbytes = (*XRenderQueryFiltersReply)(unsafe.Pointer(bp)).Flength << 2
 12398  		nbytesAlias = (*XRenderQueryFiltersReply)(unsafe.Pointer(bp)).FnumAliases * CARD32(2)
 12399  		if (*XRenderQueryFiltersReply)(unsafe.Pointer(bp)).FnumAliases&CARD32(1) != 0 {
 12400  			nbytesAlias = nbytesAlias + uint32(2)
 12401  		}
 12402  		nbytesName = nbytes - nbytesAlias
 12403  
 12404  		// Allocate one giant block for the whole data structure
 12405  		filters = libc.Xmalloc(tls, func() uint32 {
 12406  			if CARD32(unsafe.Sizeof(XFilters{}))+(*XRenderQueryFiltersReply)(unsafe.Pointer(bp)).FnumFilters*CARD32(unsafe.Sizeof(uintptr(0)))+(*XRenderQueryFiltersReply)(unsafe.Pointer(bp)).FnumAliases*CARD32(unsafe.Sizeof(int16(0)))+nbytesName == CARD32(0) {
 12407  				return uint32(1)
 12408  			}
 12409  			return uint32(CARD32(unsafe.Sizeof(XFilters{})) + (*XRenderQueryFiltersReply)(unsafe.Pointer(bp)).FnumFilters*CARD32(unsafe.Sizeof(uintptr(0))) + (*XRenderQueryFiltersReply)(unsafe.Pointer(bp)).FnumAliases*CARD32(unsafe.Sizeof(int16(0))) + nbytesName)
 12410  		}())
 12411  	} else {
 12412  		filters = uintptr(0)
 12413  	}
 12414  
 12415  	if !(filters != 0) {
 12416  		x11.X_XEatDataWords(tls, dpy, (*XRenderQueryFiltersReply)(unsafe.Pointer(bp /* &rep */)).Flength)
 12417  		if (*Display)(unsafe.Pointer(dpy)).Flock_fns != 0 {
 12418  			(*struct{ f func(*libc.TLS, uintptr) })(unsafe.Pointer(&struct{ uintptr }{(*X_XLockPtrs)(unsafe.Pointer((*Display)(unsafe.Pointer(dpy)).Flock_fns)).Funlock_display})).f(tls, dpy)
 12419  		}
 12420  		if (*Display)(unsafe.Pointer(dpy)).Fsynchandler != 0 {
 12421  			(*struct {
 12422  				f func(*libc.TLS, uintptr) int32
 12423  			})(unsafe.Pointer(&struct{ uintptr }{(*Display)(unsafe.Pointer(dpy)).Fsynchandler})).f(tls, dpy)
 12424  		}
 12425  		return uintptr(0)
 12426  	}
 12427  
 12428  	// Layout:
 12429  	//	XFilters
 12430  	//	numFilters  char * pointers to filter names
 12431  	//	numAliases  short alias values
 12432  	//	nbytesName  char strings
 12433  
 12434  	(*XFilters)(unsafe.Pointer(filters)).Fnfilter = int32((*XRenderQueryFiltersReply)(unsafe.Pointer(bp /* &rep */)).FnumFilters)
 12435  	(*XFilters)(unsafe.Pointer(filters)).Fnalias = int32((*XRenderQueryFiltersReply)(unsafe.Pointer(bp /* &rep */)).FnumAliases)
 12436  	(*XFilters)(unsafe.Pointer(filters)).Ffilter = filters + uintptr(1)*16
 12437  	(*XFilters)(unsafe.Pointer(filters)).Falias = (*XFilters)(unsafe.Pointer(filters)).Ffilter + uintptr((*XRenderQueryFiltersReply)(unsafe.Pointer(bp)).FnumFilters)*4
 12438  	name = (*XFilters)(unsafe.Pointer(filters)).Falias + uintptr((*XRenderQueryFiltersReply)(unsafe.Pointer(bp)).FnumAliases)*2
 12439  
 12440  	// Read the filter aliases
 12441  	x11.X_XReadPad(tls, dpy, (*XFilters)(unsafe.Pointer(filters)).Falias, int32(CARD32(2)*(*XRenderQueryFiltersReply)(unsafe.Pointer(bp)).FnumAliases))
 12442  	reply_left = CARD32(8) + (*XRenderQueryFiltersReply)(unsafe.Pointer(bp)).Flength - CARD32(2)*(*XRenderQueryFiltersReply)(unsafe.Pointer(bp)).FnumAliases
 12443  
 12444  	// Read the filter names
 12445  	for i = 0; CARD32(i) < (*XRenderQueryFiltersReply)(unsafe.Pointer(bp /* &rep */)).FnumFilters; i++ {
 12446  		var l int32
 12447  		x11.X_XRead(tls, dpy, bp+32, 1)
 12448  		reply_left--
 12449  		l = int32(*(*uint8)(unsafe.Pointer(bp + 32))) & 0xff
 12450  		if uint32(l)+uint32(1) > nbytesName {
 12451  			x11.X_XEatDataWords(tls, dpy, reply_left)
 12452  			libc.Xfree(tls, filters)
 12453  			if (*Display)(unsafe.Pointer(dpy)).Flock_fns != 0 {
 12454  				(*struct{ f func(*libc.TLS, uintptr) })(unsafe.Pointer(&struct{ uintptr }{(*X_XLockPtrs)(unsafe.Pointer((*Display)(unsafe.Pointer(dpy)).Flock_fns)).Funlock_display})).f(tls, dpy)
 12455  			}
 12456  			if (*Display)(unsafe.Pointer(dpy)).Fsynchandler != 0 {
 12457  				(*struct {
 12458  					f func(*libc.TLS, uintptr) int32
 12459  				})(unsafe.Pointer(&struct{ uintptr }{(*Display)(unsafe.Pointer(dpy)).Fsynchandler})).f(tls, dpy)
 12460  			}
 12461  			return uintptr(0)
 12462  		}
 12463  		nbytesName = nbytesName - uint32(l+1)
 12464  		*(*uintptr)(unsafe.Pointer((*XFilters)(unsafe.Pointer(filters)).Ffilter + uintptr(i)*4)) = name
 12465  		x11.X_XRead(tls, dpy, name, int32(l))
 12466  		reply_left = reply_left - uint32(l)
 12467  		*(*uint8)(unsafe.Pointer(name + uintptr(l))) = uint8(0)
 12468  		name += uintptr(l + 1)
 12469  	}
 12470  	i = (int32(name) - int32((*XFilters)(unsafe.Pointer(filters)).Falias+uintptr((*XRenderQueryFiltersReply)(unsafe.Pointer(bp)).FnumAliases)*2)) / 1
 12471  
 12472  	if i&3 != 0 {
 12473  		x11.X_XEatData(tls, dpy, uint32(4-i&3))
 12474  	}
 12475  
 12476  	if (*Display)(unsafe.Pointer(dpy)).Flock_fns != 0 {
 12477  		(*struct{ f func(*libc.TLS, uintptr) })(unsafe.Pointer(&struct{ uintptr }{(*X_XLockPtrs)(unsafe.Pointer((*Display)(unsafe.Pointer(dpy)).Flock_fns)).Funlock_display})).f(tls, dpy)
 12478  	}
 12479  	if (*Display)(unsafe.Pointer(dpy)).Fsynchandler != 0 {
 12480  		(*struct {
 12481  			f func(*libc.TLS, uintptr) int32
 12482  		})(unsafe.Pointer(&struct{ uintptr }{(*Display)(unsafe.Pointer(dpy)).Fsynchandler})).f(tls, dpy)
 12483  	}
 12484  	return filters
 12485  }
 12486  
 12487  func XXRenderSetPictureFilter(tls *libc.TLS, dpy uintptr, picture Picture, filter uintptr, params uintptr, nparams int32) { /* Filter.c:153:1: */
 12488  	var info uintptr = XXRenderFindDisplay(tls, dpy)
 12489  	var req uintptr
 12490  	var nbytes int32 = int32(libc.Xstrlen(tls, filter))
 12491  
 12492  	if !(info != 0 && (*XRenderExtDisplayInfo)(unsafe.Pointer(info)).Fcodes != 0) {
 12493  		return
 12494  	}
 12495  
 12496  	if (*Display)(unsafe.Pointer(dpy)).Flock_fns != 0 {
 12497  		(*struct{ f func(*libc.TLS, uintptr) })(unsafe.Pointer(&struct{ uintptr }{(*X_XLockPtrs)(unsafe.Pointer((*Display)(unsafe.Pointer(dpy)).Flock_fns)).Flock_display})).f(tls, dpy)
 12498  	}
 12499  	req = x11.X_XGetRequest(tls, dpy, uint8(X_RenderSetPictureFilter), uint32(Sz_xRenderSetPictureFilterReq))
 12500  	(*XRenderSetPictureFilterReq)(unsafe.Pointer(req)).FreqType = CARD8((*XExtCodes)(unsafe.Pointer((*XRenderExtDisplayInfo)(unsafe.Pointer(info)).Fcodes)).Fmajor_opcode)
 12501  	(*XRenderSetPictureFilterReq)(unsafe.Pointer(req)).FrenderReqType = CARD8(X_RenderSetPictureFilter)
 12502  	(*XRenderSetPictureFilterReq)(unsafe.Pointer(req)).Fpicture = picture
 12503  	(*XRenderSetPictureFilterReq)(unsafe.Pointer(req)).Fnbytes = CARD16(nbytes)
 12504  	*(*CARD16)(unsafe.Pointer(req + 2)) += CARD16((nbytes+3)>>2 + nparams)
 12505  	{
 12506  		if (*Display)(unsafe.Pointer(dpy)).Fbufptr+uintptr(nbytes) <= (*Display)(unsafe.Pointer(dpy)).Fbufmax {
 12507  			libc.Xmemcpy(tls, (*Display)(unsafe.Pointer(dpy)).Fbufptr, filter, uint32(nbytes))
 12508  			*(*uintptr)(unsafe.Pointer(dpy + 108)) += uintptr((nbytes + 3) & libc.CplInt32(3))
 12509  		} else {
 12510  			x11.X_XSend(tls, dpy, filter, int32(nbytes))
 12511  		}
 12512  	}
 12513  
 12514  	{
 12515  		if (*Display)(unsafe.Pointer(dpy)).Fbufptr+uintptr(nparams<<2) <= (*Display)(unsafe.Pointer(dpy)).Fbufmax {
 12516  			libc.Xmemcpy(tls, (*Display)(unsafe.Pointer(dpy)).Fbufptr, params, uint32(nparams<<2))
 12517  			*(*uintptr)(unsafe.Pointer(dpy + 108)) += uintptr((nparams<<2 + 3) & libc.CplInt32(3))
 12518  		} else {
 12519  			x11.X_XSend(tls, dpy, params, int32(nparams<<2))
 12520  		}
 12521  	}
 12522  
 12523  	if (*Display)(unsafe.Pointer(dpy)).Flock_fns != 0 {
 12524  		(*struct{ f func(*libc.TLS, uintptr) })(unsafe.Pointer(&struct{ uintptr }{(*X_XLockPtrs)(unsafe.Pointer((*Display)(unsafe.Pointer(dpy)).Flock_fns)).Funlock_display})).f(tls, dpy)
 12525  	}
 12526  	if (*Display)(unsafe.Pointer(dpy)).Fsynchandler != 0 {
 12527  		(*struct {
 12528  			f func(*libc.TLS, uintptr) int32
 12529  		})(unsafe.Pointer(&struct{ uintptr }{(*Display)(unsafe.Pointer(dpy)).Fsynchandler})).f(tls, dpy)
 12530  	}
 12531  }
 12532  
 12533  // Xlib uses long for 32-bit values.  Xrender uses int.  This
 12534  // matters on alpha.  Note that this macro assumes that int is 32 bits
 12535  // except on WORD64 machines where it is 64 bits.
 12536  
 12537  func XXRenderCreateGlyphSet(tls *libc.TLS, dpy uintptr, format uintptr) GlyphSet { /* Glyph.c:31:1: */
 12538  	var info uintptr = XXRenderFindDisplay(tls, dpy)
 12539  	var gsid GlyphSet
 12540  	var req uintptr
 12541  
 12542  	if !(info != 0 && (*XRenderExtDisplayInfo)(unsafe.Pointer(info)).Fcodes != 0) {
 12543  		return GlyphSet(0)
 12544  	}
 12545  
 12546  	if (*Display)(unsafe.Pointer(dpy)).Flock_fns != 0 {
 12547  		(*struct{ f func(*libc.TLS, uintptr) })(unsafe.Pointer(&struct{ uintptr }{(*X_XLockPtrs)(unsafe.Pointer((*Display)(unsafe.Pointer(dpy)).Flock_fns)).Flock_display})).f(tls, dpy)
 12548  	}
 12549  	req = x11.X_XGetRequest(tls, dpy, uint8(X_RenderCreateGlyphSet), uint32(Sz_xRenderCreateGlyphSetReq))
 12550  	(*XRenderCreateGlyphSetReq)(unsafe.Pointer(req)).FreqType = CARD8((*XExtCodes)(unsafe.Pointer((*XRenderExtDisplayInfo)(unsafe.Pointer(info)).Fcodes)).Fmajor_opcode)
 12551  	(*XRenderCreateGlyphSetReq)(unsafe.Pointer(req)).FrenderReqType = CARD8(X_RenderCreateGlyphSet)
 12552  	(*XRenderCreateGlyphSetReq)(unsafe.Pointer(req)).Fgsid = libc.AssignUint32(&gsid, (*struct{ f func(*libc.TLS, uintptr) XID })(unsafe.Pointer(&struct{ uintptr }{(*struct {
 12553  		Fext_data            uintptr
 12554  		Fprivate1            uintptr
 12555  		Ffd                  int32
 12556  		Fprivate2            int32
 12557  		Fproto_major_version int32
 12558  		Fproto_minor_version int32
 12559  		Fvendor              uintptr
 12560  		Fprivate3            XID
 12561  		Fprivate4            XID
 12562  		Fprivate5            XID
 12563  		Fprivate6            int32
 12564  		Fresource_alloc      uintptr
 12565  		Fbyte_order          int32
 12566  		Fbitmap_unit         int32
 12567  		Fbitmap_pad          int32
 12568  		Fbitmap_bit_order    int32
 12569  		Fnformats            int32
 12570  		Fpixmap_format       uintptr
 12571  		Fprivate8            int32
 12572  		Frelease             int32
 12573  		Fprivate9            uintptr
 12574  		Fprivate10           uintptr
 12575  		Fqlen                int32
 12576  		Flast_request_read   uint32
 12577  		Frequest             uint32
 12578  		Fprivate11           XPointer
 12579  		Fprivate12           XPointer
 12580  		Fprivate13           XPointer
 12581  		Fprivate14           XPointer
 12582  		Fmax_request_size    uint32
 12583  		Fdb                  uintptr
 12584  		Fprivate15           uintptr
 12585  		Fdisplay_name        uintptr
 12586  		Fdefault_screen      int32
 12587  		Fnscreens            int32
 12588  		Fscreens             uintptr
 12589  		Fmotion_buffer       uint32
 12590  		Fprivate16           uint32
 12591  		Fmin_keycode         int32
 12592  		Fmax_keycode         int32
 12593  		Fprivate17           XPointer
 12594  		Fprivate18           XPointer
 12595  		Fprivate19           int32
 12596  		Fxdefaults           uintptr
 12597  	})(unsafe.Pointer(dpy)).Fresource_alloc})).f(tls, dpy))
 12598  	(*XRenderCreateGlyphSetReq)(unsafe.Pointer(req)).Fformat = (*XRenderPictFormat)(unsafe.Pointer(format)).Fid
 12599  	if (*Display)(unsafe.Pointer(dpy)).Flock_fns != 0 {
 12600  		(*struct{ f func(*libc.TLS, uintptr) })(unsafe.Pointer(&struct{ uintptr }{(*X_XLockPtrs)(unsafe.Pointer((*Display)(unsafe.Pointer(dpy)).Flock_fns)).Funlock_display})).f(tls, dpy)
 12601  	}
 12602  	if (*Display)(unsafe.Pointer(dpy)).Fsynchandler != 0 {
 12603  		(*struct {
 12604  			f func(*libc.TLS, uintptr) int32
 12605  		})(unsafe.Pointer(&struct{ uintptr }{(*Display)(unsafe.Pointer(dpy)).Fsynchandler})).f(tls, dpy)
 12606  	}
 12607  	return gsid
 12608  }
 12609  
 12610  func XXRenderReferenceGlyphSet(tls *libc.TLS, dpy uintptr, existing GlyphSet) GlyphSet { /* Glyph.c:50:1: */
 12611  	var info uintptr = XXRenderFindDisplay(tls, dpy)
 12612  	var gsid GlyphSet
 12613  	var req uintptr
 12614  
 12615  	if !(info != 0 && (*XRenderExtDisplayInfo)(unsafe.Pointer(info)).Fcodes != 0) {
 12616  		return GlyphSet(0)
 12617  	}
 12618  
 12619  	if (*Display)(unsafe.Pointer(dpy)).Flock_fns != 0 {
 12620  		(*struct{ f func(*libc.TLS, uintptr) })(unsafe.Pointer(&struct{ uintptr }{(*X_XLockPtrs)(unsafe.Pointer((*Display)(unsafe.Pointer(dpy)).Flock_fns)).Flock_display})).f(tls, dpy)
 12621  	}
 12622  	req = x11.X_XGetRequest(tls, dpy, uint8(X_RenderReferenceGlyphSet), uint32(Sz_xRenderReferenceGlyphSetReq))
 12623  	(*XRenderReferenceGlyphSetReq)(unsafe.Pointer(req)).FreqType = CARD8((*XExtCodes)(unsafe.Pointer((*XRenderExtDisplayInfo)(unsafe.Pointer(info)).Fcodes)).Fmajor_opcode)
 12624  	(*XRenderReferenceGlyphSetReq)(unsafe.Pointer(req)).FrenderReqType = CARD8(X_RenderReferenceGlyphSet)
 12625  	(*XRenderReferenceGlyphSetReq)(unsafe.Pointer(req)).Fgsid = libc.AssignUint32(&gsid, (*struct{ f func(*libc.TLS, uintptr) XID })(unsafe.Pointer(&struct{ uintptr }{(*struct {
 12626  		Fext_data            uintptr
 12627  		Fprivate1            uintptr
 12628  		Ffd                  int32
 12629  		Fprivate2            int32
 12630  		Fproto_major_version int32
 12631  		Fproto_minor_version int32
 12632  		Fvendor              uintptr
 12633  		Fprivate3            XID
 12634  		Fprivate4            XID
 12635  		Fprivate5            XID
 12636  		Fprivate6            int32
 12637  		Fresource_alloc      uintptr
 12638  		Fbyte_order          int32
 12639  		Fbitmap_unit         int32
 12640  		Fbitmap_pad          int32
 12641  		Fbitmap_bit_order    int32
 12642  		Fnformats            int32
 12643  		Fpixmap_format       uintptr
 12644  		Fprivate8            int32
 12645  		Frelease             int32
 12646  		Fprivate9            uintptr
 12647  		Fprivate10           uintptr
 12648  		Fqlen                int32
 12649  		Flast_request_read   uint32
 12650  		Frequest             uint32
 12651  		Fprivate11           XPointer
 12652  		Fprivate12           XPointer
 12653  		Fprivate13           XPointer
 12654  		Fprivate14           XPointer
 12655  		Fmax_request_size    uint32
 12656  		Fdb                  uintptr
 12657  		Fprivate15           uintptr
 12658  		Fdisplay_name        uintptr
 12659  		Fdefault_screen      int32
 12660  		Fnscreens            int32
 12661  		Fscreens             uintptr
 12662  		Fmotion_buffer       uint32
 12663  		Fprivate16           uint32
 12664  		Fmin_keycode         int32
 12665  		Fmax_keycode         int32
 12666  		Fprivate17           XPointer
 12667  		Fprivate18           XPointer
 12668  		Fprivate19           int32
 12669  		Fxdefaults           uintptr
 12670  	})(unsafe.Pointer(dpy)).Fresource_alloc})).f(tls, dpy))
 12671  	(*XRenderReferenceGlyphSetReq)(unsafe.Pointer(req)).Fexisting = existing
 12672  	if (*Display)(unsafe.Pointer(dpy)).Flock_fns != 0 {
 12673  		(*struct{ f func(*libc.TLS, uintptr) })(unsafe.Pointer(&struct{ uintptr }{(*X_XLockPtrs)(unsafe.Pointer((*Display)(unsafe.Pointer(dpy)).Flock_fns)).Funlock_display})).f(tls, dpy)
 12674  	}
 12675  	if (*Display)(unsafe.Pointer(dpy)).Fsynchandler != 0 {
 12676  		(*struct {
 12677  			f func(*libc.TLS, uintptr) int32
 12678  		})(unsafe.Pointer(&struct{ uintptr }{(*Display)(unsafe.Pointer(dpy)).Fsynchandler})).f(tls, dpy)
 12679  	}
 12680  	return gsid
 12681  }
 12682  
 12683  func XXRenderFreeGlyphSet(tls *libc.TLS, dpy uintptr, glyphset GlyphSet) { /* Glyph.c:69:1: */
 12684  	var info uintptr = XXRenderFindDisplay(tls, dpy)
 12685  	var req uintptr
 12686  
 12687  	if !(info != 0 && (*XRenderExtDisplayInfo)(unsafe.Pointer(info)).Fcodes != 0) {
 12688  		return
 12689  	}
 12690  
 12691  	if (*Display)(unsafe.Pointer(dpy)).Flock_fns != 0 {
 12692  		(*struct{ f func(*libc.TLS, uintptr) })(unsafe.Pointer(&struct{ uintptr }{(*X_XLockPtrs)(unsafe.Pointer((*Display)(unsafe.Pointer(dpy)).Flock_fns)).Flock_display})).f(tls, dpy)
 12693  	}
 12694  	req = x11.X_XGetRequest(tls, dpy, uint8(X_RenderFreeGlyphSet), uint32(Sz_xRenderFreeGlyphSetReq))
 12695  	(*XRenderFreeGlyphSetReq)(unsafe.Pointer(req)).FreqType = CARD8((*XExtCodes)(unsafe.Pointer((*XRenderExtDisplayInfo)(unsafe.Pointer(info)).Fcodes)).Fmajor_opcode)
 12696  	(*XRenderFreeGlyphSetReq)(unsafe.Pointer(req)).FrenderReqType = CARD8(X_RenderFreeGlyphSet)
 12697  	(*XRenderFreeGlyphSetReq)(unsafe.Pointer(req)).Fglyphset = glyphset
 12698  	if (*Display)(unsafe.Pointer(dpy)).Flock_fns != 0 {
 12699  		(*struct{ f func(*libc.TLS, uintptr) })(unsafe.Pointer(&struct{ uintptr }{(*X_XLockPtrs)(unsafe.Pointer((*Display)(unsafe.Pointer(dpy)).Flock_fns)).Funlock_display})).f(tls, dpy)
 12700  	}
 12701  	if (*Display)(unsafe.Pointer(dpy)).Fsynchandler != 0 {
 12702  		(*struct {
 12703  			f func(*libc.TLS, uintptr) int32
 12704  		})(unsafe.Pointer(&struct{ uintptr }{(*Display)(unsafe.Pointer(dpy)).Fsynchandler})).f(tls, dpy)
 12705  	}
 12706  }
 12707  
 12708  func XXRenderAddGlyphs(tls *libc.TLS, dpy uintptr, glyphset GlyphSet, gids uintptr, glyphs uintptr, nglyphs int32, images uintptr, nbyte_images int32) { /* Glyph.c:85:1: */
 12709  	bp := tls.Alloc(4)
 12710  	defer tls.Free(4)
 12711  
 12712  	var info uintptr = XXRenderFindDisplay(tls, dpy)
 12713  	var req uintptr
 12714  	var len int32
 12715  
 12716  	if nbyte_images&3 != 0 {
 12717  		nbyte_images = nbyte_images + (4 - nbyte_images&3)
 12718  	}
 12719  	if !(info != 0 && (*XRenderExtDisplayInfo)(unsafe.Pointer(info)).Fcodes != 0) {
 12720  		return
 12721  	}
 12722  
 12723  	if (*Display)(unsafe.Pointer(dpy)).Flock_fns != 0 {
 12724  		(*struct{ f func(*libc.TLS, uintptr) })(unsafe.Pointer(&struct{ uintptr }{(*X_XLockPtrs)(unsafe.Pointer((*Display)(unsafe.Pointer(dpy)).Flock_fns)).Flock_display})).f(tls, dpy)
 12725  	}
 12726  	req = x11.X_XGetRequest(tls, dpy, uint8(X_RenderAddGlyphs), uint32(Sz_xRenderAddGlyphsReq))
 12727  	(*XRenderAddGlyphsReq)(unsafe.Pointer(req)).FreqType = CARD8((*XExtCodes)(unsafe.Pointer((*XRenderExtDisplayInfo)(unsafe.Pointer(info)).Fcodes)).Fmajor_opcode)
 12728  	(*XRenderAddGlyphsReq)(unsafe.Pointer(req)).FrenderReqType = CARD8(X_RenderAddGlyphs)
 12729  	(*XRenderAddGlyphsReq)(unsafe.Pointer(req)).Fglyphset = glyphset
 12730  	(*XRenderAddGlyphsReq)(unsafe.Pointer(req)).Fnglyphs = CARD32(nglyphs)
 12731  	len = int32((nglyphs*(Sz_xGlyphInfo+4) + nbyte_images) >> 2)
 12732  	if uint32(int32((*XRenderAddGlyphsReq)(unsafe.Pointer(req)).Flength)+len) > uint32(uint32(65535)) {
 12733  		if (*Display)(unsafe.Pointer(dpy)).Fbigreq_size != 0 {
 12734  			{
 12735  				// var _BRdat CARD32 at bp, 4
 12736  				var _BRlen CARD32 = CARD32(int32((*XRenderAddGlyphsReq)(unsafe.Pointer(req)).Flength) - 1)
 12737  				(*XRenderAddGlyphsReq)(unsafe.Pointer(req)).Flength = CARD16(0)
 12738  				*(*CARD32)(unsafe.Pointer(bp /* _BRdat */)) = *(*CARD32)(unsafe.Pointer(req + uintptr(_BRlen)*4))
 12739  				libc.Xmemmove(tls, req+uintptr(8), req+uintptr(4), uint32((_BRlen-CARD32(1))<<2))
 12740  				*(*CARD32)(unsafe.Pointer(req + 1*4)) = _BRlen + CARD32(len) + CARD32(2)
 12741  				{
 12742  					if (*Display)(unsafe.Pointer(dpy)).Fbufptr+uintptr(4) <= (*Display)(unsafe.Pointer(dpy)).Fbufmax {
 12743  						libc.Xmemcpy(tls, (*Display)(unsafe.Pointer(dpy)).Fbufptr, bp, uint32(4))
 12744  						*(*uintptr)(unsafe.Pointer(dpy + 108)) += uintptr((4 + 3) & libc.CplInt32(3))
 12745  					} else {
 12746  						x11.X_XSend(tls, dpy, bp, 4)
 12747  					}
 12748  				}
 12749  
 12750  			}
 12751  		} else {
 12752  			len = len
 12753  			*(*CARD16)(unsafe.Pointer(req + 2)) += CARD16(len)
 12754  		}
 12755  	} else {
 12756  		*(*CARD16)(unsafe.Pointer(req + 2)) += CARD16(len)
 12757  	}
 12758  	{
 12759  		if (*Display)(unsafe.Pointer(dpy)).Fbufptr+uintptr(nglyphs*4) <= (*Display)(unsafe.Pointer(dpy)).Fbufmax {
 12760  			libc.Xmemcpy(tls, (*Display)(unsafe.Pointer(dpy)).Fbufptr, gids, uint32(nglyphs*4))
 12761  			*(*uintptr)(unsafe.Pointer(dpy + 108)) += uintptr((nglyphs*4 + 3) & libc.CplInt32(3))
 12762  		} else {
 12763  			x11.X_XSend(tls, dpy, gids, int32(nglyphs*4))
 12764  		}
 12765  	}
 12766  
 12767  	{
 12768  		if (*Display)(unsafe.Pointer(dpy)).Fbufptr+uintptr(nglyphs*Sz_xGlyphInfo) <= (*Display)(unsafe.Pointer(dpy)).Fbufmax {
 12769  			libc.Xmemcpy(tls, (*Display)(unsafe.Pointer(dpy)).Fbufptr, glyphs, uint32(nglyphs*Sz_xGlyphInfo))
 12770  			*(*uintptr)(unsafe.Pointer(dpy + 108)) += uintptr((nglyphs*Sz_xGlyphInfo + 3) & libc.CplInt32(3))
 12771  		} else {
 12772  			x11.X_XSend(tls, dpy, glyphs, int32(nglyphs*Sz_xGlyphInfo))
 12773  		}
 12774  	}
 12775  
 12776  	{
 12777  		if (*Display)(unsafe.Pointer(dpy)).Fbufptr+uintptr(nbyte_images) <= (*Display)(unsafe.Pointer(dpy)).Fbufmax {
 12778  			libc.Xmemcpy(tls, (*Display)(unsafe.Pointer(dpy)).Fbufptr, images, uint32(nbyte_images))
 12779  			*(*uintptr)(unsafe.Pointer(dpy + 108)) += uintptr((nbyte_images + 3) & libc.CplInt32(3))
 12780  		} else {
 12781  			x11.X_XSend(tls, dpy, images, int32(nbyte_images))
 12782  		}
 12783  	}
 12784  
 12785  	if (*Display)(unsafe.Pointer(dpy)).Flock_fns != 0 {
 12786  		(*struct{ f func(*libc.TLS, uintptr) })(unsafe.Pointer(&struct{ uintptr }{(*X_XLockPtrs)(unsafe.Pointer((*Display)(unsafe.Pointer(dpy)).Flock_fns)).Funlock_display})).f(tls, dpy)
 12787  	}
 12788  	if (*Display)(unsafe.Pointer(dpy)).Fsynchandler != 0 {
 12789  		(*struct {
 12790  			f func(*libc.TLS, uintptr) int32
 12791  		})(unsafe.Pointer(&struct{ uintptr }{(*Display)(unsafe.Pointer(dpy)).Fsynchandler})).f(tls, dpy)
 12792  	}
 12793  }
 12794  
 12795  func XXRenderFreeGlyphs(tls *libc.TLS, dpy uintptr, glyphset GlyphSet, gids uintptr, nglyphs int32) { /* Glyph.c:116:1: */
 12796  	bp := tls.Alloc(4)
 12797  	defer tls.Free(4)
 12798  
 12799  	var info uintptr = XXRenderFindDisplay(tls, dpy)
 12800  	var req uintptr
 12801  	var len int32
 12802  
 12803  	if !(info != 0 && (*XRenderExtDisplayInfo)(unsafe.Pointer(info)).Fcodes != 0) {
 12804  		return
 12805  	}
 12806  
 12807  	if (*Display)(unsafe.Pointer(dpy)).Flock_fns != 0 {
 12808  		(*struct{ f func(*libc.TLS, uintptr) })(unsafe.Pointer(&struct{ uintptr }{(*X_XLockPtrs)(unsafe.Pointer((*Display)(unsafe.Pointer(dpy)).Flock_fns)).Flock_display})).f(tls, dpy)
 12809  	}
 12810  	req = x11.X_XGetRequest(tls, dpy, uint8(X_RenderFreeGlyphs), uint32(Sz_xRenderFreeGlyphsReq))
 12811  	(*XRenderFreeGlyphsReq)(unsafe.Pointer(req)).FreqType = CARD8((*XExtCodes)(unsafe.Pointer((*XRenderExtDisplayInfo)(unsafe.Pointer(info)).Fcodes)).Fmajor_opcode)
 12812  	(*XRenderFreeGlyphsReq)(unsafe.Pointer(req)).FrenderReqType = CARD8(X_RenderFreeGlyphs)
 12813  	(*XRenderFreeGlyphsReq)(unsafe.Pointer(req)).Fglyphset = glyphset
 12814  	len = int32(nglyphs)
 12815  	if uint32(int32((*XRenderFreeGlyphsReq)(unsafe.Pointer(req)).Flength)+len) > uint32(uint32(65535)) {
 12816  		if (*Display)(unsafe.Pointer(dpy)).Fbigreq_size != 0 {
 12817  			{
 12818  				// var _BRdat CARD32 at bp, 4
 12819  				var _BRlen CARD32 = CARD32(int32((*XRenderFreeGlyphsReq)(unsafe.Pointer(req)).Flength) - 1)
 12820  				(*XRenderFreeGlyphsReq)(unsafe.Pointer(req)).Flength = CARD16(0)
 12821  				*(*CARD32)(unsafe.Pointer(bp /* _BRdat */)) = *(*CARD32)(unsafe.Pointer(req + uintptr(_BRlen)*4))
 12822  				libc.Xmemmove(tls, req+uintptr(8), req+uintptr(4), uint32((_BRlen-CARD32(1))<<2))
 12823  				*(*CARD32)(unsafe.Pointer(req + 1*4)) = _BRlen + CARD32(len) + CARD32(2)
 12824  				{
 12825  					if (*Display)(unsafe.Pointer(dpy)).Fbufptr+uintptr(4) <= (*Display)(unsafe.Pointer(dpy)).Fbufmax {
 12826  						libc.Xmemcpy(tls, (*Display)(unsafe.Pointer(dpy)).Fbufptr, bp, uint32(4))
 12827  						*(*uintptr)(unsafe.Pointer(dpy + 108)) += uintptr((4 + 3) & libc.CplInt32(3))
 12828  					} else {
 12829  						x11.X_XSend(tls, dpy, bp, 4)
 12830  					}
 12831  				}
 12832  
 12833  			}
 12834  		} else {
 12835  			len = len
 12836  			*(*CARD16)(unsafe.Pointer(req + 2)) += CARD16(len)
 12837  		}
 12838  	} else {
 12839  		*(*CARD16)(unsafe.Pointer(req + 2)) += CARD16(len)
 12840  	}
 12841  	len <<= 2
 12842  	{
 12843  		if (*Display)(unsafe.Pointer(dpy)).Fbufptr+uintptr(len) <= (*Display)(unsafe.Pointer(dpy)).Fbufmax {
 12844  			libc.Xmemcpy(tls, (*Display)(unsafe.Pointer(dpy)).Fbufptr, gids, uint32(int32(len)))
 12845  			*(*uintptr)(unsafe.Pointer(dpy + 108)) += uintptr((len + 3) & libc.CplInt32(3))
 12846  		} else {
 12847  			x11.X_XSend(tls, dpy, gids, len)
 12848  		}
 12849  	}
 12850  
 12851  	if (*Display)(unsafe.Pointer(dpy)).Flock_fns != 0 {
 12852  		(*struct{ f func(*libc.TLS, uintptr) })(unsafe.Pointer(&struct{ uintptr }{(*X_XLockPtrs)(unsafe.Pointer((*Display)(unsafe.Pointer(dpy)).Flock_fns)).Funlock_display})).f(tls, dpy)
 12853  	}
 12854  	if (*Display)(unsafe.Pointer(dpy)).Fsynchandler != 0 {
 12855  		(*struct {
 12856  			f func(*libc.TLS, uintptr) int32
 12857  		})(unsafe.Pointer(&struct{ uintptr }{(*Display)(unsafe.Pointer(dpy)).Fsynchandler})).f(tls, dpy)
 12858  	}
 12859  }
 12860  
 12861  func XXRenderCompositeString8(tls *libc.TLS, dpy uintptr, op int32, src Picture, dst Picture, maskFormat uintptr, glyphset GlyphSet, xSrc int32, ySrc int32, xDst int32, yDst int32, string uintptr, nchar int32) { /* Glyph.c:140:1: */
 12862  	var info uintptr = XXRenderFindDisplay(tls, dpy)
 12863  	var req uintptr
 12864  	var len int32
 12865  	var elt uintptr
 12866  	var nbytes int32
 12867  
 12868  	if !(nchar != 0) {
 12869  		return
 12870  	}
 12871  
 12872  	if !(info != 0 && (*XRenderExtDisplayInfo)(unsafe.Pointer(info)).Fcodes != 0) {
 12873  		return
 12874  	}
 12875  
 12876  	if (*Display)(unsafe.Pointer(dpy)).Flock_fns != 0 {
 12877  		(*struct{ f func(*libc.TLS, uintptr) })(unsafe.Pointer(&struct{ uintptr }{(*X_XLockPtrs)(unsafe.Pointer((*Display)(unsafe.Pointer(dpy)).Flock_fns)).Flock_display})).f(tls, dpy)
 12878  	}
 12879  
 12880  	req = x11.X_XGetRequest(tls, dpy, uint8(X_RenderCompositeGlyphs8), uint32(Sz_xRenderCompositeGlyphs8Req))
 12881  	(*XRenderCompositeGlyphs8Req)(unsafe.Pointer(req)).FreqType = CARD8((*XExtCodes)(unsafe.Pointer((*XRenderExtDisplayInfo)(unsafe.Pointer(info)).Fcodes)).Fmajor_opcode)
 12882  	(*XRenderCompositeGlyphs8Req)(unsafe.Pointer(req)).FrenderReqType = CARD8(X_RenderCompositeGlyphs8)
 12883  	(*XRenderCompositeGlyphs8Req)(unsafe.Pointer(req)).Fop = CARD8(op)
 12884  	(*XRenderCompositeGlyphs8Req)(unsafe.Pointer(req)).Fsrc = src
 12885  	(*XRenderCompositeGlyphs8Req)(unsafe.Pointer(req)).Fdst = dst
 12886  	(*XRenderCompositeGlyphs8Req)(unsafe.Pointer(req)).FmaskFormat = func() uint32 {
 12887  		if maskFormat != 0 {
 12888  			return (*XRenderPictFormat)(unsafe.Pointer(maskFormat)).Fid
 12889  		}
 12890  		return uint32(None)
 12891  	}()
 12892  	(*XRenderCompositeGlyphs8Req)(unsafe.Pointer(req)).Fglyphset = glyphset
 12893  	(*XRenderCompositeGlyphs8Req)(unsafe.Pointer(req)).FxSrc = INT16(xSrc)
 12894  	(*XRenderCompositeGlyphs8Req)(unsafe.Pointer(req)).FySrc = INT16(ySrc)
 12895  
 12896  	// xGlyphElt must be aligned on a 32-bit boundary; this is
 12897  	// easily done by filling no more than 252 glyphs in each
 12898  	// bucket
 12899  
 12900  	len = int32(Sz_xGlyphElt*((nchar+252-1)/252) + nchar)
 12901  
 12902  	*(*CARD16)(unsafe.Pointer(req + 2)) += CARD16((len + 3) >> 2) // convert to number of 32-bit words
 12903  
 12904  	// If the entire request does not fit into the remaining space in the
 12905  	// buffer, flush the buffer first.
 12906  
 12907  	if (*Display)(unsafe.Pointer(dpy)).Fbufptr+uintptr(len) > (*Display)(unsafe.Pointer(dpy)).Fbufmax {
 12908  		x11.X_XFlush(tls, dpy)
 12909  	}
 12910  
 12911  	for nchar > 252 {
 12912  		nbytes = 252 + Sz_xGlyphElt
 12913  		if (*Display)(unsafe.Pointer(dpy)).Fbufptr+uintptr(nbytes) > (*Display)(unsafe.Pointer(dpy)).Fbufmax {
 12914  			x11.X_XFlush(tls, dpy)
 12915  		}
 12916  		elt = (*Display)(unsafe.Pointer(dpy)).Fbufptr
 12917  		libc.Xmemset(tls, elt, 0, uint32(nbytes))
 12918  		*(*uintptr)(unsafe.Pointer(dpy + 108)) += uintptr(nbytes)
 12919  
 12920  		(*XGlyphElt)(unsafe.Pointer(elt)).Flen = CARD8(252)
 12921  		(*XGlyphElt)(unsafe.Pointer(elt)).Fdeltax = INT16(xDst)
 12922  		(*XGlyphElt)(unsafe.Pointer(elt)).Fdeltay = INT16(yDst)
 12923  		xDst = 0
 12924  		yDst = 0
 12925  		libc.Xmemcpy(tls, elt+uintptr(1)*8, string, uint32(252))
 12926  		nchar = nchar - 252
 12927  		string += uintptr(252)
 12928  	}
 12929  
 12930  	if nchar != 0 {
 12931  		nbytes = (nchar + Sz_xGlyphElt + 3) & libc.CplInt32(3)
 12932  		if (*Display)(unsafe.Pointer(dpy)).Fbufptr+uintptr(nbytes) > (*Display)(unsafe.Pointer(dpy)).Fbufmax {
 12933  			x11.X_XFlush(tls, dpy)
 12934  		}
 12935  		elt = (*Display)(unsafe.Pointer(dpy)).Fbufptr
 12936  		libc.Xmemset(tls, elt, 0, uint32(nbytes))
 12937  		*(*uintptr)(unsafe.Pointer(dpy + 108)) += uintptr(nbytes)
 12938  
 12939  		(*XGlyphElt)(unsafe.Pointer(elt)).Flen = CARD8(nchar)
 12940  		(*XGlyphElt)(unsafe.Pointer(elt)).Fdeltax = INT16(xDst)
 12941  		(*XGlyphElt)(unsafe.Pointer(elt)).Fdeltay = INT16(yDst)
 12942  		libc.Xmemcpy(tls, elt+uintptr(1)*8, string, uint32(nchar))
 12943  	}
 12944  
 12945  	if (*Display)(unsafe.Pointer(dpy)).Flock_fns != 0 {
 12946  		(*struct{ f func(*libc.TLS, uintptr) })(unsafe.Pointer(&struct{ uintptr }{(*X_XLockPtrs)(unsafe.Pointer((*Display)(unsafe.Pointer(dpy)).Flock_fns)).Funlock_display})).f(tls, dpy)
 12947  	}
 12948  	if (*Display)(unsafe.Pointer(dpy)).Fsynchandler != 0 {
 12949  		(*struct {
 12950  			f func(*libc.TLS, uintptr) int32
 12951  		})(unsafe.Pointer(&struct{ uintptr }{(*Display)(unsafe.Pointer(dpy)).Fsynchandler})).f(tls, dpy)
 12952  	}
 12953  }
 12954  
 12955  func XXRenderCompositeString16(tls *libc.TLS, dpy uintptr, op int32, src Picture, dst Picture, maskFormat uintptr, glyphset GlyphSet, xSrc int32, ySrc int32, xDst int32, yDst int32, string uintptr, nchar int32) { /* Glyph.c:225:1: */
 12956  	var info uintptr = XXRenderFindDisplay(tls, dpy)
 12957  	var req uintptr
 12958  	var len int32
 12959  	var elt uintptr
 12960  	var nbytes int32
 12961  
 12962  	if !(nchar != 0) {
 12963  		return
 12964  	}
 12965  
 12966  	if !(info != 0 && (*XRenderExtDisplayInfo)(unsafe.Pointer(info)).Fcodes != 0) {
 12967  		return
 12968  	}
 12969  
 12970  	if (*Display)(unsafe.Pointer(dpy)).Flock_fns != 0 {
 12971  		(*struct{ f func(*libc.TLS, uintptr) })(unsafe.Pointer(&struct{ uintptr }{(*X_XLockPtrs)(unsafe.Pointer((*Display)(unsafe.Pointer(dpy)).Flock_fns)).Flock_display})).f(tls, dpy)
 12972  	}
 12973  
 12974  	req = x11.X_XGetRequest(tls, dpy, uint8(X_RenderCompositeGlyphs16), uint32(Sz_xRenderCompositeGlyphs16Req))
 12975  	(*XRenderCompositeGlyphs8Req)(unsafe.Pointer(req)).FreqType = CARD8((*XExtCodes)(unsafe.Pointer((*XRenderExtDisplayInfo)(unsafe.Pointer(info)).Fcodes)).Fmajor_opcode)
 12976  	(*XRenderCompositeGlyphs8Req)(unsafe.Pointer(req)).FrenderReqType = CARD8(X_RenderCompositeGlyphs16)
 12977  	(*XRenderCompositeGlyphs8Req)(unsafe.Pointer(req)).Fop = CARD8(op)
 12978  	(*XRenderCompositeGlyphs8Req)(unsafe.Pointer(req)).Fsrc = src
 12979  	(*XRenderCompositeGlyphs8Req)(unsafe.Pointer(req)).Fdst = dst
 12980  	(*XRenderCompositeGlyphs8Req)(unsafe.Pointer(req)).FmaskFormat = func() uint32 {
 12981  		if maskFormat != 0 {
 12982  			return (*XRenderPictFormat)(unsafe.Pointer(maskFormat)).Fid
 12983  		}
 12984  		return uint32(None)
 12985  	}()
 12986  	(*XRenderCompositeGlyphs8Req)(unsafe.Pointer(req)).Fglyphset = glyphset
 12987  	(*XRenderCompositeGlyphs8Req)(unsafe.Pointer(req)).FxSrc = INT16(xSrc)
 12988  	(*XRenderCompositeGlyphs8Req)(unsafe.Pointer(req)).FySrc = INT16(ySrc)
 12989  
 12990  	len = int32(Sz_xGlyphElt*((nchar+254-1)/254) + nchar*2)
 12991  
 12992  	*(*CARD16)(unsafe.Pointer(req + 2)) += CARD16((len + 3) >> 2) // convert to number of 32-bit words
 12993  
 12994  	// If the entire request does not fit into the remaining space in the
 12995  	// buffer, flush the buffer first.
 12996  
 12997  	if (*Display)(unsafe.Pointer(dpy)).Fbufptr+uintptr(len) > (*Display)(unsafe.Pointer(dpy)).Fbufmax {
 12998  		x11.X_XFlush(tls, dpy)
 12999  	}
 13000  
 13001  	for nchar > 254 {
 13002  		nbytes = 254*2 + Sz_xGlyphElt
 13003  		if (*Display)(unsafe.Pointer(dpy)).Fbufptr+uintptr(nbytes) > (*Display)(unsafe.Pointer(dpy)).Fbufmax {
 13004  			x11.X_XFlush(tls, dpy)
 13005  		}
 13006  		elt = (*Display)(unsafe.Pointer(dpy)).Fbufptr
 13007  		libc.Xmemset(tls, elt, 0, uint32(nbytes))
 13008  		*(*uintptr)(unsafe.Pointer(dpy + 108)) += uintptr(nbytes)
 13009  
 13010  		(*XGlyphElt)(unsafe.Pointer(elt)).Flen = CARD8(254)
 13011  		(*XGlyphElt)(unsafe.Pointer(elt)).Fdeltax = INT16(xDst)
 13012  		(*XGlyphElt)(unsafe.Pointer(elt)).Fdeltay = INT16(yDst)
 13013  		xDst = 0
 13014  		yDst = 0
 13015  		libc.Xmemcpy(tls, elt+uintptr(1)*8, string, uint32(254*2))
 13016  		nchar = nchar - 254
 13017  		string += 2 * uintptr(254)
 13018  	}
 13019  
 13020  	if nchar != 0 {
 13021  		nbytes = (nchar*2 + Sz_xGlyphElt + 3) & libc.CplInt32(3)
 13022  		if (*Display)(unsafe.Pointer(dpy)).Fbufptr+uintptr(nbytes) > (*Display)(unsafe.Pointer(dpy)).Fbufmax {
 13023  			x11.X_XFlush(tls, dpy)
 13024  		}
 13025  		elt = (*Display)(unsafe.Pointer(dpy)).Fbufptr
 13026  		libc.Xmemset(tls, elt, 0, uint32(nbytes))
 13027  		*(*uintptr)(unsafe.Pointer(dpy + 108)) += uintptr(nbytes)
 13028  
 13029  		(*XGlyphElt)(unsafe.Pointer(elt)).Flen = CARD8(nchar)
 13030  		(*XGlyphElt)(unsafe.Pointer(elt)).Fdeltax = INT16(xDst)
 13031  		(*XGlyphElt)(unsafe.Pointer(elt)).Fdeltay = INT16(yDst)
 13032  		libc.Xmemcpy(tls, elt+uintptr(1)*8, string, uint32(nchar*2))
 13033  	}
 13034  
 13035  	if (*Display)(unsafe.Pointer(dpy)).Flock_fns != 0 {
 13036  		(*struct{ f func(*libc.TLS, uintptr) })(unsafe.Pointer(&struct{ uintptr }{(*X_XLockPtrs)(unsafe.Pointer((*Display)(unsafe.Pointer(dpy)).Flock_fns)).Funlock_display})).f(tls, dpy)
 13037  	}
 13038  	if (*Display)(unsafe.Pointer(dpy)).Fsynchandler != 0 {
 13039  		(*struct {
 13040  			f func(*libc.TLS, uintptr) int32
 13041  		})(unsafe.Pointer(&struct{ uintptr }{(*Display)(unsafe.Pointer(dpy)).Fsynchandler})).f(tls, dpy)
 13042  	}
 13043  }
 13044  
 13045  func XXRenderCompositeString32(tls *libc.TLS, dpy uintptr, op int32, src Picture, dst Picture, maskFormat uintptr, glyphset GlyphSet, xSrc int32, ySrc int32, xDst int32, yDst int32, string uintptr, nchar int32) { /* Glyph.c:305:1: */
 13046  	var info uintptr = XXRenderFindDisplay(tls, dpy)
 13047  	var req uintptr
 13048  	var len int32
 13049  	var elt uintptr
 13050  	var nbytes int32
 13051  
 13052  	if !(nchar != 0) {
 13053  		return
 13054  	}
 13055  
 13056  	if !(info != 0 && (*XRenderExtDisplayInfo)(unsafe.Pointer(info)).Fcodes != 0) {
 13057  		return
 13058  	}
 13059  
 13060  	if (*Display)(unsafe.Pointer(dpy)).Flock_fns != 0 {
 13061  		(*struct{ f func(*libc.TLS, uintptr) })(unsafe.Pointer(&struct{ uintptr }{(*X_XLockPtrs)(unsafe.Pointer((*Display)(unsafe.Pointer(dpy)).Flock_fns)).Flock_display})).f(tls, dpy)
 13062  	}
 13063  
 13064  	req = x11.X_XGetRequest(tls, dpy, uint8(X_RenderCompositeGlyphs32), uint32(Sz_xRenderCompositeGlyphs32Req))
 13065  	(*XRenderCompositeGlyphs8Req)(unsafe.Pointer(req)).FreqType = CARD8((*XExtCodes)(unsafe.Pointer((*XRenderExtDisplayInfo)(unsafe.Pointer(info)).Fcodes)).Fmajor_opcode)
 13066  	(*XRenderCompositeGlyphs8Req)(unsafe.Pointer(req)).FrenderReqType = CARD8(X_RenderCompositeGlyphs32)
 13067  	(*XRenderCompositeGlyphs8Req)(unsafe.Pointer(req)).Fop = CARD8(op)
 13068  	(*XRenderCompositeGlyphs8Req)(unsafe.Pointer(req)).Fsrc = src
 13069  	(*XRenderCompositeGlyphs8Req)(unsafe.Pointer(req)).Fdst = dst
 13070  	(*XRenderCompositeGlyphs8Req)(unsafe.Pointer(req)).FmaskFormat = func() uint32 {
 13071  		if maskFormat != 0 {
 13072  			return (*XRenderPictFormat)(unsafe.Pointer(maskFormat)).Fid
 13073  		}
 13074  		return uint32(None)
 13075  	}()
 13076  	(*XRenderCompositeGlyphs8Req)(unsafe.Pointer(req)).Fglyphset = glyphset
 13077  	(*XRenderCompositeGlyphs8Req)(unsafe.Pointer(req)).FxSrc = INT16(xSrc)
 13078  	(*XRenderCompositeGlyphs8Req)(unsafe.Pointer(req)).FySrc = INT16(ySrc)
 13079  
 13080  	len = int32(Sz_xGlyphElt*((nchar+254-1)/254) + nchar*4)
 13081  
 13082  	*(*CARD16)(unsafe.Pointer(req + 2)) += CARD16((len + 3) >> 2) // convert to number of 32-bit words
 13083  
 13084  	// If the entire request does not fit into the remaining space in the
 13085  	// buffer, flush the buffer first.
 13086  
 13087  	if (*Display)(unsafe.Pointer(dpy)).Fbufptr+uintptr(len) > (*Display)(unsafe.Pointer(dpy)).Fbufmax {
 13088  		x11.X_XFlush(tls, dpy)
 13089  	}
 13090  
 13091  	for nchar > 254 {
 13092  		nbytes = 254*4 + Sz_xGlyphElt
 13093  		if (*Display)(unsafe.Pointer(dpy)).Fbufptr+uintptr(nbytes) > (*Display)(unsafe.Pointer(dpy)).Fbufmax {
 13094  			x11.X_XFlush(tls, dpy)
 13095  		}
 13096  		elt = (*Display)(unsafe.Pointer(dpy)).Fbufptr
 13097  		libc.Xmemset(tls, elt, 0, uint32(nbytes))
 13098  		*(*uintptr)(unsafe.Pointer(dpy + 108)) += uintptr(nbytes)
 13099  
 13100  		(*XGlyphElt)(unsafe.Pointer(elt)).Flen = CARD8(254)
 13101  		(*XGlyphElt)(unsafe.Pointer(elt)).Fdeltax = INT16(xDst)
 13102  		(*XGlyphElt)(unsafe.Pointer(elt)).Fdeltay = INT16(yDst)
 13103  		xDst = 0
 13104  		yDst = 0
 13105  		libc.Xmemcpy(tls, elt+uintptr(1)*8, string, uint32(254*4))
 13106  		nchar = nchar - 254
 13107  		string += 4 * uintptr(254)
 13108  	}
 13109  
 13110  	if nchar != 0 {
 13111  		nbytes = nchar*4 + Sz_xGlyphElt
 13112  		if (*Display)(unsafe.Pointer(dpy)).Fbufptr+uintptr(nbytes) > (*Display)(unsafe.Pointer(dpy)).Fbufmax {
 13113  			x11.X_XFlush(tls, dpy)
 13114  		}
 13115  		elt = (*Display)(unsafe.Pointer(dpy)).Fbufptr
 13116  		libc.Xmemset(tls, elt, 0, uint32(nbytes))
 13117  		*(*uintptr)(unsafe.Pointer(dpy + 108)) += uintptr(nbytes)
 13118  
 13119  		(*XGlyphElt)(unsafe.Pointer(elt)).Flen = CARD8(nchar)
 13120  		(*XGlyphElt)(unsafe.Pointer(elt)).Fdeltax = INT16(xDst)
 13121  		(*XGlyphElt)(unsafe.Pointer(elt)).Fdeltay = INT16(yDst)
 13122  		libc.Xmemcpy(tls, elt+uintptr(1)*8, string, uint32(nchar*4))
 13123  	}
 13124  
 13125  	if (*Display)(unsafe.Pointer(dpy)).Flock_fns != 0 {
 13126  		(*struct{ f func(*libc.TLS, uintptr) })(unsafe.Pointer(&struct{ uintptr }{(*X_XLockPtrs)(unsafe.Pointer((*Display)(unsafe.Pointer(dpy)).Flock_fns)).Funlock_display})).f(tls, dpy)
 13127  	}
 13128  	if (*Display)(unsafe.Pointer(dpy)).Fsynchandler != 0 {
 13129  		(*struct {
 13130  			f func(*libc.TLS, uintptr) int32
 13131  		})(unsafe.Pointer(&struct{ uintptr }{(*Display)(unsafe.Pointer(dpy)).Fsynchandler})).f(tls, dpy)
 13132  	}
 13133  }
 13134  
 13135  func XXRenderCompositeText8(tls *libc.TLS, dpy uintptr, op int32, src Picture, dst Picture, maskFormat uintptr, xSrc int32, ySrc int32, xDst int32, yDst int32, elts uintptr, nelt int32) { /* Glyph.c:385:1: */
 13136  	bp := tls.Alloc(4)
 13137  	defer tls.Free(4)
 13138  
 13139  	var info uintptr = XXRenderFindDisplay(tls, dpy)
 13140  	var req uintptr
 13141  	// var glyphset GlyphSet at bp, 4
 13142  
 13143  	var len int32
 13144  	var elen int32
 13145  	var elt uintptr
 13146  	var i int32
 13147  	var chars uintptr
 13148  	var nchars int32
 13149  
 13150  	if !(nelt != 0) {
 13151  		return
 13152  	}
 13153  
 13154  	if !(info != 0 && (*XRenderExtDisplayInfo)(unsafe.Pointer(info)).Fcodes != 0) {
 13155  		return
 13156  	}
 13157  
 13158  	if (*Display)(unsafe.Pointer(dpy)).Flock_fns != 0 {
 13159  		(*struct{ f func(*libc.TLS, uintptr) })(unsafe.Pointer(&struct{ uintptr }{(*X_XLockPtrs)(unsafe.Pointer((*Display)(unsafe.Pointer(dpy)).Flock_fns)).Flock_display})).f(tls, dpy)
 13160  	}
 13161  
 13162  	req = x11.X_XGetRequest(tls, dpy, uint8(X_RenderCompositeGlyphs8), uint32(Sz_xRenderCompositeGlyphs8Req))
 13163  	(*XRenderCompositeGlyphs8Req)(unsafe.Pointer(req)).FreqType = CARD8((*XExtCodes)(unsafe.Pointer((*XRenderExtDisplayInfo)(unsafe.Pointer(info)).Fcodes)).Fmajor_opcode)
 13164  	(*XRenderCompositeGlyphs8Req)(unsafe.Pointer(req)).FrenderReqType = CARD8(X_RenderCompositeGlyphs8)
 13165  	(*XRenderCompositeGlyphs8Req)(unsafe.Pointer(req)).Fop = CARD8(op)
 13166  	(*XRenderCompositeGlyphs8Req)(unsafe.Pointer(req)).Fsrc = src
 13167  	(*XRenderCompositeGlyphs8Req)(unsafe.Pointer(req)).Fdst = dst
 13168  	(*XRenderCompositeGlyphs8Req)(unsafe.Pointer(req)).FmaskFormat = func() uint32 {
 13169  		if maskFormat != 0 {
 13170  			return (*XRenderPictFormat)(unsafe.Pointer(maskFormat)).Fid
 13171  		}
 13172  		return uint32(None)
 13173  	}()
 13174  	(*XRenderCompositeGlyphs8Req)(unsafe.Pointer(req)).Fglyphset = (*XGlyphElt8)(unsafe.Pointer(elts)).Fglyphset
 13175  	(*XRenderCompositeGlyphs8Req)(unsafe.Pointer(req)).FxSrc = INT16(xSrc)
 13176  	(*XRenderCompositeGlyphs8Req)(unsafe.Pointer(req)).FySrc = INT16(ySrc)
 13177  
 13178  	// Compute the space necessary
 13179  	len = 0
 13180  
 13181  	*(*GlyphSet)(unsafe.Pointer(bp /* glyphset */)) = (*XGlyphElt8)(unsafe.Pointer(elts)).Fglyphset
 13182  	for i = 0; i < nelt; i++ {
 13183  		// Check for glyphset change
 13184  		if (*XGlyphElt8)(unsafe.Pointer(elts+uintptr(i)*20)).Fglyphset != *(*GlyphSet)(unsafe.Pointer(bp)) {
 13185  			*(*GlyphSet)(unsafe.Pointer(bp /* glyphset */)) = (*XGlyphElt8)(unsafe.Pointer(elts + uintptr(i)*20)).Fglyphset
 13186  			len = len + int32(Sz_xGlyphElt+4)>>2
 13187  		}
 13188  		nchars = (*XGlyphElt8)(unsafe.Pointer(elts + uintptr(i)*20)).Fnchars
 13189  		// xGlyphElt must be aligned on a 32-bit boundary; this is
 13190  		// easily done by filling no more than 252 glyphs in each
 13191  		// bucket
 13192  		elen = int32(Sz_xGlyphElt*((nchars+252-1)/252) + nchars)
 13193  		len = len + (elen+3)>>2
 13194  	}
 13195  
 13196  	*(*CARD16)(unsafe.Pointer(req + 2)) += CARD16(len)
 13197  
 13198  	// Send the glyphs
 13199  	*(*GlyphSet)(unsafe.Pointer(bp /* glyphset */)) = (*XGlyphElt8)(unsafe.Pointer(elts)).Fglyphset
 13200  	for i = 0; i < nelt; i++ {
 13201  		// Switch glyphsets
 13202  		if (*XGlyphElt8)(unsafe.Pointer(elts+uintptr(i)*20)).Fglyphset != *(*GlyphSet)(unsafe.Pointer(bp)) {
 13203  			*(*GlyphSet)(unsafe.Pointer(bp /* glyphset */)) = (*XGlyphElt8)(unsafe.Pointer(elts + uintptr(i)*20)).Fglyphset
 13204  			if (*Display)(unsafe.Pointer(dpy)).Fbufptr+uintptr(Sz_xGlyphElt) > (*Display)(unsafe.Pointer(dpy)).Fbufmax {
 13205  				x11.X_XFlush(tls, dpy)
 13206  			}
 13207  			elt = (*Display)(unsafe.Pointer(dpy)).Fbufptr
 13208  			libc.Xmemset(tls, elt, 0, uint32(Sz_xGlyphElt))
 13209  			*(*uintptr)(unsafe.Pointer(dpy + 108)) += uintptr(Sz_xGlyphElt)
 13210  
 13211  			(*XGlyphElt)(unsafe.Pointer(elt)).Flen = CARD8(0xff)
 13212  			(*XGlyphElt)(unsafe.Pointer(elt)).Fdeltax = int16(0)
 13213  			(*XGlyphElt)(unsafe.Pointer(elt)).Fdeltay = int16(0)
 13214  			{
 13215  				if (*Display)(unsafe.Pointer(dpy)).Fbufptr+uintptr(4) <= (*Display)(unsafe.Pointer(dpy)).Fbufmax {
 13216  					libc.Xmemcpy(tls, (*Display)(unsafe.Pointer(dpy)).Fbufptr, bp, uint32(4))
 13217  					*(*uintptr)(unsafe.Pointer(dpy + 108)) += uintptr((4 + 3) & libc.CplInt32(3))
 13218  				} else {
 13219  					x11.X_XSend(tls, dpy, bp, 4)
 13220  				}
 13221  			}
 13222  
 13223  		}
 13224  		nchars = (*XGlyphElt8)(unsafe.Pointer(elts + uintptr(i)*20)).Fnchars
 13225  		xDst = (*XGlyphElt8)(unsafe.Pointer(elts + uintptr(i)*20)).FxOff
 13226  		yDst = (*XGlyphElt8)(unsafe.Pointer(elts + uintptr(i)*20)).FyOff
 13227  		chars = (*XGlyphElt8)(unsafe.Pointer(elts + uintptr(i)*20)).Fchars
 13228  		for nchars != 0 {
 13229  			var this_chars int32
 13230  			if nchars > 252 {
 13231  				this_chars = 252
 13232  			} else {
 13233  				this_chars = nchars
 13234  			}
 13235  
 13236  			if (*Display)(unsafe.Pointer(dpy)).Fbufptr+uintptr(Sz_xGlyphElt) > (*Display)(unsafe.Pointer(dpy)).Fbufmax {
 13237  				x11.X_XFlush(tls, dpy)
 13238  			}
 13239  			elt = (*Display)(unsafe.Pointer(dpy)).Fbufptr
 13240  			libc.Xmemset(tls, elt, 0, uint32(Sz_xGlyphElt))
 13241  			*(*uintptr)(unsafe.Pointer(dpy + 108)) += uintptr(Sz_xGlyphElt)
 13242  			(*XGlyphElt)(unsafe.Pointer(elt)).Flen = CARD8(this_chars)
 13243  			(*XGlyphElt)(unsafe.Pointer(elt)).Fdeltax = INT16(xDst)
 13244  			(*XGlyphElt)(unsafe.Pointer(elt)).Fdeltay = INT16(yDst)
 13245  			xDst = 0
 13246  			yDst = 0
 13247  			{
 13248  				if (*Display)(unsafe.Pointer(dpy)).Fbufptr+uintptr(this_chars) <= (*Display)(unsafe.Pointer(dpy)).Fbufmax {
 13249  					libc.Xmemcpy(tls, (*Display)(unsafe.Pointer(dpy)).Fbufptr, chars, uint32(this_chars))
 13250  					*(*uintptr)(unsafe.Pointer(dpy + 108)) += uintptr((this_chars + 3) & libc.CplInt32(3))
 13251  				} else {
 13252  					x11.X_XSend(tls, dpy, chars, int32(this_chars))
 13253  				}
 13254  			}
 13255  
 13256  			nchars = nchars - this_chars
 13257  			chars += uintptr(this_chars)
 13258  		}
 13259  	}
 13260  
 13261  	if (*Display)(unsafe.Pointer(dpy)).Flock_fns != 0 {
 13262  		(*struct{ f func(*libc.TLS, uintptr) })(unsafe.Pointer(&struct{ uintptr }{(*X_XLockPtrs)(unsafe.Pointer((*Display)(unsafe.Pointer(dpy)).Flock_fns)).Funlock_display})).f(tls, dpy)
 13263  	}
 13264  	if (*Display)(unsafe.Pointer(dpy)).Fsynchandler != 0 {
 13265  		(*struct {
 13266  			f func(*libc.TLS, uintptr) int32
 13267  		})(unsafe.Pointer(&struct{ uintptr }{(*Display)(unsafe.Pointer(dpy)).Fsynchandler})).f(tls, dpy)
 13268  	}
 13269  }
 13270  
 13271  func XXRenderCompositeText16(tls *libc.TLS, dpy uintptr, op int32, src Picture, dst Picture, maskFormat uintptr, xSrc int32, ySrc int32, xDst int32, yDst int32, elts uintptr, nelt int32) { /* Glyph.c:498:1: */
 13272  	bp := tls.Alloc(4)
 13273  	defer tls.Free(4)
 13274  
 13275  	var info uintptr = XXRenderFindDisplay(tls, dpy)
 13276  	var req uintptr
 13277  	// var glyphset GlyphSet at bp, 4
 13278  
 13279  	var len int32
 13280  	var elen int32
 13281  	var elt uintptr
 13282  	var i int32
 13283  	var chars uintptr
 13284  	var nchars int32
 13285  
 13286  	if !(nelt != 0) {
 13287  		return
 13288  	}
 13289  
 13290  	if !(info != 0 && (*XRenderExtDisplayInfo)(unsafe.Pointer(info)).Fcodes != 0) {
 13291  		return
 13292  	}
 13293  
 13294  	if (*Display)(unsafe.Pointer(dpy)).Flock_fns != 0 {
 13295  		(*struct{ f func(*libc.TLS, uintptr) })(unsafe.Pointer(&struct{ uintptr }{(*X_XLockPtrs)(unsafe.Pointer((*Display)(unsafe.Pointer(dpy)).Flock_fns)).Flock_display})).f(tls, dpy)
 13296  	}
 13297  
 13298  	req = x11.X_XGetRequest(tls, dpy, uint8(X_RenderCompositeGlyphs16), uint32(Sz_xRenderCompositeGlyphs16Req))
 13299  	(*XRenderCompositeGlyphs16Req)(unsafe.Pointer(req)).FreqType = CARD8((*XExtCodes)(unsafe.Pointer((*XRenderExtDisplayInfo)(unsafe.Pointer(info)).Fcodes)).Fmajor_opcode)
 13300  	(*XRenderCompositeGlyphs16Req)(unsafe.Pointer(req)).FrenderReqType = CARD8(X_RenderCompositeGlyphs16)
 13301  	(*XRenderCompositeGlyphs16Req)(unsafe.Pointer(req)).Fop = CARD8(op)
 13302  	(*XRenderCompositeGlyphs16Req)(unsafe.Pointer(req)).Fsrc = src
 13303  	(*XRenderCompositeGlyphs16Req)(unsafe.Pointer(req)).Fdst = dst
 13304  	(*XRenderCompositeGlyphs16Req)(unsafe.Pointer(req)).FmaskFormat = func() uint32 {
 13305  		if maskFormat != 0 {
 13306  			return (*XRenderPictFormat)(unsafe.Pointer(maskFormat)).Fid
 13307  		}
 13308  		return uint32(None)
 13309  	}()
 13310  	(*XRenderCompositeGlyphs16Req)(unsafe.Pointer(req)).Fglyphset = (*XGlyphElt16)(unsafe.Pointer(elts)).Fglyphset
 13311  	(*XRenderCompositeGlyphs16Req)(unsafe.Pointer(req)).FxSrc = INT16(xSrc)
 13312  	(*XRenderCompositeGlyphs16Req)(unsafe.Pointer(req)).FySrc = INT16(ySrc)
 13313  
 13314  	// Compute the space necessary
 13315  	len = 0
 13316  
 13317  	*(*GlyphSet)(unsafe.Pointer(bp /* glyphset */)) = (*XGlyphElt16)(unsafe.Pointer(elts)).Fglyphset
 13318  	for i = 0; i < nelt; i++ {
 13319  		// Check for glyphset change
 13320  		if (*XGlyphElt16)(unsafe.Pointer(elts+uintptr(i)*20)).Fglyphset != *(*GlyphSet)(unsafe.Pointer(bp)) {
 13321  			*(*GlyphSet)(unsafe.Pointer(bp /* glyphset */)) = (*XGlyphElt16)(unsafe.Pointer(elts + uintptr(i)*20)).Fglyphset
 13322  			len = len + int32(Sz_xGlyphElt+4)>>2
 13323  		}
 13324  		nchars = (*XGlyphElt16)(unsafe.Pointer(elts + uintptr(i)*20)).Fnchars
 13325  		// xGlyphElt must be aligned on a 32-bit boundary; this is
 13326  		// easily done by filling no more than 254 glyphs in each
 13327  		// bucket
 13328  		elen = int32(Sz_xGlyphElt*((nchars+254-1)/254) + nchars*2)
 13329  		len = len + (elen+3)>>2
 13330  	}
 13331  
 13332  	*(*CARD16)(unsafe.Pointer(req + 2)) += CARD16(len)
 13333  
 13334  	*(*GlyphSet)(unsafe.Pointer(bp /* glyphset */)) = (*XGlyphElt16)(unsafe.Pointer(elts)).Fglyphset
 13335  	for i = 0; i < nelt; i++ {
 13336  		// Switch glyphsets
 13337  		if (*XGlyphElt16)(unsafe.Pointer(elts+uintptr(i)*20)).Fglyphset != *(*GlyphSet)(unsafe.Pointer(bp)) {
 13338  			*(*GlyphSet)(unsafe.Pointer(bp /* glyphset */)) = (*XGlyphElt16)(unsafe.Pointer(elts + uintptr(i)*20)).Fglyphset
 13339  			if (*Display)(unsafe.Pointer(dpy)).Fbufptr+uintptr(Sz_xGlyphElt) > (*Display)(unsafe.Pointer(dpy)).Fbufmax {
 13340  				x11.X_XFlush(tls, dpy)
 13341  			}
 13342  			elt = (*Display)(unsafe.Pointer(dpy)).Fbufptr
 13343  			libc.Xmemset(tls, elt, 0, uint32(Sz_xGlyphElt))
 13344  			*(*uintptr)(unsafe.Pointer(dpy + 108)) += uintptr(Sz_xGlyphElt)
 13345  
 13346  			(*XGlyphElt)(unsafe.Pointer(elt)).Flen = CARD8(0xff)
 13347  			(*XGlyphElt)(unsafe.Pointer(elt)).Fdeltax = int16(0)
 13348  			(*XGlyphElt)(unsafe.Pointer(elt)).Fdeltay = int16(0)
 13349  			{
 13350  				if (*Display)(unsafe.Pointer(dpy)).Fbufptr+uintptr(4) <= (*Display)(unsafe.Pointer(dpy)).Fbufmax {
 13351  					libc.Xmemcpy(tls, (*Display)(unsafe.Pointer(dpy)).Fbufptr, bp, uint32(4))
 13352  					*(*uintptr)(unsafe.Pointer(dpy + 108)) += uintptr((4 + 3) & libc.CplInt32(3))
 13353  				} else {
 13354  					x11.X_XSend(tls, dpy, bp, 4)
 13355  				}
 13356  			}
 13357  
 13358  		}
 13359  		nchars = (*XGlyphElt16)(unsafe.Pointer(elts + uintptr(i)*20)).Fnchars
 13360  		xDst = (*XGlyphElt16)(unsafe.Pointer(elts + uintptr(i)*20)).FxOff
 13361  		yDst = (*XGlyphElt16)(unsafe.Pointer(elts + uintptr(i)*20)).FyOff
 13362  		chars = (*XGlyphElt16)(unsafe.Pointer(elts + uintptr(i)*20)).Fchars
 13363  		for nchars != 0 {
 13364  			var this_chars int32
 13365  			if nchars > 254 {
 13366  				this_chars = 254
 13367  			} else {
 13368  				this_chars = nchars
 13369  			}
 13370  			var this_bytes int32 = this_chars * 2
 13371  
 13372  			if (*Display)(unsafe.Pointer(dpy)).Fbufptr+uintptr(Sz_xGlyphElt) > (*Display)(unsafe.Pointer(dpy)).Fbufmax {
 13373  				x11.X_XFlush(tls, dpy)
 13374  			}
 13375  			elt = (*Display)(unsafe.Pointer(dpy)).Fbufptr
 13376  			libc.Xmemset(tls, elt, 0, uint32(Sz_xGlyphElt))
 13377  			*(*uintptr)(unsafe.Pointer(dpy + 108)) += uintptr(Sz_xGlyphElt)
 13378  			(*XGlyphElt)(unsafe.Pointer(elt)).Flen = CARD8(this_chars)
 13379  			(*XGlyphElt)(unsafe.Pointer(elt)).Fdeltax = INT16(xDst)
 13380  			(*XGlyphElt)(unsafe.Pointer(elt)).Fdeltay = INT16(yDst)
 13381  			xDst = 0
 13382  			yDst = 0
 13383  			{
 13384  				if (*Display)(unsafe.Pointer(dpy)).Fbufptr+uintptr(this_bytes) <= (*Display)(unsafe.Pointer(dpy)).Fbufmax {
 13385  					libc.Xmemcpy(tls, (*Display)(unsafe.Pointer(dpy)).Fbufptr, chars, uint32(this_bytes))
 13386  					*(*uintptr)(unsafe.Pointer(dpy + 108)) += uintptr((this_bytes + 3) & libc.CplInt32(3))
 13387  				} else {
 13388  					x11.X_XSend(tls, dpy, chars, int32(this_bytes))
 13389  				}
 13390  			}
 13391  
 13392  			nchars = nchars - this_chars
 13393  			chars += 2 * uintptr(this_chars)
 13394  		}
 13395  	}
 13396  
 13397  	if (*Display)(unsafe.Pointer(dpy)).Flock_fns != 0 {
 13398  		(*struct{ f func(*libc.TLS, uintptr) })(unsafe.Pointer(&struct{ uintptr }{(*X_XLockPtrs)(unsafe.Pointer((*Display)(unsafe.Pointer(dpy)).Flock_fns)).Funlock_display})).f(tls, dpy)
 13399  	}
 13400  	if (*Display)(unsafe.Pointer(dpy)).Fsynchandler != 0 {
 13401  		(*struct {
 13402  			f func(*libc.TLS, uintptr) int32
 13403  		})(unsafe.Pointer(&struct{ uintptr }{(*Display)(unsafe.Pointer(dpy)).Fsynchandler})).f(tls, dpy)
 13404  	}
 13405  }
 13406  
 13407  func XXRenderCompositeText32(tls *libc.TLS, dpy uintptr, op int32, src Picture, dst Picture, maskFormat uintptr, xSrc int32, ySrc int32, xDst int32, yDst int32, elts uintptr, nelt int32) { /* Glyph.c:609:1: */
 13408  	bp := tls.Alloc(4)
 13409  	defer tls.Free(4)
 13410  
 13411  	var info uintptr = XXRenderFindDisplay(tls, dpy)
 13412  	var req uintptr
 13413  	// var glyphset GlyphSet at bp, 4
 13414  
 13415  	var len int32
 13416  	var elen int32
 13417  	var elt uintptr
 13418  	var i int32
 13419  	var chars uintptr
 13420  	var nchars int32
 13421  
 13422  	if !(nelt != 0) {
 13423  		return
 13424  	}
 13425  
 13426  	if !(info != 0 && (*XRenderExtDisplayInfo)(unsafe.Pointer(info)).Fcodes != 0) {
 13427  		return
 13428  	}
 13429  
 13430  	if (*Display)(unsafe.Pointer(dpy)).Flock_fns != 0 {
 13431  		(*struct{ f func(*libc.TLS, uintptr) })(unsafe.Pointer(&struct{ uintptr }{(*X_XLockPtrs)(unsafe.Pointer((*Display)(unsafe.Pointer(dpy)).Flock_fns)).Flock_display})).f(tls, dpy)
 13432  	}
 13433  
 13434  	req = x11.X_XGetRequest(tls, dpy, uint8(X_RenderCompositeGlyphs32), uint32(Sz_xRenderCompositeGlyphs32Req))
 13435  	(*XRenderCompositeGlyphs32Req)(unsafe.Pointer(req)).FreqType = CARD8((*XExtCodes)(unsafe.Pointer((*XRenderExtDisplayInfo)(unsafe.Pointer(info)).Fcodes)).Fmajor_opcode)
 13436  	(*XRenderCompositeGlyphs32Req)(unsafe.Pointer(req)).FrenderReqType = CARD8(X_RenderCompositeGlyphs32)
 13437  	(*XRenderCompositeGlyphs32Req)(unsafe.Pointer(req)).Fop = CARD8(op)
 13438  	(*XRenderCompositeGlyphs32Req)(unsafe.Pointer(req)).Fsrc = src
 13439  	(*XRenderCompositeGlyphs32Req)(unsafe.Pointer(req)).Fdst = dst
 13440  	(*XRenderCompositeGlyphs32Req)(unsafe.Pointer(req)).FmaskFormat = func() uint32 {
 13441  		if maskFormat != 0 {
 13442  			return (*XRenderPictFormat)(unsafe.Pointer(maskFormat)).Fid
 13443  		}
 13444  		return uint32(None)
 13445  	}()
 13446  	(*XRenderCompositeGlyphs32Req)(unsafe.Pointer(req)).Fglyphset = (*XGlyphElt32)(unsafe.Pointer(elts)).Fglyphset
 13447  	(*XRenderCompositeGlyphs32Req)(unsafe.Pointer(req)).FxSrc = INT16(xSrc)
 13448  	(*XRenderCompositeGlyphs32Req)(unsafe.Pointer(req)).FySrc = INT16(ySrc)
 13449  
 13450  	// Compute the space necessary
 13451  	len = 0
 13452  
 13453  	*(*GlyphSet)(unsafe.Pointer(bp /* glyphset */)) = (*XGlyphElt32)(unsafe.Pointer(elts)).Fglyphset
 13454  	for i = 0; i < nelt; i++ {
 13455  		// Check for glyphset change
 13456  		if (*XGlyphElt32)(unsafe.Pointer(elts+uintptr(i)*20)).Fglyphset != *(*GlyphSet)(unsafe.Pointer(bp)) {
 13457  			*(*GlyphSet)(unsafe.Pointer(bp /* glyphset */)) = (*XGlyphElt32)(unsafe.Pointer(elts + uintptr(i)*20)).Fglyphset
 13458  			len = len + int32(Sz_xGlyphElt+4)>>2
 13459  		}
 13460  		nchars = (*XGlyphElt32)(unsafe.Pointer(elts + uintptr(i)*20)).Fnchars
 13461  		elen = int32(Sz_xGlyphElt*((nchars+254-1)/254) + nchars*4)
 13462  		len = len + (elen+3)>>2
 13463  	}
 13464  
 13465  	*(*CARD16)(unsafe.Pointer(req + 2)) += CARD16(len)
 13466  
 13467  	*(*GlyphSet)(unsafe.Pointer(bp /* glyphset */)) = (*XGlyphElt32)(unsafe.Pointer(elts)).Fglyphset
 13468  	for i = 0; i < nelt; i++ {
 13469  		// Switch glyphsets
 13470  		if (*XGlyphElt32)(unsafe.Pointer(elts+uintptr(i)*20)).Fglyphset != *(*GlyphSet)(unsafe.Pointer(bp)) {
 13471  			*(*GlyphSet)(unsafe.Pointer(bp /* glyphset */)) = (*XGlyphElt32)(unsafe.Pointer(elts + uintptr(i)*20)).Fglyphset
 13472  			if (*Display)(unsafe.Pointer(dpy)).Fbufptr+uintptr(Sz_xGlyphElt) > (*Display)(unsafe.Pointer(dpy)).Fbufmax {
 13473  				x11.X_XFlush(tls, dpy)
 13474  			}
 13475  			elt = (*Display)(unsafe.Pointer(dpy)).Fbufptr
 13476  			libc.Xmemset(tls, elt, 0, uint32(Sz_xGlyphElt))
 13477  			*(*uintptr)(unsafe.Pointer(dpy + 108)) += uintptr(Sz_xGlyphElt)
 13478  
 13479  			(*XGlyphElt)(unsafe.Pointer(elt)).Flen = CARD8(0xff)
 13480  			(*XGlyphElt)(unsafe.Pointer(elt)).Fdeltax = int16(0)
 13481  			(*XGlyphElt)(unsafe.Pointer(elt)).Fdeltay = int16(0)
 13482  			{
 13483  				if (*Display)(unsafe.Pointer(dpy)).Fbufptr+uintptr(4) <= (*Display)(unsafe.Pointer(dpy)).Fbufmax {
 13484  					libc.Xmemcpy(tls, (*Display)(unsafe.Pointer(dpy)).Fbufptr, bp, uint32(4))
 13485  					*(*uintptr)(unsafe.Pointer(dpy + 108)) += uintptr((4 + 3) & libc.CplInt32(3))
 13486  				} else {
 13487  					x11.X_XSend(tls, dpy, bp, 4)
 13488  				}
 13489  			}
 13490  
 13491  		}
 13492  		nchars = (*XGlyphElt32)(unsafe.Pointer(elts + uintptr(i)*20)).Fnchars
 13493  		xDst = (*XGlyphElt32)(unsafe.Pointer(elts + uintptr(i)*20)).FxOff
 13494  		yDst = (*XGlyphElt32)(unsafe.Pointer(elts + uintptr(i)*20)).FyOff
 13495  		chars = (*XGlyphElt32)(unsafe.Pointer(elts + uintptr(i)*20)).Fchars
 13496  		for nchars != 0 {
 13497  			var this_chars int32
 13498  			if nchars > 254 {
 13499  				this_chars = 254
 13500  			} else {
 13501  				this_chars = nchars
 13502  			}
 13503  			var this_bytes int32 = this_chars * 4
 13504  			if (*Display)(unsafe.Pointer(dpy)).Fbufptr+uintptr(Sz_xGlyphElt) > (*Display)(unsafe.Pointer(dpy)).Fbufmax {
 13505  				x11.X_XFlush(tls, dpy)
 13506  			}
 13507  			elt = (*Display)(unsafe.Pointer(dpy)).Fbufptr
 13508  			libc.Xmemset(tls, elt, 0, uint32(Sz_xGlyphElt))
 13509  			*(*uintptr)(unsafe.Pointer(dpy + 108)) += uintptr(Sz_xGlyphElt)
 13510  			(*XGlyphElt)(unsafe.Pointer(elt)).Flen = CARD8(this_chars)
 13511  			(*XGlyphElt)(unsafe.Pointer(elt)).Fdeltax = INT16(xDst)
 13512  			(*XGlyphElt)(unsafe.Pointer(elt)).Fdeltay = INT16(yDst)
 13513  			xDst = 0
 13514  			yDst = 0
 13515  			{
 13516  				if (*Display)(unsafe.Pointer(dpy)).Fbufptr+uintptr(this_bytes) <= (*Display)(unsafe.Pointer(dpy)).Fbufmax {
 13517  					libc.Xmemcpy(tls, (*Display)(unsafe.Pointer(dpy)).Fbufptr, chars, uint32(this_bytes))
 13518  					*(*uintptr)(unsafe.Pointer(dpy + 108)) += uintptr((this_bytes + 3) & libc.CplInt32(3))
 13519  				} else {
 13520  					x11.X_XSend(tls, dpy, chars, int32(this_bytes))
 13521  				}
 13522  			}
 13523  
 13524  			nchars = nchars - this_chars
 13525  			chars += 4 * uintptr(this_chars)
 13526  		}
 13527  	}
 13528  
 13529  	if (*Display)(unsafe.Pointer(dpy)).Flock_fns != 0 {
 13530  		(*struct{ f func(*libc.TLS, uintptr) })(unsafe.Pointer(&struct{ uintptr }{(*X_XLockPtrs)(unsafe.Pointer((*Display)(unsafe.Pointer(dpy)).Flock_fns)).Funlock_display})).f(tls, dpy)
 13531  	}
 13532  	if (*Display)(unsafe.Pointer(dpy)).Fsynchandler != 0 {
 13533  		(*struct {
 13534  			f func(*libc.TLS, uintptr) int32
 13535  		})(unsafe.Pointer(&struct{ uintptr }{(*Display)(unsafe.Pointer(dpy)).Fsynchandler})).f(tls, dpy)
 13536  	}
 13537  }
 13538  
 13539  // Xlib uses long for 32-bit values.  Xrender uses int.  This
 13540  // matters on alpha.  Note that this macro assumes that int is 32 bits
 13541  // except on WORD64 machines where it is 64 bits.
 13542  
 13543  //***********************************************************************
 13544  //
 13545  // Copyright 1987, 1998  The Open Group
 13546  //
 13547  // Permission to use, copy, modify, distribute, and sell this software and its
 13548  // documentation for any purpose is hereby granted without fee, provided that
 13549  // the above copyright notice appear in all copies and that both that
 13550  // copyright notice and this permission notice appear in supporting
 13551  // documentation.
 13552  //
 13553  // The above copyright notice and this permission notice shall be included in
 13554  // all copies or substantial portions of the Software.
 13555  //
 13556  // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
 13557  // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
 13558  // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL THE
 13559  // OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
 13560  // AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
 13561  // CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 13562  //
 13563  // Except as contained in this notice, the name of The Open Group shall not be
 13564  // used in advertising or otherwise to promote the sale, use or other dealings
 13565  // in this Software without prior written authorization from The Open Group.
 13566  //
 13567  //
 13568  // Copyright 1987 by Digital Equipment Corporation, Maynard, Massachusetts.
 13569  //
 13570  //                         All Rights Reserved
 13571  //
 13572  // Permission to use, copy, modify, and distribute this software and its
 13573  // documentation for any purpose and without fee is hereby granted,
 13574  // provided that the above copyright notice appear in all copies and that
 13575  // both that copyright notice and this permission notice appear in
 13576  // supporting documentation, and that the name of Digital not be
 13577  // used in advertising or publicity pertaining to distribution of the
 13578  // software without specific, written prior permission.
 13579  //
 13580  // DIGITAL DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING
 13581  // ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL
 13582  // DIGITAL BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR
 13583  // ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
 13584  // WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,
 13585  // ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
 13586  // SOFTWARE.
 13587  //
 13588  // ***********************************************************************
 13589  
 13590  type Box = struct {
 13591  	Fx1 int16
 13592  	Fx2 int16
 13593  	Fy1 int16
 13594  	Fy2 int16
 13595  } /* Xregion.h:53:3 */
 13596  type BOX = struct {
 13597  	Fx1 int16
 13598  	Fx2 int16
 13599  	Fy1 int16
 13600  	Fy2 int16
 13601  } /* Xregion.h:53:8 */
 13602  type BoxRec = struct {
 13603  	Fx1 int16
 13604  	Fx2 int16
 13605  	Fy1 int16
 13606  	Fy2 int16
 13607  }                     /* Xregion.h:53:13 */
 13608  type BoxPtr = uintptr /* Xregion.h:53:21 */
 13609  
 13610  type RECTANGLE = struct {
 13611  	Fx      int16
 13612  	Fy      int16
 13613  	Fwidth  int16
 13614  	Fheight int16
 13615  } /* Xregion.h:57:2 */
 13616  type RectangleRec = struct {
 13617  	Fx      int16
 13618  	Fy      int16
 13619  	Fwidth  int16
 13620  	Fheight int16
 13621  }                           /* Xregion.h:57:13 */
 13622  type RectanglePtr = uintptr /* Xregion.h:57:27 */
 13623  
 13624  //   clip region
 13625  
 13626  type REGION = X_XRegion /* Xregion.h:80:3 */
 13627  
 13628  // Xutil.h contains the declaration:
 13629  // typedef struct _XRegion *Region;
 13630  
 13631  // 1 if two BOXs overlap.
 13632  //  0 if two BOXs do not overlap.
 13633  //  Remember, x2 and y2 are not in the region
 13634  
 13635  //  update region extents
 13636  
 13637  //   Check to see if there is enough memory in the present region.
 13638  
 13639  // this routine checks to see if the previous rectangle is the same
 13640  //  or subsumes the new rectangle to add.
 13641  
 13642  //  add a rectangle to the given Region
 13643  
 13644  //  add a rectangle to the given Region
 13645  
 13646  // number of points to buffer before sending them off
 13647  // to scanlines() :  Must be an even number
 13648  
 13649  // used to allocate buffers for points and link
 13650  // the buffers together
 13651  type X_POINTBLOCK = struct {
 13652  	Fpts  [200]XPoint
 13653  	Fnext uintptr
 13654  } /* Xregion.h:185:9 */
 13655  
 13656  // Xutil.h contains the declaration:
 13657  // typedef struct _XRegion *Region;
 13658  
 13659  // 1 if two BOXs overlap.
 13660  //  0 if two BOXs do not overlap.
 13661  //  Remember, x2 and y2 are not in the region
 13662  
 13663  //  update region extents
 13664  
 13665  //   Check to see if there is enough memory in the present region.
 13666  
 13667  // this routine checks to see if the previous rectangle is the same
 13668  //  or subsumes the new rectangle to add.
 13669  
 13670  //  add a rectangle to the given Region
 13671  
 13672  //  add a rectangle to the given Region
 13673  
 13674  // number of points to buffer before sending them off
 13675  // to scanlines() :  Must be an even number
 13676  
 13677  // used to allocate buffers for points and link
 13678  // the buffers together
 13679  type POINTBLOCK = X_POINTBLOCK /* Xregion.h:188:3 */
 13680  
 13681  func _XRenderProcessPictureAttributes(tls *libc.TLS, dpy uintptr, req uintptr, valuemask uint32, attributes uintptr) { /* Picture.c:32:1: */
 13682  	bp := tls.Alloc(128)
 13683  	defer tls.Free(128)
 13684  
 13685  	// var values [32]uint32 at bp, 128
 13686  
 13687  	var value uintptr = bp /* values */
 13688  	var nvalues uint32
 13689  
 13690  	if valuemask&uint32(int32(1)<<0) != 0 {
 13691  		*(*uint32)(unsafe.Pointer(libc.PostIncUintptr(&value, 4))) = uint32((*XRenderPictureAttributes)(unsafe.Pointer(attributes)).Frepeat)
 13692  	}
 13693  	if valuemask&uint32(int32(1)<<1) != 0 {
 13694  		*(*uint32)(unsafe.Pointer(libc.PostIncUintptr(&value, 4))) = (*XRenderPictureAttributes)(unsafe.Pointer(attributes)).Falpha_map
 13695  	}
 13696  	if valuemask&uint32(int32(1)<<2) != 0 {
 13697  		*(*uint32)(unsafe.Pointer(libc.PostIncUintptr(&value, 4))) = uint32((*XRenderPictureAttributes)(unsafe.Pointer(attributes)).Falpha_x_origin)
 13698  	}
 13699  	if valuemask&uint32(int32(1)<<3) != 0 {
 13700  		*(*uint32)(unsafe.Pointer(libc.PostIncUintptr(&value, 4))) = uint32((*XRenderPictureAttributes)(unsafe.Pointer(attributes)).Falpha_y_origin)
 13701  	}
 13702  	if valuemask&uint32(int32(1)<<4) != 0 {
 13703  		*(*uint32)(unsafe.Pointer(libc.PostIncUintptr(&value, 4))) = uint32((*XRenderPictureAttributes)(unsafe.Pointer(attributes)).Fclip_x_origin)
 13704  	}
 13705  	if valuemask&uint32(int32(1)<<5) != 0 {
 13706  		*(*uint32)(unsafe.Pointer(libc.PostIncUintptr(&value, 4))) = uint32((*XRenderPictureAttributes)(unsafe.Pointer(attributes)).Fclip_y_origin)
 13707  	}
 13708  	if valuemask&uint32(int32(1)<<6) != 0 {
 13709  		*(*uint32)(unsafe.Pointer(libc.PostIncUintptr(&value, 4))) = (*XRenderPictureAttributes)(unsafe.Pointer(attributes)).Fclip_mask
 13710  	}
 13711  	if valuemask&uint32(int32(1)<<7) != 0 {
 13712  		*(*uint32)(unsafe.Pointer(libc.PostIncUintptr(&value, 4))) = uint32((*XRenderPictureAttributes)(unsafe.Pointer(attributes)).Fgraphics_exposures)
 13713  	}
 13714  	if valuemask&uint32(int32(1)<<8) != 0 {
 13715  		*(*uint32)(unsafe.Pointer(libc.PostIncUintptr(&value, 4))) = uint32((*XRenderPictureAttributes)(unsafe.Pointer(attributes)).Fsubwindow_mode)
 13716  	}
 13717  	if valuemask&uint32(int32(1)<<9) != 0 {
 13718  		*(*uint32)(unsafe.Pointer(libc.PostIncUintptr(&value, 4))) = uint32((*XRenderPictureAttributes)(unsafe.Pointer(attributes)).Fpoly_edge)
 13719  	}
 13720  	if valuemask&uint32(int32(1)<<10) != 0 {
 13721  		*(*uint32)(unsafe.Pointer(libc.PostIncUintptr(&value, 4))) = uint32((*XRenderPictureAttributes)(unsafe.Pointer(attributes)).Fpoly_mode)
 13722  	}
 13723  	if valuemask&uint32(int32(1)<<11) != 0 {
 13724  		*(*uint32)(unsafe.Pointer(libc.PostIncUintptr(&value, 4))) = (*XRenderPictureAttributes)(unsafe.Pointer(attributes)).Fdither
 13725  	}
 13726  	if valuemask&uint32(int32(1)<<12) != 0 {
 13727  		*(*uint32)(unsafe.Pointer(libc.PostIncUintptr(&value, 4))) = uint32((*XRenderPictureAttributes)(unsafe.Pointer(attributes)).Fcomponent_alpha)
 13728  	}
 13729  
 13730  	*(*CARD16)(unsafe.Pointer(req + 2)) += CARD16(libc.AssignUint32(&nvalues, uint32(int32((value-bp)/4))))
 13731  
 13732  	nvalues <<= 2 /* watch out for macros... */
 13733  	{
 13734  		if (*Display)(unsafe.Pointer(dpy)).Fbufptr+uintptr(int32(nvalues)) <= (*Display)(unsafe.Pointer(dpy)).Fbufmax {
 13735  			libc.Xmemcpy(tls, (*Display)(unsafe.Pointer(dpy)).Fbufptr, bp, uint32(int32(int32(nvalues))))
 13736  			*(*uintptr)(unsafe.Pointer(dpy + 108)) += uintptr((int32(nvalues) + 3) & libc.CplInt32(3))
 13737  		} else {
 13738  			x11.X_XSend(tls, dpy, bp, int32(nvalues))
 13739  		}
 13740  	}
 13741  
 13742  }
 13743  
 13744  func XXRenderCreatePicture(tls *libc.TLS, dpy uintptr, drawable Drawable, format uintptr, valuemask uint32, attributes uintptr) Picture { /* Picture.c:75:1: */
 13745  	var info uintptr = XXRenderFindDisplay(tls, dpy)
 13746  	var pid Picture
 13747  	var req uintptr
 13748  
 13749  	if !(info != 0 && (*XRenderExtDisplayInfo)(unsafe.Pointer(info)).Fcodes != 0) {
 13750  		return Picture(0)
 13751  	}
 13752  
 13753  	if (*Display)(unsafe.Pointer(dpy)).Flock_fns != 0 {
 13754  		(*struct{ f func(*libc.TLS, uintptr) })(unsafe.Pointer(&struct{ uintptr }{(*X_XLockPtrs)(unsafe.Pointer((*Display)(unsafe.Pointer(dpy)).Flock_fns)).Flock_display})).f(tls, dpy)
 13755  	}
 13756  	req = x11.X_XGetRequest(tls, dpy, uint8(X_RenderCreatePicture), uint32(Sz_xRenderCreatePictureReq))
 13757  	(*XRenderCreatePictureReq)(unsafe.Pointer(req)).FreqType = CARD8((*XExtCodes)(unsafe.Pointer((*XRenderExtDisplayInfo)(unsafe.Pointer(info)).Fcodes)).Fmajor_opcode)
 13758  	(*XRenderCreatePictureReq)(unsafe.Pointer(req)).FrenderReqType = CARD8(X_RenderCreatePicture)
 13759  	(*XRenderCreatePictureReq)(unsafe.Pointer(req)).Fpid = libc.AssignUint32(&pid, (*struct{ f func(*libc.TLS, uintptr) XID })(unsafe.Pointer(&struct{ uintptr }{(*struct {
 13760  		Fext_data            uintptr
 13761  		Fprivate1            uintptr
 13762  		Ffd                  int32
 13763  		Fprivate2            int32
 13764  		Fproto_major_version int32
 13765  		Fproto_minor_version int32
 13766  		Fvendor              uintptr
 13767  		Fprivate3            XID
 13768  		Fprivate4            XID
 13769  		Fprivate5            XID
 13770  		Fprivate6            int32
 13771  		Fresource_alloc      uintptr
 13772  		Fbyte_order          int32
 13773  		Fbitmap_unit         int32
 13774  		Fbitmap_pad          int32
 13775  		Fbitmap_bit_order    int32
 13776  		Fnformats            int32
 13777  		Fpixmap_format       uintptr
 13778  		Fprivate8            int32
 13779  		Frelease             int32
 13780  		Fprivate9            uintptr
 13781  		Fprivate10           uintptr
 13782  		Fqlen                int32
 13783  		Flast_request_read   uint32
 13784  		Frequest             uint32
 13785  		Fprivate11           XPointer
 13786  		Fprivate12           XPointer
 13787  		Fprivate13           XPointer
 13788  		Fprivate14           XPointer
 13789  		Fmax_request_size    uint32
 13790  		Fdb                  uintptr
 13791  		Fprivate15           uintptr
 13792  		Fdisplay_name        uintptr
 13793  		Fdefault_screen      int32
 13794  		Fnscreens            int32
 13795  		Fscreens             uintptr
 13796  		Fmotion_buffer       uint32
 13797  		Fprivate16           uint32
 13798  		Fmin_keycode         int32
 13799  		Fmax_keycode         int32
 13800  		Fprivate17           XPointer
 13801  		Fprivate18           XPointer
 13802  		Fprivate19           int32
 13803  		Fxdefaults           uintptr
 13804  	})(unsafe.Pointer(dpy)).Fresource_alloc})).f(tls, dpy))
 13805  	(*XRenderCreatePictureReq)(unsafe.Pointer(req)).Fdrawable = drawable
 13806  	(*XRenderCreatePictureReq)(unsafe.Pointer(req)).Fformat = (*XRenderPictFormat)(unsafe.Pointer(format)).Fid
 13807  	if libc.AssignPtrUint32(req+16, valuemask) != 0 {
 13808  		_XRenderProcessPictureAttributes(tls, dpy,
 13809  			req,
 13810  			valuemask,
 13811  			attributes)
 13812  	}
 13813  	if (*Display)(unsafe.Pointer(dpy)).Flock_fns != 0 {
 13814  		(*struct{ f func(*libc.TLS, uintptr) })(unsafe.Pointer(&struct{ uintptr }{(*X_XLockPtrs)(unsafe.Pointer((*Display)(unsafe.Pointer(dpy)).Flock_fns)).Funlock_display})).f(tls, dpy)
 13815  	}
 13816  	if (*Display)(unsafe.Pointer(dpy)).Fsynchandler != 0 {
 13817  		(*struct {
 13818  			f func(*libc.TLS, uintptr) int32
 13819  		})(unsafe.Pointer(&struct{ uintptr }{(*Display)(unsafe.Pointer(dpy)).Fsynchandler})).f(tls, dpy)
 13820  	}
 13821  	return pid
 13822  }
 13823  
 13824  func XXRenderChangePicture(tls *libc.TLS, dpy uintptr, picture Picture, valuemask uint32, attributes uintptr) { /* Picture.c:104:1: */
 13825  	var info uintptr = XXRenderFindDisplay(tls, dpy)
 13826  	var req uintptr
 13827  
 13828  	if !(info != 0 && (*XRenderExtDisplayInfo)(unsafe.Pointer(info)).Fcodes != 0) {
 13829  		return
 13830  	}
 13831  
 13832  	if (*Display)(unsafe.Pointer(dpy)).Flock_fns != 0 {
 13833  		(*struct{ f func(*libc.TLS, uintptr) })(unsafe.Pointer(&struct{ uintptr }{(*X_XLockPtrs)(unsafe.Pointer((*Display)(unsafe.Pointer(dpy)).Flock_fns)).Flock_display})).f(tls, dpy)
 13834  	}
 13835  	req = x11.X_XGetRequest(tls, dpy, uint8(X_RenderChangePicture), uint32(Sz_xRenderChangePictureReq))
 13836  	(*XRenderChangePictureReq)(unsafe.Pointer(req)).FreqType = CARD8((*XExtCodes)(unsafe.Pointer((*XRenderExtDisplayInfo)(unsafe.Pointer(info)).Fcodes)).Fmajor_opcode)
 13837  	(*XRenderChangePictureReq)(unsafe.Pointer(req)).FrenderReqType = CARD8(X_RenderChangePicture)
 13838  	(*XRenderChangePictureReq)(unsafe.Pointer(req)).Fpicture = picture
 13839  	(*XRenderChangePictureReq)(unsafe.Pointer(req)).Fmask = valuemask
 13840  	_XRenderProcessPictureAttributes(tls, dpy,
 13841  		req,
 13842  		valuemask,
 13843  		attributes)
 13844  	if (*Display)(unsafe.Pointer(dpy)).Flock_fns != 0 {
 13845  		(*struct{ f func(*libc.TLS, uintptr) })(unsafe.Pointer(&struct{ uintptr }{(*X_XLockPtrs)(unsafe.Pointer((*Display)(unsafe.Pointer(dpy)).Flock_fns)).Funlock_display})).f(tls, dpy)
 13846  	}
 13847  	if (*Display)(unsafe.Pointer(dpy)).Fsynchandler != 0 {
 13848  		(*struct {
 13849  			f func(*libc.TLS, uintptr) int32
 13850  		})(unsafe.Pointer(&struct{ uintptr }{(*Display)(unsafe.Pointer(dpy)).Fsynchandler})).f(tls, dpy)
 13851  	}
 13852  }
 13853  
 13854  func _XRenderSetPictureClipRectangles(tls *libc.TLS, dpy uintptr, info uintptr, picture Picture, xOrigin int32, yOrigin int32, rects uintptr, n int32) { /* Picture.c:128:1: */
 13855  	bp := tls.Alloc(4)
 13856  	defer tls.Free(4)
 13857  
 13858  	var req uintptr
 13859  	var len int32
 13860  
 13861  	req = x11.X_XGetRequest(tls, dpy, uint8(X_RenderSetPictureClipRectangles), uint32(Sz_xRenderSetPictureClipRectanglesReq))
 13862  	(*XRenderSetPictureClipRectanglesReq)(unsafe.Pointer(req)).FreqType = CARD8((*XExtCodes)(unsafe.Pointer((*XRenderExtDisplayInfo)(unsafe.Pointer(info)).Fcodes)).Fmajor_opcode)
 13863  	(*XRenderSetPictureClipRectanglesReq)(unsafe.Pointer(req)).FrenderReqType = CARD8(X_RenderSetPictureClipRectangles)
 13864  	(*XRenderSetPictureClipRectanglesReq)(unsafe.Pointer(req)).Fpicture = picture
 13865  	(*XRenderSetPictureClipRectanglesReq)(unsafe.Pointer(req)).FxOrigin = INT16(xOrigin)
 13866  	(*XRenderSetPictureClipRectanglesReq)(unsafe.Pointer(req)).FyOrigin = INT16(yOrigin)
 13867  	len = int32(n) << 1
 13868  	if uint32(int32((*XRenderSetPictureClipRectanglesReq)(unsafe.Pointer(req)).Flength)+len) > uint32(uint32(65535)) {
 13869  		if (*Display)(unsafe.Pointer(dpy)).Fbigreq_size != 0 {
 13870  			{
 13871  				// var _BRdat CARD32 at bp, 4
 13872  				var _BRlen CARD32 = CARD32(int32((*XRenderSetPictureClipRectanglesReq)(unsafe.Pointer(req)).Flength) - 1)
 13873  				(*XRenderSetPictureClipRectanglesReq)(unsafe.Pointer(req)).Flength = CARD16(0)
 13874  				*(*CARD32)(unsafe.Pointer(bp /* _BRdat */)) = *(*CARD32)(unsafe.Pointer(req + uintptr(_BRlen)*4))
 13875  				libc.Xmemmove(tls, req+uintptr(8), req+uintptr(4), uint32((_BRlen-CARD32(1))<<2))
 13876  				*(*CARD32)(unsafe.Pointer(req + 1*4)) = _BRlen + CARD32(len) + CARD32(2)
 13877  				{
 13878  					if (*Display)(unsafe.Pointer(dpy)).Fbufptr+uintptr(4) <= (*Display)(unsafe.Pointer(dpy)).Fbufmax {
 13879  						libc.Xmemcpy(tls, (*Display)(unsafe.Pointer(dpy)).Fbufptr, bp, uint32(4))
 13880  						*(*uintptr)(unsafe.Pointer(dpy + 108)) += uintptr((4 + 3) & libc.CplInt32(3))
 13881  					} else {
 13882  						x11.X_XSend(tls, dpy, bp, 4)
 13883  					}
 13884  				}
 13885  
 13886  			}
 13887  		} else {
 13888  			len = 1
 13889  			*(*CARD16)(unsafe.Pointer(req + 2)) += CARD16(len)
 13890  		}
 13891  	} else {
 13892  		*(*CARD16)(unsafe.Pointer(req + 2)) += CARD16(len)
 13893  	}
 13894  	len <<= 2
 13895  	{
 13896  		if (*Display)(unsafe.Pointer(dpy)).Fbufptr+uintptr(len) <= (*Display)(unsafe.Pointer(dpy)).Fbufmax {
 13897  			libc.Xmemcpy(tls, (*Display)(unsafe.Pointer(dpy)).Fbufptr, rects, uint32(int32(len)))
 13898  			*(*uintptr)(unsafe.Pointer(dpy + 108)) += uintptr((len + 3) & libc.CplInt32(3))
 13899  		} else {
 13900  			x11.X_XSend(tls, dpy, rects, len)
 13901  		}
 13902  	}
 13903  
 13904  }
 13905  
 13906  func XXRenderSetPictureClipRectangles(tls *libc.TLS, dpy uintptr, picture Picture, xOrigin int32, yOrigin int32, rects uintptr, n int32) { /* Picture.c:152:1: */
 13907  	var info uintptr = XXRenderFindDisplay(tls, dpy)
 13908  
 13909  	if !(info != 0 && (*XRenderExtDisplayInfo)(unsafe.Pointer(info)).Fcodes != 0) {
 13910  		return
 13911  	}
 13912  
 13913  	if (*Display)(unsafe.Pointer(dpy)).Flock_fns != 0 {
 13914  		(*struct{ f func(*libc.TLS, uintptr) })(unsafe.Pointer(&struct{ uintptr }{(*X_XLockPtrs)(unsafe.Pointer((*Display)(unsafe.Pointer(dpy)).Flock_fns)).Flock_display})).f(tls, dpy)
 13915  	}
 13916  	_XRenderSetPictureClipRectangles(tls, dpy, info, picture,
 13917  		xOrigin, yOrigin, rects, n)
 13918  	if (*Display)(unsafe.Pointer(dpy)).Flock_fns != 0 {
 13919  		(*struct{ f func(*libc.TLS, uintptr) })(unsafe.Pointer(&struct{ uintptr }{(*X_XLockPtrs)(unsafe.Pointer((*Display)(unsafe.Pointer(dpy)).Flock_fns)).Funlock_display})).f(tls, dpy)
 13920  	}
 13921  	if (*Display)(unsafe.Pointer(dpy)).Fsynchandler != 0 {
 13922  		(*struct {
 13923  			f func(*libc.TLS, uintptr) int32
 13924  		})(unsafe.Pointer(&struct{ uintptr }{(*Display)(unsafe.Pointer(dpy)).Fsynchandler})).f(tls, dpy)
 13925  	}
 13926  }
 13927  
 13928  func XXRenderSetPictureClipRegion(tls *libc.TLS, dpy uintptr, picture Picture, r Region) { /* Picture.c:170:1: */
 13929  	var info uintptr = XXRenderFindDisplay(tls, dpy)
 13930  	var i int32
 13931  	var xr uintptr
 13932  	var pr uintptr
 13933  	var pb uintptr
 13934  	var total uint32
 13935  
 13936  	if !(info != 0 && (*XRenderExtDisplayInfo)(unsafe.Pointer(info)).Fcodes != 0) {
 13937  		return
 13938  	}
 13939  
 13940  	if (*Display)(unsafe.Pointer(dpy)).Flock_fns != 0 {
 13941  		(*struct{ f func(*libc.TLS, uintptr) })(unsafe.Pointer(&struct{ uintptr }{(*X_XLockPtrs)(unsafe.Pointer((*Display)(unsafe.Pointer(dpy)).Flock_fns)).Flock_display})).f(tls, dpy)
 13942  	}
 13943  	total = uint32((*X_XRegion)(unsafe.Pointer(r)).FnumRects) * uint32(unsafe.Sizeof(XRectangle{}))
 13944  	if libc.AssignUintptr(&xr, x11.X_XAllocTemp(tls, dpy, total)) != 0 {
 13945  		pr = xr
 13946  		pb = (*X_XRegion)(unsafe.Pointer(r)).Frects
 13947  		i = int32((*X_XRegion)(unsafe.Pointer(r)).FnumRects)
 13948  	__1:
 13949  		if !(libc.PreDecInt32(&i, 1) >= 0) {
 13950  			goto __3
 13951  		}
 13952  		{
 13953  			(*XRectangle)(unsafe.Pointer(pr)).Fx = (*BOX)(unsafe.Pointer(pb)).Fx1
 13954  			(*XRectangle)(unsafe.Pointer(pr)).Fy = (*BOX)(unsafe.Pointer(pb)).Fy1
 13955  			(*XRectangle)(unsafe.Pointer(pr)).Fwidth = uint16(int32((*BOX)(unsafe.Pointer(pb)).Fx2) - int32((*BOX)(unsafe.Pointer(pb)).Fx1))
 13956  			(*XRectangle)(unsafe.Pointer(pr)).Fheight = uint16(int32((*BOX)(unsafe.Pointer(pb)).Fy2) - int32((*BOX)(unsafe.Pointer(pb)).Fy1))
 13957  
 13958  		}
 13959  		goto __2
 13960  	__2:
 13961  		pr += 8
 13962  		pb += 8
 13963  		goto __1
 13964  		goto __3
 13965  	__3:
 13966  	}
 13967  	if xr != 0 || !(int32((*X_XRegion)(unsafe.Pointer(r)).FnumRects) != 0) {
 13968  		_XRenderSetPictureClipRectangles(tls, dpy, info, picture, 0, 0,
 13969  			xr, int32((*X_XRegion)(unsafe.Pointer(r)).FnumRects))
 13970  	}
 13971  	if xr != 0 {
 13972  		x11.X_XFreeTemp(tls, dpy, xr, total)
 13973  	}
 13974  	if (*Display)(unsafe.Pointer(dpy)).Flock_fns != 0 {
 13975  		(*struct{ f func(*libc.TLS, uintptr) })(unsafe.Pointer(&struct{ uintptr }{(*X_XLockPtrs)(unsafe.Pointer((*Display)(unsafe.Pointer(dpy)).Flock_fns)).Funlock_display})).f(tls, dpy)
 13976  	}
 13977  	if (*Display)(unsafe.Pointer(dpy)).Fsynchandler != 0 {
 13978  		(*struct {
 13979  			f func(*libc.TLS, uintptr) int32
 13980  		})(unsafe.Pointer(&struct{ uintptr }{(*Display)(unsafe.Pointer(dpy)).Fsynchandler})).f(tls, dpy)
 13981  	}
 13982  }
 13983  
 13984  func XXRenderSetPictureTransform(tls *libc.TLS, dpy uintptr, picture Picture, transform uintptr) { /* Picture.c:201:1: */
 13985  	var info uintptr = XXRenderFindDisplay(tls, dpy)
 13986  	var req uintptr
 13987  
 13988  	if !(info != 0 && (*XRenderExtDisplayInfo)(unsafe.Pointer(info)).Fcodes != 0) {
 13989  		return
 13990  	}
 13991  
 13992  	if (*Display)(unsafe.Pointer(dpy)).Flock_fns != 0 {
 13993  		(*struct{ f func(*libc.TLS, uintptr) })(unsafe.Pointer(&struct{ uintptr }{(*X_XLockPtrs)(unsafe.Pointer((*Display)(unsafe.Pointer(dpy)).Flock_fns)).Flock_display})).f(tls, dpy)
 13994  	}
 13995  	req = x11.X_XGetRequest(tls, dpy, uint8(X_RenderSetPictureTransform), uint32(Sz_xRenderSetPictureTransformReq))
 13996  	(*XRenderSetPictureTransformReq)(unsafe.Pointer(req)).FreqType = CARD8((*XExtCodes)(unsafe.Pointer((*XRenderExtDisplayInfo)(unsafe.Pointer(info)).Fcodes)).Fmajor_opcode)
 13997  	(*XRenderSetPictureTransformReq)(unsafe.Pointer(req)).FrenderReqType = CARD8(X_RenderSetPictureTransform)
 13998  	(*XRenderSetPictureTransformReq)(unsafe.Pointer(req)).Fpicture = picture
 13999  	(*XRenderSetPictureTransformReq)(unsafe.Pointer(req)).Ftransform.Fmatrix11 = INT32(*(*XFixed)(unsafe.Pointer(transform)))
 14000  	(*XRenderSetPictureTransformReq)(unsafe.Pointer(req)).Ftransform.Fmatrix12 = INT32(*(*XFixed)(unsafe.Pointer(transform + 1*4)))
 14001  	(*XRenderSetPictureTransformReq)(unsafe.Pointer(req)).Ftransform.Fmatrix13 = INT32(*(*XFixed)(unsafe.Pointer(transform + 2*4)))
 14002  	(*XRenderSetPictureTransformReq)(unsafe.Pointer(req)).Ftransform.Fmatrix21 = INT32(*(*XFixed)(unsafe.Pointer(transform + 1*12)))
 14003  	(*XRenderSetPictureTransformReq)(unsafe.Pointer(req)).Ftransform.Fmatrix22 = INT32(*(*XFixed)(unsafe.Pointer(transform + 1*12 + 1*4)))
 14004  	(*XRenderSetPictureTransformReq)(unsafe.Pointer(req)).Ftransform.Fmatrix23 = INT32(*(*XFixed)(unsafe.Pointer(transform + 1*12 + 2*4)))
 14005  	(*XRenderSetPictureTransformReq)(unsafe.Pointer(req)).Ftransform.Fmatrix31 = INT32(*(*XFixed)(unsafe.Pointer(transform + 2*12)))
 14006  	(*XRenderSetPictureTransformReq)(unsafe.Pointer(req)).Ftransform.Fmatrix32 = INT32(*(*XFixed)(unsafe.Pointer(transform + 2*12 + 1*4)))
 14007  	(*XRenderSetPictureTransformReq)(unsafe.Pointer(req)).Ftransform.Fmatrix33 = INT32(*(*XFixed)(unsafe.Pointer(transform + 2*12 + 2*4)))
 14008  	if (*Display)(unsafe.Pointer(dpy)).Flock_fns != 0 {
 14009  		(*struct{ f func(*libc.TLS, uintptr) })(unsafe.Pointer(&struct{ uintptr }{(*X_XLockPtrs)(unsafe.Pointer((*Display)(unsafe.Pointer(dpy)).Flock_fns)).Funlock_display})).f(tls, dpy)
 14010  	}
 14011  	if (*Display)(unsafe.Pointer(dpy)).Fsynchandler != 0 {
 14012  		(*struct {
 14013  			f func(*libc.TLS, uintptr) int32
 14014  		})(unsafe.Pointer(&struct{ uintptr }{(*Display)(unsafe.Pointer(dpy)).Fsynchandler})).f(tls, dpy)
 14015  	}
 14016  
 14017  }
 14018  
 14019  func XXRenderFreePicture(tls *libc.TLS, dpy uintptr, picture Picture) { /* Picture.c:229:1: */
 14020  	var info uintptr = XXRenderFindDisplay(tls, dpy)
 14021  	var req uintptr
 14022  
 14023  	if !(info != 0 && (*XRenderExtDisplayInfo)(unsafe.Pointer(info)).Fcodes != 0) {
 14024  		return
 14025  	}
 14026  
 14027  	if (*Display)(unsafe.Pointer(dpy)).Flock_fns != 0 {
 14028  		(*struct{ f func(*libc.TLS, uintptr) })(unsafe.Pointer(&struct{ uintptr }{(*X_XLockPtrs)(unsafe.Pointer((*Display)(unsafe.Pointer(dpy)).Flock_fns)).Flock_display})).f(tls, dpy)
 14029  	}
 14030  	req = x11.X_XGetRequest(tls, dpy, uint8(X_RenderFreePicture), uint32(Sz_xRenderFreePictureReq))
 14031  	(*XRenderFreePictureReq)(unsafe.Pointer(req)).FreqType = CARD8((*XExtCodes)(unsafe.Pointer((*XRenderExtDisplayInfo)(unsafe.Pointer(info)).Fcodes)).Fmajor_opcode)
 14032  	(*XRenderFreePictureReq)(unsafe.Pointer(req)).FrenderReqType = CARD8(X_RenderFreePicture)
 14033  	(*XRenderFreePictureReq)(unsafe.Pointer(req)).Fpicture = picture
 14034  	if (*Display)(unsafe.Pointer(dpy)).Flock_fns != 0 {
 14035  		(*struct{ f func(*libc.TLS, uintptr) })(unsafe.Pointer(&struct{ uintptr }{(*X_XLockPtrs)(unsafe.Pointer((*Display)(unsafe.Pointer(dpy)).Flock_fns)).Funlock_display})).f(tls, dpy)
 14036  	}
 14037  	if (*Display)(unsafe.Pointer(dpy)).Fsynchandler != 0 {
 14038  		(*struct {
 14039  			f func(*libc.TLS, uintptr) int32
 14040  		})(unsafe.Pointer(&struct{ uintptr }{(*Display)(unsafe.Pointer(dpy)).Fsynchandler})).f(tls, dpy)
 14041  	}
 14042  }
 14043  
 14044  func XXRenderCreateSolidFill(tls *libc.TLS, dpy uintptr, color uintptr) Picture { /* Picture.c:246:9: */
 14045  	var info uintptr = XXRenderFindDisplay(tls, dpy)
 14046  	var pid Picture
 14047  	var req uintptr
 14048  
 14049  	if !(info != 0 && (*XRenderExtDisplayInfo)(unsafe.Pointer(info)).Fcodes != 0) {
 14050  		return Picture(0)
 14051  	}
 14052  
 14053  	if (*Display)(unsafe.Pointer(dpy)).Flock_fns != 0 {
 14054  		(*struct{ f func(*libc.TLS, uintptr) })(unsafe.Pointer(&struct{ uintptr }{(*X_XLockPtrs)(unsafe.Pointer((*Display)(unsafe.Pointer(dpy)).Flock_fns)).Flock_display})).f(tls, dpy)
 14055  	}
 14056  	req = x11.X_XGetRequest(tls, dpy, uint8(X_RenderCreateSolidFill), uint32(Sz_xRenderCreateSolidFillReq))
 14057  	(*XRenderCreateSolidFillReq)(unsafe.Pointer(req)).FreqType = CARD8((*XExtCodes)(unsafe.Pointer((*XRenderExtDisplayInfo)(unsafe.Pointer(info)).Fcodes)).Fmajor_opcode)
 14058  	(*XRenderCreateSolidFillReq)(unsafe.Pointer(req)).FrenderReqType = CARD8(X_RenderCreateSolidFill)
 14059  
 14060  	(*XRenderCreateSolidFillReq)(unsafe.Pointer(req)).Fpid = libc.AssignUint32(&pid, (*struct{ f func(*libc.TLS, uintptr) XID })(unsafe.Pointer(&struct{ uintptr }{(*struct {
 14061  		Fext_data            uintptr
 14062  		Fprivate1            uintptr
 14063  		Ffd                  int32
 14064  		Fprivate2            int32
 14065  		Fproto_major_version int32
 14066  		Fproto_minor_version int32
 14067  		Fvendor              uintptr
 14068  		Fprivate3            XID
 14069  		Fprivate4            XID
 14070  		Fprivate5            XID
 14071  		Fprivate6            int32
 14072  		Fresource_alloc      uintptr
 14073  		Fbyte_order          int32
 14074  		Fbitmap_unit         int32
 14075  		Fbitmap_pad          int32
 14076  		Fbitmap_bit_order    int32
 14077  		Fnformats            int32
 14078  		Fpixmap_format       uintptr
 14079  		Fprivate8            int32
 14080  		Frelease             int32
 14081  		Fprivate9            uintptr
 14082  		Fprivate10           uintptr
 14083  		Fqlen                int32
 14084  		Flast_request_read   uint32
 14085  		Frequest             uint32
 14086  		Fprivate11           XPointer
 14087  		Fprivate12           XPointer
 14088  		Fprivate13           XPointer
 14089  		Fprivate14           XPointer
 14090  		Fmax_request_size    uint32
 14091  		Fdb                  uintptr
 14092  		Fprivate15           uintptr
 14093  		Fdisplay_name        uintptr
 14094  		Fdefault_screen      int32
 14095  		Fnscreens            int32
 14096  		Fscreens             uintptr
 14097  		Fmotion_buffer       uint32
 14098  		Fprivate16           uint32
 14099  		Fmin_keycode         int32
 14100  		Fmax_keycode         int32
 14101  		Fprivate17           XPointer
 14102  		Fprivate18           XPointer
 14103  		Fprivate19           int32
 14104  		Fxdefaults           uintptr
 14105  	})(unsafe.Pointer(dpy)).Fresource_alloc})).f(tls, dpy))
 14106  	(*XRenderCreateSolidFillReq)(unsafe.Pointer(req)).Fcolor.Fred = (*XRenderColor1)(unsafe.Pointer(color)).Fred
 14107  	(*XRenderCreateSolidFillReq)(unsafe.Pointer(req)).Fcolor.Fgreen = (*XRenderColor1)(unsafe.Pointer(color)).Fgreen
 14108  	(*XRenderCreateSolidFillReq)(unsafe.Pointer(req)).Fcolor.Fblue = (*XRenderColor1)(unsafe.Pointer(color)).Fblue
 14109  	(*XRenderCreateSolidFillReq)(unsafe.Pointer(req)).Fcolor.Falpha = (*XRenderColor1)(unsafe.Pointer(color)).Falpha
 14110  
 14111  	if (*Display)(unsafe.Pointer(dpy)).Flock_fns != 0 {
 14112  		(*struct{ f func(*libc.TLS, uintptr) })(unsafe.Pointer(&struct{ uintptr }{(*X_XLockPtrs)(unsafe.Pointer((*Display)(unsafe.Pointer(dpy)).Flock_fns)).Funlock_display})).f(tls, dpy)
 14113  	}
 14114  	if (*Display)(unsafe.Pointer(dpy)).Fsynchandler != 0 {
 14115  		(*struct {
 14116  			f func(*libc.TLS, uintptr) int32
 14117  		})(unsafe.Pointer(&struct{ uintptr }{(*Display)(unsafe.Pointer(dpy)).Fsynchandler})).f(tls, dpy)
 14118  	}
 14119  	return pid
 14120  }
 14121  
 14122  func XXRenderCreateLinearGradient(tls *libc.TLS, dpy uintptr, gradient uintptr, stops uintptr, colors uintptr, nStops int32) Picture { /* Picture.c:271:9: */
 14123  	bp := tls.Alloc(4)
 14124  	defer tls.Free(4)
 14125  
 14126  	var info uintptr = XXRenderFindDisplay(tls, dpy)
 14127  	var pid Picture
 14128  	var req uintptr
 14129  	var len int32
 14130  
 14131  	if !(info != 0 && (*XRenderExtDisplayInfo)(unsafe.Pointer(info)).Fcodes != 0) {
 14132  		return Picture(0)
 14133  	}
 14134  
 14135  	if (*Display)(unsafe.Pointer(dpy)).Flock_fns != 0 {
 14136  		(*struct{ f func(*libc.TLS, uintptr) })(unsafe.Pointer(&struct{ uintptr }{(*X_XLockPtrs)(unsafe.Pointer((*Display)(unsafe.Pointer(dpy)).Flock_fns)).Flock_display})).f(tls, dpy)
 14137  	}
 14138  	req = x11.X_XGetRequest(tls, dpy, uint8(X_RenderCreateLinearGradient), uint32(Sz_xRenderCreateLinearGradientReq))
 14139  	(*XRenderCreateLinearGradientReq)(unsafe.Pointer(req)).FreqType = CARD8((*XExtCodes)(unsafe.Pointer((*XRenderExtDisplayInfo)(unsafe.Pointer(info)).Fcodes)).Fmajor_opcode)
 14140  	(*XRenderCreateLinearGradientReq)(unsafe.Pointer(req)).FrenderReqType = CARD8(X_RenderCreateLinearGradient)
 14141  
 14142  	(*XRenderCreateLinearGradientReq)(unsafe.Pointer(req)).Fpid = libc.AssignUint32(&pid, (*struct{ f func(*libc.TLS, uintptr) XID })(unsafe.Pointer(&struct{ uintptr }{(*struct {
 14143  		Fext_data            uintptr
 14144  		Fprivate1            uintptr
 14145  		Ffd                  int32
 14146  		Fprivate2            int32
 14147  		Fproto_major_version int32
 14148  		Fproto_minor_version int32
 14149  		Fvendor              uintptr
 14150  		Fprivate3            XID
 14151  		Fprivate4            XID
 14152  		Fprivate5            XID
 14153  		Fprivate6            int32
 14154  		Fresource_alloc      uintptr
 14155  		Fbyte_order          int32
 14156  		Fbitmap_unit         int32
 14157  		Fbitmap_pad          int32
 14158  		Fbitmap_bit_order    int32
 14159  		Fnformats            int32
 14160  		Fpixmap_format       uintptr
 14161  		Fprivate8            int32
 14162  		Frelease             int32
 14163  		Fprivate9            uintptr
 14164  		Fprivate10           uintptr
 14165  		Fqlen                int32
 14166  		Flast_request_read   uint32
 14167  		Frequest             uint32
 14168  		Fprivate11           XPointer
 14169  		Fprivate12           XPointer
 14170  		Fprivate13           XPointer
 14171  		Fprivate14           XPointer
 14172  		Fmax_request_size    uint32
 14173  		Fdb                  uintptr
 14174  		Fprivate15           uintptr
 14175  		Fdisplay_name        uintptr
 14176  		Fdefault_screen      int32
 14177  		Fnscreens            int32
 14178  		Fscreens             uintptr
 14179  		Fmotion_buffer       uint32
 14180  		Fprivate16           uint32
 14181  		Fmin_keycode         int32
 14182  		Fmax_keycode         int32
 14183  		Fprivate17           XPointer
 14184  		Fprivate18           XPointer
 14185  		Fprivate19           int32
 14186  		Fxdefaults           uintptr
 14187  	})(unsafe.Pointer(dpy)).Fresource_alloc})).f(tls, dpy))
 14188  	(*XRenderCreateLinearGradientReq)(unsafe.Pointer(req)).Fp1.Fx = INT32((*XLinearGradient)(unsafe.Pointer(gradient)).Fp1.Fx)
 14189  	(*XRenderCreateLinearGradientReq)(unsafe.Pointer(req)).Fp1.Fy = INT32((*XLinearGradient)(unsafe.Pointer(gradient)).Fp1.Fy)
 14190  	(*XRenderCreateLinearGradientReq)(unsafe.Pointer(req)).Fp2.Fx = INT32((*XLinearGradient)(unsafe.Pointer(gradient)).Fp2.Fx)
 14191  	(*XRenderCreateLinearGradientReq)(unsafe.Pointer(req)).Fp2.Fy = INT32((*XLinearGradient)(unsafe.Pointer(gradient)).Fp2.Fy)
 14192  
 14193  	(*XRenderCreateLinearGradientReq)(unsafe.Pointer(req)).FnStops = CARD32(nStops)
 14194  	len = int32(nStops) * 3
 14195  	if uint32(int32((*XRenderCreateLinearGradientReq)(unsafe.Pointer(req)).Flength)+len) > uint32(uint32(65535)) {
 14196  		if (*Display)(unsafe.Pointer(dpy)).Fbigreq_size != 0 {
 14197  			{
 14198  				// var _BRdat CARD32 at bp, 4
 14199  				var _BRlen CARD32 = CARD32(int32((*XRenderCreateLinearGradientReq)(unsafe.Pointer(req)).Flength) - 1)
 14200  				(*XRenderCreateLinearGradientReq)(unsafe.Pointer(req)).Flength = CARD16(0)
 14201  				*(*CARD32)(unsafe.Pointer(bp /* _BRdat */)) = *(*CARD32)(unsafe.Pointer(req + uintptr(_BRlen)*4))
 14202  				libc.Xmemmove(tls, req+uintptr(8), req+uintptr(4), uint32((_BRlen-CARD32(1))<<2))
 14203  				*(*CARD32)(unsafe.Pointer(req + 1*4)) = _BRlen + CARD32(len) + CARD32(2)
 14204  				{
 14205  					if (*Display)(unsafe.Pointer(dpy)).Fbufptr+uintptr(4) <= (*Display)(unsafe.Pointer(dpy)).Fbufmax {
 14206  						libc.Xmemcpy(tls, (*Display)(unsafe.Pointer(dpy)).Fbufptr, bp, uint32(4))
 14207  						*(*uintptr)(unsafe.Pointer(dpy + 108)) += uintptr((4 + 3) & libc.CplInt32(3))
 14208  					} else {
 14209  						x11.X_XSend(tls, dpy, bp, 4)
 14210  					}
 14211  				}
 14212  
 14213  			}
 14214  		} else {
 14215  			len = 6
 14216  			*(*CARD16)(unsafe.Pointer(req + 2)) += CARD16(len)
 14217  		}
 14218  	} else {
 14219  		*(*CARD16)(unsafe.Pointer(req + 2)) += CARD16(len)
 14220  	}
 14221  	{
 14222  		if (*Display)(unsafe.Pointer(dpy)).Fbufptr+uintptr(nStops*4) <= (*Display)(unsafe.Pointer(dpy)).Fbufmax {
 14223  			libc.Xmemcpy(tls, (*Display)(unsafe.Pointer(dpy)).Fbufptr, stops, uint32(nStops*4))
 14224  			*(*uintptr)(unsafe.Pointer(dpy + 108)) += uintptr((nStops*4 + 3) & libc.CplInt32(3))
 14225  		} else {
 14226  			x11.X_XSend(tls, dpy, stops, int32(nStops*4))
 14227  		}
 14228  	}
 14229  
 14230  	{
 14231  		if (*Display)(unsafe.Pointer(dpy)).Fbufptr+uintptr(nStops*8) <= (*Display)(unsafe.Pointer(dpy)).Fbufmax {
 14232  			libc.Xmemcpy(tls, (*Display)(unsafe.Pointer(dpy)).Fbufptr, colors, uint32(nStops*8))
 14233  			*(*uintptr)(unsafe.Pointer(dpy + 108)) += uintptr((nStops*8 + 3) & libc.CplInt32(3))
 14234  		} else {
 14235  			x11.X_XSend(tls, dpy, colors, int32(nStops*8))
 14236  		}
 14237  	}
 14238  
 14239  	if (*Display)(unsafe.Pointer(dpy)).Flock_fns != 0 {
 14240  		(*struct{ f func(*libc.TLS, uintptr) })(unsafe.Pointer(&struct{ uintptr }{(*X_XLockPtrs)(unsafe.Pointer((*Display)(unsafe.Pointer(dpy)).Flock_fns)).Funlock_display})).f(tls, dpy)
 14241  	}
 14242  	if (*Display)(unsafe.Pointer(dpy)).Fsynchandler != 0 {
 14243  		(*struct {
 14244  			f func(*libc.TLS, uintptr) int32
 14245  		})(unsafe.Pointer(&struct{ uintptr }{(*Display)(unsafe.Pointer(dpy)).Fsynchandler})).f(tls, dpy)
 14246  	}
 14247  	return pid
 14248  }
 14249  
 14250  func XXRenderCreateRadialGradient(tls *libc.TLS, dpy uintptr, gradient uintptr, stops uintptr, colors uintptr, nStops int32) Picture { /* Picture.c:305:9: */
 14251  	bp := tls.Alloc(4)
 14252  	defer tls.Free(4)
 14253  
 14254  	var info uintptr = XXRenderFindDisplay(tls, dpy)
 14255  	var pid Picture
 14256  	var req uintptr
 14257  	var len int32
 14258  
 14259  	if !(info != 0 && (*XRenderExtDisplayInfo)(unsafe.Pointer(info)).Fcodes != 0) {
 14260  		return Picture(0)
 14261  	}
 14262  
 14263  	if (*Display)(unsafe.Pointer(dpy)).Flock_fns != 0 {
 14264  		(*struct{ f func(*libc.TLS, uintptr) })(unsafe.Pointer(&struct{ uintptr }{(*X_XLockPtrs)(unsafe.Pointer((*Display)(unsafe.Pointer(dpy)).Flock_fns)).Flock_display})).f(tls, dpy)
 14265  	}
 14266  	req = x11.X_XGetRequest(tls, dpy, uint8(X_RenderCreateRadialGradient), uint32(Sz_xRenderCreateRadialGradientReq))
 14267  	(*XRenderCreateRadialGradientReq)(unsafe.Pointer(req)).FreqType = CARD8((*XExtCodes)(unsafe.Pointer((*XRenderExtDisplayInfo)(unsafe.Pointer(info)).Fcodes)).Fmajor_opcode)
 14268  	(*XRenderCreateRadialGradientReq)(unsafe.Pointer(req)).FrenderReqType = CARD8(X_RenderCreateRadialGradient)
 14269  
 14270  	(*XRenderCreateRadialGradientReq)(unsafe.Pointer(req)).Fpid = libc.AssignUint32(&pid, (*struct{ f func(*libc.TLS, uintptr) XID })(unsafe.Pointer(&struct{ uintptr }{(*struct {
 14271  		Fext_data            uintptr
 14272  		Fprivate1            uintptr
 14273  		Ffd                  int32
 14274  		Fprivate2            int32
 14275  		Fproto_major_version int32
 14276  		Fproto_minor_version int32
 14277  		Fvendor              uintptr
 14278  		Fprivate3            XID
 14279  		Fprivate4            XID
 14280  		Fprivate5            XID
 14281  		Fprivate6            int32
 14282  		Fresource_alloc      uintptr
 14283  		Fbyte_order          int32
 14284  		Fbitmap_unit         int32
 14285  		Fbitmap_pad          int32
 14286  		Fbitmap_bit_order    int32
 14287  		Fnformats            int32
 14288  		Fpixmap_format       uintptr
 14289  		Fprivate8            int32
 14290  		Frelease             int32
 14291  		Fprivate9            uintptr
 14292  		Fprivate10           uintptr
 14293  		Fqlen                int32
 14294  		Flast_request_read   uint32
 14295  		Frequest             uint32
 14296  		Fprivate11           XPointer
 14297  		Fprivate12           XPointer
 14298  		Fprivate13           XPointer
 14299  		Fprivate14           XPointer
 14300  		Fmax_request_size    uint32
 14301  		Fdb                  uintptr
 14302  		Fprivate15           uintptr
 14303  		Fdisplay_name        uintptr
 14304  		Fdefault_screen      int32
 14305  		Fnscreens            int32
 14306  		Fscreens             uintptr
 14307  		Fmotion_buffer       uint32
 14308  		Fprivate16           uint32
 14309  		Fmin_keycode         int32
 14310  		Fmax_keycode         int32
 14311  		Fprivate17           XPointer
 14312  		Fprivate18           XPointer
 14313  		Fprivate19           int32
 14314  		Fxdefaults           uintptr
 14315  	})(unsafe.Pointer(dpy)).Fresource_alloc})).f(tls, dpy))
 14316  	(*XRenderCreateRadialGradientReq)(unsafe.Pointer(req)).Finner.Fx = INT32((*XRadialGradient)(unsafe.Pointer(gradient)).Finner.Fx)
 14317  	(*XRenderCreateRadialGradientReq)(unsafe.Pointer(req)).Finner.Fy = INT32((*XRadialGradient)(unsafe.Pointer(gradient)).Finner.Fy)
 14318  	(*XRenderCreateRadialGradientReq)(unsafe.Pointer(req)).Fouter.Fx = INT32((*XRadialGradient)(unsafe.Pointer(gradient)).Fouter.Fx)
 14319  	(*XRenderCreateRadialGradientReq)(unsafe.Pointer(req)).Fouter.Fy = INT32((*XRadialGradient)(unsafe.Pointer(gradient)).Fouter.Fy)
 14320  	(*XRenderCreateRadialGradientReq)(unsafe.Pointer(req)).Finner_radius = INT32((*XRadialGradient)(unsafe.Pointer(gradient)).Finner.Fradius)
 14321  	(*XRenderCreateRadialGradientReq)(unsafe.Pointer(req)).Fouter_radius = INT32((*XRadialGradient)(unsafe.Pointer(gradient)).Fouter.Fradius)
 14322  
 14323  	(*XRenderCreateRadialGradientReq)(unsafe.Pointer(req)).FnStops = CARD32(nStops)
 14324  	len = int32(nStops) * 3
 14325  	if uint32(int32((*XRenderCreateRadialGradientReq)(unsafe.Pointer(req)).Flength)+len) > uint32(uint32(65535)) {
 14326  		if (*Display)(unsafe.Pointer(dpy)).Fbigreq_size != 0 {
 14327  			{
 14328  				// var _BRdat CARD32 at bp, 4
 14329  				var _BRlen CARD32 = CARD32(int32((*XRenderCreateRadialGradientReq)(unsafe.Pointer(req)).Flength) - 1)
 14330  				(*XRenderCreateRadialGradientReq)(unsafe.Pointer(req)).Flength = CARD16(0)
 14331  				*(*CARD32)(unsafe.Pointer(bp /* _BRdat */)) = *(*CARD32)(unsafe.Pointer(req + uintptr(_BRlen)*4))
 14332  				libc.Xmemmove(tls, req+uintptr(8), req+uintptr(4), uint32((_BRlen-CARD32(1))<<2))
 14333  				*(*CARD32)(unsafe.Pointer(req + 1*4)) = _BRlen + CARD32(len) + CARD32(2)
 14334  				{
 14335  					if (*Display)(unsafe.Pointer(dpy)).Fbufptr+uintptr(4) <= (*Display)(unsafe.Pointer(dpy)).Fbufmax {
 14336  						libc.Xmemcpy(tls, (*Display)(unsafe.Pointer(dpy)).Fbufptr, bp, uint32(4))
 14337  						*(*uintptr)(unsafe.Pointer(dpy + 108)) += uintptr((4 + 3) & libc.CplInt32(3))
 14338  					} else {
 14339  						x11.X_XSend(tls, dpy, bp, 4)
 14340  					}
 14341  				}
 14342  
 14343  			}
 14344  		} else {
 14345  			len = 6
 14346  			*(*CARD16)(unsafe.Pointer(req + 2)) += CARD16(len)
 14347  		}
 14348  	} else {
 14349  		*(*CARD16)(unsafe.Pointer(req + 2)) += CARD16(len)
 14350  	}
 14351  	{
 14352  		if (*Display)(unsafe.Pointer(dpy)).Fbufptr+uintptr(nStops*4) <= (*Display)(unsafe.Pointer(dpy)).Fbufmax {
 14353  			libc.Xmemcpy(tls, (*Display)(unsafe.Pointer(dpy)).Fbufptr, stops, uint32(nStops*4))
 14354  			*(*uintptr)(unsafe.Pointer(dpy + 108)) += uintptr((nStops*4 + 3) & libc.CplInt32(3))
 14355  		} else {
 14356  			x11.X_XSend(tls, dpy, stops, int32(nStops*4))
 14357  		}
 14358  	}
 14359  
 14360  	{
 14361  		if (*Display)(unsafe.Pointer(dpy)).Fbufptr+uintptr(nStops*8) <= (*Display)(unsafe.Pointer(dpy)).Fbufmax {
 14362  			libc.Xmemcpy(tls, (*Display)(unsafe.Pointer(dpy)).Fbufptr, colors, uint32(nStops*8))
 14363  			*(*uintptr)(unsafe.Pointer(dpy + 108)) += uintptr((nStops*8 + 3) & libc.CplInt32(3))
 14364  		} else {
 14365  			x11.X_XSend(tls, dpy, colors, int32(nStops*8))
 14366  		}
 14367  	}
 14368  
 14369  	if (*Display)(unsafe.Pointer(dpy)).Flock_fns != 0 {
 14370  		(*struct{ f func(*libc.TLS, uintptr) })(unsafe.Pointer(&struct{ uintptr }{(*X_XLockPtrs)(unsafe.Pointer((*Display)(unsafe.Pointer(dpy)).Flock_fns)).Funlock_display})).f(tls, dpy)
 14371  	}
 14372  	if (*Display)(unsafe.Pointer(dpy)).Fsynchandler != 0 {
 14373  		(*struct {
 14374  			f func(*libc.TLS, uintptr) int32
 14375  		})(unsafe.Pointer(&struct{ uintptr }{(*Display)(unsafe.Pointer(dpy)).Fsynchandler})).f(tls, dpy)
 14376  	}
 14377  	return pid
 14378  }
 14379  
 14380  func XXRenderCreateConicalGradient(tls *libc.TLS, dpy uintptr, gradient uintptr, stops uintptr, colors uintptr, nStops int32) Picture { /* Picture.c:341:9: */
 14381  	bp := tls.Alloc(4)
 14382  	defer tls.Free(4)
 14383  
 14384  	var info uintptr = XXRenderFindDisplay(tls, dpy)
 14385  	var pid Picture
 14386  	var req uintptr
 14387  	var len int32
 14388  
 14389  	if !(info != 0 && (*XRenderExtDisplayInfo)(unsafe.Pointer(info)).Fcodes != 0) {
 14390  		return Picture(0)
 14391  	}
 14392  
 14393  	if (*Display)(unsafe.Pointer(dpy)).Flock_fns != 0 {
 14394  		(*struct{ f func(*libc.TLS, uintptr) })(unsafe.Pointer(&struct{ uintptr }{(*X_XLockPtrs)(unsafe.Pointer((*Display)(unsafe.Pointer(dpy)).Flock_fns)).Flock_display})).f(tls, dpy)
 14395  	}
 14396  	req = x11.X_XGetRequest(tls, dpy, uint8(X_RenderCreateConicalGradient), uint32(Sz_xRenderCreateConicalGradientReq))
 14397  	(*XRenderCreateConicalGradientReq)(unsafe.Pointer(req)).FreqType = CARD8((*XExtCodes)(unsafe.Pointer((*XRenderExtDisplayInfo)(unsafe.Pointer(info)).Fcodes)).Fmajor_opcode)
 14398  	(*XRenderCreateConicalGradientReq)(unsafe.Pointer(req)).FrenderReqType = CARD8(X_RenderCreateConicalGradient)
 14399  
 14400  	(*XRenderCreateConicalGradientReq)(unsafe.Pointer(req)).Fpid = libc.AssignUint32(&pid, (*struct{ f func(*libc.TLS, uintptr) XID })(unsafe.Pointer(&struct{ uintptr }{(*struct {
 14401  		Fext_data            uintptr
 14402  		Fprivate1            uintptr
 14403  		Ffd                  int32
 14404  		Fprivate2            int32
 14405  		Fproto_major_version int32
 14406  		Fproto_minor_version int32
 14407  		Fvendor              uintptr
 14408  		Fprivate3            XID
 14409  		Fprivate4            XID
 14410  		Fprivate5            XID
 14411  		Fprivate6            int32
 14412  		Fresource_alloc      uintptr
 14413  		Fbyte_order          int32
 14414  		Fbitmap_unit         int32
 14415  		Fbitmap_pad          int32
 14416  		Fbitmap_bit_order    int32
 14417  		Fnformats            int32
 14418  		Fpixmap_format       uintptr
 14419  		Fprivate8            int32
 14420  		Frelease             int32
 14421  		Fprivate9            uintptr
 14422  		Fprivate10           uintptr
 14423  		Fqlen                int32
 14424  		Flast_request_read   uint32
 14425  		Frequest             uint32
 14426  		Fprivate11           XPointer
 14427  		Fprivate12           XPointer
 14428  		Fprivate13           XPointer
 14429  		Fprivate14           XPointer
 14430  		Fmax_request_size    uint32
 14431  		Fdb                  uintptr
 14432  		Fprivate15           uintptr
 14433  		Fdisplay_name        uintptr
 14434  		Fdefault_screen      int32
 14435  		Fnscreens            int32
 14436  		Fscreens             uintptr
 14437  		Fmotion_buffer       uint32
 14438  		Fprivate16           uint32
 14439  		Fmin_keycode         int32
 14440  		Fmax_keycode         int32
 14441  		Fprivate17           XPointer
 14442  		Fprivate18           XPointer
 14443  		Fprivate19           int32
 14444  		Fxdefaults           uintptr
 14445  	})(unsafe.Pointer(dpy)).Fresource_alloc})).f(tls, dpy))
 14446  	(*XRenderCreateConicalGradientReq)(unsafe.Pointer(req)).Fcenter.Fx = INT32((*XConicalGradient)(unsafe.Pointer(gradient)).Fcenter.Fx)
 14447  	(*XRenderCreateConicalGradientReq)(unsafe.Pointer(req)).Fcenter.Fy = INT32((*XConicalGradient)(unsafe.Pointer(gradient)).Fcenter.Fy)
 14448  	(*XRenderCreateConicalGradientReq)(unsafe.Pointer(req)).Fangle = INT32((*XConicalGradient)(unsafe.Pointer(gradient)).Fangle)
 14449  
 14450  	(*XRenderCreateConicalGradientReq)(unsafe.Pointer(req)).FnStops = CARD32(nStops)
 14451  	len = int32(nStops) * 3
 14452  	if uint32(int32((*XRenderCreateConicalGradientReq)(unsafe.Pointer(req)).Flength)+len) > uint32(uint32(65535)) {
 14453  		if (*Display)(unsafe.Pointer(dpy)).Fbigreq_size != 0 {
 14454  			{
 14455  				// var _BRdat CARD32 at bp, 4
 14456  				var _BRlen CARD32 = CARD32(int32((*XRenderCreateConicalGradientReq)(unsafe.Pointer(req)).Flength) - 1)
 14457  				(*XRenderCreateConicalGradientReq)(unsafe.Pointer(req)).Flength = CARD16(0)
 14458  				*(*CARD32)(unsafe.Pointer(bp /* _BRdat */)) = *(*CARD32)(unsafe.Pointer(req + uintptr(_BRlen)*4))
 14459  				libc.Xmemmove(tls, req+uintptr(8), req+uintptr(4), uint32((_BRlen-CARD32(1))<<2))
 14460  				*(*CARD32)(unsafe.Pointer(req + 1*4)) = _BRlen + CARD32(len) + CARD32(2)
 14461  				{
 14462  					if (*Display)(unsafe.Pointer(dpy)).Fbufptr+uintptr(4) <= (*Display)(unsafe.Pointer(dpy)).Fbufmax {
 14463  						libc.Xmemcpy(tls, (*Display)(unsafe.Pointer(dpy)).Fbufptr, bp, uint32(4))
 14464  						*(*uintptr)(unsafe.Pointer(dpy + 108)) += uintptr((4 + 3) & libc.CplInt32(3))
 14465  					} else {
 14466  						x11.X_XSend(tls, dpy, bp, 4)
 14467  					}
 14468  				}
 14469  
 14470  			}
 14471  		} else {
 14472  			len = 6
 14473  			*(*CARD16)(unsafe.Pointer(req + 2)) += CARD16(len)
 14474  		}
 14475  	} else {
 14476  		*(*CARD16)(unsafe.Pointer(req + 2)) += CARD16(len)
 14477  	}
 14478  	{
 14479  		if (*Display)(unsafe.Pointer(dpy)).Fbufptr+uintptr(nStops*4) <= (*Display)(unsafe.Pointer(dpy)).Fbufmax {
 14480  			libc.Xmemcpy(tls, (*Display)(unsafe.Pointer(dpy)).Fbufptr, stops, uint32(nStops*4))
 14481  			*(*uintptr)(unsafe.Pointer(dpy + 108)) += uintptr((nStops*4 + 3) & libc.CplInt32(3))
 14482  		} else {
 14483  			x11.X_XSend(tls, dpy, stops, int32(nStops*4))
 14484  		}
 14485  	}
 14486  
 14487  	{
 14488  		if (*Display)(unsafe.Pointer(dpy)).Fbufptr+uintptr(nStops*8) <= (*Display)(unsafe.Pointer(dpy)).Fbufmax {
 14489  			libc.Xmemcpy(tls, (*Display)(unsafe.Pointer(dpy)).Fbufptr, colors, uint32(nStops*8))
 14490  			*(*uintptr)(unsafe.Pointer(dpy + 108)) += uintptr((nStops*8 + 3) & libc.CplInt32(3))
 14491  		} else {
 14492  			x11.X_XSend(tls, dpy, colors, int32(nStops*8))
 14493  		}
 14494  	}
 14495  
 14496  	if (*Display)(unsafe.Pointer(dpy)).Flock_fns != 0 {
 14497  		(*struct{ f func(*libc.TLS, uintptr) })(unsafe.Pointer(&struct{ uintptr }{(*X_XLockPtrs)(unsafe.Pointer((*Display)(unsafe.Pointer(dpy)).Flock_fns)).Funlock_display})).f(tls, dpy)
 14498  	}
 14499  	if (*Display)(unsafe.Pointer(dpy)).Fsynchandler != 0 {
 14500  		(*struct {
 14501  			f func(*libc.TLS, uintptr) int32
 14502  		})(unsafe.Pointer(&struct{ uintptr }{(*Display)(unsafe.Pointer(dpy)).Fsynchandler})).f(tls, dpy)
 14503  	}
 14504  	return pid
 14505  }
 14506  
 14507  // Xlib uses long for 32-bit values.  Xrender uses int.  This
 14508  // matters on alpha.  Note that this macro assumes that int is 32 bits
 14509  // except on WORD64 machines where it is 64 bits.
 14510  
 14511  type X_Edge = struct {
 14512  	Fedge      XLineFixed1
 14513  	Fcurrent_x XFixed
 14514  	FclockWise int32
 14515  	Fnext      uintptr
 14516  	Fprev      uintptr
 14517  } /* Poly.c:29:9 */
 14518  
 14519  // Xlib uses long for 32-bit values.  Xrender uses int.  This
 14520  // matters on alpha.  Note that this macro assumes that int is 32 bits
 14521  // except on WORD64 machines where it is 64 bits.
 14522  
 14523  type Edge = X_Edge /* Poly.c:29:22 */
 14524  
 14525  func sCompareEdge(tls *libc.TLS, o1 uintptr, o2 uintptr) int32 { /* Poly.c:39:1: */
 14526  	var e1 uintptr = o1
 14527  	var e2 uintptr = o2
 14528  
 14529  	return (*Edge)(unsafe.Pointer(e1)).Fedge.Fp1.Fy - (*Edge)(unsafe.Pointer(e2)).Fedge.Fp1.Fy
 14530  }
 14531  
 14532  func sXRenderComputeX(tls *libc.TLS, line uintptr, y XFixed) XFixed { /* Poly.c:47:1: */
 14533  	var dx XFixed = (*XLineFixed1)(unsafe.Pointer(line)).Fp2.Fx - (*XLineFixed1)(unsafe.Pointer(line)).Fp1.Fx
 14534  	var ex float64 = float64(y-(*XLineFixed1)(unsafe.Pointer(line)).Fp1.Fy) * float64(dx)
 14535  	var dy XFixed = (*XLineFixed1)(unsafe.Pointer(line)).Fp2.Fy - (*XLineFixed1)(unsafe.Pointer(line)).Fp1.Fy
 14536  
 14537  	return (*XLineFixed1)(unsafe.Pointer(line)).Fp1.Fx + libc.Int32FromFloat64(ex/float64(dy))
 14538  }
 14539  
 14540  func sXRenderComputeInverseSlope(tls *libc.TLS, l uintptr) float64 { /* Poly.c:57:1: */
 14541  	return XDouble((*XLineFixed1)(unsafe.Pointer(l)).Fp2.Fx-(*XLineFixed1)(unsafe.Pointer(l)).Fp1.Fx) / float64(65536) / (XDouble((*XLineFixed1)(unsafe.Pointer(l)).Fp2.Fy-(*XLineFixed1)(unsafe.Pointer(l)).Fp1.Fy) / float64(65536))
 14542  }
 14543  
 14544  func sXRenderComputeXIntercept(tls *libc.TLS, l uintptr, inverse_slope float64) float64 { /* Poly.c:64:1: */
 14545  	return XDouble((*XLineFixed1)(unsafe.Pointer(l)).Fp1.Fx)/float64(65536) - inverse_slope*(XDouble((*XLineFixed1)(unsafe.Pointer(l)).Fp1.Fy)/float64(65536))
 14546  }
 14547  
 14548  func sXRenderComputeIntersect(tls *libc.TLS, l1 uintptr, l2 uintptr) XFixed { /* Poly.c:70:1: */
 14549  	// x = m1y + b1
 14550  	// x = m2y + b2
 14551  	// m1y + b1 = m2y + b2
 14552  	// y * (m1 - m2) = b2 - b1
 14553  	// y = (b2 - b1) / (m1 - m2)
 14554  	var m1 float64 = sXRenderComputeInverseSlope(tls, l1)
 14555  	var b1 float64 = sXRenderComputeXIntercept(tls, l1, m1)
 14556  	var m2 float64 = sXRenderComputeInverseSlope(tls, l2)
 14557  	var b2 float64 = sXRenderComputeXIntercept(tls, l2, m2)
 14558  
 14559  	return libc.Int32FromFloat64((b2 - b1) / (m1 - m2) * float64(65536))
 14560  }
 14561  
 14562  func sXRenderComputeTrapezoids(tls *libc.TLS, edges uintptr, nedges int32, winding int32, traps uintptr) int32 { /* Poly.c:88:1: */
 14563  	var ntraps int32 = 0
 14564  	var inactive int32
 14565  	var active uintptr
 14566  	var e uintptr
 14567  	var en uintptr
 14568  	var next uintptr
 14569  	var y XFixed
 14570  	var next_y XFixed
 14571  	var intersect XFixed
 14572  
 14573  	libc.Xqsort(tls, edges, uint32(nedges), uint32(unsafe.Sizeof(Edge{})), *(*uintptr)(unsafe.Pointer(&struct {
 14574  		f func(*libc.TLS, uintptr, uintptr) int32
 14575  	}{sCompareEdge})))
 14576  
 14577  	y = (*Edge)(unsafe.Pointer(edges)).Fedge.Fp1.Fy
 14578  	active = uintptr(0)
 14579  	inactive = 0
 14580  	for active != 0 || inactive < nedges {
 14581  		// insert new active edges into list
 14582  		for inactive < nedges {
 14583  			e = edges + uintptr(inactive)*32
 14584  			if (*Edge)(unsafe.Pointer(e)).Fedge.Fp1.Fy > y {
 14585  				break
 14586  			}
 14587  			// move this edge into the active list
 14588  			inactive++
 14589  			(*Edge)(unsafe.Pointer(e)).Fnext = active
 14590  			(*Edge)(unsafe.Pointer(e)).Fprev = uintptr(0)
 14591  			if active != 0 {
 14592  				(*Edge)(unsafe.Pointer(active)).Fprev = e
 14593  			}
 14594  			active = e
 14595  		}
 14596  		// compute x coordinates along this group
 14597  		for e = active; e != 0; e = (*Edge)(unsafe.Pointer(e)).Fnext {
 14598  			(*Edge)(unsafe.Pointer(e)).Fcurrent_x = sXRenderComputeX(tls, e, y)
 14599  		}
 14600  
 14601  		// sort active list
 14602  		for e = active; e != 0; e = next {
 14603  			next = (*Edge)(unsafe.Pointer(e)).Fnext
 14604  			// Find one later in the list that belongs before the
 14605  			// current one
 14606  			for en = next; en != 0; en = (*Edge)(unsafe.Pointer(en)).Fnext {
 14607  				if (*Edge)(unsafe.Pointer(en)).Fcurrent_x < (*Edge)(unsafe.Pointer(e)).Fcurrent_x || (*Edge)(unsafe.Pointer(en)).Fcurrent_x == (*Edge)(unsafe.Pointer(e)).Fcurrent_x && (*Edge)(unsafe.Pointer(en)).Fedge.Fp2.Fx < (*Edge)(unsafe.Pointer(e)).Fedge.Fp2.Fx {
 14608  					// insert en before e
 14609  					//
 14610  					// extract en
 14611  					(*Edge)(unsafe.Pointer((*Edge)(unsafe.Pointer(en)).Fprev)).Fnext = (*Edge)(unsafe.Pointer(en)).Fnext
 14612  					if (*Edge)(unsafe.Pointer(en)).Fnext != 0 {
 14613  						(*Edge)(unsafe.Pointer((*Edge)(unsafe.Pointer(en)).Fnext)).Fprev = (*Edge)(unsafe.Pointer(en)).Fprev
 14614  					}
 14615  					// insert en
 14616  					if (*Edge)(unsafe.Pointer(e)).Fprev != 0 {
 14617  						(*Edge)(unsafe.Pointer((*Edge)(unsafe.Pointer(e)).Fprev)).Fnext = en
 14618  					} else {
 14619  						active = en
 14620  					}
 14621  					(*Edge)(unsafe.Pointer(en)).Fprev = (*Edge)(unsafe.Pointer(e)).Fprev
 14622  					(*Edge)(unsafe.Pointer(e)).Fprev = en
 14623  					(*Edge)(unsafe.Pointer(en)).Fnext = e
 14624  					// start over at en
 14625  					next = en
 14626  					break
 14627  				}
 14628  			}
 14629  		}
 14630  		// find next inflection point
 14631  		next_y = (*Edge)(unsafe.Pointer(active)).Fedge.Fp2.Fy
 14632  		for e = active; e != 0; e = en {
 14633  			if (*Edge)(unsafe.Pointer(e)).Fedge.Fp2.Fy < next_y {
 14634  				next_y = (*Edge)(unsafe.Pointer(e)).Fedge.Fp2.Fy
 14635  			}
 14636  			en = (*Edge)(unsafe.Pointer(e)).Fnext
 14637  			// check intersect
 14638  			if en != 0 && (*Edge)(unsafe.Pointer(e)).Fedge.Fp2.Fx > (*Edge)(unsafe.Pointer(en)).Fedge.Fp2.Fx {
 14639  				intersect = sXRenderComputeIntersect(tls, e, (*Edge)(unsafe.Pointer(e)).Fnext)
 14640  				// make sure this point is below the actual intersection
 14641  				intersect = intersect + 1
 14642  				if intersect < next_y {
 14643  					next_y = intersect
 14644  				}
 14645  			}
 14646  		}
 14647  		// check next inactive point
 14648  		if inactive < nedges && (*Edge)(unsafe.Pointer(edges+uintptr(inactive)*32)).Fedge.Fp1.Fy < next_y {
 14649  			next_y = (*Edge)(unsafe.Pointer(edges + uintptr(inactive)*32)).Fedge.Fp1.Fy
 14650  		}
 14651  
 14652  		// walk the list generating trapezoids
 14653  		for e = active; e != 0 && libc.AssignUintptr(&en, (*Edge)(unsafe.Pointer(e)).Fnext) != 0; e = (*Edge)(unsafe.Pointer(en)).Fnext {
 14654  			(*XTrapezoid1)(unsafe.Pointer(traps)).Ftop = y
 14655  			(*XTrapezoid1)(unsafe.Pointer(traps)).Fbottom = next_y
 14656  			(*XTrapezoid1)(unsafe.Pointer(traps)).Fleft = (*Edge)(unsafe.Pointer(e)).Fedge
 14657  			(*XTrapezoid1)(unsafe.Pointer(traps)).Fright = (*Edge)(unsafe.Pointer(en)).Fedge
 14658  			traps += 40
 14659  			ntraps++
 14660  		}
 14661  
 14662  		y = next_y
 14663  
 14664  		// delete inactive edges from list
 14665  		for e = active; e != 0; e = next {
 14666  			next = (*Edge)(unsafe.Pointer(e)).Fnext
 14667  			if (*Edge)(unsafe.Pointer(e)).Fedge.Fp2.Fy <= y {
 14668  				if (*Edge)(unsafe.Pointer(e)).Fprev != 0 {
 14669  					(*Edge)(unsafe.Pointer((*Edge)(unsafe.Pointer(e)).Fprev)).Fnext = (*Edge)(unsafe.Pointer(e)).Fnext
 14670  				} else {
 14671  					active = (*Edge)(unsafe.Pointer(e)).Fnext
 14672  				}
 14673  				if (*Edge)(unsafe.Pointer(e)).Fnext != 0 {
 14674  					(*Edge)(unsafe.Pointer((*Edge)(unsafe.Pointer(e)).Fnext)).Fprev = (*Edge)(unsafe.Pointer(e)).Fprev
 14675  				}
 14676  			}
 14677  		}
 14678  	}
 14679  	return ntraps
 14680  }
 14681  
 14682  func XXRenderCompositeDoublePoly(tls *libc.TLS, dpy uintptr, op int32, src Picture, dst Picture, maskFormat uintptr, xSrc int32, ySrc int32, xDst int32, yDst int32, fpoints uintptr, npoints int32, winding int32) { /* Poly.c:225:1: */
 14683  	var edges uintptr
 14684  	var traps uintptr
 14685  	var i int32
 14686  	var nedges int32
 14687  	var ntraps int32
 14688  	var x XFixed
 14689  	var y XFixed
 14690  	var prevx XFixed = 0
 14691  	var prevy XFixed = 0
 14692  	var firstx XFixed = 0
 14693  	var firsty XFixed = 0
 14694  	var top XFixed = 0
 14695  	var bottom XFixed = 0 // GCCism
 14696  
 14697  	edges = libc.Xmalloc(tls, func() uint32 {
 14698  		if uint32(npoints)*uint32(unsafe.Sizeof(Edge{}))+uint32(npoints*npoints)*uint32(unsafe.Sizeof(XTrapezoid1{})) == uint32(0) {
 14699  			return uint32(1)
 14700  		}
 14701  		return uint32(npoints)*uint32(unsafe.Sizeof(Edge{})) + uint32(npoints*npoints)*uint32(unsafe.Sizeof(XTrapezoid1{}))
 14702  	}())
 14703  	if !(edges != 0) {
 14704  		return
 14705  	}
 14706  	traps = edges + uintptr(npoints)*32
 14707  	nedges = 0
 14708  	for i = 0; i <= npoints; i++ {
 14709  		if i == npoints {
 14710  			x = firstx
 14711  			y = firsty
 14712  		} else {
 14713  			x = libc.Int32FromFloat64((*XPointDouble)(unsafe.Pointer(fpoints+uintptr(i)*16)).Fx * float64(65536))
 14714  			y = libc.Int32FromFloat64((*XPointDouble)(unsafe.Pointer(fpoints+uintptr(i)*16)).Fy * float64(65536))
 14715  		}
 14716  		if i != 0 {
 14717  			if y < top {
 14718  				top = y
 14719  			} else if y > bottom {
 14720  				bottom = y
 14721  			}
 14722  			if prevy < y {
 14723  				(*Edge)(unsafe.Pointer(edges + uintptr(nedges)*32)).Fedge.Fp1.Fx = prevx
 14724  				(*Edge)(unsafe.Pointer(edges + uintptr(nedges)*32)).Fedge.Fp1.Fy = prevy
 14725  				(*Edge)(unsafe.Pointer(edges + uintptr(nedges)*32)).Fedge.Fp2.Fx = x
 14726  				(*Edge)(unsafe.Pointer(edges + uintptr(nedges)*32)).Fedge.Fp2.Fy = y
 14727  				(*Edge)(unsafe.Pointer(edges + uintptr(nedges)*32)).FclockWise = True
 14728  				nedges++
 14729  			} else if prevy > y {
 14730  				(*Edge)(unsafe.Pointer(edges + uintptr(nedges)*32)).Fedge.Fp1.Fx = x
 14731  				(*Edge)(unsafe.Pointer(edges + uintptr(nedges)*32)).Fedge.Fp1.Fy = y
 14732  				(*Edge)(unsafe.Pointer(edges + uintptr(nedges)*32)).Fedge.Fp2.Fx = prevx
 14733  				(*Edge)(unsafe.Pointer(edges + uintptr(nedges)*32)).Fedge.Fp2.Fy = prevy
 14734  				(*Edge)(unsafe.Pointer(edges + uintptr(nedges)*32)).FclockWise = False
 14735  				nedges++
 14736  			}
 14737  			// drop horizontal edges
 14738  		} else {
 14739  			top = y
 14740  			bottom = y
 14741  			firstx = x
 14742  			firsty = y
 14743  		}
 14744  		prevx = x
 14745  		prevy = y
 14746  	}
 14747  	ntraps = sXRenderComputeTrapezoids(tls, edges, nedges, winding, traps)
 14748  	// XXX adjust xSrc/xDst
 14749  	XXRenderCompositeTrapezoids(tls, dpy, op, src, dst, maskFormat, xSrc, ySrc, traps, ntraps)
 14750  	libc.Xfree(tls, edges)
 14751  }
 14752  
 14753  // Xlib uses long for 32-bit values.  Xrender uses int.  This
 14754  // matters on alpha.  Note that this macro assumes that int is 32 bits
 14755  // except on WORD64 machines where it is 64 bits.
 14756  
 14757  func XXRenderCompositeTrapezoids(tls *libc.TLS, dpy uintptr, op int32, src Picture, dst Picture, maskFormat uintptr, xSrc int32, ySrc int32, traps uintptr, ntrap int32) { /* Trap.c:30:1: */
 14758  	bp := tls.Alloc(4)
 14759  	defer tls.Free(4)
 14760  
 14761  	var info uintptr = XXRenderFindDisplay(tls, dpy)
 14762  	var req uintptr
 14763  	var n int32
 14764  	var len int32
 14765  	var max_req uint32
 14766  	if (*Display)(unsafe.Pointer(dpy)).Fbigreq_size != 0 {
 14767  		max_req = (*Display)(unsafe.Pointer(dpy)).Fbigreq_size
 14768  	} else {
 14769  		max_req = uint32((*Display)(unsafe.Pointer(dpy)).Fmax_request_size)
 14770  	}
 14771  
 14772  	if !(info != 0 && (*XRenderExtDisplayInfo)(unsafe.Pointer(info)).Fcodes != 0) {
 14773  		return
 14774  	}
 14775  
 14776  	if (*Display)(unsafe.Pointer(dpy)).Flock_fns != 0 {
 14777  		(*struct{ f func(*libc.TLS, uintptr) })(unsafe.Pointer(&struct{ uintptr }{(*X_XLockPtrs)(unsafe.Pointer((*Display)(unsafe.Pointer(dpy)).Flock_fns)).Flock_display})).f(tls, dpy)
 14778  	}
 14779  	for ntrap != 0 {
 14780  		req = x11.X_XGetRequest(tls, dpy, uint8(X_RenderTrapezoids), uint32(Sz_xRenderTrapezoidsReq))
 14781  		(*XRenderTrapezoidsReq)(unsafe.Pointer(req)).FreqType = CARD8((*XExtCodes)(unsafe.Pointer((*XRenderExtDisplayInfo)(unsafe.Pointer(info)).Fcodes)).Fmajor_opcode)
 14782  		(*XRenderTrapezoidsReq)(unsafe.Pointer(req)).FrenderReqType = CARD8(X_RenderTrapezoids)
 14783  		(*XRenderTrapezoidsReq)(unsafe.Pointer(req)).Fop = CARD8(op)
 14784  		(*XRenderTrapezoidsReq)(unsafe.Pointer(req)).Fsrc = src
 14785  		(*XRenderTrapezoidsReq)(unsafe.Pointer(req)).Fdst = dst
 14786  		(*XRenderTrapezoidsReq)(unsafe.Pointer(req)).FmaskFormat = func() uint32 {
 14787  			if maskFormat != 0 {
 14788  				return (*XRenderPictFormat)(unsafe.Pointer(maskFormat)).Fid
 14789  			}
 14790  			return uint32(0)
 14791  		}()
 14792  		(*XRenderTrapezoidsReq)(unsafe.Pointer(req)).FxSrc = INT16(xSrc)
 14793  		(*XRenderTrapezoidsReq)(unsafe.Pointer(req)).FySrc = INT16(ySrc)
 14794  		n = ntrap
 14795  		len = int32(n) * (int32(Sz_xTrapezoid) >> 2)
 14796  		if uint32(len) > max_req-uint32((*XRenderTrapezoidsReq)(unsafe.Pointer(req)).Flength) {
 14797  			n = int32((max_req - uint32((*XRenderTrapezoidsReq)(unsafe.Pointer(req)).Flength)) / uint32(int32(Sz_xTrapezoid)>>2))
 14798  			len = int32(n) * (int32(Sz_xTrapezoid) >> 2)
 14799  		}
 14800  		if uint32(int32((*XRenderTrapezoidsReq)(unsafe.Pointer(req)).Flength)+len) > uint32(uint32(65535)) {
 14801  			if (*Display)(unsafe.Pointer(dpy)).Fbigreq_size != 0 {
 14802  				{
 14803  					// var _BRdat CARD32 at bp, 4
 14804  					var _BRlen CARD32 = CARD32(int32((*XRenderTrapezoidsReq)(unsafe.Pointer(req)).Flength) - 1)
 14805  					(*XRenderTrapezoidsReq)(unsafe.Pointer(req)).Flength = CARD16(0)
 14806  					*(*CARD32)(unsafe.Pointer(bp /* _BRdat */)) = *(*CARD32)(unsafe.Pointer(req + uintptr(_BRlen)*4))
 14807  					libc.Xmemmove(tls, req+uintptr(8), req+uintptr(4), uint32((_BRlen-CARD32(1))<<2))
 14808  					*(*CARD32)(unsafe.Pointer(req + 1*4)) = _BRlen + CARD32(len) + CARD32(2)
 14809  					{
 14810  						if (*Display)(unsafe.Pointer(dpy)).Fbufptr+uintptr(4) <= (*Display)(unsafe.Pointer(dpy)).Fbufmax {
 14811  							libc.Xmemcpy(tls, (*Display)(unsafe.Pointer(dpy)).Fbufptr, bp, uint32(4))
 14812  							*(*uintptr)(unsafe.Pointer(dpy + 108)) += uintptr((4 + 3) & libc.CplInt32(3))
 14813  						} else {
 14814  							x11.X_XSend(tls, dpy, bp, 4)
 14815  						}
 14816  					}
 14817  
 14818  				}
 14819  			} else {
 14820  				len = len
 14821  				*(*CARD16)(unsafe.Pointer(req + 2)) += CARD16(len)
 14822  			}
 14823  		} else {
 14824  			*(*CARD16)(unsafe.Pointer(req + 2)) += CARD16(len)
 14825  		}
 14826  		len <<= 2
 14827  		{
 14828  			if (*Display)(unsafe.Pointer(dpy)).Fbufptr+uintptr(len) <= (*Display)(unsafe.Pointer(dpy)).Fbufmax {
 14829  				libc.Xmemcpy(tls, (*Display)(unsafe.Pointer(dpy)).Fbufptr, traps, uint32(int32(len)))
 14830  				*(*uintptr)(unsafe.Pointer(dpy + 108)) += uintptr((len + 3) & libc.CplInt32(3))
 14831  			} else {
 14832  				x11.X_XSend(tls, dpy, traps, len)
 14833  			}
 14834  		}
 14835  
 14836  		ntrap = ntrap - n
 14837  		traps += 40 * uintptr(n)
 14838  	}
 14839  	if (*Display)(unsafe.Pointer(dpy)).Flock_fns != 0 {
 14840  		(*struct{ f func(*libc.TLS, uintptr) })(unsafe.Pointer(&struct{ uintptr }{(*X_XLockPtrs)(unsafe.Pointer((*Display)(unsafe.Pointer(dpy)).Flock_fns)).Funlock_display})).f(tls, dpy)
 14841  	}
 14842  	if (*Display)(unsafe.Pointer(dpy)).Fsynchandler != 0 {
 14843  		(*struct {
 14844  			f func(*libc.TLS, uintptr) int32
 14845  		})(unsafe.Pointer(&struct{ uintptr }{(*Display)(unsafe.Pointer(dpy)).Fsynchandler})).f(tls, dpy)
 14846  	}
 14847  }
 14848  
 14849  // Xlib uses long for 32-bit values.  Xrender uses int.  This
 14850  // matters on alpha.  Note that this macro assumes that int is 32 bits
 14851  // except on WORD64 machines where it is 64 bits.
 14852  
 14853  func XXRenderCompositeTriangles(tls *libc.TLS, dpy uintptr, op int32, src Picture, dst Picture, maskFormat uintptr, xSrc int32, ySrc int32, triangles uintptr, ntriangle int32) { /* Tri.c:30:1: */
 14854  	bp := tls.Alloc(4)
 14855  	defer tls.Free(4)
 14856  
 14857  	var info uintptr = XXRenderFindDisplay(tls, dpy)
 14858  	var req uintptr
 14859  	var n int32
 14860  	var len int32
 14861  
 14862  	if !(info != 0 && (*XRenderExtDisplayInfo)(unsafe.Pointer(info)).Fcodes != 0) {
 14863  		return
 14864  	}
 14865  
 14866  	if (*Display)(unsafe.Pointer(dpy)).Flock_fns != 0 {
 14867  		(*struct{ f func(*libc.TLS, uintptr) })(unsafe.Pointer(&struct{ uintptr }{(*X_XLockPtrs)(unsafe.Pointer((*Display)(unsafe.Pointer(dpy)).Flock_fns)).Flock_display})).f(tls, dpy)
 14868  	}
 14869  	for ntriangle != 0 {
 14870  		req = x11.X_XGetRequest(tls, dpy, uint8(X_RenderTriangles), uint32(Sz_xRenderTrianglesReq))
 14871  		(*XRenderTrianglesReq)(unsafe.Pointer(req)).FreqType = CARD8((*XExtCodes)(unsafe.Pointer((*XRenderExtDisplayInfo)(unsafe.Pointer(info)).Fcodes)).Fmajor_opcode)
 14872  		(*XRenderTrianglesReq)(unsafe.Pointer(req)).FrenderReqType = CARD8(X_RenderTriangles)
 14873  		(*XRenderTrianglesReq)(unsafe.Pointer(req)).Fop = CARD8(op)
 14874  		(*XRenderTrianglesReq)(unsafe.Pointer(req)).Fsrc = src
 14875  		(*XRenderTrianglesReq)(unsafe.Pointer(req)).Fdst = dst
 14876  		(*XRenderTrianglesReq)(unsafe.Pointer(req)).FmaskFormat = func() uint32 {
 14877  			if maskFormat != 0 {
 14878  				return (*XRenderPictFormat)(unsafe.Pointer(maskFormat)).Fid
 14879  			}
 14880  			return uint32(0)
 14881  		}()
 14882  		(*XRenderTrianglesReq)(unsafe.Pointer(req)).FxSrc = INT16(xSrc)
 14883  		(*XRenderTrianglesReq)(unsafe.Pointer(req)).FySrc = INT16(ySrc)
 14884  		n = ntriangle
 14885  		len = int32(n) * (int32(Sz_xTriangle) >> 2)
 14886  		if !(int32((*Display)(unsafe.Pointer(dpy)).Fbigreq_size) != 0) && uint32(len) > uint32((*Display)(unsafe.Pointer(dpy)).Fmax_request_size-uint32((*XRenderTrianglesReq)(unsafe.Pointer(req)).Flength)) {
 14887  			n = int32(((*Display)(unsafe.Pointer(dpy)).Fmax_request_size - uint32((*XRenderTrianglesReq)(unsafe.Pointer(req)).Flength)) / uint32(int32(Sz_xTriangle)>>2))
 14888  			len = int32(n) * (int32(Sz_xTriangle) >> 2)
 14889  		}
 14890  		if uint32(int32((*XRenderTrianglesReq)(unsafe.Pointer(req)).Flength)+len) > uint32(uint32(65535)) {
 14891  			if (*Display)(unsafe.Pointer(dpy)).Fbigreq_size != 0 {
 14892  				{
 14893  					// var _BRdat CARD32 at bp, 4
 14894  					var _BRlen CARD32 = CARD32(int32((*XRenderTrianglesReq)(unsafe.Pointer(req)).Flength) - 1)
 14895  					(*XRenderTrianglesReq)(unsafe.Pointer(req)).Flength = CARD16(0)
 14896  					*(*CARD32)(unsafe.Pointer(bp /* _BRdat */)) = *(*CARD32)(unsafe.Pointer(req + uintptr(_BRlen)*4))
 14897  					libc.Xmemmove(tls, req+uintptr(8), req+uintptr(4), uint32((_BRlen-CARD32(1))<<2))
 14898  					*(*CARD32)(unsafe.Pointer(req + 1*4)) = _BRlen + CARD32(len) + CARD32(2)
 14899  					{
 14900  						if (*Display)(unsafe.Pointer(dpy)).Fbufptr+uintptr(4) <= (*Display)(unsafe.Pointer(dpy)).Fbufmax {
 14901  							libc.Xmemcpy(tls, (*Display)(unsafe.Pointer(dpy)).Fbufptr, bp, uint32(4))
 14902  							*(*uintptr)(unsafe.Pointer(dpy + 108)) += uintptr((4 + 3) & libc.CplInt32(3))
 14903  						} else {
 14904  							x11.X_XSend(tls, dpy, bp, 4)
 14905  						}
 14906  					}
 14907  
 14908  				}
 14909  			} else {
 14910  				len = len
 14911  				*(*CARD16)(unsafe.Pointer(req + 2)) += CARD16(len)
 14912  			}
 14913  		} else {
 14914  			*(*CARD16)(unsafe.Pointer(req + 2)) += CARD16(len)
 14915  		}
 14916  		len <<= 2
 14917  		{
 14918  			if (*Display)(unsafe.Pointer(dpy)).Fbufptr+uintptr(len) <= (*Display)(unsafe.Pointer(dpy)).Fbufmax {
 14919  				libc.Xmemcpy(tls, (*Display)(unsafe.Pointer(dpy)).Fbufptr, triangles, uint32(int32(len)))
 14920  				*(*uintptr)(unsafe.Pointer(dpy + 108)) += uintptr((len + 3) & libc.CplInt32(3))
 14921  			} else {
 14922  				x11.X_XSend(tls, dpy, triangles, len)
 14923  			}
 14924  		}
 14925  
 14926  		ntriangle = ntriangle - n
 14927  		triangles += 24 * uintptr(n)
 14928  	}
 14929  	if (*Display)(unsafe.Pointer(dpy)).Flock_fns != 0 {
 14930  		(*struct{ f func(*libc.TLS, uintptr) })(unsafe.Pointer(&struct{ uintptr }{(*X_XLockPtrs)(unsafe.Pointer((*Display)(unsafe.Pointer(dpy)).Flock_fns)).Funlock_display})).f(tls, dpy)
 14931  	}
 14932  	if (*Display)(unsafe.Pointer(dpy)).Fsynchandler != 0 {
 14933  		(*struct {
 14934  			f func(*libc.TLS, uintptr) int32
 14935  		})(unsafe.Pointer(&struct{ uintptr }{(*Display)(unsafe.Pointer(dpy)).Fsynchandler})).f(tls, dpy)
 14936  	}
 14937  }
 14938  
 14939  func XXRenderCompositeTriStrip(tls *libc.TLS, dpy uintptr, op int32, src Picture, dst Picture, maskFormat uintptr, xSrc int32, ySrc int32, points uintptr, npoint int32) { /* Tri.c:75:1: */
 14940  	bp := tls.Alloc(4)
 14941  	defer tls.Free(4)
 14942  
 14943  	var info uintptr = XXRenderFindDisplay(tls, dpy)
 14944  	var req uintptr
 14945  	var n int32
 14946  	var len int32
 14947  
 14948  	if !(info != 0 && (*XRenderExtDisplayInfo)(unsafe.Pointer(info)).Fcodes != 0) {
 14949  		return
 14950  	}
 14951  
 14952  	if (*Display)(unsafe.Pointer(dpy)).Flock_fns != 0 {
 14953  		(*struct{ f func(*libc.TLS, uintptr) })(unsafe.Pointer(&struct{ uintptr }{(*X_XLockPtrs)(unsafe.Pointer((*Display)(unsafe.Pointer(dpy)).Flock_fns)).Flock_display})).f(tls, dpy)
 14954  	}
 14955  	for npoint > 2 {
 14956  		req = x11.X_XGetRequest(tls, dpy, uint8(X_RenderTriStrip), uint32(Sz_xRenderTriStripReq))
 14957  		(*XRenderTriStripReq)(unsafe.Pointer(req)).FreqType = CARD8((*XExtCodes)(unsafe.Pointer((*XRenderExtDisplayInfo)(unsafe.Pointer(info)).Fcodes)).Fmajor_opcode)
 14958  		(*XRenderTriStripReq)(unsafe.Pointer(req)).FrenderReqType = CARD8(X_RenderTriStrip)
 14959  		(*XRenderTriStripReq)(unsafe.Pointer(req)).Fop = CARD8(op)
 14960  		(*XRenderTriStripReq)(unsafe.Pointer(req)).Fsrc = src
 14961  		(*XRenderTriStripReq)(unsafe.Pointer(req)).Fdst = dst
 14962  		(*XRenderTriStripReq)(unsafe.Pointer(req)).FmaskFormat = func() uint32 {
 14963  			if maskFormat != 0 {
 14964  				return (*XRenderPictFormat)(unsafe.Pointer(maskFormat)).Fid
 14965  			}
 14966  			return uint32(0)
 14967  		}()
 14968  		(*XRenderTriStripReq)(unsafe.Pointer(req)).FxSrc = INT16(xSrc)
 14969  		(*XRenderTriStripReq)(unsafe.Pointer(req)).FySrc = INT16(ySrc)
 14970  		n = npoint
 14971  		len = int32(n) * (int32(Sz_xPointFixed) >> 2)
 14972  		if !(int32((*Display)(unsafe.Pointer(dpy)).Fbigreq_size) != 0) && uint32(len) > uint32((*Display)(unsafe.Pointer(dpy)).Fmax_request_size-uint32((*XRenderTriStripReq)(unsafe.Pointer(req)).Flength)) {
 14973  			n = int32(((*Display)(unsafe.Pointer(dpy)).Fmax_request_size - uint32((*XRenderTriStripReq)(unsafe.Pointer(req)).Flength)) / uint32(int32(Sz_xPointFixed)>>2))
 14974  			len = int32(n) * (int32(Sz_xPointFixed) >> 2)
 14975  		}
 14976  		if uint32(int32((*XRenderTriStripReq)(unsafe.Pointer(req)).Flength)+len) > uint32(uint32(65535)) {
 14977  			if (*Display)(unsafe.Pointer(dpy)).Fbigreq_size != 0 {
 14978  				{
 14979  					// var _BRdat CARD32 at bp, 4
 14980  					var _BRlen CARD32 = CARD32(int32((*XRenderTriStripReq)(unsafe.Pointer(req)).Flength) - 1)
 14981  					(*XRenderTriStripReq)(unsafe.Pointer(req)).Flength = CARD16(0)
 14982  					*(*CARD32)(unsafe.Pointer(bp /* _BRdat */)) = *(*CARD32)(unsafe.Pointer(req + uintptr(_BRlen)*4))
 14983  					libc.Xmemmove(tls, req+uintptr(8), req+uintptr(4), uint32((_BRlen-CARD32(1))<<2))
 14984  					*(*CARD32)(unsafe.Pointer(req + 1*4)) = _BRlen + CARD32(len) + CARD32(2)
 14985  					{
 14986  						if (*Display)(unsafe.Pointer(dpy)).Fbufptr+uintptr(4) <= (*Display)(unsafe.Pointer(dpy)).Fbufmax {
 14987  							libc.Xmemcpy(tls, (*Display)(unsafe.Pointer(dpy)).Fbufptr, bp, uint32(4))
 14988  							*(*uintptr)(unsafe.Pointer(dpy + 108)) += uintptr((4 + 3) & libc.CplInt32(3))
 14989  						} else {
 14990  							x11.X_XSend(tls, dpy, bp, 4)
 14991  						}
 14992  					}
 14993  
 14994  				}
 14995  			} else {
 14996  				len = len
 14997  				*(*CARD16)(unsafe.Pointer(req + 2)) += CARD16(len)
 14998  			}
 14999  		} else {
 15000  			*(*CARD16)(unsafe.Pointer(req + 2)) += CARD16(len)
 15001  		}
 15002  		len <<= 2
 15003  		{
 15004  			if (*Display)(unsafe.Pointer(dpy)).Fbufptr+uintptr(len) <= (*Display)(unsafe.Pointer(dpy)).Fbufmax {
 15005  				libc.Xmemcpy(tls, (*Display)(unsafe.Pointer(dpy)).Fbufptr, points, uint32(int32(len)))
 15006  				*(*uintptr)(unsafe.Pointer(dpy + 108)) += uintptr((len + 3) & libc.CplInt32(3))
 15007  			} else {
 15008  				x11.X_XSend(tls, dpy, points, len)
 15009  			}
 15010  		}
 15011  
 15012  		npoint = npoint - (n - 2)
 15013  		points += 8 * uintptr(n-2)
 15014  	}
 15015  	if (*Display)(unsafe.Pointer(dpy)).Flock_fns != 0 {
 15016  		(*struct{ f func(*libc.TLS, uintptr) })(unsafe.Pointer(&struct{ uintptr }{(*X_XLockPtrs)(unsafe.Pointer((*Display)(unsafe.Pointer(dpy)).Flock_fns)).Funlock_display})).f(tls, dpy)
 15017  	}
 15018  	if (*Display)(unsafe.Pointer(dpy)).Fsynchandler != 0 {
 15019  		(*struct {
 15020  			f func(*libc.TLS, uintptr) int32
 15021  		})(unsafe.Pointer(&struct{ uintptr }{(*Display)(unsafe.Pointer(dpy)).Fsynchandler})).f(tls, dpy)
 15022  	}
 15023  }
 15024  
 15025  func XXRenderCompositeTriFan(tls *libc.TLS, dpy uintptr, op int32, src Picture, dst Picture, maskFormat uintptr, xSrc int32, ySrc int32, points uintptr, npoint int32) { /* Tri.c:120:1: */
 15026  	bp := tls.Alloc(4)
 15027  	defer tls.Free(4)
 15028  
 15029  	var info uintptr = XXRenderFindDisplay(tls, dpy)
 15030  	var first uintptr = points
 15031  	var p uintptr
 15032  	var req uintptr
 15033  	var n int32
 15034  	var len int32
 15035  
 15036  	if !(info != 0 && (*XRenderExtDisplayInfo)(unsafe.Pointer(info)).Fcodes != 0) {
 15037  		return
 15038  	}
 15039  
 15040  	if (*Display)(unsafe.Pointer(dpy)).Flock_fns != 0 {
 15041  		(*struct{ f func(*libc.TLS, uintptr) })(unsafe.Pointer(&struct{ uintptr }{(*X_XLockPtrs)(unsafe.Pointer((*Display)(unsafe.Pointer(dpy)).Flock_fns)).Flock_display})).f(tls, dpy)
 15042  	}
 15043  	points += 8
 15044  	npoint--
 15045  	for npoint > 1 {
 15046  		req = x11.X_XGetRequest(tls, dpy, uint8(X_RenderTriFan), uint32(Sz_xRenderTriFanReq+Sz_xPointFixed))
 15047  		(*XRenderTriFanReq)(unsafe.Pointer(req)).FreqType = CARD8((*XExtCodes)(unsafe.Pointer((*XRenderExtDisplayInfo)(unsafe.Pointer(info)).Fcodes)).Fmajor_opcode)
 15048  		(*XRenderTriFanReq)(unsafe.Pointer(req)).FrenderReqType = CARD8(X_RenderTriFan)
 15049  		(*XRenderTriFanReq)(unsafe.Pointer(req)).Fop = CARD8(op)
 15050  		(*XRenderTriFanReq)(unsafe.Pointer(req)).Fsrc = src
 15051  		(*XRenderTriFanReq)(unsafe.Pointer(req)).Fdst = dst
 15052  		(*XRenderTriFanReq)(unsafe.Pointer(req)).FmaskFormat = func() uint32 {
 15053  			if maskFormat != 0 {
 15054  				return (*XRenderPictFormat)(unsafe.Pointer(maskFormat)).Fid
 15055  			}
 15056  			return uint32(0)
 15057  		}()
 15058  		(*XRenderTriFanReq)(unsafe.Pointer(req)).FxSrc = INT16(xSrc)
 15059  		(*XRenderTriFanReq)(unsafe.Pointer(req)).FySrc = INT16(ySrc)
 15060  		p = req + uintptr(1)*24
 15061  		(*XPointFixed)(unsafe.Pointer(p)).Fx = INT32((*XPointFixed1)(unsafe.Pointer(first)).Fx)
 15062  		(*XPointFixed)(unsafe.Pointer(p)).Fy = INT32((*XPointFixed1)(unsafe.Pointer(first)).Fy)
 15063  		n = npoint
 15064  		len = int32(n) * (int32(Sz_xPointFixed) >> 2)
 15065  		if !(int32((*Display)(unsafe.Pointer(dpy)).Fbigreq_size) != 0) && uint32(len) > uint32((*Display)(unsafe.Pointer(dpy)).Fmax_request_size-uint32((*XRenderTriFanReq)(unsafe.Pointer(req)).Flength)) {
 15066  			n = int32(((*Display)(unsafe.Pointer(dpy)).Fmax_request_size - uint32((*XRenderTriFanReq)(unsafe.Pointer(req)).Flength)) / uint32(int32(Sz_xPointFixed)>>2))
 15067  			len = int32(n) * (int32(Sz_xPointFixed) >> 2)
 15068  		}
 15069  		if uint32(int32((*XRenderTriFanReq)(unsafe.Pointer(req)).Flength)+len) > uint32(uint32(65535)) {
 15070  			if (*Display)(unsafe.Pointer(dpy)).Fbigreq_size != 0 {
 15071  				{
 15072  					// var _BRdat CARD32 at bp, 4
 15073  					var _BRlen CARD32 = CARD32(int32((*XRenderTriFanReq)(unsafe.Pointer(req)).Flength) - 1)
 15074  					(*XRenderTriFanReq)(unsafe.Pointer(req)).Flength = CARD16(0)
 15075  					*(*CARD32)(unsafe.Pointer(bp /* _BRdat */)) = *(*CARD32)(unsafe.Pointer(req + uintptr(_BRlen)*4))
 15076  					libc.Xmemmove(tls, req+uintptr(8), req+uintptr(4), uint32((_BRlen-CARD32(1))<<2))
 15077  					*(*CARD32)(unsafe.Pointer(req + 1*4)) = _BRlen + CARD32(len) + CARD32(2)
 15078  					{
 15079  						if (*Display)(unsafe.Pointer(dpy)).Fbufptr+uintptr(4) <= (*Display)(unsafe.Pointer(dpy)).Fbufmax {
 15080  							libc.Xmemcpy(tls, (*Display)(unsafe.Pointer(dpy)).Fbufptr, bp, uint32(4))
 15081  							*(*uintptr)(unsafe.Pointer(dpy + 108)) += uintptr((4 + 3) & libc.CplInt32(3))
 15082  						} else {
 15083  							x11.X_XSend(tls, dpy, bp, 4)
 15084  						}
 15085  					}
 15086  
 15087  				}
 15088  			} else {
 15089  				len = len
 15090  				*(*CARD16)(unsafe.Pointer(req + 2)) += CARD16(len)
 15091  			}
 15092  		} else {
 15093  			*(*CARD16)(unsafe.Pointer(req + 2)) += CARD16(len)
 15094  		}
 15095  		len <<= 2
 15096  		{
 15097  			if (*Display)(unsafe.Pointer(dpy)).Fbufptr+uintptr(len) <= (*Display)(unsafe.Pointer(dpy)).Fbufmax {
 15098  				libc.Xmemcpy(tls, (*Display)(unsafe.Pointer(dpy)).Fbufptr, points, uint32(int32(len)))
 15099  				*(*uintptr)(unsafe.Pointer(dpy + 108)) += uintptr((len + 3) & libc.CplInt32(3))
 15100  			} else {
 15101  				x11.X_XSend(tls, dpy, points, len)
 15102  			}
 15103  		}
 15104  
 15105  		npoint = npoint - (n - 1)
 15106  		points += 8 * uintptr(n-1)
 15107  	}
 15108  	if (*Display)(unsafe.Pointer(dpy)).Flock_fns != 0 {
 15109  		(*struct{ f func(*libc.TLS, uintptr) })(unsafe.Pointer(&struct{ uintptr }{(*X_XLockPtrs)(unsafe.Pointer((*Display)(unsafe.Pointer(dpy)).Flock_fns)).Funlock_display})).f(tls, dpy)
 15110  	}
 15111  	if (*Display)(unsafe.Pointer(dpy)).Fsynchandler != 0 {
 15112  		(*struct {
 15113  			f func(*libc.TLS, uintptr) int32
 15114  		})(unsafe.Pointer(&struct{ uintptr }{(*Display)(unsafe.Pointer(dpy)).Fsynchandler})).f(tls, dpy)
 15115  	}
 15116  }
 15117  
 15118  // Xlib uses long for 32-bit values.  Xrender uses int.  This
 15119  // matters on alpha.  Note that this macro assumes that int is 32 bits
 15120  // except on WORD64 machines where it is 64 bits.
 15121  
 15122  // Copyright (C) 1992-2020 Free Software Foundation, Inc.
 15123  //
 15124  // This file is part of GCC.
 15125  //
 15126  // GCC is free software; you can redistribute it and/or modify it under
 15127  // the terms of the GNU General Public License as published by the Free
 15128  // Software Foundation; either version 3, or (at your option) any later
 15129  // version.
 15130  //
 15131  // GCC is distributed in the hope that it will be useful, but WITHOUT ANY
 15132  // WARRANTY; without even the implied warranty of MERCHANTABILITY or
 15133  // FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
 15134  // for more details.
 15135  //
 15136  // Under Section 7 of GPL version 3, you are granted additional
 15137  // permissions described in the GCC Runtime Library Exception, version
 15138  // 3.1, as published by the Free Software Foundation.
 15139  //
 15140  // You should have received a copy of the GNU General Public License and
 15141  // a copy of the GCC Runtime Library Exception along with this program;
 15142  // see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see
 15143  // <http://www.gnu.org/licenses/>.
 15144  
 15145  // This administrivia gets added to the beginning of limits.h
 15146  //    if the system has its own version of limits.h.
 15147  
 15148  // We use _GCC_LIMITS_H_ because we want this not to match
 15149  //    any macros that the system's limits.h uses for its own purposes.
 15150  
 15151  // Use "..." so that we find syslimits.h only in this same directory.
 15152  // syslimits.h stands for the system's own limits.h file.
 15153  //    If we can use it ok unmodified, then we install this text.
 15154  //    If fixincludes fixes it, then the fixed version is installed
 15155  //    instead of this text.
 15156  
 15157  // Copyright (C) 1991-2020 Free Software Foundation, Inc.
 15158  //    This file is part of the GNU C Library.
 15159  //
 15160  //    The GNU C Library is free software; you can redistribute it and/or
 15161  //    modify it under the terms of the GNU Lesser General Public
 15162  //    License as published by the Free Software Foundation; either
 15163  //    version 2.1 of the License, or (at your option) any later version.
 15164  //
 15165  //    The GNU C Library is distributed in the hope that it will be useful,
 15166  //    but WITHOUT ANY WARRANTY; without even the implied warranty of
 15167  //    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 15168  //    Lesser General Public License for more details.
 15169  //
 15170  //    You should have received a copy of the GNU Lesser General Public
 15171  //    License along with the GNU C Library; if not, see
 15172  //    <https://www.gnu.org/licenses/>.
 15173  
 15174  //	ISO C99 Standard: 7.10/5.2.4.2.1 Sizes of integer types	<limits.h>
 15175  
 15176  // Handle feature test macros at the start of a header.
 15177  //    Copyright (C) 2016-2020 Free Software Foundation, Inc.
 15178  //    This file is part of the GNU C Library.
 15179  //
 15180  //    The GNU C Library is free software; you can redistribute it and/or
 15181  //    modify it under the terms of the GNU Lesser General Public
 15182  //    License as published by the Free Software Foundation; either
 15183  //    version 2.1 of the License, or (at your option) any later version.
 15184  //
 15185  //    The GNU C Library is distributed in the hope that it will be useful,
 15186  //    but WITHOUT ANY WARRANTY; without even the implied warranty of
 15187  //    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 15188  //    Lesser General Public License for more details.
 15189  //
 15190  //    You should have received a copy of the GNU Lesser General Public
 15191  //    License along with the GNU C Library; if not, see
 15192  //    <https://www.gnu.org/licenses/>.
 15193  
 15194  // This header is internal to glibc and should not be included outside
 15195  //    of glibc headers.  Headers including it must define
 15196  //    __GLIBC_INTERNAL_STARTING_HEADER_IMPLEMENTATION first.  This header
 15197  //    cannot have multiple include guards because ISO C feature test
 15198  //    macros depend on the definition of the macro when an affected
 15199  //    header is included, not when the first system header is
 15200  //    included.
 15201  
 15202  // Copyright (C) 1991-2020 Free Software Foundation, Inc.
 15203  //    This file is part of the GNU C Library.
 15204  //
 15205  //    The GNU C Library is free software; you can redistribute it and/or
 15206  //    modify it under the terms of the GNU Lesser General Public
 15207  //    License as published by the Free Software Foundation; either
 15208  //    version 2.1 of the License, or (at your option) any later version.
 15209  //
 15210  //    The GNU C Library is distributed in the hope that it will be useful,
 15211  //    but WITHOUT ANY WARRANTY; without even the implied warranty of
 15212  //    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 15213  //    Lesser General Public License for more details.
 15214  //
 15215  //    You should have received a copy of the GNU Lesser General Public
 15216  //    License along with the GNU C Library; if not, see
 15217  //    <https://www.gnu.org/licenses/>.
 15218  
 15219  // ISO/IEC TR 24731-2:2010 defines the __STDC_WANT_LIB_EXT2__
 15220  //    macro.
 15221  
 15222  // ISO/IEC TS 18661-1:2014 defines the __STDC_WANT_IEC_60559_BFP_EXT__
 15223  //    macro.  Most but not all symbols enabled by that macro in TS
 15224  //    18661-1 are enabled unconditionally in C2X; the symbols in Annex F
 15225  //    still require that macro in C2X.
 15226  
 15227  // ISO/IEC TS 18661-4:2015 defines the
 15228  //    __STDC_WANT_IEC_60559_FUNCS_EXT__ macro.  Other than the reduction
 15229  //    functions, the symbols from this TS are enabled unconditionally in
 15230  //    C2X.
 15231  
 15232  // ISO/IEC TS 18661-3:2015 defines the
 15233  //    __STDC_WANT_IEC_60559_TYPES_EXT__ macro.
 15234  
 15235  // Maximum length of any multibyte character in any locale.
 15236  //    We define this value here since the gcc header does not define
 15237  //    the correct value.
 15238  
 15239  // If we are not using GNU CC we have to define all the symbols ourself.
 15240  //    Otherwise use gcc's definitions (see below).
 15241  
 15242  // Get the compiler's limits.h, which defines almost all the ISO constants.
 15243  //
 15244  //     We put this #include_next outside the double inclusion check because
 15245  //     it should be possible to include this file more than once and still get
 15246  //     the definitions from gcc's header.
 15247  
 15248  // The <limits.h> files in some gcc versions don't define LLONG_MIN,
 15249  //    LLONG_MAX, and ULLONG_MAX.  Instead only the values gcc defined for
 15250  //    ages are available.
 15251  
 15252  // The integer width macros are not defined by GCC's <limits.h> before
 15253  //    GCC 7, or if _GNU_SOURCE rather than
 15254  //    __STDC_WANT_IEC_60559_BFP_EXT__ is used to enable this feature.
 15255  
 15256  // POSIX adds things to <limits.h>.
 15257  // Copyright (C) 1991-2020 Free Software Foundation, Inc.
 15258  //    This file is part of the GNU C Library.
 15259  //
 15260  //    The GNU C Library is free software; you can redistribute it and/or
 15261  //    modify it under the terms of the GNU Lesser General Public
 15262  //    License as published by the Free Software Foundation; either
 15263  //    version 2.1 of the License, or (at your option) any later version.
 15264  //
 15265  //    The GNU C Library is distributed in the hope that it will be useful,
 15266  //    but WITHOUT ANY WARRANTY; without even the implied warranty of
 15267  //    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 15268  //    Lesser General Public License for more details.
 15269  //
 15270  //    You should have received a copy of the GNU Lesser General Public
 15271  //    License along with the GNU C Library; if not, see
 15272  //    <https://www.gnu.org/licenses/>.
 15273  
 15274  //	POSIX Standard: 2.9.2 Minimum Values	Added to <limits.h>
 15275  //
 15276  //	Never include this file directly; use <limits.h> instead.
 15277  
 15278  // Copyright (C) 1999-2020 Free Software Foundation, Inc.
 15279  //    This file is part of the GNU C Library.
 15280  //
 15281  //    The GNU C Library is free software; you can redistribute it and/or
 15282  //    modify it under the terms of the GNU Lesser General Public
 15283  //    License as published by the Free Software Foundation; either
 15284  //    version 2.1 of the License, or (at your option) any later version.
 15285  //
 15286  //    The GNU C Library is distributed in the hope that it will be useful,
 15287  //    but WITHOUT ANY WARRANTY; without even the implied warranty of
 15288  //    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 15289  //    Lesser General Public License for more details.
 15290  //
 15291  //    You should have received a copy of the GNU Lesser General Public
 15292  //    License along with the GNU C Library; if not, see
 15293  //    <https://www.gnu.org/licenses/>.
 15294  
 15295  // These are the standard-mandated minimum values.
 15296  
 15297  // Minimum number of operations in one list I/O call.
 15298  
 15299  // Minimal number of outstanding asynchronous I/O operations.
 15300  
 15301  // Maximum length of arguments to `execve', including environment.
 15302  
 15303  // Maximum simultaneous processes per real user ID.
 15304  
 15305  // Minimal number of timer expiration overruns.
 15306  
 15307  // Maximum length of a host name (not including the terminating null)
 15308  //    as returned from the GETHOSTNAME function.
 15309  
 15310  // Maximum link count of a file.
 15311  
 15312  // Maximum length of login name.
 15313  
 15314  // Number of bytes in a terminal canonical input queue.
 15315  
 15316  // Number of bytes for which space will be
 15317  //    available in a terminal input queue.
 15318  
 15319  // Maximum number of message queues open for a process.
 15320  
 15321  // Maximum number of supported message priorities.
 15322  
 15323  // Number of bytes in a filename.
 15324  
 15325  // Number of simultaneous supplementary group IDs per process.
 15326  
 15327  // Number of files one process can have open at once.
 15328  
 15329  // Number of bytes in a pathname.
 15330  
 15331  // Number of bytes than can be written atomically to a pipe.
 15332  
 15333  // The number of repeated occurrences of a BRE permitted by the
 15334  //    REGEXEC and REGCOMP functions when using the interval notation.
 15335  
 15336  // Minimal number of realtime signals reserved for the application.
 15337  
 15338  // Number of semaphores a process can have.
 15339  
 15340  // Maximal value of a semaphore.
 15341  
 15342  // Number of pending realtime signals.
 15343  
 15344  // Largest value of a `ssize_t'.
 15345  
 15346  // Number of streams a process can have open at once.
 15347  
 15348  // The number of bytes in a symbolic link.
 15349  
 15350  // The number of symbolic links that can be traversed in the
 15351  //    resolution of a pathname in the absence of a loop.
 15352  
 15353  // Number of timer for a process.
 15354  
 15355  // Maximum number of characters in a tty name.
 15356  
 15357  // Maximum length of a timezone name (element of `tzname').
 15358  
 15359  // Maximum clock resolution in nanoseconds.
 15360  
 15361  // Get the implementation-specific values for the above.
 15362  // Minimum guaranteed maximum values for system limits.  Linux version.
 15363  //    Copyright (C) 1993-2020 Free Software Foundation, Inc.
 15364  //    This file is part of the GNU C Library.
 15365  //
 15366  //    The GNU C Library is free software; you can redistribute it and/or
 15367  //    modify it under the terms of the GNU Lesser General Public License as
 15368  //    published by the Free Software Foundation; either version 2.1 of the
 15369  //    License, or (at your option) any later version.
 15370  //
 15371  //    The GNU C Library is distributed in the hope that it will be useful,
 15372  //    but WITHOUT ANY WARRANTY; without even the implied warranty of
 15373  //    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 15374  //    Lesser General Public License for more details.
 15375  //
 15376  //    You should have received a copy of the GNU Lesser General Public
 15377  //    License along with the GNU C Library; see the file COPYING.LIB.  If
 15378  //    not, see <https://www.gnu.org/licenses/>.
 15379  
 15380  // The kernel header pollutes the namespace with the NR_OPEN symbol
 15381  //    and defines LINK_MAX although filesystems have different maxima.  A
 15382  //    similar thing is true for OPEN_MAX: the limit can be changed at
 15383  //    runtime and therefore the macro must not be defined.  Remove this
 15384  //    after including the header if necessary.
 15385  
 15386  // The kernel sources contain a file with all the needed information.
 15387  // SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note
 15388  
 15389  // Have to remove NR_OPEN?
 15390  // Have to remove LINK_MAX?
 15391  // Have to remove OPEN_MAX?
 15392  // Have to remove ARG_MAX?
 15393  
 15394  // The number of data keys per process.
 15395  // This is the value this implementation supports.
 15396  
 15397  // Controlling the iterations of destructors for thread-specific data.
 15398  // Number of iterations this implementation does.
 15399  
 15400  // The number of threads per process.
 15401  // We have no predefined limit on the number of threads.
 15402  
 15403  // Maximum amount by which a process can descrease its asynchronous I/O
 15404  //    priority level.
 15405  
 15406  // Minimum size for a thread.  We are free to choose a reasonable value.
 15407  
 15408  // Maximum number of timer expiration overruns.
 15409  
 15410  // Maximum tty name length.
 15411  
 15412  // Maximum login name length.  This is arbitrary.
 15413  
 15414  // Maximum host name length.
 15415  
 15416  // Maximum message queue priority level.
 15417  
 15418  // Maximum value the semaphore can have.
 15419  
 15420  // ssize_t is not formally required to be the signed type
 15421  //    corresponding to size_t, but it is for all configurations supported
 15422  //    by glibc.
 15423  
 15424  // This value is a guaranteed minimum maximum.
 15425  //    The current maximum can be got from `sysconf'.
 15426  
 15427  // Copyright (C) 1991-2020 Free Software Foundation, Inc.
 15428  //    This file is part of the GNU C Library.
 15429  //
 15430  //    The GNU C Library is free software; you can redistribute it and/or
 15431  //    modify it under the terms of the GNU Lesser General Public
 15432  //    License as published by the Free Software Foundation; either
 15433  //    version 2.1 of the License, or (at your option) any later version.
 15434  //
 15435  //    The GNU C Library is distributed in the hope that it will be useful,
 15436  //    but WITHOUT ANY WARRANTY; without even the implied warranty of
 15437  //    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 15438  //    Lesser General Public License for more details.
 15439  //
 15440  //    You should have received a copy of the GNU Lesser General Public
 15441  //    License along with the GNU C Library; if not, see
 15442  //    <https://www.gnu.org/licenses/>.
 15443  
 15444  // Never include this file directly; include <limits.h> instead.
 15445  
 15446  // The maximum `ibase' and `obase' values allowed by the `bc' utility.
 15447  
 15448  // The maximum number of elements allowed in an array by the `bc' utility.
 15449  
 15450  // The maximum `scale' value allowed by the `bc' utility.
 15451  
 15452  // The maximum length of a string constant accepted by the `bc' utility.
 15453  
 15454  // The maximum number of weights that can be assigned to an entry of
 15455  //    the LC_COLLATE `order' keyword in the locale definition file.
 15456  
 15457  // The maximum number of expressions that can be nested
 15458  //    within parentheses by the `expr' utility.
 15459  
 15460  // The maximum length, in bytes, of an input line.
 15461  
 15462  // The maximum number of repeated occurrences of a regular expression
 15463  //    permitted when using the interval notation `\{M,N\}'.
 15464  
 15465  // The maximum number of bytes in a character class name.  We have no
 15466  //    fixed limit, 2048 is a high number.
 15467  
 15468  // These values are implementation-specific,
 15469  //    and may vary within the implementation.
 15470  //    Their precise values can be obtained from sysconf.
 15471  
 15472  // This value is defined like this in regex.h.
 15473  
 15474  // Copyright (C) 1991-2020 Free Software Foundation, Inc.
 15475  //
 15476  // This file is part of GCC.
 15477  //
 15478  // GCC is free software; you can redistribute it and/or modify it under
 15479  // the terms of the GNU General Public License as published by the Free
 15480  // Software Foundation; either version 3, or (at your option) any later
 15481  // version.
 15482  //
 15483  // GCC is distributed in the hope that it will be useful, but WITHOUT ANY
 15484  // WARRANTY; without even the implied warranty of MERCHANTABILITY or
 15485  // FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
 15486  // for more details.
 15487  //
 15488  // Under Section 7 of GPL version 3, you are granted additional
 15489  // permissions described in the GCC Runtime Library Exception, version
 15490  // 3.1, as published by the Free Software Foundation.
 15491  //
 15492  // You should have received a copy of the GNU General Public License and
 15493  // a copy of the GCC Runtime Library Exception along with this program;
 15494  // see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see
 15495  // <http://www.gnu.org/licenses/>.
 15496  
 15497  // Number of bits in a `char'.
 15498  
 15499  // Maximum length of a multibyte character.
 15500  
 15501  // Minimum and maximum values a `signed char' can hold.
 15502  
 15503  // Maximum value an `unsigned char' can hold.  (Minimum is 0).
 15504  
 15505  // Minimum and maximum values a `char' can hold.
 15506  
 15507  // Minimum and maximum values a `signed short int' can hold.
 15508  
 15509  // Maximum value an `unsigned short int' can hold.  (Minimum is 0).
 15510  
 15511  // Minimum and maximum values a `signed int' can hold.
 15512  
 15513  // Maximum value an `unsigned int' can hold.  (Minimum is 0).
 15514  
 15515  // Minimum and maximum values a `signed long int' can hold.
 15516  //    (Same as `int').
 15517  
 15518  // Maximum value an `unsigned long int' can hold.  (Minimum is 0).
 15519  
 15520  // Minimum and maximum values a `signed long long int' can hold.
 15521  
 15522  // Maximum value an `unsigned long long int' can hold.  (Minimum is 0).
 15523  
 15524  // This administrivia gets added to the end of limits.h
 15525  //    if the system has its own version of limits.h.
 15526  
 15527  var XXRenderExtensionInfo XRenderExtInfo                                        /* Xrender.c:31:16: */
 15528  var XXRenderExtensionName = *(*[7]uint8)(unsafe.Pointer(ts + 6 /* "RENDER" */)) /* Xrender.c:32:6 */
 15529  
 15530  // XRenderExtFindDisplay - look for a display in this extension; keeps a
 15531  // cache of the most-recently used for efficiency. (Replaces
 15532  // XextFindDisplay.)
 15533  func sXRenderExtFindDisplay(tls *libc.TLS, extinfo uintptr, dpy uintptr) uintptr { /* Xrender.c:41:30: */
 15534  	var dpyinfo uintptr
 15535  
 15536  	// see if this was the most recently accessed display
 15537  	if libc.AssignUintptr(&dpyinfo, (*XRenderExtInfo)(unsafe.Pointer(extinfo)).Fcur) != 0 && (*XRenderExtDisplayInfo)(unsafe.Pointer(dpyinfo)).Fdisplay == dpy {
 15538  		return dpyinfo
 15539  	}
 15540  
 15541  	// look for display in list
 15542  	if x11.X_XLockMutex_fn != 0 {
 15543  		(*struct{ f func(*libc.TLS, LockInfoPtr) })(unsafe.Pointer(&struct{ uintptr }{x11.X_XLockMutex_fn})).f(tls, x11.X_Xglobal_lock)
 15544  	}
 15545  	for dpyinfo = (*XRenderExtInfo)(unsafe.Pointer(extinfo)).Fhead; dpyinfo != 0; dpyinfo = (*XRenderExtDisplayInfo)(unsafe.Pointer(dpyinfo)).Fnext {
 15546  		if (*XRenderExtDisplayInfo)(unsafe.Pointer(dpyinfo)).Fdisplay == dpy {
 15547  			(*XRenderExtInfo)(unsafe.Pointer(extinfo)).Fcur = dpyinfo // cache most recently used
 15548  			if x11.X_XUnlockMutex_fn != 0 {
 15549  				(*struct{ f func(*libc.TLS, LockInfoPtr) })(unsafe.Pointer(&struct{ uintptr }{x11.X_XUnlockMutex_fn})).f(tls, x11.X_Xglobal_lock)
 15550  			}
 15551  			return dpyinfo
 15552  		}
 15553  	}
 15554  	if x11.X_XUnlockMutex_fn != 0 {
 15555  		(*struct{ f func(*libc.TLS, LockInfoPtr) })(unsafe.Pointer(&struct{ uintptr }{x11.X_XUnlockMutex_fn})).f(tls, x11.X_Xglobal_lock)
 15556  	}
 15557  
 15558  	return uintptr(0)
 15559  }
 15560  
 15561  // If the server is missing support for any of the required depths on
 15562  // any screen, tell the application that Render is not present.
 15563  
 15564  // Render requires support for depth 1, 4, 8, 24 and 32 pixmaps
 15565  
 15566  type X_DepthCheckRec = struct {
 15567  	Fnext    uintptr
 15568  	Fdpy     uintptr
 15569  	Fmissing CARD32
 15570  	Fserial  uint32
 15571  } /* Xrender.c:86:9 */
 15572  
 15573  // If the server is missing support for any of the required depths on
 15574  // any screen, tell the application that Render is not present.
 15575  
 15576  // Render requires support for depth 1, 4, 8, 24 and 32 pixmaps
 15577  
 15578  type DepthCheckRec = X_DepthCheckRec /* Xrender.c:91:3 */
 15579  type DepthCheckPtr = uintptr         /* Xrender.c:91:18 */
 15580  
 15581  var depthChecks DepthCheckPtr /* Xrender.c:93:22: */
 15582  
 15583  func sXRenderDepthCheckErrorHandler(tls *libc.TLS, dpy uintptr, evt uintptr) int32 { /* Xrender.c:96:1: */
 15584  	if int32((*XErrorEvent)(unsafe.Pointer(evt)).Frequest_code) == X_CreatePixmap && int32((*XErrorEvent)(unsafe.Pointer(evt)).Ferror_code) == BadValue {
 15585  		var d DepthCheckPtr
 15586  		if x11.X_XLockMutex_fn != 0 {
 15587  			(*struct{ f func(*libc.TLS, LockInfoPtr) })(unsafe.Pointer(&struct{ uintptr }{x11.X_XLockMutex_fn})).f(tls, x11.X_Xglobal_lock)
 15588  		}
 15589  		for d = depthChecks; d != 0; d = (*X_DepthCheckRec)(unsafe.Pointer(d)).Fnext {
 15590  			if (*X_DepthCheckRec)(unsafe.Pointer(d)).Fdpy == dpy {
 15591  				if int32((*XErrorEvent)(unsafe.Pointer(evt)).Fserial-(*X_DepthCheckRec)(unsafe.Pointer(d)).Fserial) >= 0 {
 15592  					*(*CARD32)(unsafe.Pointer(d + 8)) |= CARD32(uint32(1) << ((*XErrorEvent)(unsafe.Pointer(evt)).Fresourceid - XID(1)))
 15593  				}
 15594  				break
 15595  			}
 15596  		}
 15597  		if x11.X_XUnlockMutex_fn != 0 {
 15598  			(*struct{ f func(*libc.TLS, LockInfoPtr) })(unsafe.Pointer(&struct{ uintptr }{x11.X_XUnlockMutex_fn})).f(tls, x11.X_Xglobal_lock)
 15599  		}
 15600  	}
 15601  	return 0
 15602  }
 15603  
 15604  func sXRenderHasDepths(tls *libc.TLS, dpy uintptr) int32 { /* Xrender.c:115:1: */
 15605  	bp := tls.Alloc(16)
 15606  	defer tls.Free(16)
 15607  
 15608  	var s int32
 15609  
 15610  	for s = 0; s < (*struct {
 15611  		Fext_data            uintptr
 15612  		Fprivate1            uintptr
 15613  		Ffd                  int32
 15614  		Fprivate2            int32
 15615  		Fproto_major_version int32
 15616  		Fproto_minor_version int32
 15617  		Fvendor              uintptr
 15618  		Fprivate3            XID
 15619  		Fprivate4            XID
 15620  		Fprivate5            XID
 15621  		Fprivate6            int32
 15622  		Fresource_alloc      uintptr
 15623  		Fbyte_order          int32
 15624  		Fbitmap_unit         int32
 15625  		Fbitmap_pad          int32
 15626  		Fbitmap_bit_order    int32
 15627  		Fnformats            int32
 15628  		Fpixmap_format       uintptr
 15629  		Fprivate8            int32
 15630  		Frelease             int32
 15631  		Fprivate9            uintptr
 15632  		Fprivate10           uintptr
 15633  		Fqlen                int32
 15634  		Flast_request_read   uint32
 15635  		Frequest             uint32
 15636  		Fprivate11           XPointer
 15637  		Fprivate12           XPointer
 15638  		Fprivate13           XPointer
 15639  		Fprivate14           XPointer
 15640  		Fmax_request_size    uint32
 15641  		Fdb                  uintptr
 15642  		Fprivate15           uintptr
 15643  		Fdisplay_name        uintptr
 15644  		Fdefault_screen      int32
 15645  		Fnscreens            int32
 15646  		Fscreens             uintptr
 15647  		Fmotion_buffer       uint32
 15648  		Fprivate16           uint32
 15649  		Fmin_keycode         int32
 15650  		Fmax_keycode         int32
 15651  		Fprivate17           XPointer
 15652  		Fprivate18           XPointer
 15653  		Fprivate19           int32
 15654  		Fxdefaults           uintptr
 15655  	})(unsafe.Pointer(dpy)).Fnscreens; s++ {
 15656  		var depths CARD32 = CARD32(0)
 15657  		var missing CARD32
 15658  		var scr uintptr = (*struct {
 15659  			Fext_data            uintptr
 15660  			Fprivate1            uintptr
 15661  			Ffd                  int32
 15662  			Fprivate2            int32
 15663  			Fproto_major_version int32
 15664  			Fproto_minor_version int32
 15665  			Fvendor              uintptr
 15666  			Fprivate3            XID
 15667  			Fprivate4            XID
 15668  			Fprivate5            XID
 15669  			Fprivate6            int32
 15670  			Fresource_alloc      uintptr
 15671  			Fbyte_order          int32
 15672  			Fbitmap_unit         int32
 15673  			Fbitmap_pad          int32
 15674  			Fbitmap_bit_order    int32
 15675  			Fnformats            int32
 15676  			Fpixmap_format       uintptr
 15677  			Fprivate8            int32
 15678  			Frelease             int32
 15679  			Fprivate9            uintptr
 15680  			Fprivate10           uintptr
 15681  			Fqlen                int32
 15682  			Flast_request_read   uint32
 15683  			Frequest             uint32
 15684  			Fprivate11           XPointer
 15685  			Fprivate12           XPointer
 15686  			Fprivate13           XPointer
 15687  			Fprivate14           XPointer
 15688  			Fmax_request_size    uint32
 15689  			Fdb                  uintptr
 15690  			Fprivate15           uintptr
 15691  			Fdisplay_name        uintptr
 15692  			Fdefault_screen      int32
 15693  			Fnscreens            int32
 15694  			Fscreens             uintptr
 15695  			Fmotion_buffer       uint32
 15696  			Fprivate16           uint32
 15697  			Fmin_keycode         int32
 15698  			Fmax_keycode         int32
 15699  			Fprivate17           XPointer
 15700  			Fprivate18           XPointer
 15701  			Fprivate19           int32
 15702  			Fxdefaults           uintptr
 15703  		})(unsafe.Pointer(dpy)).Fscreens + uintptr(s)*80
 15704  		var d int32
 15705  
 15706  		for d = 0; d < (*Screen)(unsafe.Pointer(scr)).Fndepths; d++ {
 15707  			depths = depths | CARD32(uint32(1)<<((*Depth)(unsafe.Pointer((*Screen)(unsafe.Pointer(scr)).Fdepths+uintptr(d)*12)).Fdepth-1))
 15708  		}
 15709  		missing = ^depths & (uint32(1)<<(1-1) | uint32(1)<<(4-1) | uint32(1)<<(8-1) | uint32(1)<<(24-1) | uint32(1)<<(32-1))
 15710  		if missing != 0 {
 15711  			// var dc DepthCheckRec at bp, 16
 15712  
 15713  			var dp uintptr
 15714  			var previousHandler XErrorHandler
 15715  
 15716  			// Ok, this is ugly.  It should be sufficient at this
 15717  			// point to just return False, but Xinerama is broken at
 15718  			// this point and only advertises depths which have an
 15719  			// associated visual.  Of course, the other depths still
 15720  			// work, but the only way to find out is to try them.
 15721  			(*DepthCheckRec)(unsafe.Pointer(bp /* &dc */)).Fdpy = dpy
 15722  			(*DepthCheckRec)(unsafe.Pointer(bp /* &dc */)).Fmissing = CARD32(0)
 15723  			(*DepthCheckRec)(unsafe.Pointer(bp /* &dc */)).Fserial = x11.XXNextRequest(tls, dpy)
 15724  			if x11.X_XLockMutex_fn != 0 {
 15725  				(*struct{ f func(*libc.TLS, LockInfoPtr) })(unsafe.Pointer(&struct{ uintptr }{x11.X_XLockMutex_fn})).f(tls, x11.X_Xglobal_lock)
 15726  			}
 15727  			(*DepthCheckRec)(unsafe.Pointer(bp /* &dc */)).Fnext = depthChecks
 15728  			depthChecks = bp /* &dc */
 15729  			if x11.X_XUnlockMutex_fn != 0 {
 15730  				(*struct{ f func(*libc.TLS, LockInfoPtr) })(unsafe.Pointer(&struct{ uintptr }{x11.X_XUnlockMutex_fn})).f(tls, x11.X_Xglobal_lock)
 15731  			}
 15732  			// I suspect this is not really thread safe, but Xlib doesn't
 15733  			// provide a lot of options here
 15734  			previousHandler = x11.XXSetErrorHandler(tls, *(*uintptr)(unsafe.Pointer(&struct {
 15735  				f func(*libc.TLS, uintptr, uintptr) int32
 15736  			}{sXRenderDepthCheckErrorHandler})))
 15737  			// Try each missing depth and see if pixmap creation succeeds
 15738  			for d = 1; d <= 32; d++ {
 15739  				// don't check depth 1 == Xcursor recurses...
 15740  				if missing&CARD32(uint32(1)<<(d-1)) != 0 && d != 1 {
 15741  					var p Pixmap
 15742  					p = x11.XXCreatePixmap(tls, dpy, (*Screen)(unsafe.Pointer((*struct {
 15743  						Fext_data            uintptr
 15744  						Fprivate1            uintptr
 15745  						Ffd                  int32
 15746  						Fprivate2            int32
 15747  						Fproto_major_version int32
 15748  						Fproto_minor_version int32
 15749  						Fvendor              uintptr
 15750  						Fprivate3            XID
 15751  						Fprivate4            XID
 15752  						Fprivate5            XID
 15753  						Fprivate6            int32
 15754  						Fresource_alloc      uintptr
 15755  						Fbyte_order          int32
 15756  						Fbitmap_unit         int32
 15757  						Fbitmap_pad          int32
 15758  						Fbitmap_bit_order    int32
 15759  						Fnformats            int32
 15760  						Fpixmap_format       uintptr
 15761  						Fprivate8            int32
 15762  						Frelease             int32
 15763  						Fprivate9            uintptr
 15764  						Fprivate10           uintptr
 15765  						Fqlen                int32
 15766  						Flast_request_read   uint32
 15767  						Frequest             uint32
 15768  						Fprivate11           XPointer
 15769  						Fprivate12           XPointer
 15770  						Fprivate13           XPointer
 15771  						Fprivate14           XPointer
 15772  						Fmax_request_size    uint32
 15773  						Fdb                  uintptr
 15774  						Fprivate15           uintptr
 15775  						Fdisplay_name        uintptr
 15776  						Fdefault_screen      int32
 15777  						Fnscreens            int32
 15778  						Fscreens             uintptr
 15779  						Fmotion_buffer       uint32
 15780  						Fprivate16           uint32
 15781  						Fmin_keycode         int32
 15782  						Fmax_keycode         int32
 15783  						Fprivate17           XPointer
 15784  						Fprivate18           XPointer
 15785  						Fprivate19           int32
 15786  						Fxdefaults           uintptr
 15787  					})(unsafe.Pointer(dpy)).Fscreens+uintptr(s)*80)).Froot, uint32(1), uint32(1), uint32(d))
 15788  					x11.XXFreePixmap(tls, dpy, p)
 15789  				}
 15790  			}
 15791  			x11.XXSync(tls, dpy, False)
 15792  			x11.XXSetErrorHandler(tls, previousHandler)
 15793  			// Unhook from the list of depth check records
 15794  			if x11.X_XLockMutex_fn != 0 {
 15795  				(*struct{ f func(*libc.TLS, LockInfoPtr) })(unsafe.Pointer(&struct{ uintptr }{x11.X_XLockMutex_fn})).f(tls, x11.X_Xglobal_lock)
 15796  			}
 15797  			for dp = uintptr(unsafe.Pointer(&depthChecks)); *(*uintptr)(unsafe.Pointer(dp)) != 0; dp = *(*uintptr)(unsafe.Pointer(dp)) {
 15798  				if *(*uintptr)(unsafe.Pointer(dp)) == bp {
 15799  					*(*uintptr)(unsafe.Pointer(dp)) = (*DepthCheckRec)(unsafe.Pointer(bp /* &dc */)).Fnext
 15800  					break
 15801  				}
 15802  			}
 15803  			if x11.X_XUnlockMutex_fn != 0 {
 15804  				(*struct{ f func(*libc.TLS, LockInfoPtr) })(unsafe.Pointer(&struct{ uintptr }{x11.X_XUnlockMutex_fn})).f(tls, x11.X_Xglobal_lock)
 15805  			}
 15806  			if (*DepthCheckRec)(unsafe.Pointer(bp)).Fmissing != 0 {
 15807  				return False
 15808  			}
 15809  		}
 15810  	}
 15811  	return True
 15812  }
 15813  
 15814  // XRenderExtAddDisplay - add a display to this extension. (Replaces
 15815  // XextAddDisplay)
 15816  func sXRenderExtAddDisplay(tls *libc.TLS, extinfo uintptr, dpy uintptr, ext_name uintptr) uintptr { /* Xrender.c:190:30: */
 15817  	var dpyinfo uintptr
 15818  
 15819  	dpyinfo = libc.Xmalloc(tls, func() uint32 {
 15820  		if uint32(unsafe.Sizeof(XRenderExtDisplayInfo{})) == uint32(0) {
 15821  			return uint32(1)
 15822  		}
 15823  		return uint32(unsafe.Sizeof(XRenderExtDisplayInfo{}))
 15824  	}())
 15825  	if !(dpyinfo != 0) {
 15826  		return uintptr(0)
 15827  	}
 15828  	(*XRenderExtDisplayInfo)(unsafe.Pointer(dpyinfo)).Fdisplay = dpy
 15829  	(*XRenderExtDisplayInfo)(unsafe.Pointer(dpyinfo)).Finfo = uintptr(0)
 15830  
 15831  	if sXRenderHasDepths(tls, dpy) != 0 {
 15832  		(*XRenderExtDisplayInfo)(unsafe.Pointer(dpyinfo)).Fcodes = x11.XXInitExtension(tls, dpy, ext_name)
 15833  	} else {
 15834  		(*XRenderExtDisplayInfo)(unsafe.Pointer(dpyinfo)).Fcodes = uintptr(0)
 15835  	}
 15836  
 15837  	// if the server has the extension, then we can initialize the
 15838  	// appropriate function vectors
 15839  	if (*XRenderExtDisplayInfo)(unsafe.Pointer(dpyinfo)).Fcodes != 0 {
 15840  		x11.XXESetCloseDisplay(tls, dpy, (*XExtCodes)(unsafe.Pointer((*XRenderExtDisplayInfo)(unsafe.Pointer(dpyinfo)).Fcodes)).Fextension,
 15841  			*(*uintptr)(unsafe.Pointer(&struct {
 15842  				f func(*libc.TLS, uintptr, uintptr) int32
 15843  			}{sXRenderCloseDisplay})))
 15844  	} else {
 15845  		// The server doesn't have this extension.
 15846  		// Use a private Xlib-internal extension to hang the close_display
 15847  		// hook on so that the "cache" (extinfo->cur) is properly cleaned.
 15848  		// (XBUG 7955)
 15849  		var codes uintptr = x11.XXAddExtension(tls, dpy)
 15850  		if !(codes != 0) {
 15851  			x11.XXFree(tls, dpyinfo)
 15852  			return uintptr(0)
 15853  		}
 15854  		x11.XXESetCloseDisplay(tls, dpy, (*XExtCodes)(unsafe.Pointer(codes)).Fextension, *(*uintptr)(unsafe.Pointer(&struct {
 15855  			f func(*libc.TLS, uintptr, uintptr) int32
 15856  		}{sXRenderCloseDisplay})))
 15857  	}
 15858  
 15859  	// now, chain it onto the list
 15860  	if x11.X_XLockMutex_fn != 0 {
 15861  		(*struct{ f func(*libc.TLS, LockInfoPtr) })(unsafe.Pointer(&struct{ uintptr }{x11.X_XLockMutex_fn})).f(tls, x11.X_Xglobal_lock)
 15862  	}
 15863  	(*XRenderExtDisplayInfo)(unsafe.Pointer(dpyinfo)).Fnext = (*XRenderExtInfo)(unsafe.Pointer(extinfo)).Fhead
 15864  	(*XRenderExtInfo)(unsafe.Pointer(extinfo)).Fhead = dpyinfo
 15865  	(*XRenderExtInfo)(unsafe.Pointer(extinfo)).Fcur = dpyinfo
 15866  	(*XRenderExtInfo)(unsafe.Pointer(extinfo)).Fndisplays++
 15867  	if x11.X_XUnlockMutex_fn != 0 {
 15868  		(*struct{ f func(*libc.TLS, LockInfoPtr) })(unsafe.Pointer(&struct{ uintptr }{x11.X_XUnlockMutex_fn})).f(tls, x11.X_Xglobal_lock)
 15869  	}
 15870  	return dpyinfo
 15871  }
 15872  
 15873  // XRenderExtRemoveDisplay - remove the indicated display from the
 15874  // extension object. (Replaces XextRemoveDisplay.)
 15875  func sXRenderExtRemoveDisplay(tls *libc.TLS, extinfo uintptr, dpy uintptr) int32 { /* Xrender.c:246:1: */
 15876  	var dpyinfo uintptr
 15877  	var prev uintptr
 15878  
 15879  	// locate this display and its back link so that it can be removed
 15880  	if x11.X_XLockMutex_fn != 0 {
 15881  		(*struct{ f func(*libc.TLS, LockInfoPtr) })(unsafe.Pointer(&struct{ uintptr }{x11.X_XLockMutex_fn})).f(tls, x11.X_Xglobal_lock)
 15882  	}
 15883  	prev = uintptr(0)
 15884  	for dpyinfo = (*XRenderExtInfo)(unsafe.Pointer(extinfo)).Fhead; dpyinfo != 0; dpyinfo = (*XRenderExtDisplayInfo)(unsafe.Pointer(dpyinfo)).Fnext {
 15885  		if (*XRenderExtDisplayInfo)(unsafe.Pointer(dpyinfo)).Fdisplay == dpy {
 15886  			break
 15887  		}
 15888  		prev = dpyinfo
 15889  	}
 15890  	if !(dpyinfo != 0) {
 15891  		if x11.X_XUnlockMutex_fn != 0 {
 15892  			(*struct{ f func(*libc.TLS, LockInfoPtr) })(unsafe.Pointer(&struct{ uintptr }{x11.X_XUnlockMutex_fn})).f(tls, x11.X_Xglobal_lock)
 15893  		}
 15894  		return 0 // hmm, actually an error
 15895  	}
 15896  
 15897  	// remove the display from the list; handles going to zero
 15898  	if prev != 0 {
 15899  		(*XRenderExtDisplayInfo)(unsafe.Pointer(prev)).Fnext = (*XRenderExtDisplayInfo)(unsafe.Pointer(dpyinfo)).Fnext
 15900  	} else {
 15901  		(*XRenderExtInfo)(unsafe.Pointer(extinfo)).Fhead = (*XRenderExtDisplayInfo)(unsafe.Pointer(dpyinfo)).Fnext
 15902  	}
 15903  
 15904  	(*XRenderExtInfo)(unsafe.Pointer(extinfo)).Fndisplays--
 15905  	if dpyinfo == (*XRenderExtInfo)(unsafe.Pointer(extinfo)).Fcur {
 15906  		(*XRenderExtInfo)(unsafe.Pointer(extinfo)).Fcur = uintptr(0)
 15907  	} // flush cache
 15908  	if x11.X_XUnlockMutex_fn != 0 {
 15909  		(*struct{ f func(*libc.TLS, LockInfoPtr) })(unsafe.Pointer(&struct{ uintptr }{x11.X_XUnlockMutex_fn})).f(tls, x11.X_Xglobal_lock)
 15910  	}
 15911  
 15912  	libc.Xfree(tls, dpyinfo)
 15913  	return 1
 15914  }
 15915  
 15916  func XXRenderFindDisplay(tls *libc.TLS, dpy uintptr) uintptr { /* Xrender.c:282:23: */
 15917  	var dpyinfo uintptr
 15918  
 15919  	dpyinfo = sXRenderExtFindDisplay(tls, uintptr(unsafe.Pointer(&XXRenderExtensionInfo)), dpy)
 15920  	if !(dpyinfo != 0) {
 15921  		dpyinfo = sXRenderExtAddDisplay(tls, uintptr(unsafe.Pointer(&XXRenderExtensionInfo)), dpy,
 15922  			uintptr(unsafe.Pointer(&XXRenderExtensionName)))
 15923  	}
 15924  	return dpyinfo
 15925  }
 15926  
 15927  func sXRenderCloseDisplay(tls *libc.TLS, dpy uintptr, codes uintptr) int32 { /* Xrender.c:295:1: */
 15928  	var info uintptr = XXRenderFindDisplay(tls, dpy)
 15929  	if info != 0 && (*XRenderExtDisplayInfo)(unsafe.Pointer(info)).Finfo != 0 {
 15930  		x11.XXFree(tls, (*XRenderExtDisplayInfo)(unsafe.Pointer(info)).Finfo)
 15931  	}
 15932  
 15933  	return sXRenderExtRemoveDisplay(tls, uintptr(unsafe.Pointer(&XXRenderExtensionInfo)), dpy)
 15934  }
 15935  
 15936  // ***************************************************************************
 15937  //
 15938  //                                                                          *
 15939  //			    Render public interfaces                        *
 15940  //                                                                          *
 15941  //
 15942  
 15943  func XXRenderQueryExtension(tls *libc.TLS, dpy uintptr, event_basep uintptr, error_basep uintptr) int32 { /* Xrender.c:309:6: */
 15944  	var info uintptr = XXRenderFindDisplay(tls, dpy)
 15945  
 15946  	if info != 0 && (*XRenderExtDisplayInfo)(unsafe.Pointer(info)).Fcodes != 0 {
 15947  		*(*int32)(unsafe.Pointer(event_basep)) = (*XExtCodes)(unsafe.Pointer((*XRenderExtDisplayInfo)(unsafe.Pointer(info)).Fcodes)).Ffirst_event
 15948  		*(*int32)(unsafe.Pointer(error_basep)) = (*XExtCodes)(unsafe.Pointer((*XRenderExtDisplayInfo)(unsafe.Pointer(info)).Fcodes)).Ffirst_error
 15949  		return True
 15950  	} else {
 15951  		return False
 15952  	}
 15953  	return int32(0)
 15954  }
 15955  
 15956  func XXRenderQueryVersion(tls *libc.TLS, dpy uintptr, major_versionp uintptr, minor_versionp uintptr) int32 { /* Xrender.c:323:8: */
 15957  	var info uintptr = XXRenderFindDisplay(tls, dpy)
 15958  	var xri uintptr
 15959  
 15960  	if !(info != 0 && (*XRenderExtDisplayInfo)(unsafe.Pointer(info)).Fcodes != 0) {
 15961  		return 0
 15962  	}
 15963  
 15964  	if !(XXRenderQueryFormats(tls, dpy) != 0) {
 15965  		return 0
 15966  	}
 15967  
 15968  	xri = (*XRenderExtDisplayInfo)(unsafe.Pointer(info)).Finfo
 15969  	*(*int32)(unsafe.Pointer(major_versionp)) = (*XRenderInfo)(unsafe.Pointer(xri)).Fmajor_version
 15970  	*(*int32)(unsafe.Pointer(minor_versionp)) = (*XRenderInfo)(unsafe.Pointer(xri)).Fminor_version
 15971  	return 1
 15972  }
 15973  
 15974  func _XRenderFindFormat(tls *libc.TLS, xri uintptr, format PictFormat) uintptr { /* Xrender.c:342:26: */
 15975  	var nf int32
 15976  
 15977  	for nf = 0; nf < (*XRenderInfo)(unsafe.Pointer(xri)).Fnformat; nf++ {
 15978  		if (*XRenderPictFormat)(unsafe.Pointer((*XRenderInfo)(unsafe.Pointer(xri)).Fformat+uintptr(nf)*32)).Fid == format {
 15979  			return (*XRenderInfo)(unsafe.Pointer(xri)).Fformat + uintptr(nf)*32
 15980  		}
 15981  	}
 15982  	return uintptr(0)
 15983  }
 15984  
 15985  func _XRenderFindVisual(tls *libc.TLS, dpy uintptr, vid VisualID) uintptr { /* Xrender.c:353:15: */
 15986  	return x11.X_XVIDtoVisual(tls, dpy, vid)
 15987  }
 15988  
 15989  type X_renderVersionState = struct {
 15990  	Fversion_seq   uint32
 15991  	Ferror         int32
 15992  	Fmajor_version int32
 15993  	Fminor_version int32
 15994  } /* Xrender.c:359:9 */
 15995  
 15996  type X_XrenderVersionState = X_renderVersionState /* Xrender.c:365:3 */
 15997  
 15998  func _XRenderVersionHandler(tls *libc.TLS, dpy uintptr, rep uintptr, buf uintptr, len int32, data XPointer) int32 { /* Xrender.c:368:1: */
 15999  	bp := tls.Alloc(32)
 16000  	defer tls.Free(32)
 16001  
 16002  	// var replbuf XRenderQueryVersionReply at bp, 32
 16003  
 16004  	var repl uintptr
 16005  	var state uintptr = data
 16006  
 16007  	if (*Display)(unsafe.Pointer(dpy)).Flast_request_read != (*X_XrenderVersionState)(unsafe.Pointer(state)).Fversion_seq {
 16008  		return False
 16009  	}
 16010  	if int32((*XGenericReply)(unsafe.Pointer(rep)).Ftype) == X_Error {
 16011  		(*X_XrenderVersionState)(unsafe.Pointer(state)).Ferror = True
 16012  		return False
 16013  	}
 16014  	repl = x11.X_XGetAsyncReply(tls, dpy, bp, rep, buf, len,
 16015  		int32(Sz_xRenderQueryVersionReply-Sz_xReply)>>2,
 16016  		True)
 16017  	(*X_XrenderVersionState)(unsafe.Pointer(state)).Fmajor_version = int32((*XRenderQueryVersionReply)(unsafe.Pointer(repl)).FmajorVersion)
 16018  	(*X_XrenderVersionState)(unsafe.Pointer(state)).Fminor_version = int32((*XRenderQueryVersionReply)(unsafe.Pointer(repl)).FminorVersion)
 16019  	return True
 16020  }
 16021  
 16022  func XXRenderQueryFormats(tls *libc.TLS, dpy uintptr) int32 { /* Xrender.c:395:1: */
 16023  	bp := tls.Alloc(60)
 16024  	defer tls.Free(60)
 16025  
 16026  	var info uintptr = XXRenderFindDisplay(tls, dpy)
 16027  	// var async X_XAsyncHandler at bp+16, 12
 16028  
 16029  	// var async_state X_XrenderVersionState at bp, 16
 16030  
 16031  	var vreq uintptr
 16032  	// var rep XRenderQueryPictFormatsReply at bp+28, 32
 16033  
 16034  	var req uintptr
 16035  	var xri uintptr
 16036  	var format uintptr
 16037  	var screen uintptr
 16038  	var depth uintptr
 16039  	var visual uintptr
 16040  	var xFormat uintptr
 16041  	var xScreen uintptr
 16042  	var xDepth uintptr
 16043  	var xVisual uintptr
 16044  	var xSubpixel uintptr
 16045  	var xData uintptr
 16046  	var nf int32
 16047  	var ns int32
 16048  	var nd int32
 16049  	var nv int32
 16050  	var rlength uint32
 16051  	var nbytes uint32
 16052  
 16053  	if !(info != 0 && (*XRenderExtDisplayInfo)(unsafe.Pointer(info)).Fcodes != 0) {
 16054  		return 0
 16055  	}
 16056  
 16057  	if (*Display)(unsafe.Pointer(dpy)).Flock_fns != 0 {
 16058  		(*struct{ f func(*libc.TLS, uintptr) })(unsafe.Pointer(&struct{ uintptr }{(*X_XLockPtrs)(unsafe.Pointer((*Display)(unsafe.Pointer(dpy)).Flock_fns)).Flock_display})).f(tls, dpy)
 16059  	}
 16060  	if (*XRenderExtDisplayInfo)(unsafe.Pointer(info)).Finfo != 0 {
 16061  		if (*Display)(unsafe.Pointer(dpy)).Flock_fns != 0 {
 16062  			(*struct{ f func(*libc.TLS, uintptr) })(unsafe.Pointer(&struct{ uintptr }{(*X_XLockPtrs)(unsafe.Pointer((*Display)(unsafe.Pointer(dpy)).Flock_fns)).Funlock_display})).f(tls, dpy)
 16063  		}
 16064  		return 1
 16065  	}
 16066  	vreq = x11.X_XGetRequest(tls, dpy, uint8(X_RenderQueryVersion), uint32(Sz_xRenderQueryVersionReq))
 16067  	(*XRenderQueryVersionReq)(unsafe.Pointer(vreq)).FreqType = CARD8((*XExtCodes)(unsafe.Pointer((*XRenderExtDisplayInfo)(unsafe.Pointer(info)).Fcodes)).Fmajor_opcode)
 16068  	(*XRenderQueryVersionReq)(unsafe.Pointer(vreq)).FrenderReqType = CARD8(X_RenderQueryVersion)
 16069  	(*XRenderQueryVersionReq)(unsafe.Pointer(vreq)).FmajorVersion = CARD32(RENDER_MAJOR)
 16070  	(*XRenderQueryVersionReq)(unsafe.Pointer(vreq)).FminorVersion = CARD32(RENDER_MINOR)
 16071  
 16072  	(*X_XrenderVersionState)(unsafe.Pointer(bp /* &async_state */)).Fversion_seq = (*Display)(unsafe.Pointer(dpy)).Frequest
 16073  	(*X_XrenderVersionState)(unsafe.Pointer(bp /* &async_state */)).Ferror = False
 16074  	(*X_XAsyncHandler)(unsafe.Pointer(bp + 16 /* &async */)).Fnext = (*Display)(unsafe.Pointer(dpy)).Fasync_handlers
 16075  	(*X_XAsyncHandler)(unsafe.Pointer(bp + 16 /* &async */)).Fhandler = *(*uintptr)(unsafe.Pointer(&struct {
 16076  		f func(*libc.TLS, uintptr, uintptr, uintptr, int32, XPointer) int32
 16077  	}{_XRenderVersionHandler}))
 16078  	(*X_XAsyncHandler)(unsafe.Pointer(bp + 16 /* &async */)).Fdata = bp /* &async_state */
 16079  	(*Display)(unsafe.Pointer(dpy)).Fasync_handlers = bp + 16           /* &async */
 16080  
 16081  	req = x11.X_XGetRequest(tls, dpy, uint8(X_RenderQueryPictFormats), uint32(Sz_xRenderQueryPictFormatsReq))
 16082  	(*XRenderQueryPictFormatsReq)(unsafe.Pointer(req)).FreqType = CARD8((*XExtCodes)(unsafe.Pointer((*XRenderExtDisplayInfo)(unsafe.Pointer(info)).Fcodes)).Fmajor_opcode)
 16083  	(*XRenderQueryPictFormatsReq)(unsafe.Pointer(req)).FrenderReqType = CARD8(X_RenderQueryPictFormats)
 16084  
 16085  	if !(x11.X_XReply(tls, dpy, bp+28, 0, XFalse) != 0) {
 16086  		{
 16087  			if (*Display)(unsafe.Pointer(dpy)).Fasync_handlers == bp+16 {
 16088  				(*Display)(unsafe.Pointer(dpy)).Fasync_handlers = (*X_XAsyncHandler)(unsafe.Pointer(bp + 16)).Fnext
 16089  			} else {
 16090  				x11.X_XDeqAsyncHandler(tls, dpy, bp+16)
 16091  			}
 16092  		}
 16093  
 16094  		if (*Display)(unsafe.Pointer(dpy)).Flock_fns != 0 {
 16095  			(*struct{ f func(*libc.TLS, uintptr) })(unsafe.Pointer(&struct{ uintptr }{(*X_XLockPtrs)(unsafe.Pointer((*Display)(unsafe.Pointer(dpy)).Flock_fns)).Funlock_display})).f(tls, dpy)
 16096  		}
 16097  		if (*Display)(unsafe.Pointer(dpy)).Fsynchandler != 0 {
 16098  			(*struct {
 16099  				f func(*libc.TLS, uintptr) int32
 16100  			})(unsafe.Pointer(&struct{ uintptr }{(*Display)(unsafe.Pointer(dpy)).Fsynchandler})).f(tls, dpy)
 16101  		}
 16102  		return 0
 16103  	}
 16104  	{
 16105  		if (*Display)(unsafe.Pointer(dpy)).Fasync_handlers == bp+16 {
 16106  			(*Display)(unsafe.Pointer(dpy)).Fasync_handlers = (*X_XAsyncHandler)(unsafe.Pointer(bp + 16)).Fnext
 16107  		} else {
 16108  			x11.X_XDeqAsyncHandler(tls, dpy, bp+16)
 16109  		}
 16110  	}
 16111  
 16112  	if (*X_XrenderVersionState)(unsafe.Pointer(bp)).Ferror != 0 {
 16113  		if (*Display)(unsafe.Pointer(dpy)).Flock_fns != 0 {
 16114  			(*struct{ f func(*libc.TLS, uintptr) })(unsafe.Pointer(&struct{ uintptr }{(*X_XLockPtrs)(unsafe.Pointer((*Display)(unsafe.Pointer(dpy)).Flock_fns)).Funlock_display})).f(tls, dpy)
 16115  		}
 16116  		if (*Display)(unsafe.Pointer(dpy)).Fsynchandler != 0 {
 16117  			(*struct {
 16118  				f func(*libc.TLS, uintptr) int32
 16119  			})(unsafe.Pointer(&struct{ uintptr }{(*Display)(unsafe.Pointer(dpy)).Fsynchandler})).f(tls, dpy)
 16120  		}
 16121  		return 0
 16122  	}
 16123  	// Check for the lack of sub-pixel data
 16124  	if (*X_XrenderVersionState)(unsafe.Pointer(bp)).Fmajor_version == 0 && (*X_XrenderVersionState)(unsafe.Pointer(bp)).Fminor_version < 6 {
 16125  		(*XRenderQueryPictFormatsReply)(unsafe.Pointer(bp + 28 /* &rep */)).FnumSubpixel = CARD32(0)
 16126  	}
 16127  
 16128  	if (*XRenderQueryPictFormatsReply)(unsafe.Pointer(bp+28)).FnumFormats < uint32(0x7fffffff/4)/uint32(unsafe.Sizeof(XRenderPictFormat{})) && (*XRenderQueryPictFormatsReply)(unsafe.Pointer(bp+28)).FnumScreens < uint32(0x7fffffff/4)/uint32(unsafe.Sizeof(XRenderScreen{})) && (*XRenderQueryPictFormatsReply)(unsafe.Pointer(bp+28)).FnumDepths < uint32(0x7fffffff/4)/uint32(unsafe.Sizeof(XRenderDepth{})) && (*XRenderQueryPictFormatsReply)(unsafe.Pointer(bp+28)).FnumVisuals < uint32(0x7fffffff/4)/uint32(unsafe.Sizeof(XRenderVisual{})) && (*XRenderQueryPictFormatsReply)(unsafe.Pointer(bp+28)).FnumSubpixel < CARD32(0x7fffffff/4/4) && (*XRenderQueryPictFormatsReply)(unsafe.Pointer(bp+28)).Flength < CARD32(int32(0x7fffffff)>>2) {
 16129  		xri = libc.Xmalloc(tls, func() uint32 {
 16130  			if CARD32(unsafe.Sizeof(XRenderInfo{}))+(*XRenderQueryPictFormatsReply)(unsafe.Pointer(bp+28)).FnumFormats*CARD32(unsafe.Sizeof(XRenderPictFormat{}))+(*XRenderQueryPictFormatsReply)(unsafe.Pointer(bp+28)).FnumScreens*CARD32(unsafe.Sizeof(XRenderScreen{}))+(*XRenderQueryPictFormatsReply)(unsafe.Pointer(bp+28)).FnumDepths*CARD32(unsafe.Sizeof(XRenderDepth{}))+(*XRenderQueryPictFormatsReply)(unsafe.Pointer(bp+28)).FnumVisuals*CARD32(unsafe.Sizeof(XRenderVisual{})) == CARD32(0) {
 16131  				return uint32(1)
 16132  			}
 16133  			return uint32(CARD32(unsafe.Sizeof(XRenderInfo{})) + (*XRenderQueryPictFormatsReply)(unsafe.Pointer(bp+28)).FnumFormats*CARD32(unsafe.Sizeof(XRenderPictFormat{})) + (*XRenderQueryPictFormatsReply)(unsafe.Pointer(bp+28)).FnumScreens*CARD32(unsafe.Sizeof(XRenderScreen{})) + (*XRenderQueryPictFormatsReply)(unsafe.Pointer(bp+28)).FnumDepths*CARD32(unsafe.Sizeof(XRenderDepth{})) + (*XRenderQueryPictFormatsReply)(unsafe.Pointer(bp+28)).FnumVisuals*CARD32(unsafe.Sizeof(XRenderVisual{})))
 16134  		}())
 16135  		rlength = (*XRenderQueryPictFormatsReply)(unsafe.Pointer(bp+28)).FnumFormats*CARD32(unsafe.Sizeof(XPictFormInfo{})) + (*XRenderQueryPictFormatsReply)(unsafe.Pointer(bp+28)).FnumScreens*CARD32(unsafe.Sizeof(XPictScreen{})) + (*XRenderQueryPictFormatsReply)(unsafe.Pointer(bp+28)).FnumDepths*CARD32(unsafe.Sizeof(XPictDepth{})) + (*XRenderQueryPictFormatsReply)(unsafe.Pointer(bp+28)).FnumVisuals*CARD32(unsafe.Sizeof(XPictVisual{})) + (*XRenderQueryPictFormatsReply)(unsafe.Pointer(bp+28)).FnumSubpixel*CARD32(4)
 16136  		xData = libc.Xmalloc(tls, func() uint32 {
 16137  			if rlength == uint32(0) {
 16138  				return uint32(1)
 16139  			}
 16140  			return uint32(rlength)
 16141  		}())
 16142  		nbytes = (*XRenderQueryPictFormatsReply)(unsafe.Pointer(bp+28)).Flength << 2
 16143  	} else {
 16144  		xri = uintptr(0)
 16145  		xData = uintptr(0)
 16146  		rlength = libc.AssignUint32(&nbytes, uint32(0))
 16147  	}
 16148  
 16149  	if !(xri != 0) || !(xData != 0) || nbytes < rlength {
 16150  		if xri != 0 {
 16151  			libc.Xfree(tls, xri)
 16152  		}
 16153  		if xData != 0 {
 16154  			libc.Xfree(tls, xData)
 16155  		}
 16156  		x11.X_XEatDataWords(tls, dpy, (*XRenderQueryPictFormatsReply)(unsafe.Pointer(bp+28 /* &rep */)).Flength)
 16157  		if (*Display)(unsafe.Pointer(dpy)).Flock_fns != 0 {
 16158  			(*struct{ f func(*libc.TLS, uintptr) })(unsafe.Pointer(&struct{ uintptr }{(*X_XLockPtrs)(unsafe.Pointer((*Display)(unsafe.Pointer(dpy)).Flock_fns)).Funlock_display})).f(tls, dpy)
 16159  		}
 16160  		if (*Display)(unsafe.Pointer(dpy)).Fsynchandler != 0 {
 16161  			(*struct {
 16162  				f func(*libc.TLS, uintptr) int32
 16163  			})(unsafe.Pointer(&struct{ uintptr }{(*Display)(unsafe.Pointer(dpy)).Fsynchandler})).f(tls, dpy)
 16164  		}
 16165  		return 0
 16166  	}
 16167  	(*XRenderInfo)(unsafe.Pointer(xri)).Fmajor_version = (*X_XrenderVersionState)(unsafe.Pointer(bp /* &async_state */)).Fmajor_version
 16168  	(*XRenderInfo)(unsafe.Pointer(xri)).Fminor_version = (*X_XrenderVersionState)(unsafe.Pointer(bp /* &async_state */)).Fminor_version
 16169  	(*XRenderInfo)(unsafe.Pointer(xri)).Fformat = xri + uintptr(1)*64
 16170  	(*XRenderInfo)(unsafe.Pointer(xri)).Fnformat = int32((*XRenderQueryPictFormatsReply)(unsafe.Pointer(bp + 28 /* &rep */)).FnumFormats)
 16171  	(*XRenderInfo)(unsafe.Pointer(xri)).Fscreen = (*XRenderInfo)(unsafe.Pointer(xri)).Fformat + uintptr((*XRenderQueryPictFormatsReply)(unsafe.Pointer(bp+28)).FnumFormats)*32
 16172  	(*XRenderInfo)(unsafe.Pointer(xri)).Fnscreen = int32((*XRenderQueryPictFormatsReply)(unsafe.Pointer(bp + 28 /* &rep */)).FnumScreens)
 16173  	(*XRenderInfo)(unsafe.Pointer(xri)).Fdepth = (*XRenderInfo)(unsafe.Pointer(xri)).Fscreen + uintptr((*XRenderQueryPictFormatsReply)(unsafe.Pointer(bp+28)).FnumScreens)*16
 16174  	(*XRenderInfo)(unsafe.Pointer(xri)).Fndepth = int32((*XRenderQueryPictFormatsReply)(unsafe.Pointer(bp + 28 /* &rep */)).FnumDepths)
 16175  	(*XRenderInfo)(unsafe.Pointer(xri)).Fvisual = (*XRenderInfo)(unsafe.Pointer(xri)).Fdepth + uintptr((*XRenderQueryPictFormatsReply)(unsafe.Pointer(bp+28)).FnumDepths)*12
 16176  	(*XRenderInfo)(unsafe.Pointer(xri)).Fnvisual = int32((*XRenderQueryPictFormatsReply)(unsafe.Pointer(bp + 28 /* &rep */)).FnumVisuals)
 16177  	x11.X_XRead(tls, dpy, xData, int32(rlength))
 16178  	format = (*XRenderInfo)(unsafe.Pointer(xri)).Fformat
 16179  	xFormat = xData
 16180  	for nf = 0; CARD32(nf) < (*XRenderQueryPictFormatsReply)(unsafe.Pointer(bp+28 /* &rep */)).FnumFormats; nf++ {
 16181  		(*XRenderPictFormat)(unsafe.Pointer(format)).Fid = (*XPictFormInfo)(unsafe.Pointer(xFormat)).Fid
 16182  		(*XRenderPictFormat)(unsafe.Pointer(format)).Ftype = int32((*XPictFormInfo)(unsafe.Pointer(xFormat)).Ftype)
 16183  		(*XRenderPictFormat)(unsafe.Pointer(format)).Fdepth = int32((*XPictFormInfo)(unsafe.Pointer(xFormat)).Fdepth)
 16184  		(*XRenderPictFormat)(unsafe.Pointer(format)).Fdirect.Fred = int16((*XPictFormInfo)(unsafe.Pointer(xFormat)).Fdirect.Fred)
 16185  		(*XRenderPictFormat)(unsafe.Pointer(format)).Fdirect.FredMask = int16((*XPictFormInfo)(unsafe.Pointer(xFormat)).Fdirect.FredMask)
 16186  		(*XRenderPictFormat)(unsafe.Pointer(format)).Fdirect.Fgreen = int16((*XPictFormInfo)(unsafe.Pointer(xFormat)).Fdirect.Fgreen)
 16187  		(*XRenderPictFormat)(unsafe.Pointer(format)).Fdirect.FgreenMask = int16((*XPictFormInfo)(unsafe.Pointer(xFormat)).Fdirect.FgreenMask)
 16188  		(*XRenderPictFormat)(unsafe.Pointer(format)).Fdirect.Fblue = int16((*XPictFormInfo)(unsafe.Pointer(xFormat)).Fdirect.Fblue)
 16189  		(*XRenderPictFormat)(unsafe.Pointer(format)).Fdirect.FblueMask = int16((*XPictFormInfo)(unsafe.Pointer(xFormat)).Fdirect.FblueMask)
 16190  		(*XRenderPictFormat)(unsafe.Pointer(format)).Fdirect.Falpha = int16((*XPictFormInfo)(unsafe.Pointer(xFormat)).Fdirect.Falpha)
 16191  		(*XRenderPictFormat)(unsafe.Pointer(format)).Fdirect.FalphaMask = int16((*XPictFormInfo)(unsafe.Pointer(xFormat)).Fdirect.FalphaMask)
 16192  		(*XRenderPictFormat)(unsafe.Pointer(format)).Fcolormap = (*XPictFormInfo)(unsafe.Pointer(xFormat)).Fcolormap
 16193  		format += 32
 16194  		xFormat += 28
 16195  	}
 16196  	xScreen = xFormat
 16197  	screen = (*XRenderInfo)(unsafe.Pointer(xri)).Fscreen
 16198  	depth = (*XRenderInfo)(unsafe.Pointer(xri)).Fdepth
 16199  	visual = (*XRenderInfo)(unsafe.Pointer(xri)).Fvisual
 16200  	for ns = 0; ns < (*XRenderInfo)(unsafe.Pointer(xri)).Fnscreen; ns++ {
 16201  		(*XRenderScreen)(unsafe.Pointer(screen)).Fdepths = depth
 16202  		(*XRenderScreen)(unsafe.Pointer(screen)).Fndepths = int32((*XPictScreen)(unsafe.Pointer(xScreen)).FnDepth)
 16203  		(*XRenderScreen)(unsafe.Pointer(screen)).Ffallback = _XRenderFindFormat(tls, xri, (*XPictScreen)(unsafe.Pointer(xScreen)).Ffallback)
 16204  		(*XRenderScreen)(unsafe.Pointer(screen)).Fsubpixel = SubPixelUnknown
 16205  		xDepth = xScreen + uintptr(1)*8
 16206  		if CARD32((*XRenderScreen)(unsafe.Pointer(screen)).Fndepths) > (*XRenderQueryPictFormatsReply)(unsafe.Pointer(bp+28)).FnumDepths {
 16207  			libc.Xfree(tls, xri)
 16208  			libc.Xfree(tls, xData)
 16209  			x11.X_XEatDataWords(tls, dpy, (*XRenderQueryPictFormatsReply)(unsafe.Pointer(bp+28 /* &rep */)).Flength)
 16210  			if (*Display)(unsafe.Pointer(dpy)).Flock_fns != 0 {
 16211  				(*struct{ f func(*libc.TLS, uintptr) })(unsafe.Pointer(&struct{ uintptr }{(*X_XLockPtrs)(unsafe.Pointer((*Display)(unsafe.Pointer(dpy)).Flock_fns)).Funlock_display})).f(tls, dpy)
 16212  			}
 16213  			if (*Display)(unsafe.Pointer(dpy)).Fsynchandler != 0 {
 16214  				(*struct {
 16215  					f func(*libc.TLS, uintptr) int32
 16216  				})(unsafe.Pointer(&struct{ uintptr }{(*Display)(unsafe.Pointer(dpy)).Fsynchandler})).f(tls, dpy)
 16217  			}
 16218  			return 0
 16219  		}
 16220  		*(*CARD32)(unsafe.Pointer(bp + 28 + 16)) -= CARD32((*XRenderScreen)(unsafe.Pointer(screen)).Fndepths)
 16221  		for nd = 0; nd < (*XRenderScreen)(unsafe.Pointer(screen)).Fndepths; nd++ {
 16222  			(*XRenderDepth)(unsafe.Pointer(depth)).Fdepth = int32((*XPictDepth)(unsafe.Pointer(xDepth)).Fdepth)
 16223  			(*XRenderDepth)(unsafe.Pointer(depth)).Fnvisuals = int32((*XPictDepth)(unsafe.Pointer(xDepth)).FnPictVisuals)
 16224  			(*XRenderDepth)(unsafe.Pointer(depth)).Fvisuals = visual
 16225  			xVisual = xDepth + uintptr(1)*8
 16226  			if CARD32((*XRenderDepth)(unsafe.Pointer(depth)).Fnvisuals) > (*XRenderQueryPictFormatsReply)(unsafe.Pointer(bp+28)).FnumVisuals {
 16227  				libc.Xfree(tls, xri)
 16228  				libc.Xfree(tls, xData)
 16229  				x11.X_XEatDataWords(tls, dpy, (*XRenderQueryPictFormatsReply)(unsafe.Pointer(bp+28 /* &rep */)).Flength)
 16230  				if (*Display)(unsafe.Pointer(dpy)).Flock_fns != 0 {
 16231  					(*struct{ f func(*libc.TLS, uintptr) })(unsafe.Pointer(&struct{ uintptr }{(*X_XLockPtrs)(unsafe.Pointer((*Display)(unsafe.Pointer(dpy)).Flock_fns)).Funlock_display})).f(tls, dpy)
 16232  				}
 16233  				if (*Display)(unsafe.Pointer(dpy)).Fsynchandler != 0 {
 16234  					(*struct {
 16235  						f func(*libc.TLS, uintptr) int32
 16236  					})(unsafe.Pointer(&struct{ uintptr }{(*Display)(unsafe.Pointer(dpy)).Fsynchandler})).f(tls, dpy)
 16237  				}
 16238  				return 0
 16239  			}
 16240  			*(*CARD32)(unsafe.Pointer(bp + 28 + 20)) -= CARD32((*XRenderDepth)(unsafe.Pointer(depth)).Fnvisuals)
 16241  			for nv = 0; nv < (*XRenderDepth)(unsafe.Pointer(depth)).Fnvisuals; nv++ {
 16242  				(*XRenderVisual)(unsafe.Pointer(visual)).Fvisual = _XRenderFindVisual(tls, dpy, (*XPictVisual)(unsafe.Pointer(xVisual)).Fvisual)
 16243  				(*XRenderVisual)(unsafe.Pointer(visual)).Fformat = _XRenderFindFormat(tls, xri, (*XPictVisual)(unsafe.Pointer(xVisual)).Fformat)
 16244  				visual += 8
 16245  				xVisual += 8
 16246  			}
 16247  			depth += 12
 16248  			xDepth = xVisual
 16249  		}
 16250  		screen += 16
 16251  		xScreen = xDepth
 16252  	}
 16253  	xSubpixel = xScreen
 16254  	screen = (*XRenderInfo)(unsafe.Pointer(xri)).Fscreen
 16255  	for ns = 0; CARD32(ns) < (*XRenderQueryPictFormatsReply)(unsafe.Pointer(bp+28 /* &rep */)).FnumSubpixel; ns++ {
 16256  		(*XRenderScreen)(unsafe.Pointer(screen)).Fsubpixel = int32(*(*CARD32)(unsafe.Pointer(xSubpixel)))
 16257  		xSubpixel += 4
 16258  		screen += 16
 16259  	}
 16260  	(*XRenderExtDisplayInfo)(unsafe.Pointer(info)).Finfo = xri
 16261  	// Skip any extra data
 16262  	if nbytes > rlength {
 16263  		x11.X_XEatData(tls, dpy, nbytes-rlength)
 16264  	}
 16265  
 16266  	if (*Display)(unsafe.Pointer(dpy)).Flock_fns != 0 {
 16267  		(*struct{ f func(*libc.TLS, uintptr) })(unsafe.Pointer(&struct{ uintptr }{(*X_XLockPtrs)(unsafe.Pointer((*Display)(unsafe.Pointer(dpy)).Flock_fns)).Funlock_display})).f(tls, dpy)
 16268  	}
 16269  	if (*Display)(unsafe.Pointer(dpy)).Fsynchandler != 0 {
 16270  		(*struct {
 16271  			f func(*libc.TLS, uintptr) int32
 16272  		})(unsafe.Pointer(&struct{ uintptr }{(*Display)(unsafe.Pointer(dpy)).Fsynchandler})).f(tls, dpy)
 16273  	}
 16274  	libc.Xfree(tls, xData)
 16275  	return 1
 16276  }
 16277  
 16278  func XXRenderQuerySubpixelOrder(tls *libc.TLS, dpy uintptr, screen int32) int32 { /* Xrender.c:595:1: */
 16279  	var info uintptr = XXRenderFindDisplay(tls, dpy)
 16280  	var xri uintptr
 16281  
 16282  	if !(info != 0 && (*XRenderExtDisplayInfo)(unsafe.Pointer(info)).Fcodes != 0) {
 16283  		return SubPixelUnknown
 16284  	}
 16285  
 16286  	if !(XXRenderQueryFormats(tls, dpy) != 0) {
 16287  		return SubPixelUnknown
 16288  	}
 16289  
 16290  	xri = (*XRenderExtDisplayInfo)(unsafe.Pointer(info)).Finfo
 16291  	return (*XRenderScreen)(unsafe.Pointer((*XRenderInfo)(unsafe.Pointer(xri)).Fscreen + uintptr(screen)*16)).Fsubpixel
 16292  }
 16293  
 16294  func XXRenderSetSubpixelOrder(tls *libc.TLS, dpy uintptr, screen int32, subpixel int32) int32 { /* Xrender.c:611:1: */
 16295  	var info uintptr = XXRenderFindDisplay(tls, dpy)
 16296  	var xri uintptr
 16297  
 16298  	if !(info != 0 && (*XRenderExtDisplayInfo)(unsafe.Pointer(info)).Fcodes != 0) {
 16299  		return False
 16300  	}
 16301  
 16302  	if !(XXRenderQueryFormats(tls, dpy) != 0) {
 16303  		return False
 16304  	}
 16305  
 16306  	xri = (*XRenderExtDisplayInfo)(unsafe.Pointer(info)).Finfo
 16307  	(*XRenderScreen)(unsafe.Pointer((*XRenderInfo)(unsafe.Pointer(xri)).Fscreen + uintptr(screen)*16)).Fsubpixel = subpixel
 16308  	return True
 16309  }
 16310  
 16311  func XXRenderFindVisualFormat(tls *libc.TLS, dpy uintptr, visual uintptr) uintptr { /* Xrender.c:627:19: */
 16312  	var info uintptr = XXRenderFindDisplay(tls, dpy)
 16313  	var nv int32
 16314  	var xri uintptr
 16315  	var xrv uintptr
 16316  
 16317  	if !(info != 0 && (*XRenderExtDisplayInfo)(unsafe.Pointer(info)).Fcodes != 0) {
 16318  		return uintptr(0)
 16319  	}
 16320  
 16321  	if !(XXRenderQueryFormats(tls, dpy) != 0) {
 16322  		return uintptr(0)
 16323  	}
 16324  	xri = (*XRenderExtDisplayInfo)(unsafe.Pointer(info)).Finfo
 16325  	nv = 0
 16326  	xrv = (*XRenderInfo)(unsafe.Pointer(xri)).Fvisual
 16327  __1:
 16328  	if !(nv < (*XRenderInfo)(unsafe.Pointer(xri)).Fnvisual) {
 16329  		goto __3
 16330  	}
 16331  	if (*XRenderVisual)(unsafe.Pointer(xrv)).Fvisual == visual {
 16332  		return (*XRenderVisual)(unsafe.Pointer(xrv)).Fformat
 16333  	}
 16334  	goto __2
 16335  __2:
 16336  	nv++
 16337  	xrv += 8
 16338  	goto __1
 16339  	goto __3
 16340  __3:
 16341  	;
 16342  	return uintptr(0)
 16343  }
 16344  
 16345  func XXRenderFindFormat(tls *libc.TLS, dpy uintptr, mask uint32, template uintptr, count int32) uintptr { /* Xrender.c:645:19: */
 16346  	var info uintptr = XXRenderFindDisplay(tls, dpy)
 16347  	var nf int32
 16348  	var xri uintptr
 16349  
 16350  	if !(info != 0 && (*XRenderExtDisplayInfo)(unsafe.Pointer(info)).Fcodes != 0) {
 16351  		return uintptr(0)
 16352  	}
 16353  
 16354  	if !(XXRenderQueryFormats(tls, dpy) != 0) {
 16355  		return uintptr(0)
 16356  	}
 16357  	xri = (*XRenderExtDisplayInfo)(unsafe.Pointer(info)).Finfo
 16358  	for nf = 0; nf < (*XRenderInfo)(unsafe.Pointer(xri)).Fnformat; nf++ {
 16359  		if mask&uint32(int32(1)<<0) != 0 {
 16360  			if (*XRenderPictFormat)(unsafe.Pointer(template)).Fid != (*XRenderPictFormat)(unsafe.Pointer((*XRenderInfo)(unsafe.Pointer(xri)).Fformat+uintptr(nf)*32)).Fid {
 16361  				continue
 16362  			}
 16363  		}
 16364  		if mask&uint32(int32(1)<<1) != 0 {
 16365  			if (*XRenderPictFormat)(unsafe.Pointer(template)).Ftype != (*XRenderPictFormat)(unsafe.Pointer((*XRenderInfo)(unsafe.Pointer(xri)).Fformat+uintptr(nf)*32)).Ftype {
 16366  				continue
 16367  			}
 16368  		}
 16369  		if mask&uint32(int32(1)<<2) != 0 {
 16370  			if (*XRenderPictFormat)(unsafe.Pointer(template)).Fdepth != (*XRenderPictFormat)(unsafe.Pointer((*XRenderInfo)(unsafe.Pointer(xri)).Fformat+uintptr(nf)*32)).Fdepth {
 16371  				continue
 16372  			}
 16373  		}
 16374  		if mask&uint32(int32(1)<<3) != 0 {
 16375  			if int32((*XRenderPictFormat)(unsafe.Pointer(template)).Fdirect.Fred) != int32((*XRenderPictFormat)(unsafe.Pointer((*XRenderInfo)(unsafe.Pointer(xri)).Fformat+uintptr(nf)*32)).Fdirect.Fred) {
 16376  				continue
 16377  			}
 16378  		}
 16379  		if mask&uint32(int32(1)<<4) != 0 {
 16380  			if int32((*XRenderPictFormat)(unsafe.Pointer(template)).Fdirect.FredMask) != int32((*XRenderPictFormat)(unsafe.Pointer((*XRenderInfo)(unsafe.Pointer(xri)).Fformat+uintptr(nf)*32)).Fdirect.FredMask) {
 16381  				continue
 16382  			}
 16383  		}
 16384  		if mask&uint32(int32(1)<<5) != 0 {
 16385  			if int32((*XRenderPictFormat)(unsafe.Pointer(template)).Fdirect.Fgreen) != int32((*XRenderPictFormat)(unsafe.Pointer((*XRenderInfo)(unsafe.Pointer(xri)).Fformat+uintptr(nf)*32)).Fdirect.Fgreen) {
 16386  				continue
 16387  			}
 16388  		}
 16389  		if mask&uint32(int32(1)<<6) != 0 {
 16390  			if int32((*XRenderPictFormat)(unsafe.Pointer(template)).Fdirect.FgreenMask) != int32((*XRenderPictFormat)(unsafe.Pointer((*XRenderInfo)(unsafe.Pointer(xri)).Fformat+uintptr(nf)*32)).Fdirect.FgreenMask) {
 16391  				continue
 16392  			}
 16393  		}
 16394  		if mask&uint32(int32(1)<<7) != 0 {
 16395  			if int32((*XRenderPictFormat)(unsafe.Pointer(template)).Fdirect.Fblue) != int32((*XRenderPictFormat)(unsafe.Pointer((*XRenderInfo)(unsafe.Pointer(xri)).Fformat+uintptr(nf)*32)).Fdirect.Fblue) {
 16396  				continue
 16397  			}
 16398  		}
 16399  		if mask&uint32(int32(1)<<8) != 0 {
 16400  			if int32((*XRenderPictFormat)(unsafe.Pointer(template)).Fdirect.FblueMask) != int32((*XRenderPictFormat)(unsafe.Pointer((*XRenderInfo)(unsafe.Pointer(xri)).Fformat+uintptr(nf)*32)).Fdirect.FblueMask) {
 16401  				continue
 16402  			}
 16403  		}
 16404  		if mask&uint32(int32(1)<<9) != 0 {
 16405  			if int32((*XRenderPictFormat)(unsafe.Pointer(template)).Fdirect.Falpha) != int32((*XRenderPictFormat)(unsafe.Pointer((*XRenderInfo)(unsafe.Pointer(xri)).Fformat+uintptr(nf)*32)).Fdirect.Falpha) {
 16406  				continue
 16407  			}
 16408  		}
 16409  		if mask&uint32(int32(1)<<10) != 0 {
 16410  			if int32((*XRenderPictFormat)(unsafe.Pointer(template)).Fdirect.FalphaMask) != int32((*XRenderPictFormat)(unsafe.Pointer((*XRenderInfo)(unsafe.Pointer(xri)).Fformat+uintptr(nf)*32)).Fdirect.FalphaMask) {
 16411  				continue
 16412  			}
 16413  		}
 16414  		if mask&uint32(int32(1)<<11) != 0 {
 16415  			if (*XRenderPictFormat)(unsafe.Pointer(template)).Fcolormap != (*XRenderPictFormat)(unsafe.Pointer((*XRenderInfo)(unsafe.Pointer(xri)).Fformat+uintptr(nf)*32)).Fcolormap {
 16416  				continue
 16417  			}
 16418  		}
 16419  		if libc.PostDecInt32(&count, 1) == 0 {
 16420  			return (*XRenderInfo)(unsafe.Pointer(xri)).Fformat + uintptr(nf)*32
 16421  		}
 16422  	}
 16423  	return uintptr(0)
 16424  }
 16425  
 16426  func XXRenderFindStandardFormat(tls *libc.TLS, dpy uintptr, format int32) uintptr { /* Xrender.c:703:19: */
 16427  
 16428  	if 0 <= format && format < PictStandardNUM {
 16429  		return XXRenderFindFormat(tls, dpy,
 16430  			standardFormats[format].Fmask,
 16431  			uintptr(unsafe.Pointer(&standardFormats))+uintptr(format)*36,
 16432  			0)
 16433  	}
 16434  	return uintptr(0)
 16435  }
 16436  
 16437  var standardFormats = [5]struct {
 16438  	Ftempl XRenderPictFormat
 16439  	Fmask  uint32
 16440  }{{
 16441  	// PictStandardARGB32
 16442  	Ftempl: XRenderPictFormat{ // id
 16443  		Ftype:  PictTypeDirect, // type
 16444  		Fdepth: 32,             // depth
 16445  		Fdirect: XRenderDirectFormat{ // direct
 16446  			Fred:       int16(16),   // direct.red
 16447  			FredMask:   int16(0xff), // direct.redMask
 16448  			Fgreen:     int16(8),    // direct.green
 16449  			FgreenMask: int16(0xff), // direct.blue
 16450  			FblueMask:  int16(0xff), // direct.blueMask
 16451  			Falpha:     int16(24),   // direct.alpha
 16452  			FalphaMask: int16(0xff), // direct.alphaMask
 16453  		}, // colormap
 16454  	},
 16455  	Fmask: uint32(int32(1)<<1 | int32(1)<<2 | int32(1)<<3 | int32(1)<<4 | int32(1)<<5 | int32(1)<<6 | int32(1)<<7 | int32(1)<<8 | int32(1)<<9 | int32(1)<<10),
 16456  },
 16457  	// PictStandardRGB24
 16458  	{
 16459  		Ftempl: XRenderPictFormat{ // id
 16460  			Ftype:  PictTypeDirect, // type
 16461  			Fdepth: 24,             // depth
 16462  			Fdirect: XRenderDirectFormat{ // direct
 16463  				Fred:       int16(16),   // direct.red
 16464  				FredMask:   int16(0xff), // direct.redMask
 16465  				Fgreen:     int16(8),    // direct.green
 16466  				FgreenMask: int16(0xff), // direct.blue
 16467  				FblueMask:  int16(0xff), // direct.alphaMask
 16468  			}, // colormap
 16469  		},
 16470  		Fmask: uint32(int32(1)<<1 | int32(1)<<2 | int32(1)<<3 | int32(1)<<4 | int32(1)<<5 | int32(1)<<6 | int32(1)<<7 | int32(1)<<8 | int32(1)<<10),
 16471  	},
 16472  	// PictStandardA8
 16473  	{
 16474  		Ftempl: XRenderPictFormat{ // id
 16475  			Ftype:  PictTypeDirect, // type
 16476  			Fdepth: 8,              // depth
 16477  			Fdirect: XRenderDirectFormat{ // direct.alpha
 16478  				FalphaMask: int16(0xff), // direct.alphaMask
 16479  			}, // colormap
 16480  		},
 16481  		Fmask: uint32(int32(1)<<1 | int32(1)<<2 | int32(1)<<4 | int32(1)<<6 | int32(1)<<8 | int32(1)<<9 | int32(1)<<10),
 16482  	},
 16483  	// PictStandardA4
 16484  	{
 16485  		Ftempl: XRenderPictFormat{ // id
 16486  			Ftype:  PictTypeDirect, // type
 16487  			Fdepth: 4,              // depth
 16488  			Fdirect: XRenderDirectFormat{ // direct.alpha
 16489  				FalphaMask: int16(0x0f), // direct.alphaMask
 16490  			}, // colormap
 16491  		},
 16492  		Fmask: uint32(int32(1)<<1 | int32(1)<<2 | int32(1)<<4 | int32(1)<<6 | int32(1)<<8 | int32(1)<<9 | int32(1)<<10),
 16493  	},
 16494  	// PictStandardA1
 16495  	{
 16496  		Ftempl: XRenderPictFormat{ // id
 16497  			Ftype:  PictTypeDirect, // type
 16498  			Fdepth: 1,              // depth
 16499  			Fdirect: XRenderDirectFormat{ // direct.alpha
 16500  				FalphaMask: int16(0x01), // direct.alphaMask
 16501  			}, // colormap
 16502  		},
 16503  		Fmask: uint32(int32(1)<<1 | int32(1)<<2 | int32(1)<<4 | int32(1)<<6 | int32(1)<<8 | int32(1)<<9 | int32(1)<<10),
 16504  	},
 16505  } /* Xrender.c:710:7 */
 16506  
 16507  func XXRenderQueryPictIndexValues(tls *libc.TLS, dpy uintptr, format uintptr, num uintptr) uintptr { /* Xrender.c:856:13: */
 16508  	bp := tls.Alloc(44)
 16509  	defer tls.Free(44)
 16510  
 16511  	var info uintptr = XXRenderFindDisplay(tls, dpy)
 16512  	var req uintptr
 16513  	// var rep XRenderQueryPictIndexValuesReply at bp, 32
 16514  
 16515  	var values uintptr
 16516  	var nbytes uint32
 16517  	var nread uint32
 16518  	var rlength uint32
 16519  	var i uint32
 16520  
 16521  	if !(info != 0 && (*XRenderExtDisplayInfo)(unsafe.Pointer(info)).Fcodes != 0) {
 16522  		return uintptr(0)
 16523  	}
 16524  
 16525  	if (*Display)(unsafe.Pointer(dpy)).Flock_fns != 0 {
 16526  		(*struct{ f func(*libc.TLS, uintptr) })(unsafe.Pointer(&struct{ uintptr }{(*X_XLockPtrs)(unsafe.Pointer((*Display)(unsafe.Pointer(dpy)).Flock_fns)).Flock_display})).f(tls, dpy)
 16527  	}
 16528  	req = x11.X_XGetRequest(tls, dpy, uint8(X_RenderQueryPictIndexValues), uint32(Sz_xRenderQueryPictIndexValuesReq))
 16529  	(*XRenderQueryPictIndexValuesReq)(unsafe.Pointer(req)).FreqType = CARD8((*XExtCodes)(unsafe.Pointer((*XRenderExtDisplayInfo)(unsafe.Pointer(info)).Fcodes)).Fmajor_opcode)
 16530  	(*XRenderQueryPictIndexValuesReq)(unsafe.Pointer(req)).FrenderReqType = CARD8(X_RenderQueryPictIndexValues)
 16531  	(*XRenderQueryPictIndexValuesReq)(unsafe.Pointer(req)).Fformat = (*XRenderPictFormat)(unsafe.Pointer(format)).Fid
 16532  	if !(x11.X_XReply(tls, dpy, bp, 0, XFalse) != 0) {
 16533  		if (*Display)(unsafe.Pointer(dpy)).Flock_fns != 0 {
 16534  			(*struct{ f func(*libc.TLS, uintptr) })(unsafe.Pointer(&struct{ uintptr }{(*X_XLockPtrs)(unsafe.Pointer((*Display)(unsafe.Pointer(dpy)).Flock_fns)).Funlock_display})).f(tls, dpy)
 16535  		}
 16536  		if (*Display)(unsafe.Pointer(dpy)).Fsynchandler != 0 {
 16537  			(*struct {
 16538  				f func(*libc.TLS, uintptr) int32
 16539  			})(unsafe.Pointer(&struct{ uintptr }{(*Display)(unsafe.Pointer(dpy)).Fsynchandler})).f(tls, dpy)
 16540  		}
 16541  		return uintptr(0)
 16542  	}
 16543  
 16544  	if (*XRenderQueryPictIndexValuesReply)(unsafe.Pointer(bp)).Flength < CARD32(int32(0x7fffffff)>>2) && (*XRenderQueryPictIndexValuesReply)(unsafe.Pointer(bp)).FnumIndexValues < uint32(0x7fffffff)/uint32(unsafe.Sizeof(XIndexValue1{})) {
 16545  		// request data length
 16546  		nbytes = uint32((*XRenderQueryPictIndexValuesReply)(unsafe.Pointer(bp)).Flength << 2)
 16547  		// bytes of actual data in the request
 16548  		nread = uint32((*XRenderQueryPictIndexValuesReply)(unsafe.Pointer(bp)).FnumIndexValues * CARD32(Sz_xIndexValue))
 16549  		// size of array returned to application
 16550  		rlength = uint32((*XRenderQueryPictIndexValuesReply)(unsafe.Pointer(bp)).FnumIndexValues * CARD32(unsafe.Sizeof(XIndexValue1{})))
 16551  
 16552  		// allocate returned data
 16553  		values = libc.Xmalloc(tls, func() uint32 {
 16554  			if rlength == uint32(0) {
 16555  				return uint32(1)
 16556  			}
 16557  			return rlength
 16558  		}())
 16559  	} else {
 16560  		nbytes = libc.AssignUint32(&nread, libc.AssignUint32(&rlength, uint32(0)))
 16561  		values = uintptr(0)
 16562  	}
 16563  
 16564  	if !(values != 0) {
 16565  		x11.X_XEatDataWords(tls, dpy, (*XRenderQueryPictIndexValuesReply)(unsafe.Pointer(bp /* &rep */)).Flength)
 16566  		if (*Display)(unsafe.Pointer(dpy)).Flock_fns != 0 {
 16567  			(*struct{ f func(*libc.TLS, uintptr) })(unsafe.Pointer(&struct{ uintptr }{(*X_XLockPtrs)(unsafe.Pointer((*Display)(unsafe.Pointer(dpy)).Flock_fns)).Funlock_display})).f(tls, dpy)
 16568  		}
 16569  		if (*Display)(unsafe.Pointer(dpy)).Fsynchandler != 0 {
 16570  			(*struct {
 16571  				f func(*libc.TLS, uintptr) int32
 16572  			})(unsafe.Pointer(&struct{ uintptr }{(*Display)(unsafe.Pointer(dpy)).Fsynchandler})).f(tls, dpy)
 16573  		}
 16574  		return uintptr(0)
 16575  	}
 16576  
 16577  	// read the values one at a time and convert
 16578  	*(*int32)(unsafe.Pointer(num)) = int32((*XRenderQueryPictIndexValuesReply)(unsafe.Pointer(bp /* &rep */)).FnumIndexValues)
 16579  	for i = uint32(0); CARD32(i) < (*XRenderQueryPictIndexValuesReply)(unsafe.Pointer(bp /* &rep */)).FnumIndexValues; i++ {
 16580  		// var value XIndexValue at bp+32, 12
 16581  
 16582  		x11.X_XRead(tls, dpy, bp+32, Sz_xIndexValue)
 16583  		(*XIndexValue1)(unsafe.Pointer(values + uintptr(i)*12)).Fpixel = (*XIndexValue)(unsafe.Pointer(bp + 32 /* &value */)).Fpixel
 16584  		(*XIndexValue1)(unsafe.Pointer(values + uintptr(i)*12)).Fred = (*XIndexValue)(unsafe.Pointer(bp + 32 /* &value */)).Fred
 16585  		(*XIndexValue1)(unsafe.Pointer(values + uintptr(i)*12)).Fgreen = (*XIndexValue)(unsafe.Pointer(bp + 32 /* &value */)).Fgreen
 16586  		(*XIndexValue1)(unsafe.Pointer(values + uintptr(i)*12)).Fblue = (*XIndexValue)(unsafe.Pointer(bp + 32 /* &value */)).Fblue
 16587  		(*XIndexValue1)(unsafe.Pointer(values + uintptr(i)*12)).Falpha = (*XIndexValue)(unsafe.Pointer(bp + 32 /* &value */)).Falpha
 16588  	}
 16589  	// skip any padding
 16590  	if nbytes > nread {
 16591  		x11.X_XEatData(tls, dpy, uint32(nbytes-nread))
 16592  	}
 16593  	if (*Display)(unsafe.Pointer(dpy)).Flock_fns != 0 {
 16594  		(*struct{ f func(*libc.TLS, uintptr) })(unsafe.Pointer(&struct{ uintptr }{(*X_XLockPtrs)(unsafe.Pointer((*Display)(unsafe.Pointer(dpy)).Flock_fns)).Funlock_display})).f(tls, dpy)
 16595  	}
 16596  	if (*Display)(unsafe.Pointer(dpy)).Fsynchandler != 0 {
 16597  		(*struct {
 16598  			f func(*libc.TLS, uintptr) int32
 16599  		})(unsafe.Pointer(&struct{ uintptr }{(*Display)(unsafe.Pointer(dpy)).Fsynchandler})).f(tls, dpy)
 16600  	}
 16601  	return values
 16602  }
 16603  
 16604  var ts1 = "rgba:\x00RENDER\x00"
 16605  var ts = (*reflect.StringHeader)(unsafe.Pointer(&ts1)).Data