Most usages of ModMask may also take the special value "Any".
[free-sw/xcb/proto] / src / xproto.xml
1 <?xml version="1.0" encoding="utf-8"?>
2 <!--
3 Copyright (C) 2001-2004 Bart Massey, Jamey Sharp, and Josh Triplett.
4 All Rights Reserved.
5
6 Permission is hereby granted, free of charge, to any person obtaining a copy
7 of this software and associated documentation files (the "Software"), to deal
8 in the Software without restriction, including without limitation the rights
9 to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
10 copies of the Software, and to permit persons to whom the Software is
11 furnished to do so, subject to the following conditions:
12
13 The above copyright notice and this permission notice shall be included in all
14 copies or substantial portions of the Software.
15
16 THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17 IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18 FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
19 AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
20 ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
21 WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
22
23 Except as contained in this notice, the names of the authors or their
24 institutions shall not be used in advertising or otherwise to promote the
25 sale, use or other dealings in this Software without prior written
26 authorization from the authors.
27 -->
28 <xcb header="xproto">
29   <!-- Core protocol types -->
30   
31   <struct name="CHAR2B">
32     <field type="CARD8" name="byte1" />
33     <field type="CARD8" name="byte2" />
34   </struct>
35   
36   <xidtype name="WINDOW" />
37   
38   <xidtype name="PIXMAP" />
39   
40   <xidtype name="CURSOR" />
41   
42   <xidtype name="FONT" />
43   
44   <xidtype name="GCONTEXT" />
45   
46   <xidtype name="COLORMAP" />
47   
48   <xidtype name="ATOM" />
49   
50   <xidunion name="DRAWABLE">
51     <type>WINDOW</type>
52     <type>PIXMAP</type>
53   </xidunion>
54   
55   <xidunion name="FONTABLE">
56     <type>FONT</type>
57     <type>GCONTEXT</type>
58   </xidunion>
59   
60   <typedef oldname="CARD32" newname="VISUALID" />
61
62   <typedef oldname="CARD32" newname="TIMESTAMP" />
63
64   <typedef oldname="CARD32" newname="KEYSYM" />
65
66   <typedef oldname="CARD8" newname="KEYCODE" />
67
68   <typedef oldname="CARD8" newname="BUTTON" />
69
70   <struct name="POINT">
71     <field type="INT16" name="x" />
72     <field type="INT16" name="y" />
73   </struct>
74
75   <struct name="RECTANGLE">
76     <field type="INT16" name="x" />
77     <field type="INT16" name="y" />
78     <field type="CARD16" name="width" />
79     <field type="CARD16" name="height" />
80   </struct>
81
82   <struct name="ARC">
83     <field type="INT16" name="x" />
84     <field type="INT16" name="y" />
85     <field type="CARD16" name="width" />
86     <field type="CARD16" name="height" />
87     <field type="INT16" name="angle1" />
88     <field type="INT16" name="angle2" />
89   </struct>
90
91   <!-- Connection setup-related types -->
92
93   <struct name="FORMAT">
94     <field type="CARD8" name="depth" />
95     <field type="CARD8" name="bits_per_pixel" />
96     <field type="CARD8" name="scanline_pad" />
97     <pad bytes="5" />
98   </struct>
99
100   <enum name="VisualClass">
101     <item name="StaticGray"> <value>0</value></item>
102     <item name="GrayScale">  <value>1</value></item>
103     <item name="StaticColor"><value>2</value></item>
104     <item name="PseudoColor"><value>3</value></item>
105     <item name="TrueColor">  <value>4</value></item>
106     <item name="DirectColor"><value>5</value></item>
107   </enum>
108
109   <struct name="VISUALTYPE">
110     <field type="VISUALID" name="visual_id" />
111     <field type="CARD8" name="class" enum="VisualClass" />
112     <field type="CARD8" name="bits_per_rgb_value" />
113     <field type="CARD16" name="colormap_entries" />
114     <field type="CARD32" name="red_mask" />
115     <field type="CARD32" name="green_mask" />
116     <field type="CARD32" name="blue_mask" />
117     <pad bytes="4" />
118   </struct>
119
120   <struct name="DEPTH">
121     <field type="CARD8" name="depth" />
122     <pad bytes="1" />
123     <field type="CARD16" name="visuals_len" />
124     <pad bytes="4" />
125     <list type="VISUALTYPE" name="visuals">
126       <fieldref>visuals_len</fieldref>
127     </list>
128   </struct>
129
130   <struct name="SCREEN">
131     <field type="WINDOW" name="root" />
132     <field type="COLORMAP" name="default_colormap" />
133     <field type="CARD32" name="white_pixel" />
134     <field type="CARD32" name="black_pixel" />
135     <field type="CARD32" name="current_input_masks" mask="EventMask" />
136     <field type="CARD16" name="width_in_pixels" />
137     <field type="CARD16" name="height_in_pixels" />
138     <field type="CARD16" name="width_in_millimeters" />
139     <field type="CARD16" name="height_in_millimeters" />
140     <field type="CARD16" name="min_installed_maps" />
141     <field type="CARD16" name="max_installed_maps" />
142     <field type="VISUALID" name="root_visual" />
143     <field type="BYTE" name="backing_stores" enum="BackingStore" />
144     <field type="BOOL" name="save_unders" />
145     <field type="CARD8" name="root_depth" />
146     <field type="CARD8" name="allowed_depths_len" />
147     <list type="DEPTH" name="allowed_depths">
148       <fieldref>allowed_depths_len</fieldref>
149     </list>
150   </struct>
151
152   <struct name="SetupRequest">
153     <field type="CARD8" name="byte_order" />
154     <pad bytes="1" />
155     <field type="CARD16" name="protocol_major_version" />
156     <field type="CARD16" name="protocol_minor_version" />
157     <field type="CARD16" name="authorization_protocol_name_len" />
158     <field type="CARD16" name="authorization_protocol_data_len" />
159     <pad bytes="2" />
160     <list type="char" name="authorization_protocol_name">
161       <fieldref>authorization_protocol_name_len</fieldref>
162     </list>
163     <list type="char" name="authorization_protocol_data">
164       <fieldref>authorization_protocol_data_len</fieldref>
165     </list>
166   </struct>
167
168   <struct name="SetupFailed">
169     <field type="CARD8" name="status" /> <!-- always 0 -> Failed -->
170     <field type="CARD8" name="reason_len" />
171     <field type="CARD16" name="protocol_major_version" />
172     <field type="CARD16" name="protocol_minor_version" />
173     <field type="CARD16" name="length" />
174     <list type="char" name="reason">
175       <fieldref>reason_len</fieldref>
176     </list>
177   </struct>
178
179   <struct name="SetupAuthenticate">
180     <field type="CARD8" name="status" /> <!-- always 2 -> Authenticate -->
181     <pad bytes="5" />
182     <field type="CARD16" name="length" />
183     <list type="char" name="reason">
184       <op op="*">
185         <fieldref>length</fieldref>
186         <value>4</value>
187       </op>
188     </list>
189   </struct>
190
191   <enum name="ImageOrder">
192     <item name="LSBFirst"><value>0</value></item>
193     <item name="MSBFirst"><value>1</value></item>
194   </enum>
195
196   <struct name="Setup">
197     <field type="CARD8" name="status" /> <!-- always 1 -> Success -->
198     <pad bytes="1" />
199     <field type="CARD16" name="protocol_major_version" />
200     <field type="CARD16" name="protocol_minor_version" />
201     <field type="CARD16" name="length" />
202     <field type="CARD32" name="release_number" />
203     <field type="CARD32" name="resource_id_base" />
204     <field type="CARD32" name="resource_id_mask" />
205     <field type="CARD32" name="motion_buffer_size" />
206     <field type="CARD16" name="vendor_len" />
207     <field type="CARD16" name="maximum_request_length" />
208     <field type="CARD8" name="roots_len" />
209     <field type="CARD8" name="pixmap_formats_len" />
210     <field type="CARD8" name="image_byte_order" enum="ImageOrder" />
211     <field type="CARD8" name="bitmap_format_bit_order" enum="ImageOrder" />
212     <field type="CARD8" name="bitmap_format_scanline_unit" />
213     <field type="CARD8" name="bitmap_format_scanline_pad" />
214     <field type="KEYCODE" name="min_keycode" />
215     <field type="KEYCODE" name="max_keycode" />
216     <pad bytes="4" />
217     <list type="char" name="vendor">
218       <fieldref>vendor_len</fieldref>
219     </list>
220     <list type="FORMAT" name="pixmap_formats">
221       <fieldref>pixmap_formats_len</fieldref>
222     </list>
223     <list type="SCREEN" name="roots">
224       <fieldref>roots_len</fieldref>
225     </list>
226   </struct>
227
228   <!-- Core event types -->
229   
230   <enum name="ModMask">
231     <item name="Shift">  <bit>0</bit></item>
232     <item name="Lock">   <bit>1</bit></item>
233     <item name="Control"><bit>2</bit></item>
234     <item name="1">      <bit>3</bit></item>
235     <item name="2">      <bit>4</bit></item>
236     <item name="3">      <bit>5</bit></item>
237     <item name="4">      <bit>6</bit></item>
238     <item name="5">      <bit>7</bit></item>
239     <item name="Any">    <bit>15</bit></item>
240   </enum>
241
242   <event name="KeyPress" number="2">
243     <field type="KEYCODE" name="detail" />
244     <field type="TIMESTAMP" name="time" />
245     <field type="WINDOW" name="root" />
246     <field type="WINDOW" name="event" />
247     <field type="WINDOW" name="child" />
248     <field type="INT16" name="root_x" />
249     <field type="INT16" name="root_y" />
250     <field type="INT16" name="event_x" />
251     <field type="INT16" name="event_y" />
252     <field type="CARD16" name="state" />
253     <field type="BOOL" name="same_screen" />
254     <pad bytes="1" />
255   </event>
256
257   <eventcopy name="KeyRelease" number="3" ref="KeyPress" />
258
259   <enum name="ButtonMask">
260     <item name="1">      <bit>8</bit></item>
261     <item name="2">      <bit>9</bit></item>
262     <item name="3">      <bit>10</bit></item>
263     <item name="4">      <bit>11</bit></item>
264     <item name="5">      <bit>12</bit></item>
265     <item name="Any">    <bit>15</bit></item>
266   </enum>
267
268   <event name="ButtonPress" number="4">
269     <field type="BUTTON" name="detail" />
270     <field type="TIMESTAMP" name="time" />
271     <field type="WINDOW" name="root" />
272     <field type="WINDOW" name="event" />
273     <field type="WINDOW" name="child" />
274     <field type="INT16" name="root_x" />
275     <field type="INT16" name="root_y" />
276     <field type="INT16" name="event_x" />
277     <field type="INT16" name="event_y" />
278     <field type="CARD16" name="state" />
279     <field type="BOOL" name="same_screen" />
280     <pad bytes="1" />
281   </event>
282
283   <eventcopy name="ButtonRelease" number="5" ref="ButtonPress" />
284
285   <!-- MotionNotify detail -->
286   <enum name="Motion">
287     <item name="Normal"><value>0</value></item>
288     <item name="Hint">  <value>1</value></item>
289   </enum>
290
291   <event name="MotionNotify" number="6">
292     <field type="BYTE" name="detail" enum="Motion" />
293     <field type="TIMESTAMP" name="time" />
294     <field type="WINDOW" name="root" />
295     <field type="WINDOW" name="event" />
296     <field type="WINDOW" name="child" />
297     <field type="INT16" name="root_x" />
298     <field type="INT16" name="root_y" />
299     <field type="INT16" name="event_x" />
300     <field type="INT16" name="event_y" />
301     <field type="CARD16" name="state" />
302     <field type="BOOL" name="same_screen" />
303     <pad bytes="1" />
304   </event>
305
306   <enum name="NotifyDetail">
307     <item name="Ancestor">        <value>0</value></item>
308     <item name="Virtual">         <value>1</value></item>
309     <item name="Inferior">        <value>2</value></item>
310     <item name="Nonlinear">       <value>3</value></item>
311     <item name="NonlinearVirtual"><value>4</value></item>
312     <item name="Pointer">         <value>5</value></item>
313     <item name="PointerRoot">     <value>6</value></item>
314     <item name="None">            <value>7</value></item>
315   </enum>
316
317   <enum name="NotifyMode">
318     <item name="Normal">      <value>0</value></item>
319     <item name="Grab">        <value>1</value></item>
320     <item name="Ungrab">      <value>2</value></item>
321     <item name="WhileGrabbed"><value>3</value></item>
322   </enum>
323
324   <event name="EnterNotify" number="7">
325     <field type="BYTE" name="detail" enum="NotifyDetail" />
326     <field type="TIMESTAMP" name="time" />
327     <field type="WINDOW" name="root" />
328     <field type="WINDOW" name="event" />
329     <field type="WINDOW" name="child" />
330     <field type="INT16" name="root_x" />
331     <field type="INT16" name="root_y" />
332     <field type="INT16" name="event_x" />
333     <field type="INT16" name="event_y" />
334     <field type="CARD16" name="state" />
335     <field type="BYTE" name="mode" enum="NotifyMode" />
336     <field type="BYTE" name="same_screen_focus" />
337   </event>
338
339   <eventcopy name="LeaveNotify" number="8" ref="EnterNotify" />
340
341   <event name="FocusIn" number="9">
342     <field type="BYTE" name="detail" enum="NotifyDetail" />
343     <field type="WINDOW" name="event" />
344     <field type="BYTE" name="mode" enum="NotifyMode" />
345     <pad bytes="3" />
346   </event>
347
348   <eventcopy name="FocusOut" number="10" ref="FocusIn" />
349
350   <event name="KeymapNotify" number="11" no-sequence-number="true">
351     <list type="CARD8" name="keys"><value>31</value></list>
352   </event>
353
354   <event name="Expose" number="12">
355     <pad bytes="1" />
356     <field type="WINDOW" name="window" />
357     <field type="CARD16" name="x" />
358     <field type="CARD16" name="y" />
359     <field type="CARD16" name="width" />
360     <field type="CARD16" name="height" />
361     <field type="CARD16" name="count" />
362     <pad bytes="2" />
363   </event>
364
365   <event name="GraphicsExposure" number="13">
366     <pad bytes="1" />
367     <field type="DRAWABLE" name="drawable" />
368     <field type="CARD16" name="x" />
369     <field type="CARD16" name="y" />
370     <field type="CARD16" name="width" />
371     <field type="CARD16" name="height" />
372     <field type="CARD16" name="minor_opcode" />
373     <field type="CARD16" name="count" />
374     <field type="CARD8" name="major_opcode" />
375     <pad bytes="3" />
376   </event>
377
378   <event name="NoExposure" number="14">
379     <pad bytes="1" />
380     <field type="DRAWABLE" name="drawable" />
381     <field type="CARD16" name="minor_opcode" />
382     <field type="CARD8" name="major_opcode" />
383     <pad bytes="1" />
384   </event>
385
386   <enum name="Visibility">
387     <item name="Unobscured">       <value>0</value></item>
388     <item name="PartiallyObscured"><value>1</value></item>
389     <item name="FullyObscured">    <value>2</value></item>
390   </enum>
391
392   <event name="VisibilityNotify" number="15">
393     <pad bytes="1" />
394     <field type="WINDOW" name="window" />
395     <field type="BYTE" name="state" enum="Visibility" />
396     <pad bytes="3" />
397   </event>
398
399   <event name="CreateNotify" number="16">
400     <pad bytes="1" />
401     <field type="WINDOW" name="parent" />
402     <field type="WINDOW" name="window" />
403     <field type="INT16" name="x" />
404     <field type="INT16" name="y" />
405     <field type="CARD16" name="width" />
406     <field type="CARD16" name="height" />
407     <field type="CARD16" name="border_width" />
408     <field type="BOOL" name="override_redirect" />
409     <pad bytes="1" />
410   </event>
411
412   <event name="DestroyNotify" number="17">
413     <pad bytes="1" />
414     <field type="WINDOW" name="event" />
415     <field type="WINDOW" name="window" />
416   </event>
417
418   <event name="UnmapNotify" number="18">
419     <pad bytes="1" />
420     <field type="WINDOW" name="event" />
421     <field type="WINDOW" name="window" />
422     <field type="BOOL" name="from_configure" />
423     <pad bytes="3" />
424   </event>
425
426   <event name="MapNotify" number="19">
427     <pad bytes="1" />
428     <field type="WINDOW" name="event" />
429     <field type="WINDOW" name="window" />
430     <field type="BOOL" name="override_redirect" />
431     <pad bytes="3" />
432   </event>
433
434   <event name="MapRequest" number="20">
435     <pad bytes="1" />
436     <field type="WINDOW" name="parent" />
437     <field type="WINDOW" name="window" />
438   </event>
439
440   <event name="ReparentNotify" number="21">
441     <pad bytes="1" />
442     <field type="WINDOW" name="event" />
443     <field type="WINDOW" name="window" />
444     <field type="WINDOW" name="parent" />
445     <field type="INT16" name="x" />
446     <field type="INT16" name="y" />
447     <field type="BOOL" name="override_redirect" />
448     <pad bytes="3" />
449   </event>
450
451   <event name="ConfigureNotify" number="22">
452     <pad bytes="1" />
453     <field type="WINDOW" name="event" />
454     <field type="WINDOW" name="window" />
455     <field type="WINDOW" name="above_sibling" />
456     <field type="INT16" name="x" />
457     <field type="INT16" name="y" />
458     <field type="CARD16" name="width" />
459     <field type="CARD16" name="height" />
460     <field type="CARD16" name="border_width" />
461     <field type="BOOL" name="override_redirect" />
462     <pad bytes="1" />
463   </event>
464
465   <event name="ConfigureRequest" number="23">
466     <field type="BYTE" name="stack_mode" enum="StackMode" />
467     <field type="WINDOW" name="parent" />
468     <field type="WINDOW" name="window" />
469     <field type="WINDOW" name="sibling" />
470     <field type="INT16" name="x" />
471     <field type="INT16" name="y" />
472     <field type="CARD16" name="width" />
473     <field type="CARD16" name="height" />
474     <field type="CARD16" name="border_width" />
475     <field type="CARD16" name="value_mask" mask="ConfigWindow" />
476   </event>
477
478   <event name="GravityNotify" number="24">
479     <pad bytes="1" />
480     <field type="WINDOW" name="event" />
481     <field type="WINDOW" name="window" />
482     <field type="INT16" name="x" />
483     <field type="INT16" name="y" />
484   </event>
485
486   <event name="ResizeRequest" number="25">
487     <pad bytes="1" />
488     <field type="WINDOW" name="window" />
489     <field type="CARD16" name="width" />
490     <field type="CARD16" name="height" />
491   </event>
492
493   <enum name="Place">
494     <item name="OnTop">   <value>0</value></item>
495     <item name="OnBottom"><value>1</value></item>
496   </enum>
497
498   <event name="CirculateNotify" number="26">
499     <pad bytes="1" />
500     <field type="WINDOW" name="event" />
501     <field type="WINDOW" name="window" />
502     <pad bytes="4" />
503     <field type="BYTE" name="place" enum="Place" />
504     <pad bytes="3" />
505   </event>
506
507   <eventcopy name="CirculateRequest" number="27" ref="CirculateNotify" />
508
509   <enum name="Property">
510     <item name="NewValue"><value>0</value></item>
511     <item name="Delete">  <value>1</value></item>
512   </enum>
513
514   <event name="PropertyNotify" number="28">
515     <pad bytes="1" />
516     <field type="WINDOW" name="window" />
517     <field type="ATOM" name="atom" />
518     <field type="TIMESTAMP" name="time" />
519     <field type="BYTE" name="state" enum="Property" />
520     <pad bytes="3" />
521   </event>
522
523   <event name="SelectionClear" number="29">
524     <pad bytes="1" />
525     <field type="TIMESTAMP" name="time" />
526     <field type="WINDOW" name="owner" />
527     <field type="ATOM" name="selection" />
528   </event>
529
530   <event name="SelectionRequest" number="30">
531     <pad bytes="1" />
532     <field type="TIMESTAMP" name="time" />
533     <field type="WINDOW" name="owner" />
534     <field type="WINDOW" name="requestor" />
535     <field type="ATOM" name="selection" />
536     <field type="ATOM" name="target" />
537     <field type="ATOM" name="property" />
538   </event>
539
540   <event name="SelectionNotify" number="31">
541     <pad bytes="1" />
542     <field type="TIMESTAMP" name="time" />
543     <field type="WINDOW" name="requestor" />
544     <field type="ATOM" name="selection" />
545     <field type="ATOM" name="target" />
546     <field type="ATOM" name="property" />
547   </event>
548
549   <enum name="ColormapState">
550     <item name="Uninstalled"><value>0</value></item>
551     <item name="Installed">  <value>1</value></item>
552   </enum>
553
554   <event name="ColormapNotify" number="32">
555     <pad bytes="1" />
556     <field type="WINDOW" name="window" />
557     <field type="COLORMAP" name="colormap" />
558     <field type="BOOL" name="new" />
559     <field type="BYTE" name="state" enum="ColormapState" />
560     <pad bytes="2" />
561   </event>
562
563   <union name="ClientMessageData">
564     <!-- The format member of the ClientMessage event determines which array
565          to use. -->
566     <list type="CARD8"  name="data8" ><value>20</value></list> <!--  8 -->
567     <list type="CARD16" name="data16"><value>10</value></list> <!-- 16 -->
568     <list type="CARD32" name="data32"><value>5</value></list>  <!-- 32 -->
569   </union>
570
571   <event name="ClientMessage" number="33">
572     <field type="CARD8" name="format" /> <!-- 8, 16, or 32. -->
573     <field type="WINDOW" name="window" />
574     <field type="ATOM" name="type" />
575     <field type="ClientMessageData" name="data" />
576   </event>
577
578   <enum name="Mapping">
579     <item name="Modifier"><value>0</value></item>
580     <item name="Keyboard"><value>1</value></item>
581     <item name="Pointer"> <value>2</value></item>
582   </enum>
583
584   <event name="MappingNotify" number="34">
585     <pad bytes="1" />
586     <field type="BYTE" name="request" enum="Mapping" />
587     <field type="KEYCODE" name="first_keycode" />
588     <field type="CARD8" name="count" />
589     <pad bytes="1" />
590   </event>
591
592
593
594   <!-- Core error types -->
595
596
597
598   <error name="Request" number="1">
599     <field type="CARD32" name="bad_value" />
600     <field type="CARD16" name="minor_opcode" />
601     <field type="CARD8" name="major_opcode" />
602     <pad bytes="1" />
603   </error>
604
605   <error name="Value" number="2">
606     <field type="CARD32" name="bad_value" />
607     <field type="CARD16" name="minor_opcode" />
608     <field type="CARD8" name="major_opcode" />
609     <pad bytes="1" />
610   </error>
611
612   <errorcopy name="Window" number="3" ref="Value" />
613   <errorcopy name="Pixmap" number="4" ref="Value" />
614   <errorcopy name="Atom" number="5" ref="Value" />
615   <errorcopy name="Cursor" number="6" ref="Value" />
616   <errorcopy name="Font" number="7" ref="Value" />
617   <errorcopy name="Match" number="8" ref="Request" />
618   <errorcopy name="Drawable" number="9" ref="Value" />
619   <errorcopy name="Access" number="10" ref="Request" />
620   <errorcopy name="Alloc" number="11" ref="Request" />
621   <errorcopy name="Colormap" number="12" ref="Value" />
622   <errorcopy name="GContext" number="13" ref="Value" />
623   <errorcopy name="IDChoice" number="14" ref="Value" />
624   <errorcopy name="Name" number="15" ref="Request" />
625   <errorcopy name="Length" number="16" ref="Request" />
626   <errorcopy name="Implementation" number="17" ref="Request" />
627
628
629
630   <!-- The core requests, in major number order. -->
631   <!-- It is the caller's responsibility to free returned XCB*Rep objects. -->
632
633
634
635   <enum name="WindowClass">
636     <item name="CopyFromParent"><value>0</value></item>
637     <item name="InputOutput">   <value>1</value></item>
638     <item name="InputOnly">     <value>2</value></item>
639   </enum>
640
641   <!-- Window attributes for CreateWindow and ChangeWindowAttributes. -->
642   <enum name="CW">
643     <item name="BackPixmap">      <bit>0</bit></item>
644     <item name="BackPixel">       <bit>1</bit></item>
645     <item name="BorderPixmap">    <bit>2</bit></item>
646     <item name="BorderPixel">     <bit>3</bit></item>
647     <item name="BitGravity">      <bit>4</bit></item>
648     <item name="WinGravity">      <bit>5</bit></item>
649     <item name="BackingStore">    <bit>6</bit></item>
650     <item name="BackingPlanes">   <bit>7</bit></item>
651     <item name="BackingPixel">    <bit>8</bit></item>
652     <item name="OverrideRedirect"><bit>9</bit></item>
653     <item name="SaveUnder">       <bit>10</bit></item>
654     <item name="EventMask">       <bit>11</bit></item>
655     <item name="DontPropagate">   <bit>12</bit></item>
656     <item name="Colormap">        <bit>13</bit></item>
657     <item name="Cursor">          <bit>14</bit></item>
658   </enum>
659   
660   <enum name="BackPixmap">
661     <item name="None">          <value>0</value></item>
662     <item name="ParentRelative"><value>1</value></item>
663   </enum>
664
665   <enum name="Gravity">
666     <item name="BitForget"><value>0</value></item>
667     <item name="WinUnmap"> <value>0</value></item>
668     <item name="NorthWest"><value>1</value></item>
669     <item name="North">    <value>2</value></item>
670     <item name="NorthEast"><value>3</value></item>
671     <item name="West">     <value>4</value></item>
672     <item name="Center">   <value>5</value></item>
673     <item name="East">     <value>6</value></item>
674     <item name="SouthWest"><value>7</value></item>
675     <item name="South">    <value>8</value></item>
676     <item name="SouthEast"><value>9</value></item>
677     <item name="Static">   <value>10</value></item>
678   </enum>
679
680   <!-- Also used in XCBSCREEN field backing_stores -->
681   <enum name="BackingStore">
682     <item name="NotUseful"> <value>0</value></item>
683     <item name="WhenMapped"><value>1</value></item>
684     <item name="Always">    <value>2</value></item>
685   </enum>
686
687   <enum name="EventMask">
688     <item name="NoEvent">           <value>0</value></item>
689     <item name="KeyPress">            <bit>0</bit></item>
690     <item name="KeyRelease">          <bit>1</bit></item>
691     <item name="ButtonPress">         <bit>2</bit></item>
692     <item name="ButtonRelease">       <bit>3</bit></item>
693     <item name="EnterWindow">         <bit>4</bit></item>
694     <item name="LeaveWindow">         <bit>5</bit></item>
695     <item name="PointerMotion">       <bit>6</bit></item>
696     <item name="PointerMotionHint">   <bit>7</bit></item>
697     <item name="Button1Motion">       <bit>8</bit></item>
698     <item name="Button2Motion">       <bit>9</bit></item>
699     <item name="Button3Motion">       <bit>10</bit></item>
700     <item name="Button4Motion">       <bit>11</bit></item>
701     <item name="Button5Motion">       <bit>12</bit></item>
702     <item name="ButtonMotion">        <bit>13</bit></item>
703     <item name="KeymapState">         <bit>14</bit></item>
704     <item name="Exposure">            <bit>15</bit></item>
705     <item name="VisibilityChange">    <bit>16</bit></item>
706     <item name="StructureNotify">     <bit>17</bit></item>
707     <item name="ResizeRedirect">      <bit>18</bit></item>
708     <item name="SubstructureNotify">  <bit>19</bit></item>
709     <item name="SubstructureRedirect"><bit>20</bit></item>
710     <item name="FocusChange">         <bit>21</bit></item>
711     <item name="PropertyChange">      <bit>22</bit></item>
712     <item name="ColorMapChange">      <bit>23</bit></item>
713     <item name="OwnerGrabButton">     <bit>24</bit></item>
714   </enum>
715
716   <request name="CreateWindow" opcode="1">
717     <field type="CARD8" name="depth" />
718     <field type="WINDOW" name="wid" />
719     <field type="WINDOW" name="parent" />
720     <field type="INT16" name="x" />
721     <field type="INT16" name="y" />
722     <field type="CARD16" name="width" />
723     <field type="CARD16" name="height" />
724     <field type="CARD16" name="border_width" />
725     <field type="CARD16" name="class" enum="WindowClass" />
726     <field type="VISUALID" name="visual" />
727     <valueparam value-mask-type="CARD32"
728                 value-mask-name="value_mask"
729                 value-list-name="value_list" />
730   </request>
731
732   <request name="ChangeWindowAttributes" opcode="2">
733     <pad bytes="1" />
734     <field type="WINDOW" name="window" />
735     <valueparam value-mask-type="CARD32"
736                 value-mask-name="value_mask"
737                 value-list-name="value_list" />
738   </request>
739   
740   <enum name="MapState">
741     <item name="Unmapped">  <value>0</value></item>
742     <item name="Unviewable"><value>1</value></item>
743     <item name="Viewable">  <value>2</value></item>
744   </enum>
745
746   <request name="GetWindowAttributes" opcode="3">
747     <pad bytes="1" />
748     <field type="WINDOW" name="window" />
749     <reply>
750       <field type="CARD8" name="backing_store" enum="BackingStore" />
751       <field type="VISUALID" name="visual" />
752       <field type="CARD16" name="class" enum="WindowClass" />
753       <field type="CARD8" name="bit_gravity" enum="Gravity" />
754       <field type="CARD8" name="win_gravity" enum="Gravity" />
755       <field type="CARD32" name="backing_planes" />
756       <field type="CARD32" name="backing_pixel" />
757       <field type="BOOL" name="save_under" />
758       <field type="BOOL" name="map_is_installed" />
759       <field type="CARD8" name="map_state" enum="MapState" />
760       <field type="BOOL" name="override_redirect" />
761       <field type="COLORMAP" name="colormap" />
762       <field type="CARD32" name="all_event_masks" mask="EventMask" />
763       <field type="CARD32" name="your_event_mask" mask="EventMask" />
764       <field type="CARD16" name="do_not_propagate_mask" mask="EventMask" />
765       <pad bytes="2" />
766     </reply>
767   </request>
768
769   <request name="DestroyWindow" opcode="4">
770     <pad bytes="1" />
771     <field type="WINDOW" name="window" />
772   </request>
773
774   <request name="DestroySubwindows" opcode="5">
775     <pad bytes="1" />
776     <field type="WINDOW" name="window" />
777   </request>
778   
779   <enum name="SetMode">
780     <item name="Insert"><value>0</value></item>
781     <item name="Delete"><value>1</value></item>
782   </enum>
783
784   <request name="ChangeSaveSet" opcode="6">
785     <field type="BYTE" name="mode" enum="SetMode" />
786     <field type="WINDOW" name="window" />
787   </request>
788
789   <request name="ReparentWindow" opcode="7">
790     <pad bytes="1" />
791     <field type="WINDOW" name="window" />
792     <field type="WINDOW" name="parent" />
793     <field type="INT16" name="x" />
794     <field type="INT16" name="y" />
795   </request>
796
797   <request name="MapWindow" opcode="8">
798     <pad bytes="1" />
799     <field type="WINDOW" name="window" />
800   </request>
801
802   <request name="MapSubwindows" opcode="9">
803     <pad bytes="1" />
804     <field type="WINDOW" name="window" />
805   </request>
806
807   <request name="UnmapWindow" opcode="10">
808     <pad bytes="1" />
809     <field type="WINDOW" name="window" />
810   </request>
811
812   <request name="UnmapSubwindows" opcode="11">
813     <pad bytes="1" />
814     <field type="WINDOW" name="window" />
815   </request>
816   
817   <enum name="ConfigWindow">
818     <item name="X">          <bit>0</bit></item>
819     <item name="Y">          <bit>1</bit></item>
820     <item name="Width">      <bit>2</bit></item>
821     <item name="Height">     <bit>3</bit></item>
822     <item name="BorderWidth"><bit>4</bit></item>
823     <item name="Sibling">    <bit>5</bit></item>
824     <item name="StackMode">  <bit>6</bit></item>
825   </enum>
826   
827   <enum name="StackMode">
828     <item name="Above">   <value>0</value></item>
829     <item name="Below">   <value>1</value></item>
830     <item name="TopIf">   <value>2</value></item>
831     <item name="BottomIf"><value>3</value></item>
832     <item name="Opposite"><value>4</value></item>
833   </enum>
834
835   <request name="ConfigureWindow" opcode="12">
836     <pad bytes="1" />
837     <field type="WINDOW" name="window" />
838     <valueparam value-mask-type="CARD16"
839                 value-mask-name="value_mask"
840                 value-mask-pad="2"
841                 value-list-name="value_list" />
842   </request>
843
844   <enum name="Circulate">
845     <item name="RaiseLowest"> <value>0</value></item>
846     <item name="LowerHighest"><value>1</value></item>
847   </enum>
848
849   <request name="CirculateWindow" opcode="13">
850     <field type="CARD8" name="direction" enum="Circulate" />
851     <field type="WINDOW" name="window" />
852   </request>
853
854   <request name="GetGeometry" opcode="14">
855     <pad bytes="1" />
856     <field type="DRAWABLE" name="drawable" />
857     <reply>
858       <field type="CARD8" name="depth" />
859       <field type="WINDOW" name="root" />
860       <field type="INT16" name="x" />
861       <field type="INT16" name="y" />
862       <field type="CARD16" name="width" />
863       <field type="CARD16" name="height" />
864       <field type="CARD16" name="border_width" />
865       <pad bytes="2" />
866     </reply>
867   </request>
868
869   <request name="QueryTree" opcode="15">
870     <pad bytes="1" />
871     <field type="WINDOW" name="window" />
872     <reply>
873       <pad bytes="1" />
874       <field type="WINDOW" name="root" />
875       <field type="WINDOW" name="parent" />
876       <field type="CARD16" name="children_len" />
877       <pad bytes="14" />
878       <list type="WINDOW" name="children">
879         <fieldref>children_len</fieldref>
880       </list>
881     </reply>
882   </request>
883
884   <request name="InternAtom" opcode="16">
885     <field type="BOOL" name="only_if_exists" />
886     <field type="CARD16" name="name_len" />
887     <pad bytes="2" />
888     <list type="char" name="name">
889       <fieldref>name_len</fieldref>
890     </list>
891     <reply>
892       <pad bytes="1" />
893       <field type="ATOM" name="atom" />
894     </reply>
895   </request>
896
897   <request name="GetAtomName" opcode="17">
898     <pad bytes="1" />
899     <field type="ATOM" name="atom" />
900     <reply>
901       <pad bytes="1" />
902       <field type="CARD16" name="name_len" />
903       <pad bytes="22" />
904       <list type="char" name="name">
905         <fieldref>name_len</fieldref>
906       </list>
907     </reply>
908   </request>
909   
910   <enum name="PropMode">
911     <item name="Replace"><value>0</value></item>
912     <item name="Prepend"><value>1</value></item>
913     <item name="Append"> <value>2</value></item>
914   </enum>
915
916   <request name="ChangeProperty" opcode="18">
917     <field type="CARD8" name="mode" enum="PropMode" />
918     <field type="WINDOW" name="window" />
919     <field type="ATOM" name="property" />
920     <field type="ATOM" name="type" />
921     <field type="CARD8" name="format" />
922     <pad bytes="3" />
923     <field type="CARD32" name="data_len" />
924     <list type="void" name="data">
925       <op op="/">
926         <op op="*">
927           <fieldref>data_len</fieldref>
928           <fieldref>format</fieldref>
929         </op>
930         <value>8</value>
931       </op>
932     </list>
933   </request>
934
935   <request name="DeleteProperty" opcode="19">
936     <pad bytes="1" />
937     <field type="WINDOW" name="window" />
938     <field type="ATOM" name="property" />
939   </request>
940   
941   <enum name="GetPropertyType">
942     <item name="Any"><value>0</value></item>
943   </enum>
944
945   <request name="GetProperty" opcode="20">
946     <field type="BOOL" name="delete" />
947     <field type="WINDOW" name="window" />
948     <field type="ATOM" name="property" />
949     <field type="ATOM" name="type" enum="GetPropertyType" />
950     <field type="CARD32" name="long_offset" />
951     <field type="CARD32" name="long_length" />
952     <reply>
953       <field type="CARD8" name="format" />
954       <field type="ATOM" name="type" />
955       <field type="CARD32" name="bytes_after" />
956       <field type="CARD32" name="value_len" />
957       <pad bytes="12" />
958       <list type="void" name="value">
959         <fieldref>value_len</fieldref>
960       </list>
961     </reply>
962   </request>
963
964   <request name="ListProperties" opcode="21">
965     <pad bytes="1" />
966     <field type="WINDOW" name="window" />
967     <reply>
968       <pad bytes="1" />
969       <field type="CARD16" name="atoms_len" />
970       <pad bytes="22" />
971       <list type="ATOM" name="atoms">
972         <fieldref>atoms_len</fieldref>
973       </list>
974     </reply>
975   </request>
976
977   <request name="SetSelectionOwner" opcode="22">
978     <pad bytes="1" />
979     <field type="WINDOW" name="owner" />
980     <field type="ATOM" name="selection" />
981     <field type="TIMESTAMP" name="time" />
982   </request>
983
984   <request name="GetSelectionOwner" opcode="23">
985     <pad bytes="1" />
986     <field type="ATOM" name="selection" />
987     <reply>
988       <pad bytes="1" />
989       <field type="WINDOW" name="owner" />
990     </reply>
991   </request>
992
993   <request name="ConvertSelection" opcode="24">
994     <pad bytes="1" />
995     <field type="WINDOW" name="requestor" />
996     <field type="ATOM" name="selection" />
997     <field type="ATOM" name="target" />
998     <field type="ATOM" name="property" />
999     <field type="TIMESTAMP" name="time" />
1000   </request>
1001
1002   <enum name="SendEventDest">
1003     <item name="PointerWindow"><value>0</value></item>
1004     <item name="ItemFocus">    <value>1</value></item>
1005   </enum>
1006
1007   <request name="SendEvent" opcode="25">
1008     <field type="BOOL" name="propagate" />
1009     <field type="WINDOW" name="destination" />
1010     <field type="CARD32" name="event_mask" mask="EventMask" />
1011     <list type="char" name="event"><value>32</value></list>
1012   </request>
1013
1014   <enum name="GrabMode">
1015     <item name="Sync"> <value>0</value></item>
1016     <item name="Async"><value>1</value></item>
1017   </enum>
1018
1019   <enum name="GrabStatus">
1020     <item name="Success">       <value>0</value></item>
1021     <item name="AlreadyGrabbed"><value>1</value></item>
1022     <item name="InvalidTime">   <value>2</value></item>
1023     <item name="NotViewable">   <value>3</value></item>
1024     <item name="Frozen">        <value>4</value></item>
1025   </enum>
1026
1027   <request name="GrabPointer" opcode="26">
1028     <field type="BOOL" name="owner_events" />
1029     <field type="WINDOW" name="grab_window" />
1030     <field type="CARD16" name="event_mask" mask="EventMask" />
1031     <field type="BYTE" name="pointer_mode" enum="GrabMode" />
1032     <field type="BYTE" name="keyboard_mode" enum="GrabMode" />
1033     <field type="WINDOW" name="confine_to" />
1034     <field type="CURSOR" name="cursor" />
1035     <field type="TIMESTAMP" name="time" />
1036     <reply>
1037       <field type="BYTE" name="status" enum="GrabStatus" />
1038     </reply>
1039   </request>
1040
1041   <request name="UngrabPointer" opcode="27">
1042     <pad bytes="1" />
1043     <field type="TIMESTAMP" name="time" />
1044   </request>
1045
1046   <enum name="ButtonIndex">
1047      <item name="Any"><value>0</value></item>
1048      <item name="1">  <value>1</value></item>
1049      <item name="2">  <value>2</value></item>
1050      <item name="3">  <value>3</value></item>
1051      <item name="4">  <value>4</value></item>
1052      <item name="5">  <value>5</value></item>
1053   </enum>
1054
1055   <request name="GrabButton" opcode="28">
1056     <field type="BOOL" name="owner_events" />
1057     <field type="WINDOW" name="grab_window" />
1058     <field type="CARD16" name="event_mask" mask="EventMask" />
1059     <field type="CARD8" name="pointer_mode" enum="GrabMode" />
1060     <field type="CARD8" name="keyboard_mode" enum="GrabMode" />
1061     <field type="WINDOW" name="confine_to" />
1062     <field type="CURSOR" name="cursor" />
1063     <field type="CARD8" name="button" enum="ButtonIndex" />
1064     <pad bytes="1" />
1065     <field type="CARD16" name="modifiers" mask="ModMask" />
1066   </request>
1067
1068   <request name="UngrabButton" opcode="29">
1069     <field type="CARD8" name="button" enum="ButtonIndex" />
1070     <field type="WINDOW" name="grab_window" />
1071     <field type="CARD16" name="modifiers" mask="ModMask" />
1072     <pad bytes="2" />
1073   </request>
1074
1075   <request name="ChangeActivePointerGrab" opcode="30">
1076     <pad bytes="1" />
1077     <field type="CURSOR" name="cursor" />
1078     <field type="TIMESTAMP" name="time" />
1079     <field type="CARD16" name="event_mask" mask="EventMask" />
1080     <pad bytes="2" />
1081   </request>
1082
1083   <request name="GrabKeyboard" opcode="31">
1084     <field type="BOOL" name="owner_events" />
1085     <field type="WINDOW" name="grab_window" />
1086     <field type="TIMESTAMP" name="time" />
1087     <field type="BYTE" name="pointer_mode" enum="GrabMode" />
1088     <field type="BYTE" name="keyboard_mode" enum="GrabMode" />
1089     <pad bytes="2" />
1090     <reply>
1091       <field type="BYTE" name="status" enum="GrabStatus" />
1092     </reply>
1093   </request>
1094
1095   <request name="UngrabKeyboard" opcode="32">
1096     <pad bytes="1" />
1097     <field type="TIMESTAMP" name="time" />
1098   </request>
1099
1100   <!-- Use KEYCODE any = { XCBGrabAny }; to grab any key -->
1101   <enum name="Grab">
1102     <item name="Any"><value>0</value></item>
1103   </enum>
1104
1105   <request name="GrabKey" opcode="33">
1106     <field type="BOOL" name="owner_events" />
1107     <field type="WINDOW" name="grab_window" />
1108     <field type="CARD16" name="modifiers" mask="ModMask" />
1109     <field type="KEYCODE" name="key" />
1110     <field type="CARD8" name="pointer_mode" enum="GrabMode" />
1111     <field type="CARD8" name="keyboard_mode" enum="GrabMode" />
1112     <pad bytes="3" />
1113   </request>
1114
1115   <request name="UngrabKey" opcode="34">
1116     <field type="KEYCODE" name="key" />
1117     <field type="WINDOW" name="grab_window" />
1118     <field type="CARD16" name="modifiers" mask="ModMask" />
1119     <pad bytes="2" />
1120   </request>
1121
1122   <enum name="Allow">
1123     <item name="AsyncPointer">  <value>0</value></item>
1124     <item name="SyncPointer">   <value>1</value></item>
1125     <item name="ReplayPointer"> <value>2</value></item>
1126     <item name="AsyncKeyboard"> <value>3</value></item>
1127     <item name="SyncKeyboard">  <value>4</value></item>
1128     <item name="ReplayKeyboard"><value>5</value></item>
1129     <item name="AsyncBoth">     <value>6</value></item>
1130     <item name="SyncBoth">      <value>7</value></item>
1131   </enum>
1132
1133   <request name="AllowEvents" opcode="35">
1134     <field type="CARD8" name="mode" enum="Allow" />
1135     <field type="TIMESTAMP" name="time" />
1136   </request>
1137
1138   <request name="GrabServer" opcode="36" />
1139
1140   <request name="UngrabServer" opcode="37" />
1141
1142   <request name="QueryPointer" opcode="38">
1143     <pad bytes="1" />
1144     <field type="WINDOW" name="window" />
1145     <reply>
1146       <field type="BOOL" name="same_screen" />
1147       <field type="WINDOW" name="root" />
1148       <field type="WINDOW" name="child" />
1149       <field type="INT16" name="root_x" />
1150       <field type="INT16" name="root_y" />
1151       <field type="INT16" name="win_x" />
1152       <field type="INT16" name="win_y" />
1153       <field type="CARD16" name="mask" />
1154       <pad bytes="2" />
1155     </reply>
1156   </request>
1157
1158   <struct name="TIMECOORD">
1159     <field type="TIMESTAMP" name="time" />
1160     <field type="INT16" name="x" />
1161     <field type="INT16" name="y" />
1162   </struct>
1163
1164   <request name="GetMotionEvents" opcode="39">
1165     <pad bytes="1" />
1166     <field type="WINDOW" name="window" />
1167     <field type="TIMESTAMP" name="start" />
1168     <field type="TIMESTAMP" name="stop" />
1169     <reply>
1170       <pad bytes="1" />
1171       <field type="CARD32" name="events_len" />
1172       <pad bytes="20" />
1173       <list type="TIMECOORD" name="events">
1174         <fieldref>events_len</fieldref>
1175       </list>
1176     </reply>
1177   </request>
1178
1179   <request name="TranslateCoordinates" opcode="40">
1180     <pad bytes="1" />
1181     <field type="WINDOW" name="src_window" />
1182     <field type="WINDOW" name="dst_window" />
1183     <field type="INT16" name="src_x" />
1184     <field type="INT16" name="src_y" />
1185     <reply>
1186       <field type="BOOL" name="same_screen" />
1187       <field type="WINDOW" name="child" />
1188       <field type="CARD16" name="dst_x" />
1189       <field type="CARD16" name="dst_y" />
1190     </reply>
1191   </request>
1192
1193   <request name="WarpPointer" opcode="41">
1194     <pad bytes="1" />
1195     <field type="WINDOW" name="src_window" />
1196     <field type="WINDOW" name="dst_window" />
1197     <field type="INT16" name="src_x" />
1198     <field type="INT16" name="src_y" />
1199     <field type="CARD16" name="src_width" />
1200     <field type="CARD16" name="src_height" />
1201     <field type="INT16" name="dst_x" />
1202     <field type="INT16" name="dst_y" />
1203   </request>
1204
1205   <!-- used for revert_to and focus -->
1206   <enum name="InputFocus">
1207     <item name="None">       <value>0</value></item>
1208     <item name="PointerRoot"><value>1</value></item>
1209     <item name="Parent">     <value>2</value></item>  <!-- revert_to only -->
1210   </enum>
1211
1212   <request name="SetInputFocus" opcode="42">
1213     <field type="CARD8" name="revert_to" enum="InputFocus" />
1214     <field type="WINDOW" name="focus" />
1215     <field type="TIMESTAMP" name="time" />
1216   </request>
1217
1218   <request name="GetInputFocus" opcode="43">
1219     <reply>
1220       <field type="CARD8" name="revert_to" enum="InputFocus" />
1221       <field type="WINDOW" name="focus" />
1222     </reply>
1223   </request>
1224
1225   <request name="QueryKeymap" opcode="44">
1226     <reply>
1227       <pad bytes="1" />
1228       <list type="CARD8" name="keys"><value>32</value></list>
1229     </reply>
1230   </request>
1231
1232   <request name="OpenFont" opcode="45">
1233     <pad bytes="1" />
1234     <field type="FONT" name="fid" />
1235     <field type="CARD16" name="name_len" />
1236     <pad bytes="2" />
1237     <list type="char" name="name">
1238       <fieldref>name_len</fieldref>
1239     </list>
1240   </request>
1241
1242   <request name="CloseFont" opcode="46">
1243     <pad bytes="1" />
1244     <field type="FONT" name="font" />
1245   </request>
1246
1247   <enum name="FontDraw">
1248     <item name="LeftToRight"><value>0</value></item>
1249     <item name="RightToLeft"><value>1</value></item>
1250   </enum>
1251
1252   <struct name="FONTPROP">
1253     <field type="ATOM" name="name" />
1254     <field type="CARD32" name="value" />
1255   </struct>
1256
1257   <struct name="CHARINFO">
1258     <field type="INT16" name="left_side_bearing" />
1259     <field type="INT16" name="right_side_bearing" />
1260     <field type="INT16" name="character_width" />
1261     <field type="INT16" name="ascent" />
1262     <field type="INT16" name="descent" />
1263     <field type="CARD16" name="attributes" />
1264   </struct>
1265
1266   <request name="QueryFont" opcode="47">
1267     <pad bytes="1" />
1268     <field type="FONTABLE" name="font" />
1269     <reply>
1270       <pad bytes="1" />
1271       <field type="CHARINFO" name="min_bounds" />
1272       <pad bytes="4" />
1273       <field type="CHARINFO" name="max_bounds" />
1274       <pad bytes="4" />
1275       <field type="CARD16" name="min_char_or_byte2" />
1276       <field type="CARD16" name="max_char_or_byte2" />
1277       <field type="CARD16" name="default_char" />
1278       <field type="CARD16" name="properties_len" />
1279       <field type="BYTE" name="draw_direction" enum="FontDraw" />
1280       <field type="CARD8" name="min_byte1" />
1281       <field type="CARD8" name="max_byte1" />
1282       <field type="BOOL" name="all_chars_exist" />
1283       <field type="INT16" name="font_ascent" />
1284       <field type="INT16" name="font_descent" />
1285       <field type="CARD32" name="char_infos_len" />
1286       <list type="FONTPROP" name="properties">
1287         <fieldref>properties_len</fieldref>
1288       </list>
1289       <list type="CHARINFO" name="char_infos">
1290         <fieldref>char_infos_len</fieldref>
1291       </list>
1292     </reply>
1293   </request>
1294
1295   <request name="QueryTextExtents" opcode="48">
1296     <exprfield type="BOOL" name="odd_length">
1297       <op op="&amp;"><fieldref>string_len</fieldref><value>1</value></op>
1298     </exprfield>
1299     <field type="FONTABLE" name="font" />
1300     <list type="CHAR2B" name="string" />
1301     <reply>
1302       <field type="BYTE" name="draw_direction" enum="FontDraw" />
1303       <field type="INT16" name="font_ascent" />
1304       <field type="INT16" name="font_descent" />
1305       <field type="INT16" name="overall_ascent" />
1306       <field type="INT16" name="overall_descent" />
1307       <field type="INT32" name="overall_width" />
1308       <field type="INT32" name="overall_left" />
1309       <field type="INT32" name="overall_right" />
1310     </reply>
1311   </request>
1312
1313   <struct name="STR">
1314     <field type="CARD8" name="name_len" />
1315     <list type="char" name="name">
1316       <fieldref>name_len</fieldref>
1317     </list>
1318   </struct>
1319
1320   <request name="ListFonts" opcode="49">
1321     <pad bytes="1" />
1322     <field type="CARD16" name="max_names" />
1323     <field type="CARD16" name="pattern_len" />
1324     <list type="char" name="pattern">
1325       <fieldref>pattern_len</fieldref>
1326     </list>
1327     <reply>
1328       <pad bytes="1" />
1329       <field type="CARD16" name="names_len" />
1330       <pad bytes="22" />
1331       <list type="STR" name="names">
1332         <fieldref>names_len</fieldref>
1333       </list>
1334     </reply>
1335   </request>
1336
1337   <request name="ListFontsWithInfo" opcode="50">
1338     <pad bytes="1" />
1339     <field type="CARD16" name="max_names" />
1340     <field type="CARD16" name="pattern_len" />
1341     <list type="char" name="pattern">
1342       <fieldref>pattern_len</fieldref>
1343     </list>
1344     <reply>
1345       <field type="CARD8" name="name_len" />
1346       <field type="CHARINFO" name="min_bounds" />
1347       <pad bytes="4" />
1348       <field type="CHARINFO" name="max_bounds" />
1349       <pad bytes="4" />
1350       <field type="CARD16" name="min_char_or_byte2" />
1351       <field type="CARD16" name="max_char_or_byte2" />
1352       <field type="CARD16" name="default_char" />
1353       <field type="CARD16" name="properties_len" />
1354       <field type="BYTE" name="draw_direction" enum="FontDraw" />
1355       <field type="CARD8" name="min_byte1" />
1356       <field type="CARD8" name="max_byte1" />
1357       <field type="BOOL" name="all_chars_exist" />
1358       <field type="INT16" name="font_ascent" />
1359       <field type="INT16" name="font_descent" />
1360       <field type="CARD32" name="replies_hint" />
1361       <list type="FONTPROP" name="properties">
1362         <fieldref>properties_len</fieldref>
1363       </list>
1364       <list type="char" name="name">
1365         <fieldref>name_len</fieldref>
1366       </list>
1367     </reply>
1368   </request>
1369
1370   <request name="SetFontPath" opcode="51">
1371     <pad bytes="1" />
1372     <field type="CARD16" name="font_qty" />
1373     <list type="char" name="path" />
1374   </request>
1375
1376   <request name="GetFontPath" opcode="52">
1377     <reply>
1378       <pad bytes="1" />
1379       <field type="CARD16" name="path_len" />
1380       <pad bytes="22" />
1381       <list type="STR" name="path">
1382         <fieldref>path_len</fieldref>
1383       </list>
1384     </reply>
1385   </request>
1386
1387   <request name="CreatePixmap" opcode="53">
1388     <field type="CARD8" name="depth" />
1389     <field type="PIXMAP" name="pid" />
1390     <field type="DRAWABLE" name="drawable" />
1391     <field type="CARD16" name="width" />
1392     <field type="CARD16" name="height" />
1393   </request>
1394
1395   <request name="FreePixmap" opcode="54">
1396     <pad bytes="1" />
1397     <field type="PIXMAP" name="pixmap" />
1398   </request>
1399   
1400   <enum name="GC">
1401     <item name="Function">          <bit>0</bit></item>
1402     <item name="PlaneMask">         <bit>1</bit></item>
1403     <item name="Foreground">        <bit>2</bit></item>
1404     <item name="Background">        <bit>3</bit></item>
1405     <item name="LineWidth">         <bit>4</bit></item>
1406     <item name="LineStyle">         <bit>5</bit></item>
1407     <item name="CapStyle">          <bit>6</bit></item>
1408     <item name="JoinStyle">         <bit>7</bit></item>
1409     <item name="FillStyle">         <bit>8</bit></item>
1410     <item name="FillRule">          <bit>9</bit></item>
1411     <item name="Tile">              <bit>10</bit></item>
1412     <item name="Stipple">           <bit>11</bit></item>
1413     <item name="TileStippleOriginX"><bit>12</bit></item>
1414     <item name="TileStippleOriginY"><bit>13</bit></item>
1415     <item name="Font">              <bit>14</bit></item>
1416     <item name="SubwindowMode">     <bit>15</bit></item>
1417     <item name="GraphicsExposures"> <bit>16</bit></item>
1418     <item name="ClipOriginX">       <bit>17</bit></item>
1419     <item name="ClipOriginY">       <bit>18</bit></item>
1420     <item name="ClipMask">          <bit>19</bit></item>
1421     <item name="DashOffset">        <bit>20</bit></item>
1422     <item name="DashList">          <bit>21</bit></item>
1423     <item name="ArcMode">           <bit>22</bit></item>
1424   </enum>
1425
1426   <!-- GC Function values -->
1427   <enum name="GX">
1428     <item name="clear">       <value>0</value></item>
1429     <item name="and">         <value>1</value></item>
1430     <item name="andReverse">  <value>2</value></item>
1431     <item name="copy">        <value>3</value></item>
1432     <item name="andInverted"> <value>4</value></item>
1433     <item name="noop">        <value>5</value></item>
1434     <item name="xor">         <value>6</value></item>
1435     <item name="or">          <value>7</value></item>
1436     <item name="nor">         <value>8</value></item>
1437     <item name="equiv">       <value>9</value></item>
1438     <item name="invert">      <value>10</value></item>
1439     <item name="orReverse">   <value>11</value></item>
1440     <item name="copyInverted"><value>12</value></item>
1441     <item name="orInverted">  <value>13</value></item>
1442     <item name="nand">        <value>14</value></item>
1443     <item name="set">         <value>15</value></item>
1444   </enum>
1445
1446   <enum name="LineStyle">
1447     <item name="Solid">     <value>0</value></item>
1448     <item name="OnOffDash"> <value>1</value></item>
1449     <item name="DoubleDash"><value>2</value></item>
1450   </enum>
1451
1452   <enum name="CapStyle">
1453     <item name="NotLast">   <value>0</value></item>
1454     <item name="Butt">      <value>1</value></item>
1455     <item name="Round">     <value>2</value></item>
1456     <item name="Projecting"><value>3</value></item>
1457   </enum>
1458
1459   <enum name="JoinStyle">
1460     <item name="Mitre">     <value>0</value></item>
1461     <item name="Round">     <value>1</value></item>
1462     <item name="Bevel">     <value>2</value></item>
1463   </enum>
1464
1465   <enum name="FillStyle">
1466     <item name="Solid">         <value>0</value></item>
1467     <item name="Tiled">         <value>1</value></item>
1468     <item name="Stippled">      <value>2</value></item>
1469     <item name="OpaqueStippled"><value>3</value></item>
1470   </enum>
1471
1472   <enum name="FillRule">
1473     <item name="EvenOdd"><value>0</value></item>
1474     <item name="Winding"><value>1</value></item>
1475   </enum>
1476
1477   <enum name="SubwindowMode">
1478     <item name="ClipByChildren">  <value>0</value></item>
1479     <item name="IncludeInferiors"><value>1</value></item>
1480   </enum>
1481
1482   <enum name="ArcMode">
1483     <item name="Chord">   <value>0</value></item>
1484     <item name="PieSlice"><value>1</value></item>
1485   </enum>
1486
1487   <request name="CreateGC" opcode="55">
1488     <pad bytes="1" />
1489     <field type="GCONTEXT" name="cid" />
1490     <field type="DRAWABLE" name="drawable" />
1491     <valueparam value-mask-type="CARD32"
1492                 value-mask-name="value_mask"
1493                 value-list-name="value_list" />
1494   </request>
1495
1496   <request name="ChangeGC" opcode="56">
1497     <pad bytes="1" />
1498     <field type="GCONTEXT" name="gc" />
1499     <valueparam value-mask-type="CARD32"
1500                 value-mask-name="value_mask"
1501                 value-list-name="value_list" />
1502   </request>
1503
1504   <request name="CopyGC" opcode="57">
1505     <pad bytes="1" />
1506     <field type="GCONTEXT" name="src_gc" />
1507     <field type="GCONTEXT" name="dst_gc" />
1508     <field type="CARD32" name="value_mask" mask="GC" />
1509   </request>
1510
1511   <request name="SetDashes" opcode="58">
1512     <pad bytes="1" />
1513     <field type="GCONTEXT" name="gc" />
1514     <field type="CARD16" name="dash_offset" />
1515     <field type="CARD16" name="dashes_len" />
1516     <list type="CARD8" name="dashes">
1517       <fieldref>dashes_len</fieldref>
1518     </list>
1519   </request>
1520
1521   <enum name="ClipOrdering">
1522     <item name="Unsorted"><value>0</value></item>
1523     <item name="YSorted"> <value>1</value></item>
1524     <item name="YXSorted"><value>2</value></item>
1525     <item name="YXBanded"><value>3</value></item>
1526   </enum>
1527
1528   <request name="SetClipRectangles" opcode="59">
1529     <field type="BYTE" name="ordering" enum="ClipOrdering" />
1530     <field type="GCONTEXT" name="gc" />
1531     <field type="INT16" name="clip_x_origin" />
1532     <field type="INT16" name="clip_y_origin" />
1533     <list type="RECTANGLE" name="rectangles" />
1534   </request>
1535
1536   <request name="FreeGC" opcode="60">
1537     <pad bytes="1" />
1538     <field type="GCONTEXT" name="gc" />
1539   </request>
1540
1541   <request name="ClearArea" opcode="61">
1542     <field type="BOOL" name="exposures" />
1543     <field type="WINDOW" name="window" />
1544     <field type="INT16" name="x" />
1545     <field type="INT16" name="y" />
1546     <field type="CARD16" name="width" />
1547     <field type="CARD16" name="height" />
1548   </request>
1549
1550   <request name="CopyArea" opcode="62">
1551     <pad bytes="1" />
1552     <field type="DRAWABLE" name="src_drawable" />
1553     <field type="DRAWABLE" name="dst_drawable" />
1554     <field type="GCONTEXT" name="gc" />
1555     <field type="INT16" name="src_x" />
1556     <field type="INT16" name="src_y" />
1557     <field type="INT16" name="dst_x" />
1558     <field type="INT16" name="dst_y" />
1559     <field type="CARD16" name="width" />
1560     <field type="CARD16" name="height" />
1561   </request>
1562
1563   <request name="CopyPlane" opcode="63">
1564     <pad bytes="1" />
1565     <field type="DRAWABLE" name="src_drawable" />
1566     <field type="DRAWABLE" name="dst_drawable" />
1567     <field type="GCONTEXT" name="gc" />
1568     <field type="INT16" name="src_x" />
1569     <field type="INT16" name="src_y" />
1570     <field type="INT16" name="dst_x" />
1571     <field type="INT16" name="dst_y" />
1572     <field type="CARD16" name="width" />
1573     <field type="CARD16" name="height" />
1574     <field type="CARD32" name="bit_plane" />
1575   </request>
1576   
1577   <enum name="CoordMode">
1578     <item name="Origin">  <value>0</value></item>
1579     <item name="Previous"><value>1</value></item>
1580   </enum>
1581
1582   <!-- combine-adjacent doesn't work for mode==Relative -->
1583   <request name="PolyPoint" opcode="64">
1584     <field type="BYTE" name="coordinate_mode" enum="CoordMode" />
1585     <field type="DRAWABLE" name="drawable" />
1586     <field type="GCONTEXT" name="gc" />
1587     <list type="POINT" name="points" />
1588   </request>
1589
1590   <request name="PolyLine" opcode="65" combine-adjacent="true">
1591     <field type="BYTE" name="coordinate_mode" enum="CoordMode" />
1592     <field type="DRAWABLE" name="drawable" />
1593     <field type="GCONTEXT" name="gc" />
1594     <list type="POINT" name="points" />
1595   </request>
1596
1597   <struct name="SEGMENT">
1598     <field type="INT16" name="x1" />
1599     <field type="INT16" name="y1" />
1600     <field type="INT16" name="x2" />
1601     <field type="INT16" name="y2" />
1602   </struct>
1603
1604   <request name="PolySegment" opcode="66" combine-adjacent="true">
1605     <pad bytes="1" />
1606     <field type="DRAWABLE" name="drawable" />
1607     <field type="GCONTEXT" name="gc" />
1608     <list type="SEGMENT" name="segments" />
1609   </request>
1610
1611   <request name="PolyRectangle" opcode="67" combine-adjacent="true">
1612     <pad bytes="1" />
1613     <field type="DRAWABLE" name="drawable" />
1614     <field type="GCONTEXT" name="gc" />
1615     <list type="RECTANGLE" name="rectangles" />
1616   </request>
1617
1618   <!--
1619     The semantics of PolyArc change after the first arc: the GC's
1620     join style may be applied to successive arcs under some circumstances.
1621     So using combine-adjacent here is bad.
1622   -->
1623   <request name="PolyArc" opcode="68">
1624     <pad bytes="1" />
1625     <field type="DRAWABLE" name="drawable" />
1626     <field type="GCONTEXT" name="gc" />
1627     <list type="ARC" name="arcs" />
1628   </request>
1629
1630   <enum name="PolyShape">
1631     <item name="Complex">  <value>0</value></item>
1632     <item name="Nonconvex"><value>1</value></item>
1633     <item name="Convex">   <value>2</value></item>
1634   </enum>
1635
1636   <request name="FillPoly" opcode="69">
1637     <pad bytes="1" />
1638     <field type="DRAWABLE" name="drawable" />
1639     <field type="GCONTEXT" name="gc" />
1640     <field type="CARD8" name="shape" enum="PolyShape" />
1641     <field type="CARD8" name="coordinate_mode" enum="CoordMode" />
1642     <pad bytes="2" />
1643     <list type="POINT" name="points" />
1644   </request>
1645
1646   <request name="PolyFillRectangle" opcode="70" combine-adjacent="true">
1647     <pad bytes="1" />
1648     <field type="DRAWABLE" name="drawable" />
1649     <field type="GCONTEXT" name="gc" />
1650     <list type="RECTANGLE" name="rectangles" />
1651   </request>
1652
1653   <request name="PolyFillArc" opcode="71" combine-adjacent="true">
1654     <pad bytes="1" />
1655     <field type="DRAWABLE" name="drawable" />
1656     <field type="GCONTEXT" name="gc" />
1657     <list type="ARC" name="arcs" />
1658   </request>
1659   
1660   <enum name="ImageFormat">
1661     <item name="XYBitmap"><value>0</value></item>
1662     <item name="XYPixmap"><value>1</value></item>
1663     <item name="ZPixmap"> <value>2</value></item>
1664   </enum>
1665
1666   <request name="PutImage" opcode="72">
1667     <field type="CARD8" name="format" enum="ImageFormat" />
1668     <field type="DRAWABLE" name="drawable" />
1669     <field type="GCONTEXT" name="gc" />
1670     <field type="CARD16" name="width" />
1671     <field type="CARD16" name="height" />
1672     <field type="INT16" name="dst_x" />
1673     <field type="INT16" name="dst_y" />
1674     <field type="CARD8" name="left_pad" />
1675     <field type="CARD8" name="depth" />
1676     <pad bytes="2" />
1677     <list type="BYTE" name="data" />
1678   </request>
1679
1680   <!-- FIXME: data array in reply will include padding, but ought not to. -->
1681   <request name="GetImage" opcode="73">
1682     <field type="CARD8" name="format" enum="ImageFormat" />
1683     <field type="DRAWABLE" name="drawable" />
1684     <field type="INT16" name="x" />
1685     <field type="INT16" name="y" />
1686     <field type="CARD16" name="width" />
1687     <field type="CARD16" name="height" />
1688     <field type="CARD32" name="plane_mask" />
1689     <reply>
1690       <field type="CARD8" name="depth" />
1691       <field type="VISUALID" name="visual" />
1692       <pad bytes="20" />
1693       <list type="BYTE" name="data">
1694         <op op="*">
1695           <fieldref>length</fieldref>
1696           <value>4</value>
1697         </op>
1698       </list>
1699     </reply>
1700   </request>
1701
1702   <request name="PolyText8" opcode="74">
1703     <pad bytes="1" />
1704     <field type="DRAWABLE" name="drawable" />
1705     <field type="GCONTEXT" name="gc" />
1706     <field type="INT16" name="x" />
1707     <field type="INT16" name="y" />
1708     <list type="BYTE" name="items" />
1709   </request>
1710
1711   <request name="PolyText16" opcode="75">
1712     <pad bytes="1" />
1713     <field type="DRAWABLE" name="drawable" />
1714     <field type="GCONTEXT" name="gc" />
1715     <field type="INT16" name="x" />
1716     <field type="INT16" name="y" />
1717     <list type="BYTE" name="items" />
1718   </request>
1719
1720   <request name="ImageText8" opcode="76">
1721     <field type="BYTE" name="string_len" />
1722     <field type="DRAWABLE" name="drawable" />
1723     <field type="GCONTEXT" name="gc" />
1724     <field type="INT16" name="x" />
1725     <field type="INT16" name="y" />
1726     <list type="char" name="string">
1727       <fieldref>string_len</fieldref>
1728     </list>
1729   </request>
1730
1731   <request name="ImageText16" opcode="77">
1732     <field type="BYTE" name="string_len" />
1733     <field type="DRAWABLE" name="drawable" />
1734     <field type="GCONTEXT" name="gc" />
1735     <field type="INT16" name="x" />
1736     <field type="INT16" name="y" />
1737     <list type="CHAR2B" name="string">
1738       <fieldref>string_len</fieldref>
1739     </list>
1740   </request>
1741
1742   <enum name= "ColormapAlloc">
1743     <item name="None"><value>0</value></item>
1744     <item name="All"> <value>1</value></item>
1745   </enum>
1746
1747   <request name="CreateColormap" opcode="78">
1748     <field type="BYTE" name="alloc" enum="ColormapAlloc" />
1749     <field type="COLORMAP" name="mid" />
1750     <field type="WINDOW" name="window" />
1751     <field type="VISUALID" name="visual" />
1752   </request>
1753
1754   <request name="FreeColormap" opcode="79">
1755     <pad bytes="1" />
1756     <field type="COLORMAP" name="cmap" />
1757   </request>
1758
1759   <request name="CopyColormapAndFree" opcode="80">
1760     <pad bytes="1" />
1761     <field type="COLORMAP" name="mid" />
1762     <field type="COLORMAP" name="src_cmap" />
1763   </request>
1764
1765   <request name="InstallColormap" opcode="81">
1766     <pad bytes="1" />
1767     <field type="COLORMAP" name="cmap" />
1768   </request>
1769
1770   <request name="UninstallColormap" opcode="82">
1771     <pad bytes="1" />
1772     <field type="COLORMAP" name="cmap" />
1773   </request>
1774
1775   <request name="ListInstalledColormaps" opcode="83">
1776     <pad bytes="1" />
1777     <field type="WINDOW" name="window" />
1778     <reply>
1779       <pad bytes="1" />
1780       <field type="CARD16" name="cmaps_len" />
1781       <pad bytes="22" />
1782       <list type="COLORMAP" name="cmaps">
1783         <fieldref>cmaps_len</fieldref>
1784       </list>
1785     </reply>
1786   </request>
1787
1788   <request name="AllocColor" opcode="84">
1789     <pad bytes="1" />
1790     <field type="COLORMAP" name="cmap" />
1791     <field type="CARD16" name="red" />
1792     <field type="CARD16" name="green" />
1793     <field type="CARD16" name="blue" />
1794     <pad bytes="2" />
1795     <reply>
1796       <pad bytes="1" />
1797       <field type="CARD16" name="red" />
1798       <field type="CARD16" name="green" />
1799       <field type="CARD16" name="blue" />
1800       <pad bytes="2" />
1801       <field type="CARD32" name="pixel" />
1802     </reply>
1803   </request>
1804
1805   <request name="AllocNamedColor" opcode="85">
1806     <pad bytes="1" />
1807     <field type="COLORMAP" name="cmap" />
1808     <field type="CARD16" name="name_len" />
1809     <pad bytes="2" />
1810     <list type="char" name="name">
1811       <fieldref>name_len</fieldref>
1812     </list>
1813     <reply>
1814       <pad bytes="1" />
1815       <field type="CARD32" name="pixel" />
1816       <field type="CARD16" name="exact_red" />
1817       <field type="CARD16" name="exact_green" />
1818       <field type="CARD16" name="exact_blue" />
1819       <field type="CARD16" name="visual_red" />
1820       <field type="CARD16" name="visual_green" />
1821       <field type="CARD16" name="visual_blue" />
1822     </reply>
1823   </request>
1824
1825   <request name="AllocColorCells" opcode="86">
1826     <field type="BOOL" name="contiguous" />
1827     <field type="COLORMAP" name="cmap" />
1828     <field type="CARD16" name="colors" />
1829     <field type="CARD16" name="planes" />
1830     <reply>
1831       <pad bytes="1" />
1832       <field type="CARD16" name="pixels_len" />
1833       <field type="CARD16" name="masks_len" />
1834       <pad bytes="20" />
1835       <list type="CARD32" name="pixels">
1836         <fieldref>pixels_len</fieldref>
1837       </list>
1838       <list type="CARD32" name="masks">
1839         <fieldref>masks_len</fieldref>
1840       </list>
1841     </reply>
1842   </request>
1843
1844   <request name="AllocColorPlanes" opcode="87">
1845     <field type="BOOL" name="contiguous" />
1846     <field type="COLORMAP" name="cmap" />
1847     <field type="CARD16" name="colors" />
1848     <field type="CARD16" name="reds" />
1849     <field type="CARD16" name="greens" />
1850     <field type="CARD16" name="blues" />
1851     <reply>
1852       <pad bytes="1" />
1853       <field type="CARD16" name="pixels_len" />
1854       <pad bytes="2" />
1855       <field type="CARD32" name="red_mask" />
1856       <field type="CARD32" name="green_mask" />
1857       <field type="CARD32" name="blue_mask" />
1858       <pad bytes="8" />
1859       <list type="CARD32" name="pixels">
1860         <fieldref>pixels_len</fieldref>
1861       </list>
1862     </reply>
1863   </request>
1864
1865   <request name="FreeColors" opcode="88">
1866     <pad bytes="1" />
1867     <field type="COLORMAP" name="cmap" />
1868     <field type="CARD32" name="plane_mask" />
1869     <list type="CARD32" name="pixels" />
1870   </request>
1871
1872   <enum name="ColorFlag">
1873     <item name="Red">  <bit>0</bit></item>
1874     <item name="Green"><bit>1</bit></item>
1875     <item name="Blue"> <bit>2</bit></item>
1876   </enum>
1877
1878   <struct name="COLORITEM">
1879     <field type="CARD32" name="pixel" />
1880     <field type="CARD16" name="red" />
1881     <field type="CARD16" name="green" />
1882     <field type="CARD16" name="blue" />
1883     <field type="BYTE" name="flags" mask="ColorFlag" />
1884     <pad bytes="1" />
1885   </struct>
1886   
1887   <request name="StoreColors" opcode="89" combine-adjacent="true">
1888     <pad bytes="1" />
1889     <field type="COLORMAP" name="cmap" />
1890     <list type="COLORITEM" name="items" />
1891   </request>
1892
1893   <request name="StoreNamedColor" opcode="90">
1894     <field type="CARD8" name="flags" mask="ColorFlag" />
1895     <field type="COLORMAP" name="cmap" />
1896     <field type="CARD32" name="pixel" />
1897     <field type="CARD16" name="name_len" />
1898     <pad bytes="2" />
1899     <list type="char" name="name">
1900       <fieldref>name_len</fieldref>
1901     </list>
1902   </request>
1903
1904   <struct name="RGB">
1905     <field type="CARD16" name="red" />
1906     <field type="CARD16" name="green" />
1907     <field type="CARD16" name="blue" />
1908     <pad bytes="2" />
1909   </struct>
1910
1911   <request name="QueryColors" opcode="91">
1912     <pad bytes="1" />
1913     <field type="COLORMAP" name="cmap" />
1914     <list type="CARD32" name="pixels" />
1915     <reply>
1916       <pad bytes="1" />
1917       <field type="CARD16" name="colors_len" />
1918       <pad bytes="22" />
1919       <list type="RGB" name="colors">
1920         <fieldref>colors_len</fieldref>
1921       </list>
1922     </reply>
1923   </request>
1924
1925   <request name="LookupColor" opcode="92">
1926     <pad bytes="1" />
1927     <field type="COLORMAP" name="cmap" />
1928     <field type="CARD16" name="name_len" />
1929     <pad bytes="2" />
1930     <list type="char" name="name">
1931       <fieldref>name_len</fieldref>
1932     </list>
1933     <reply>
1934       <pad bytes="1" />
1935       <field type="CARD16" name="exact_red" />
1936       <field type="CARD16" name="exact_green" />
1937       <field type="CARD16" name="exact_blue" />
1938       <field type="CARD16" name="visual_red" />
1939       <field type="CARD16" name="visual_green" />
1940       <field type="CARD16" name="visual_blue" />
1941     </reply>
1942   </request>
1943
1944   <request name="CreateCursor" opcode="93">
1945     <pad bytes="1" />
1946     <field type="CURSOR" name="cid" />
1947     <field type="PIXMAP" name="source" />
1948     <field type="PIXMAP" name="mask" />
1949     <field type="CARD16" name="fore_red" />
1950     <field type="CARD16" name="fore_green" />
1951     <field type="CARD16" name="fore_blue" />
1952     <field type="CARD16" name="back_red" />
1953     <field type="CARD16" name="back_green" />
1954     <field type="CARD16" name="back_blue" />
1955     <field type="CARD16" name="x" />
1956     <field type="CARD16" name="y" />
1957   </request>
1958
1959   <request name="CreateGlyphCursor" opcode="94">
1960     <pad bytes="1" />
1961     <field type="CURSOR" name="cid" />
1962     <field type="FONT" name="source_font" />
1963     <field type="FONT" name="mask_font" />
1964     <field type="CARD16" name="source_char" />
1965     <field type="CARD16" name="mask_char" />
1966     <field type="CARD16" name="fore_red" />
1967     <field type="CARD16" name="fore_green" />
1968     <field type="CARD16" name="fore_blue" />
1969     <field type="CARD16" name="back_red" />
1970     <field type="CARD16" name="back_green" />
1971     <field type="CARD16" name="back_blue" />
1972   </request>
1973
1974   <request name="FreeCursor" opcode="95">
1975     <pad bytes="1" />
1976     <field type="CURSOR" name="cursor" />
1977   </request>
1978
1979   <request name="RecolorCursor" opcode="96">
1980     <pad bytes="1" />
1981     <field type="CURSOR" name="cursor" />
1982     <field type="CARD16" name="fore_red" />
1983     <field type="CARD16" name="fore_green" />
1984     <field type="CARD16" name="fore_blue" />
1985     <field type="CARD16" name="back_red" />
1986     <field type="CARD16" name="back_green" />
1987     <field type="CARD16" name="back_blue" />
1988   </request>
1989
1990   <enum name="QueryShapeOf">
1991     <item name="LargestCursor"> <value>0</value></item>
1992     <item name="FastestTile">   <value>1</value></item>
1993     <item name="FastestStipple"><value>2</value></item>    
1994   </enum>
1995
1996   <request name="QueryBestSize" opcode="97">
1997     <field type="CARD8" name="class" enum="QueryShapeOf" />
1998     <field type="DRAWABLE" name="drawable" />
1999     <field type="CARD16" name="width" />
2000     <field type="CARD16" name="height" />
2001     <reply>
2002       <pad bytes="1" />
2003       <field type="CARD16" name="width" />
2004       <field type="CARD16" name="height" />
2005     </reply>
2006   </request>
2007
2008   <request name="QueryExtension" opcode="98">
2009     <pad bytes="1" />
2010     <field type="CARD16" name="name_len" />
2011     <pad bytes="2" />
2012     <list type="char" name="name">
2013       <fieldref>name_len</fieldref>
2014     </list>
2015     <reply>
2016       <pad bytes="1" />
2017       <field type="BOOL" name="present" />
2018       <field type="CARD8" name="major_opcode" />
2019       <field type="CARD8" name="first_event" />
2020       <field type="CARD8" name="first_error" />
2021     </reply>
2022   </request>
2023
2024   <request name="ListExtensions" opcode="99">
2025     <reply>
2026       <field type="CARD8" name="names_len" />
2027       <pad bytes="24" />
2028       <list type="STR" name="names">
2029         <fieldref>names_len</fieldref>
2030       </list>
2031     </reply>
2032   </request>
2033
2034   <request name="ChangeKeyboardMapping" opcode="100">
2035     <field type="CARD8" name="keycode_count" />
2036     <field type="KEYCODE" name="first_keycode" />
2037     <field type="CARD8" name="keysyms_per_keycode" />
2038     <list type="KEYSYM" name="keysyms">
2039       <op op="*">
2040         <fieldref>keycode_count</fieldref>
2041         <fieldref>keysyms_per_keycode</fieldref>
2042       </op>
2043     </list>
2044   </request>
2045
2046   <request name="GetKeyboardMapping" opcode="101">
2047     <pad bytes="1" />
2048     <field type="KEYCODE" name="first_keycode" />
2049     <field type="CARD8" name="count" />
2050     <reply>
2051       <field type="BYTE" name="keysyms_per_keycode" />
2052       <pad bytes="24" />
2053       <list type="KEYSYM" name="keysyms">
2054         <fieldref>length</fieldref>
2055       </list>
2056     </reply>
2057   </request>
2058
2059   <enum name="KB">
2060     <item name="KeyClickPercent"><bit>0</bit></item>
2061     <item name="BellPercent">    <bit>1</bit></item>
2062     <item name="BellPitch">      <bit>2</bit></item>
2063     <item name="BellDuration">   <bit>3</bit></item>
2064     <item name="Led">            <bit>4</bit></item>
2065     <item name="LedMode">        <bit>5</bit></item>
2066     <item name="Key">            <bit>6</bit></item>
2067     <item name="AutoRepeatMode"> <bit>7</bit></item>
2068   </enum>
2069
2070   <enum name="LedMode">
2071     <item name="Off"><value>0</value></item>
2072     <item name="On"> <value>1</value></item>
2073   </enum>
2074
2075   <enum name="AutoRepeatMode">
2076     <item name="Off">    <value>0</value></item>
2077     <item name="On">     <value>1</value></item>
2078     <item name="Default"><value>2</value></item>
2079   </enum>
2080
2081   <request name="ChangeKeyboardControl" opcode="102">
2082     <pad bytes="1" />
2083     <valueparam value-mask-type="CARD32"
2084                 value-mask-name="value_mask"
2085                 value-list-name="value_list" />
2086   </request>
2087
2088   <request name="GetKeyboardControl" opcode="103">
2089     <reply>
2090       <field type="BYTE" name="global_auto_repeat" enum="AutoRepeatMode" />
2091       <field type="CARD32" name="led_mask" />
2092       <field type="CARD8" name="key_click_percent" />
2093       <field type="CARD8" name="bell_percent" />
2094       <field type="CARD16" name="bell_pitch" />
2095       <field type="CARD16" name="bell_duration" />
2096       <pad bytes="2" />
2097       <list type="CARD8" name="auto_repeats"><value>32</value></list>
2098     </reply>
2099   </request>
2100
2101   <request name="Bell" opcode="104">
2102     <field type="INT8" name="percent" />
2103   </request>
2104
2105   <request name="ChangePointerControl" opcode="105">
2106     <pad bytes="1" />
2107     <field type="INT16" name="acceleration_numerator" />
2108     <field type="INT16" name="acceleration_denominator" />
2109     <field type="INT16" name="threshold" />
2110     <field type="BOOL" name="do_acceleration" />
2111     <field type="BOOL" name="do_threshold" />
2112   </request>
2113
2114   <request name="GetPointerControl" opcode="106">
2115     <reply>
2116       <pad bytes="1" />
2117       <field type="CARD16" name="acceleration_numerator" />
2118       <field type="CARD16" name="acceleration_denominator" />
2119       <field type="CARD16" name="threshold" />
2120       <pad bytes="18" />
2121     </reply>
2122   </request>
2123
2124   <!-- Screen saver timeout and interval can be set to -1 to restore defaults
2125        and set to 0 to disable the screen saver. -->
2126
2127   <enum name="Blanking">
2128     <item name="NotPreferred"><value>0</value></item>
2129     <item name="Preferred">   <value>1</value></item>
2130     <item name="Default">     <value>2</value></item>
2131   </enum>
2132
2133   <enum name="Exposures">
2134     <item name="NotAllowed"><value>0</value></item>
2135     <item name="Allowed">   <value>1</value></item>
2136     <item name="Default">   <value>2</value></item>
2137   </enum>
2138
2139   <request name="SetScreenSaver" opcode="107">
2140     <pad bytes="1" />
2141     <field type="INT16" name="timeout" />
2142     <field type="INT16" name="interval" />
2143     <field type="CARD8" name="prefer_blanking" enum="Blanking" />
2144     <field type="CARD8" name="allow_exposures" enum="Exposures" />
2145   </request>
2146
2147   <request name="GetScreenSaver" opcode="108">
2148     <reply>
2149       <pad bytes="1" />
2150       <field type="CARD16" name="timeout" />
2151       <field type="CARD16" name="interval" />
2152       <field type="BYTE" name="prefer_blanking" enum="Blanking" />
2153       <field type="BYTE" name="allow_exposures" enum="Exposures" />
2154       <pad bytes="18" />
2155     </reply>
2156   </request>
2157
2158   <enum name="HostMode">
2159     <item name="Insert"><value>0</value></item>
2160     <item name="Delete"><value>1</value></item>
2161   </enum>
2162
2163   <!-- also used and extended for Xau authentication -->
2164   <enum name="Family">
2165     <item name="Internet">         <value>0</value></item>
2166     <item name="DECnet">           <value>1</value></item>
2167     <item name="Chaos">            <value>2</value></item>
2168     <item name="ServerInterpreted"><value>5</value></item>
2169     <item name="Internet6">        <value>6</value></item>
2170   </enum>
2171
2172   <request name="ChangeHosts" opcode="109">
2173     <field type="CARD8" name="mode" enum="HostMode" />
2174     <field type="CARD8" name="family" enum="Family" />
2175     <pad bytes="1" />
2176     <field type="CARD16" name="address_len" />
2177     <list type="char" name="address">
2178       <fieldref>address_len</fieldref>
2179     </list>
2180   </request>
2181
2182   <struct name="HOST">
2183     <field type="CARD8" name="family" enum="Family" />
2184     <pad bytes="1" />
2185     <field type="CARD16" name="address_len" />
2186     <list type="BYTE" name="address">
2187       <fieldref>address_len</fieldref>
2188     </list>
2189   </struct>
2190
2191   <request name="ListHosts" opcode="110">
2192     <reply>
2193       <field type="BYTE" name="mode" enum="AccessControl" />
2194       <field type="CARD16" name="hosts_len" />
2195       <pad bytes="22" />
2196       <list type="HOST" name="hosts">
2197         <fieldref>hosts_len</fieldref>
2198       </list>
2199     </reply>
2200   </request>
2201
2202   <enum name="AccessControl">
2203     <item name="Disable"><value>0</value></item>
2204     <item name="Enable"> <value>1</value></item>
2205   </enum>
2206
2207   <request name="SetAccessControl" opcode="111">
2208     <field type="CARD8" name="mode" enum="AccessControl" />
2209   </request>
2210
2211   <enum name="CloseDown">
2212     <item name="DestroyAll">     <value>0</value></item>
2213     <item name="RetainPermanent"><value>1</value></item>
2214     <item name="RetainTemporary"><value>2</value></item>
2215   </enum>
2216
2217   <request name="SetCloseDownMode" opcode="112">
2218     <field type="CARD8" name="mode" enum="CloseDown" />
2219   </request>
2220
2221   <enum name="Kill">
2222     <item name="AllTemporary"><value>0</value></item>
2223   </enum>
2224
2225   <request name="KillClient" opcode="113">
2226     <pad bytes="1" />
2227     <field type="CARD32" name="resource" enum="Kill" />
2228   </request>
2229
2230   <request name="RotateProperties" opcode="114">
2231     <pad bytes="1" />
2232     <field type="WINDOW" name="window" />
2233     <field type="CARD16" name="atoms_len" />
2234     <field type="INT16" name="delta" />
2235     <list type="ATOM" name="atoms">
2236       <fieldref>atoms_len</fieldref>
2237     </list>
2238   </request>
2239
2240   <enum name="ScreenSaver">
2241     <item name="Reset"> <value>0</value></item>
2242     <item name="Active"><value>1</value></item>
2243   </enum>
2244
2245   <request name="ForceScreenSaver" opcode="115">
2246     <field type="CARD8" name="mode" enum="ScreenSaver" />
2247   </request>
2248
2249   <!-- Reply from SetPointerMapping or SetModifierMapping -->
2250   <enum name="MappingStatus">
2251     <item name="Success"><value>0</value></item>
2252     <item name="Busy">   <value>1</value></item>
2253     <item name="Failure"><value>2</value></item>
2254   </enum>
2255
2256   <request name="SetPointerMapping" opcode="116">
2257     <field type="CARD8" name="map_len" />
2258     <list type="CARD8" name="map">
2259       <fieldref>map_len</fieldref>
2260     </list>
2261     <reply>
2262       <field type="BYTE" name="status" enum="MappingStatus" />
2263     </reply>
2264   </request>
2265
2266   <request name="GetPointerMapping" opcode="117">
2267     <reply>
2268       <field type="CARD8" name="map_len" />
2269       <pad bytes="24" />
2270       <list type="CARD8" name="map">
2271         <fieldref>map_len</fieldref>
2272       </list>
2273     </reply>
2274   </request>
2275   
2276   <enum name="MapIndex">
2277     <item name="Shift">  <value>0</value></item>
2278     <item name="Lock">   <value>1</value></item>
2279     <item name="Control"><value>2</value></item>
2280     <item name="1">      <value>3</value></item>
2281     <item name="2">      <value>4</value></item>
2282     <item name="3">      <value>5</value></item>
2283     <item name="4">      <value>6</value></item>
2284     <item name="5">      <value>7</value></item>
2285   </enum>
2286
2287   <request name="SetModifierMapping" opcode="118">
2288     <field type="CARD8" name="keycodes_per_modifier" />
2289     <list type="KEYCODE" name="keycodes">
2290       <op op="*">
2291         <fieldref>keycodes_per_modifier</fieldref>
2292         <value>8</value>
2293       </op>
2294     </list>
2295     <reply>
2296       <field type="BYTE" name="status" enum="MappingStatus" />
2297     </reply>
2298   </request>
2299
2300   <request name="GetModifierMapping" opcode="119">
2301     <reply>
2302       <field type="CARD8" name="keycodes_per_modifier" />
2303       <pad bytes="24" />
2304       <list type="KEYCODE" name="keycodes">
2305         <op op="*">
2306           <fieldref>keycodes_per_modifier</fieldref>
2307           <value>8</value>
2308         </op>
2309       </list>
2310     </reply>
2311   </request>
2312
2313   <!--
2314     FIXME: NoOperation should allow specifying payload length
2315     but geez, malloc()ing a 262140 byte buffer just so I have something
2316     to hand to write(2) seems silly...!
2317   -->
2318   <request name="NoOperation" opcode="127" />
2319
2320 </xcb>