1208df20e5521fbe1abc793e12fb89c5768a0c19
[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   <enum name="Time">
531     <item name="CurrentTime"> <value>0</value> </item>
532   </enum>
533
534   <event name="SelectionRequest" number="30">
535     <pad bytes="1" />
536     <field type="TIMESTAMP" name="time" altenum="Time" />
537     <field type="WINDOW" name="owner" />
538     <field type="WINDOW" name="requestor" />
539     <field type="ATOM" name="selection" />
540     <field type="ATOM" name="target" />
541     <field type="ATOM" name="property" />
542   </event>
543
544   <event name="SelectionNotify" number="31">
545     <pad bytes="1" />
546     <field type="TIMESTAMP" name="time" altenum="Time" />
547     <field type="WINDOW" name="requestor" />
548     <field type="ATOM" name="selection" />
549     <field type="ATOM" name="target" />
550     <field type="ATOM" name="property" />
551   </event>
552
553   <enum name="ColormapState">
554     <item name="Uninstalled"><value>0</value></item>
555     <item name="Installed">  <value>1</value></item>
556   </enum>
557
558   <event name="ColormapNotify" number="32">
559     <pad bytes="1" />
560     <field type="WINDOW" name="window" />
561     <field type="COLORMAP" name="colormap" />
562     <field type="BOOL" name="new" />
563     <field type="BYTE" name="state" enum="ColormapState" />
564     <pad bytes="2" />
565   </event>
566
567   <union name="ClientMessageData">
568     <!-- The format member of the ClientMessage event determines which array
569          to use. -->
570     <list type="CARD8"  name="data8" ><value>20</value></list> <!--  8 -->
571     <list type="CARD16" name="data16"><value>10</value></list> <!-- 16 -->
572     <list type="CARD32" name="data32"><value>5</value></list>  <!-- 32 -->
573   </union>
574
575   <event name="ClientMessage" number="33">
576     <field type="CARD8" name="format" /> <!-- 8, 16, or 32. -->
577     <field type="WINDOW" name="window" />
578     <field type="ATOM" name="type" />
579     <field type="ClientMessageData" name="data" />
580   </event>
581
582   <enum name="Mapping">
583     <item name="Modifier"><value>0</value></item>
584     <item name="Keyboard"><value>1</value></item>
585     <item name="Pointer"> <value>2</value></item>
586   </enum>
587
588   <event name="MappingNotify" number="34">
589     <pad bytes="1" />
590     <field type="BYTE" name="request" enum="Mapping" />
591     <field type="KEYCODE" name="first_keycode" />
592     <field type="CARD8" name="count" />
593     <pad bytes="1" />
594   </event>
595
596
597
598   <!-- Core error types -->
599
600
601
602   <error name="Request" number="1">
603     <field type="CARD32" name="bad_value" />
604     <field type="CARD16" name="minor_opcode" />
605     <field type="CARD8" name="major_opcode" />
606     <pad bytes="1" />
607   </error>
608
609   <error name="Value" number="2">
610     <field type="CARD32" name="bad_value" />
611     <field type="CARD16" name="minor_opcode" />
612     <field type="CARD8" name="major_opcode" />
613     <pad bytes="1" />
614   </error>
615
616   <errorcopy name="Window" number="3" ref="Value" />
617   <errorcopy name="Pixmap" number="4" ref="Value" />
618   <errorcopy name="Atom" number="5" ref="Value" />
619   <errorcopy name="Cursor" number="6" ref="Value" />
620   <errorcopy name="Font" number="7" ref="Value" />
621   <errorcopy name="Match" number="8" ref="Request" />
622   <errorcopy name="Drawable" number="9" ref="Value" />
623   <errorcopy name="Access" number="10" ref="Request" />
624   <errorcopy name="Alloc" number="11" ref="Request" />
625   <errorcopy name="Colormap" number="12" ref="Value" />
626   <errorcopy name="GContext" number="13" ref="Value" />
627   <errorcopy name="IDChoice" number="14" ref="Value" />
628   <errorcopy name="Name" number="15" ref="Request" />
629   <errorcopy name="Length" number="16" ref="Request" />
630   <errorcopy name="Implementation" number="17" ref="Request" />
631
632
633
634   <!-- The core requests, in major number order. -->
635   <!-- It is the caller's responsibility to free returned XCB*Rep objects. -->
636
637
638
639   <enum name="WindowClass">
640     <item name="CopyFromParent"><value>0</value></item>
641     <item name="InputOutput">   <value>1</value></item>
642     <item name="InputOnly">     <value>2</value></item>
643   </enum>
644
645   <!-- Window attributes for CreateWindow and ChangeWindowAttributes. -->
646   <enum name="CW">
647     <item name="BackPixmap">      <bit>0</bit></item>
648     <item name="BackPixel">       <bit>1</bit></item>
649     <item name="BorderPixmap">    <bit>2</bit></item>
650     <item name="BorderPixel">     <bit>3</bit></item>
651     <item name="BitGravity">      <bit>4</bit></item>
652     <item name="WinGravity">      <bit>5</bit></item>
653     <item name="BackingStore">    <bit>6</bit></item>
654     <item name="BackingPlanes">   <bit>7</bit></item>
655     <item name="BackingPixel">    <bit>8</bit></item>
656     <item name="OverrideRedirect"><bit>9</bit></item>
657     <item name="SaveUnder">       <bit>10</bit></item>
658     <item name="EventMask">       <bit>11</bit></item>
659     <item name="DontPropagate">   <bit>12</bit></item>
660     <item name="Colormap">        <bit>13</bit></item>
661     <item name="Cursor">          <bit>14</bit></item>
662   </enum>
663   
664   <enum name="BackPixmap">
665     <item name="None">          <value>0</value></item>
666     <item name="ParentRelative"><value>1</value></item>
667   </enum>
668
669   <enum name="Gravity">
670     <item name="BitForget"><value>0</value></item>
671     <item name="WinUnmap"> <value>0</value></item>
672     <item name="NorthWest"><value>1</value></item>
673     <item name="North">    <value>2</value></item>
674     <item name="NorthEast"><value>3</value></item>
675     <item name="West">     <value>4</value></item>
676     <item name="Center">   <value>5</value></item>
677     <item name="East">     <value>6</value></item>
678     <item name="SouthWest"><value>7</value></item>
679     <item name="South">    <value>8</value></item>
680     <item name="SouthEast"><value>9</value></item>
681     <item name="Static">   <value>10</value></item>
682   </enum>
683
684   <!-- Also used in XCBSCREEN field backing_stores -->
685   <enum name="BackingStore">
686     <item name="NotUseful"> <value>0</value></item>
687     <item name="WhenMapped"><value>1</value></item>
688     <item name="Always">    <value>2</value></item>
689   </enum>
690
691   <enum name="EventMask">
692     <item name="NoEvent">           <value>0</value></item>
693     <item name="KeyPress">            <bit>0</bit></item>
694     <item name="KeyRelease">          <bit>1</bit></item>
695     <item name="ButtonPress">         <bit>2</bit></item>
696     <item name="ButtonRelease">       <bit>3</bit></item>
697     <item name="EnterWindow">         <bit>4</bit></item>
698     <item name="LeaveWindow">         <bit>5</bit></item>
699     <item name="PointerMotion">       <bit>6</bit></item>
700     <item name="PointerMotionHint">   <bit>7</bit></item>
701     <item name="Button1Motion">       <bit>8</bit></item>
702     <item name="Button2Motion">       <bit>9</bit></item>
703     <item name="Button3Motion">       <bit>10</bit></item>
704     <item name="Button4Motion">       <bit>11</bit></item>
705     <item name="Button5Motion">       <bit>12</bit></item>
706     <item name="ButtonMotion">        <bit>13</bit></item>
707     <item name="KeymapState">         <bit>14</bit></item>
708     <item name="Exposure">            <bit>15</bit></item>
709     <item name="VisibilityChange">    <bit>16</bit></item>
710     <item name="StructureNotify">     <bit>17</bit></item>
711     <item name="ResizeRedirect">      <bit>18</bit></item>
712     <item name="SubstructureNotify">  <bit>19</bit></item>
713     <item name="SubstructureRedirect"><bit>20</bit></item>
714     <item name="FocusChange">         <bit>21</bit></item>
715     <item name="PropertyChange">      <bit>22</bit></item>
716     <item name="ColorMapChange">      <bit>23</bit></item>
717     <item name="OwnerGrabButton">     <bit>24</bit></item>
718   </enum>
719
720   <request name="CreateWindow" opcode="1">
721     <field type="CARD8" name="depth" />
722     <field type="WINDOW" name="wid" />
723     <field type="WINDOW" name="parent" />
724     <field type="INT16" name="x" />
725     <field type="INT16" name="y" />
726     <field type="CARD16" name="width" />
727     <field type="CARD16" name="height" />
728     <field type="CARD16" name="border_width" />
729     <field type="CARD16" name="class" enum="WindowClass" />
730     <field type="VISUALID" name="visual" />
731     <valueparam value-mask-type="CARD32"
732                 value-mask-name="value_mask"
733                 value-list-name="value_list" />
734   </request>
735
736   <request name="ChangeWindowAttributes" opcode="2">
737     <pad bytes="1" />
738     <field type="WINDOW" name="window" />
739     <valueparam value-mask-type="CARD32"
740                 value-mask-name="value_mask"
741                 value-list-name="value_list" />
742   </request>
743   
744   <enum name="MapState">
745     <item name="Unmapped">  <value>0</value></item>
746     <item name="Unviewable"><value>1</value></item>
747     <item name="Viewable">  <value>2</value></item>
748   </enum>
749
750   <request name="GetWindowAttributes" opcode="3">
751     <pad bytes="1" />
752     <field type="WINDOW" name="window" />
753     <reply>
754       <field type="CARD8" name="backing_store" enum="BackingStore" />
755       <field type="VISUALID" name="visual" />
756       <field type="CARD16" name="class" enum="WindowClass" />
757       <field type="CARD8" name="bit_gravity" enum="Gravity" />
758       <field type="CARD8" name="win_gravity" enum="Gravity" />
759       <field type="CARD32" name="backing_planes" />
760       <field type="CARD32" name="backing_pixel" />
761       <field type="BOOL" name="save_under" />
762       <field type="BOOL" name="map_is_installed" />
763       <field type="CARD8" name="map_state" enum="MapState" />
764       <field type="BOOL" name="override_redirect" />
765       <field type="COLORMAP" name="colormap" />
766       <field type="CARD32" name="all_event_masks" mask="EventMask" />
767       <field type="CARD32" name="your_event_mask" mask="EventMask" />
768       <field type="CARD16" name="do_not_propagate_mask" mask="EventMask" />
769       <pad bytes="2" />
770     </reply>
771   </request>
772
773   <request name="DestroyWindow" opcode="4">
774     <pad bytes="1" />
775     <field type="WINDOW" name="window" />
776   </request>
777
778   <request name="DestroySubwindows" opcode="5">
779     <pad bytes="1" />
780     <field type="WINDOW" name="window" />
781   </request>
782   
783   <enum name="SetMode">
784     <item name="Insert"><value>0</value></item>
785     <item name="Delete"><value>1</value></item>
786   </enum>
787
788   <request name="ChangeSaveSet" opcode="6">
789     <field type="BYTE" name="mode" enum="SetMode" />
790     <field type="WINDOW" name="window" />
791   </request>
792
793   <request name="ReparentWindow" opcode="7">
794     <pad bytes="1" />
795     <field type="WINDOW" name="window" />
796     <field type="WINDOW" name="parent" />
797     <field type="INT16" name="x" />
798     <field type="INT16" name="y" />
799   </request>
800
801   <request name="MapWindow" opcode="8">
802     <pad bytes="1" />
803     <field type="WINDOW" name="window" />
804   </request>
805
806   <request name="MapSubwindows" opcode="9">
807     <pad bytes="1" />
808     <field type="WINDOW" name="window" />
809   </request>
810
811   <request name="UnmapWindow" opcode="10">
812     <pad bytes="1" />
813     <field type="WINDOW" name="window" />
814   </request>
815
816   <request name="UnmapSubwindows" opcode="11">
817     <pad bytes="1" />
818     <field type="WINDOW" name="window" />
819   </request>
820   
821   <enum name="ConfigWindow">
822     <item name="X">          <bit>0</bit></item>
823     <item name="Y">          <bit>1</bit></item>
824     <item name="Width">      <bit>2</bit></item>
825     <item name="Height">     <bit>3</bit></item>
826     <item name="BorderWidth"><bit>4</bit></item>
827     <item name="Sibling">    <bit>5</bit></item>
828     <item name="StackMode">  <bit>6</bit></item>
829   </enum>
830   
831   <enum name="StackMode">
832     <item name="Above">   <value>0</value></item>
833     <item name="Below">   <value>1</value></item>
834     <item name="TopIf">   <value>2</value></item>
835     <item name="BottomIf"><value>3</value></item>
836     <item name="Opposite"><value>4</value></item>
837   </enum>
838
839   <request name="ConfigureWindow" opcode="12">
840     <pad bytes="1" />
841     <field type="WINDOW" name="window" />
842     <valueparam value-mask-type="CARD16"
843                 value-mask-name="value_mask"
844                 value-mask-pad="2"
845                 value-list-name="value_list" />
846   </request>
847
848   <enum name="Circulate">
849     <item name="RaiseLowest"> <value>0</value></item>
850     <item name="LowerHighest"><value>1</value></item>
851   </enum>
852
853   <request name="CirculateWindow" opcode="13">
854     <field type="CARD8" name="direction" enum="Circulate" />
855     <field type="WINDOW" name="window" />
856   </request>
857
858   <request name="GetGeometry" opcode="14">
859     <pad bytes="1" />
860     <field type="DRAWABLE" name="drawable" />
861     <reply>
862       <field type="CARD8" name="depth" />
863       <field type="WINDOW" name="root" />
864       <field type="INT16" name="x" />
865       <field type="INT16" name="y" />
866       <field type="CARD16" name="width" />
867       <field type="CARD16" name="height" />
868       <field type="CARD16" name="border_width" />
869       <pad bytes="2" />
870     </reply>
871   </request>
872
873   <request name="QueryTree" opcode="15">
874     <pad bytes="1" />
875     <field type="WINDOW" name="window" />
876     <reply>
877       <pad bytes="1" />
878       <field type="WINDOW" name="root" />
879       <field type="WINDOW" name="parent" />
880       <field type="CARD16" name="children_len" />
881       <pad bytes="14" />
882       <list type="WINDOW" name="children">
883         <fieldref>children_len</fieldref>
884       </list>
885     </reply>
886   </request>
887
888   <request name="InternAtom" opcode="16">
889     <field type="BOOL" name="only_if_exists" />
890     <field type="CARD16" name="name_len" />
891     <pad bytes="2" />
892     <list type="char" name="name">
893       <fieldref>name_len</fieldref>
894     </list>
895     <reply>
896       <pad bytes="1" />
897       <field type="ATOM" name="atom" />
898     </reply>
899   </request>
900
901   <request name="GetAtomName" opcode="17">
902     <pad bytes="1" />
903     <field type="ATOM" name="atom" />
904     <reply>
905       <pad bytes="1" />
906       <field type="CARD16" name="name_len" />
907       <pad bytes="22" />
908       <list type="char" name="name">
909         <fieldref>name_len</fieldref>
910       </list>
911     </reply>
912   </request>
913   
914   <enum name="PropMode">
915     <item name="Replace"><value>0</value></item>
916     <item name="Prepend"><value>1</value></item>
917     <item name="Append"> <value>2</value></item>
918   </enum>
919
920   <request name="ChangeProperty" opcode="18">
921     <field type="CARD8" name="mode" enum="PropMode" />
922     <field type="WINDOW" name="window" />
923     <field type="ATOM" name="property" />
924     <field type="ATOM" name="type" />
925     <field type="CARD8" name="format" />
926     <pad bytes="3" />
927     <field type="CARD32" name="data_len" />
928     <list type="void" name="data">
929       <op op="/">
930         <op op="*">
931           <fieldref>data_len</fieldref>
932           <fieldref>format</fieldref>
933         </op>
934         <value>8</value>
935       </op>
936     </list>
937   </request>
938
939   <request name="DeleteProperty" opcode="19">
940     <pad bytes="1" />
941     <field type="WINDOW" name="window" />
942     <field type="ATOM" name="property" />
943   </request>
944   
945   <enum name="GetPropertyType">
946     <item name="Any"><value>0</value></item>
947   </enum>
948
949   <request name="GetProperty" opcode="20">
950     <field type="BOOL" name="delete" />
951     <field type="WINDOW" name="window" />
952     <field type="ATOM" name="property" />
953     <field type="ATOM" name="type" altenum="GetPropertyType" />
954     <field type="CARD32" name="long_offset" />
955     <field type="CARD32" name="long_length" />
956     <reply>
957       <field type="CARD8" name="format" />
958       <field type="ATOM" name="type" />
959       <field type="CARD32" name="bytes_after" />
960       <field type="CARD32" name="value_len" />
961       <pad bytes="12" />
962       <list type="void" name="value">
963         <fieldref>value_len</fieldref>
964       </list>
965     </reply>
966   </request>
967
968   <request name="ListProperties" opcode="21">
969     <pad bytes="1" />
970     <field type="WINDOW" name="window" />
971     <reply>
972       <pad bytes="1" />
973       <field type="CARD16" name="atoms_len" />
974       <pad bytes="22" />
975       <list type="ATOM" name="atoms">
976         <fieldref>atoms_len</fieldref>
977       </list>
978     </reply>
979   </request>
980
981   <request name="SetSelectionOwner" opcode="22">
982     <pad bytes="1" />
983     <field type="WINDOW" name="owner" />
984     <field type="ATOM" name="selection" />
985     <field type="TIMESTAMP" name="time" altenum="Time" />
986   </request>
987
988   <request name="GetSelectionOwner" opcode="23">
989     <pad bytes="1" />
990     <field type="ATOM" name="selection" />
991     <reply>
992       <pad bytes="1" />
993       <field type="WINDOW" name="owner" />
994     </reply>
995   </request>
996
997   <request name="ConvertSelection" opcode="24">
998     <pad bytes="1" />
999     <field type="WINDOW" name="requestor" />
1000     <field type="ATOM" name="selection" />
1001     <field type="ATOM" name="target" />
1002     <field type="ATOM" name="property" />
1003     <field type="TIMESTAMP" name="time" altenum="Time" />
1004   </request>
1005
1006   <enum name="SendEventDest">
1007     <item name="PointerWindow"><value>0</value></item>
1008     <item name="ItemFocus">    <value>1</value></item>
1009   </enum>
1010
1011   <request name="SendEvent" opcode="25">
1012     <field type="BOOL" name="propagate" />
1013     <field type="WINDOW" name="destination" altenum="SendEventDest" />
1014     <field type="CARD32" name="event_mask" mask="EventMask" />
1015     <list type="char" name="event"><value>32</value></list>
1016   </request>
1017
1018   <enum name="GrabMode">
1019     <item name="Sync"> <value>0</value></item>
1020     <item name="Async"><value>1</value></item>
1021   </enum>
1022
1023   <enum name="GrabStatus">
1024     <item name="Success">       <value>0</value></item>
1025     <item name="AlreadyGrabbed"><value>1</value></item>
1026     <item name="InvalidTime">   <value>2</value></item>
1027     <item name="NotViewable">   <value>3</value></item>
1028     <item name="Frozen">        <value>4</value></item>
1029   </enum>
1030
1031   <request name="GrabPointer" opcode="26">
1032     <field type="BOOL" name="owner_events" />
1033     <field type="WINDOW" name="grab_window" />
1034     <field type="CARD16" name="event_mask" mask="EventMask" />
1035     <field type="BYTE" name="pointer_mode" enum="GrabMode" />
1036     <field type="BYTE" name="keyboard_mode" enum="GrabMode" />
1037     <field type="WINDOW" name="confine_to" />
1038     <field type="CURSOR" name="cursor" />
1039     <field type="TIMESTAMP" name="time" altenum="Time" />
1040     <reply>
1041       <field type="BYTE" name="status" enum="GrabStatus" />
1042     </reply>
1043   </request>
1044
1045   <request name="UngrabPointer" opcode="27">
1046     <pad bytes="1" />
1047     <field type="TIMESTAMP" name="time" altenum="Time" />
1048   </request>
1049
1050   <enum name="ButtonIndex">
1051      <item name="Any"><value>0</value></item>
1052      <item name="1">  <value>1</value></item>
1053      <item name="2">  <value>2</value></item>
1054      <item name="3">  <value>3</value></item>
1055      <item name="4">  <value>4</value></item>
1056      <item name="5">  <value>5</value></item>
1057   </enum>
1058
1059   <request name="GrabButton" opcode="28">
1060     <field type="BOOL" name="owner_events" />
1061     <field type="WINDOW" name="grab_window" />
1062     <field type="CARD16" name="event_mask" mask="EventMask" />
1063     <field type="CARD8" name="pointer_mode" enum="GrabMode" />
1064     <field type="CARD8" name="keyboard_mode" enum="GrabMode" />
1065     <field type="WINDOW" name="confine_to" />
1066     <field type="CURSOR" name="cursor" />
1067     <field type="CARD8" name="button" enum="ButtonIndex" />
1068     <pad bytes="1" />
1069     <field type="CARD16" name="modifiers" mask="ModMask" />
1070   </request>
1071
1072   <request name="UngrabButton" opcode="29">
1073     <field type="CARD8" name="button" enum="ButtonIndex" />
1074     <field type="WINDOW" name="grab_window" />
1075     <field type="CARD16" name="modifiers" mask="ModMask" />
1076     <pad bytes="2" />
1077   </request>
1078
1079   <request name="ChangeActivePointerGrab" opcode="30">
1080     <pad bytes="1" />
1081     <field type="CURSOR" name="cursor" />
1082     <field type="TIMESTAMP" name="time" altenum="Time" />
1083     <field type="CARD16" name="event_mask" mask="EventMask" />
1084     <pad bytes="2" />
1085   </request>
1086
1087   <request name="GrabKeyboard" opcode="31">
1088     <field type="BOOL" name="owner_events" />
1089     <field type="WINDOW" name="grab_window" />
1090     <field type="TIMESTAMP" name="time" altenum="Time" />
1091     <field type="BYTE" name="pointer_mode" enum="GrabMode" />
1092     <field type="BYTE" name="keyboard_mode" enum="GrabMode" />
1093     <pad bytes="2" />
1094     <reply>
1095       <field type="BYTE" name="status" enum="GrabStatus" />
1096     </reply>
1097   </request>
1098
1099   <request name="UngrabKeyboard" opcode="32">
1100     <pad bytes="1" />
1101     <field type="TIMESTAMP" name="time" altenum="Time" />
1102   </request>
1103
1104   <!-- Use KEYCODE any = { XCBGrabAny }; to grab any key -->
1105   <enum name="Grab">
1106     <item name="Any"><value>0</value></item>
1107   </enum>
1108
1109   <request name="GrabKey" opcode="33">
1110     <field type="BOOL" name="owner_events" />
1111     <field type="WINDOW" name="grab_window" />
1112     <field type="CARD16" name="modifiers" mask="ModMask" />
1113     <field type="KEYCODE" name="key" altenum="Grab" />
1114     <field type="CARD8" name="pointer_mode" enum="GrabMode" />
1115     <field type="CARD8" name="keyboard_mode" enum="GrabMode" />
1116     <pad bytes="3" />
1117   </request>
1118
1119   <request name="UngrabKey" opcode="34">
1120     <field type="KEYCODE" name="key" altenum="Grab" />
1121     <field type="WINDOW" name="grab_window" />
1122     <field type="CARD16" name="modifiers" mask="ModMask" />
1123     <pad bytes="2" />
1124   </request>
1125
1126   <enum name="Allow">
1127     <item name="AsyncPointer">  <value>0</value></item>
1128     <item name="SyncPointer">   <value>1</value></item>
1129     <item name="ReplayPointer"> <value>2</value></item>
1130     <item name="AsyncKeyboard"> <value>3</value></item>
1131     <item name="SyncKeyboard">  <value>4</value></item>
1132     <item name="ReplayKeyboard"><value>5</value></item>
1133     <item name="AsyncBoth">     <value>6</value></item>
1134     <item name="SyncBoth">      <value>7</value></item>
1135   </enum>
1136
1137   <request name="AllowEvents" opcode="35">
1138     <field type="CARD8" name="mode" enum="Allow" />
1139     <field type="TIMESTAMP" name="time" altenum="Time" />
1140   </request>
1141
1142   <request name="GrabServer" opcode="36" />
1143
1144   <request name="UngrabServer" opcode="37" />
1145
1146   <request name="QueryPointer" opcode="38">
1147     <pad bytes="1" />
1148     <field type="WINDOW" name="window" />
1149     <reply>
1150       <field type="BOOL" name="same_screen" />
1151       <field type="WINDOW" name="root" />
1152       <field type="WINDOW" name="child" />
1153       <field type="INT16" name="root_x" />
1154       <field type="INT16" name="root_y" />
1155       <field type="INT16" name="win_x" />
1156       <field type="INT16" name="win_y" />
1157       <field type="CARD16" name="mask" />
1158       <pad bytes="2" />
1159     </reply>
1160   </request>
1161
1162   <struct name="TIMECOORD">
1163     <field type="TIMESTAMP" name="time" />
1164     <field type="INT16" name="x" />
1165     <field type="INT16" name="y" />
1166   </struct>
1167
1168   <request name="GetMotionEvents" opcode="39">
1169     <pad bytes="1" />
1170     <field type="WINDOW" name="window" />
1171     <field type="TIMESTAMP" name="start" altenum="Time" />
1172     <field type="TIMESTAMP" name="stop" altenum="Time" />
1173     <reply>
1174       <pad bytes="1" />
1175       <field type="CARD32" name="events_len" />
1176       <pad bytes="20" />
1177       <list type="TIMECOORD" name="events">
1178         <fieldref>events_len</fieldref>
1179       </list>
1180     </reply>
1181   </request>
1182
1183   <request name="TranslateCoordinates" opcode="40">
1184     <pad bytes="1" />
1185     <field type="WINDOW" name="src_window" />
1186     <field type="WINDOW" name="dst_window" />
1187     <field type="INT16" name="src_x" />
1188     <field type="INT16" name="src_y" />
1189     <reply>
1190       <field type="BOOL" name="same_screen" />
1191       <field type="WINDOW" name="child" />
1192       <field type="CARD16" name="dst_x" />
1193       <field type="CARD16" name="dst_y" />
1194     </reply>
1195   </request>
1196
1197   <request name="WarpPointer" opcode="41">
1198     <pad bytes="1" />
1199     <field type="WINDOW" name="src_window" />
1200     <field type="WINDOW" name="dst_window" />
1201     <field type="INT16" name="src_x" />
1202     <field type="INT16" name="src_y" />
1203     <field type="CARD16" name="src_width" />
1204     <field type="CARD16" name="src_height" />
1205     <field type="INT16" name="dst_x" />
1206     <field type="INT16" name="dst_y" />
1207   </request>
1208
1209   <!-- used for revert_to and focus -->
1210   <enum name="InputFocus">
1211     <item name="None">       <value>0</value></item>
1212     <item name="PointerRoot"><value>1</value></item>
1213     <item name="Parent">     <value>2</value></item>  <!-- revert_to only -->
1214   </enum>
1215
1216   <request name="SetInputFocus" opcode="42">
1217     <field type="CARD8" name="revert_to" enum="InputFocus" />
1218     <field type="WINDOW" name="focus" altenum="InputFocus" />
1219     <field type="TIMESTAMP" name="time" altenum="Time" />
1220   </request>
1221
1222   <request name="GetInputFocus" opcode="43">
1223     <reply>
1224       <field type="CARD8" name="revert_to" enum="InputFocus" />
1225       <field type="WINDOW" name="focus" altenum="InputFocus" />
1226     </reply>
1227   </request>
1228
1229   <request name="QueryKeymap" opcode="44">
1230     <reply>
1231       <pad bytes="1" />
1232       <list type="CARD8" name="keys"><value>32</value></list>
1233     </reply>
1234   </request>
1235
1236   <request name="OpenFont" opcode="45">
1237     <pad bytes="1" />
1238     <field type="FONT" name="fid" />
1239     <field type="CARD16" name="name_len" />
1240     <pad bytes="2" />
1241     <list type="char" name="name">
1242       <fieldref>name_len</fieldref>
1243     </list>
1244   </request>
1245
1246   <request name="CloseFont" opcode="46">
1247     <pad bytes="1" />
1248     <field type="FONT" name="font" />
1249   </request>
1250
1251   <enum name="FontDraw">
1252     <item name="LeftToRight"><value>0</value></item>
1253     <item name="RightToLeft"><value>1</value></item>
1254   </enum>
1255
1256   <struct name="FONTPROP">
1257     <field type="ATOM" name="name" />
1258     <field type="CARD32" name="value" />
1259   </struct>
1260
1261   <struct name="CHARINFO">
1262     <field type="INT16" name="left_side_bearing" />
1263     <field type="INT16" name="right_side_bearing" />
1264     <field type="INT16" name="character_width" />
1265     <field type="INT16" name="ascent" />
1266     <field type="INT16" name="descent" />
1267     <field type="CARD16" name="attributes" />
1268   </struct>
1269
1270   <request name="QueryFont" opcode="47">
1271     <pad bytes="1" />
1272     <field type="FONTABLE" name="font" />
1273     <reply>
1274       <pad bytes="1" />
1275       <field type="CHARINFO" name="min_bounds" />
1276       <pad bytes="4" />
1277       <field type="CHARINFO" name="max_bounds" />
1278       <pad bytes="4" />
1279       <field type="CARD16" name="min_char_or_byte2" />
1280       <field type="CARD16" name="max_char_or_byte2" />
1281       <field type="CARD16" name="default_char" />
1282       <field type="CARD16" name="properties_len" />
1283       <field type="BYTE" name="draw_direction" enum="FontDraw" />
1284       <field type="CARD8" name="min_byte1" />
1285       <field type="CARD8" name="max_byte1" />
1286       <field type="BOOL" name="all_chars_exist" />
1287       <field type="INT16" name="font_ascent" />
1288       <field type="INT16" name="font_descent" />
1289       <field type="CARD32" name="char_infos_len" />
1290       <list type="FONTPROP" name="properties">
1291         <fieldref>properties_len</fieldref>
1292       </list>
1293       <list type="CHARINFO" name="char_infos">
1294         <fieldref>char_infos_len</fieldref>
1295       </list>
1296     </reply>
1297   </request>
1298
1299   <request name="QueryTextExtents" opcode="48">
1300     <exprfield type="BOOL" name="odd_length">
1301       <op op="&amp;"><fieldref>string_len</fieldref><value>1</value></op>
1302     </exprfield>
1303     <field type="FONTABLE" name="font" />
1304     <list type="CHAR2B" name="string" />
1305     <reply>
1306       <field type="BYTE" name="draw_direction" enum="FontDraw" />
1307       <field type="INT16" name="font_ascent" />
1308       <field type="INT16" name="font_descent" />
1309       <field type="INT16" name="overall_ascent" />
1310       <field type="INT16" name="overall_descent" />
1311       <field type="INT32" name="overall_width" />
1312       <field type="INT32" name="overall_left" />
1313       <field type="INT32" name="overall_right" />
1314     </reply>
1315   </request>
1316
1317   <struct name="STR">
1318     <field type="CARD8" name="name_len" />
1319     <list type="char" name="name">
1320       <fieldref>name_len</fieldref>
1321     </list>
1322   </struct>
1323
1324   <request name="ListFonts" opcode="49">
1325     <pad bytes="1" />
1326     <field type="CARD16" name="max_names" />
1327     <field type="CARD16" name="pattern_len" />
1328     <list type="char" name="pattern">
1329       <fieldref>pattern_len</fieldref>
1330     </list>
1331     <reply>
1332       <pad bytes="1" />
1333       <field type="CARD16" name="names_len" />
1334       <pad bytes="22" />
1335       <list type="STR" name="names">
1336         <fieldref>names_len</fieldref>
1337       </list>
1338     </reply>
1339   </request>
1340
1341   <request name="ListFontsWithInfo" opcode="50">
1342     <pad bytes="1" />
1343     <field type="CARD16" name="max_names" />
1344     <field type="CARD16" name="pattern_len" />
1345     <list type="char" name="pattern">
1346       <fieldref>pattern_len</fieldref>
1347     </list>
1348     <reply>
1349       <field type="CARD8" name="name_len" />
1350       <field type="CHARINFO" name="min_bounds" />
1351       <pad bytes="4" />
1352       <field type="CHARINFO" name="max_bounds" />
1353       <pad bytes="4" />
1354       <field type="CARD16" name="min_char_or_byte2" />
1355       <field type="CARD16" name="max_char_or_byte2" />
1356       <field type="CARD16" name="default_char" />
1357       <field type="CARD16" name="properties_len" />
1358       <field type="BYTE" name="draw_direction" enum="FontDraw" />
1359       <field type="CARD8" name="min_byte1" />
1360       <field type="CARD8" name="max_byte1" />
1361       <field type="BOOL" name="all_chars_exist" />
1362       <field type="INT16" name="font_ascent" />
1363       <field type="INT16" name="font_descent" />
1364       <field type="CARD32" name="replies_hint" />
1365       <list type="FONTPROP" name="properties">
1366         <fieldref>properties_len</fieldref>
1367       </list>
1368       <list type="char" name="name">
1369         <fieldref>name_len</fieldref>
1370       </list>
1371     </reply>
1372   </request>
1373
1374   <request name="SetFontPath" opcode="51">
1375     <pad bytes="1" />
1376     <field type="CARD16" name="font_qty" />
1377     <list type="char" name="path" />
1378   </request>
1379
1380   <request name="GetFontPath" opcode="52">
1381     <reply>
1382       <pad bytes="1" />
1383       <field type="CARD16" name="path_len" />
1384       <pad bytes="22" />
1385       <list type="STR" name="path">
1386         <fieldref>path_len</fieldref>
1387       </list>
1388     </reply>
1389   </request>
1390
1391   <request name="CreatePixmap" opcode="53">
1392     <field type="CARD8" name="depth" />
1393     <field type="PIXMAP" name="pid" />
1394     <field type="DRAWABLE" name="drawable" />
1395     <field type="CARD16" name="width" />
1396     <field type="CARD16" name="height" />
1397   </request>
1398
1399   <request name="FreePixmap" opcode="54">
1400     <pad bytes="1" />
1401     <field type="PIXMAP" name="pixmap" />
1402   </request>
1403   
1404   <enum name="GC">
1405     <item name="Function">          <bit>0</bit></item>
1406     <item name="PlaneMask">         <bit>1</bit></item>
1407     <item name="Foreground">        <bit>2</bit></item>
1408     <item name="Background">        <bit>3</bit></item>
1409     <item name="LineWidth">         <bit>4</bit></item>
1410     <item name="LineStyle">         <bit>5</bit></item>
1411     <item name="CapStyle">          <bit>6</bit></item>
1412     <item name="JoinStyle">         <bit>7</bit></item>
1413     <item name="FillStyle">         <bit>8</bit></item>
1414     <item name="FillRule">          <bit>9</bit></item>
1415     <item name="Tile">              <bit>10</bit></item>
1416     <item name="Stipple">           <bit>11</bit></item>
1417     <item name="TileStippleOriginX"><bit>12</bit></item>
1418     <item name="TileStippleOriginY"><bit>13</bit></item>
1419     <item name="Font">              <bit>14</bit></item>
1420     <item name="SubwindowMode">     <bit>15</bit></item>
1421     <item name="GraphicsExposures"> <bit>16</bit></item>
1422     <item name="ClipOriginX">       <bit>17</bit></item>
1423     <item name="ClipOriginY">       <bit>18</bit></item>
1424     <item name="ClipMask">          <bit>19</bit></item>
1425     <item name="DashOffset">        <bit>20</bit></item>
1426     <item name="DashList">          <bit>21</bit></item>
1427     <item name="ArcMode">           <bit>22</bit></item>
1428   </enum>
1429
1430   <!-- GC Function values -->
1431   <enum name="GX">
1432     <item name="clear">       <value>0</value></item>
1433     <item name="and">         <value>1</value></item>
1434     <item name="andReverse">  <value>2</value></item>
1435     <item name="copy">        <value>3</value></item>
1436     <item name="andInverted"> <value>4</value></item>
1437     <item name="noop">        <value>5</value></item>
1438     <item name="xor">         <value>6</value></item>
1439     <item name="or">          <value>7</value></item>
1440     <item name="nor">         <value>8</value></item>
1441     <item name="equiv">       <value>9</value></item>
1442     <item name="invert">      <value>10</value></item>
1443     <item name="orReverse">   <value>11</value></item>
1444     <item name="copyInverted"><value>12</value></item>
1445     <item name="orInverted">  <value>13</value></item>
1446     <item name="nand">        <value>14</value></item>
1447     <item name="set">         <value>15</value></item>
1448   </enum>
1449
1450   <enum name="LineStyle">
1451     <item name="Solid">     <value>0</value></item>
1452     <item name="OnOffDash"> <value>1</value></item>
1453     <item name="DoubleDash"><value>2</value></item>
1454   </enum>
1455
1456   <enum name="CapStyle">
1457     <item name="NotLast">   <value>0</value></item>
1458     <item name="Butt">      <value>1</value></item>
1459     <item name="Round">     <value>2</value></item>
1460     <item name="Projecting"><value>3</value></item>
1461   </enum>
1462
1463   <enum name="JoinStyle">
1464     <item name="Mitre">     <value>0</value></item>
1465     <item name="Round">     <value>1</value></item>
1466     <item name="Bevel">     <value>2</value></item>
1467   </enum>
1468
1469   <enum name="FillStyle">
1470     <item name="Solid">         <value>0</value></item>
1471     <item name="Tiled">         <value>1</value></item>
1472     <item name="Stippled">      <value>2</value></item>
1473     <item name="OpaqueStippled"><value>3</value></item>
1474   </enum>
1475
1476   <enum name="FillRule">
1477     <item name="EvenOdd"><value>0</value></item>
1478     <item name="Winding"><value>1</value></item>
1479   </enum>
1480
1481   <enum name="SubwindowMode">
1482     <item name="ClipByChildren">  <value>0</value></item>
1483     <item name="IncludeInferiors"><value>1</value></item>
1484   </enum>
1485
1486   <enum name="ArcMode">
1487     <item name="Chord">   <value>0</value></item>
1488     <item name="PieSlice"><value>1</value></item>
1489   </enum>
1490
1491   <request name="CreateGC" opcode="55">
1492     <pad bytes="1" />
1493     <field type="GCONTEXT" name="cid" />
1494     <field type="DRAWABLE" name="drawable" />
1495     <valueparam value-mask-type="CARD32"
1496                 value-mask-name="value_mask"
1497                 value-list-name="value_list" />
1498   </request>
1499
1500   <request name="ChangeGC" opcode="56">
1501     <pad bytes="1" />
1502     <field type="GCONTEXT" name="gc" />
1503     <valueparam value-mask-type="CARD32"
1504                 value-mask-name="value_mask"
1505                 value-list-name="value_list" />
1506   </request>
1507
1508   <request name="CopyGC" opcode="57">
1509     <pad bytes="1" />
1510     <field type="GCONTEXT" name="src_gc" />
1511     <field type="GCONTEXT" name="dst_gc" />
1512     <field type="CARD32" name="value_mask" mask="GC" />
1513   </request>
1514
1515   <request name="SetDashes" opcode="58">
1516     <pad bytes="1" />
1517     <field type="GCONTEXT" name="gc" />
1518     <field type="CARD16" name="dash_offset" />
1519     <field type="CARD16" name="dashes_len" />
1520     <list type="CARD8" name="dashes">
1521       <fieldref>dashes_len</fieldref>
1522     </list>
1523   </request>
1524
1525   <enum name="ClipOrdering">
1526     <item name="Unsorted"><value>0</value></item>
1527     <item name="YSorted"> <value>1</value></item>
1528     <item name="YXSorted"><value>2</value></item>
1529     <item name="YXBanded"><value>3</value></item>
1530   </enum>
1531
1532   <request name="SetClipRectangles" opcode="59">
1533     <field type="BYTE" name="ordering" enum="ClipOrdering" />
1534     <field type="GCONTEXT" name="gc" />
1535     <field type="INT16" name="clip_x_origin" />
1536     <field type="INT16" name="clip_y_origin" />
1537     <list type="RECTANGLE" name="rectangles" />
1538   </request>
1539
1540   <request name="FreeGC" opcode="60">
1541     <pad bytes="1" />
1542     <field type="GCONTEXT" name="gc" />
1543   </request>
1544
1545   <request name="ClearArea" opcode="61">
1546     <field type="BOOL" name="exposures" />
1547     <field type="WINDOW" name="window" />
1548     <field type="INT16" name="x" />
1549     <field type="INT16" name="y" />
1550     <field type="CARD16" name="width" />
1551     <field type="CARD16" name="height" />
1552   </request>
1553
1554   <request name="CopyArea" opcode="62">
1555     <pad bytes="1" />
1556     <field type="DRAWABLE" name="src_drawable" />
1557     <field type="DRAWABLE" name="dst_drawable" />
1558     <field type="GCONTEXT" name="gc" />
1559     <field type="INT16" name="src_x" />
1560     <field type="INT16" name="src_y" />
1561     <field type="INT16" name="dst_x" />
1562     <field type="INT16" name="dst_y" />
1563     <field type="CARD16" name="width" />
1564     <field type="CARD16" name="height" />
1565   </request>
1566
1567   <request name="CopyPlane" opcode="63">
1568     <pad bytes="1" />
1569     <field type="DRAWABLE" name="src_drawable" />
1570     <field type="DRAWABLE" name="dst_drawable" />
1571     <field type="GCONTEXT" name="gc" />
1572     <field type="INT16" name="src_x" />
1573     <field type="INT16" name="src_y" />
1574     <field type="INT16" name="dst_x" />
1575     <field type="INT16" name="dst_y" />
1576     <field type="CARD16" name="width" />
1577     <field type="CARD16" name="height" />
1578     <field type="CARD32" name="bit_plane" />
1579   </request>
1580   
1581   <enum name="CoordMode">
1582     <item name="Origin">  <value>0</value></item>
1583     <item name="Previous"><value>1</value></item>
1584   </enum>
1585
1586   <!-- combine-adjacent doesn't work for mode==Relative -->
1587   <request name="PolyPoint" opcode="64">
1588     <field type="BYTE" name="coordinate_mode" enum="CoordMode" />
1589     <field type="DRAWABLE" name="drawable" />
1590     <field type="GCONTEXT" name="gc" />
1591     <list type="POINT" name="points" />
1592   </request>
1593
1594   <request name="PolyLine" opcode="65" combine-adjacent="true">
1595     <field type="BYTE" name="coordinate_mode" enum="CoordMode" />
1596     <field type="DRAWABLE" name="drawable" />
1597     <field type="GCONTEXT" name="gc" />
1598     <list type="POINT" name="points" />
1599   </request>
1600
1601   <struct name="SEGMENT">
1602     <field type="INT16" name="x1" />
1603     <field type="INT16" name="y1" />
1604     <field type="INT16" name="x2" />
1605     <field type="INT16" name="y2" />
1606   </struct>
1607
1608   <request name="PolySegment" opcode="66" combine-adjacent="true">
1609     <pad bytes="1" />
1610     <field type="DRAWABLE" name="drawable" />
1611     <field type="GCONTEXT" name="gc" />
1612     <list type="SEGMENT" name="segments" />
1613   </request>
1614
1615   <request name="PolyRectangle" opcode="67" combine-adjacent="true">
1616     <pad bytes="1" />
1617     <field type="DRAWABLE" name="drawable" />
1618     <field type="GCONTEXT" name="gc" />
1619     <list type="RECTANGLE" name="rectangles" />
1620   </request>
1621
1622   <!--
1623     The semantics of PolyArc change after the first arc: the GC's
1624     join style may be applied to successive arcs under some circumstances.
1625     So using combine-adjacent here is bad.
1626   -->
1627   <request name="PolyArc" opcode="68">
1628     <pad bytes="1" />
1629     <field type="DRAWABLE" name="drawable" />
1630     <field type="GCONTEXT" name="gc" />
1631     <list type="ARC" name="arcs" />
1632   </request>
1633
1634   <enum name="PolyShape">
1635     <item name="Complex">  <value>0</value></item>
1636     <item name="Nonconvex"><value>1</value></item>
1637     <item name="Convex">   <value>2</value></item>
1638   </enum>
1639
1640   <request name="FillPoly" opcode="69">
1641     <pad bytes="1" />
1642     <field type="DRAWABLE" name="drawable" />
1643     <field type="GCONTEXT" name="gc" />
1644     <field type="CARD8" name="shape" enum="PolyShape" />
1645     <field type="CARD8" name="coordinate_mode" enum="CoordMode" />
1646     <pad bytes="2" />
1647     <list type="POINT" name="points" />
1648   </request>
1649
1650   <request name="PolyFillRectangle" opcode="70" combine-adjacent="true">
1651     <pad bytes="1" />
1652     <field type="DRAWABLE" name="drawable" />
1653     <field type="GCONTEXT" name="gc" />
1654     <list type="RECTANGLE" name="rectangles" />
1655   </request>
1656
1657   <request name="PolyFillArc" opcode="71" combine-adjacent="true">
1658     <pad bytes="1" />
1659     <field type="DRAWABLE" name="drawable" />
1660     <field type="GCONTEXT" name="gc" />
1661     <list type="ARC" name="arcs" />
1662   </request>
1663   
1664   <enum name="ImageFormat">
1665     <item name="XYBitmap"><value>0</value></item>
1666     <item name="XYPixmap"><value>1</value></item>
1667     <item name="ZPixmap"> <value>2</value></item>
1668   </enum>
1669
1670   <request name="PutImage" opcode="72">
1671     <field type="CARD8" name="format" enum="ImageFormat" />
1672     <field type="DRAWABLE" name="drawable" />
1673     <field type="GCONTEXT" name="gc" />
1674     <field type="CARD16" name="width" />
1675     <field type="CARD16" name="height" />
1676     <field type="INT16" name="dst_x" />
1677     <field type="INT16" name="dst_y" />
1678     <field type="CARD8" name="left_pad" />
1679     <field type="CARD8" name="depth" />
1680     <pad bytes="2" />
1681     <list type="BYTE" name="data" />
1682   </request>
1683
1684   <!-- FIXME: data array in reply will include padding, but ought not to. -->
1685   <request name="GetImage" opcode="73">
1686     <field type="CARD8" name="format" enum="ImageFormat" />
1687     <field type="DRAWABLE" name="drawable" />
1688     <field type="INT16" name="x" />
1689     <field type="INT16" name="y" />
1690     <field type="CARD16" name="width" />
1691     <field type="CARD16" name="height" />
1692     <field type="CARD32" name="plane_mask" />
1693     <reply>
1694       <field type="CARD8" name="depth" />
1695       <field type="VISUALID" name="visual" />
1696       <pad bytes="20" />
1697       <list type="BYTE" name="data">
1698         <op op="*">
1699           <fieldref>length</fieldref>
1700           <value>4</value>
1701         </op>
1702       </list>
1703     </reply>
1704   </request>
1705
1706   <request name="PolyText8" opcode="74">
1707     <pad bytes="1" />
1708     <field type="DRAWABLE" name="drawable" />
1709     <field type="GCONTEXT" name="gc" />
1710     <field type="INT16" name="x" />
1711     <field type="INT16" name="y" />
1712     <list type="BYTE" name="items" />
1713   </request>
1714
1715   <request name="PolyText16" opcode="75">
1716     <pad bytes="1" />
1717     <field type="DRAWABLE" name="drawable" />
1718     <field type="GCONTEXT" name="gc" />
1719     <field type="INT16" name="x" />
1720     <field type="INT16" name="y" />
1721     <list type="BYTE" name="items" />
1722   </request>
1723
1724   <request name="ImageText8" opcode="76">
1725     <field type="BYTE" name="string_len" />
1726     <field type="DRAWABLE" name="drawable" />
1727     <field type="GCONTEXT" name="gc" />
1728     <field type="INT16" name="x" />
1729     <field type="INT16" name="y" />
1730     <list type="char" name="string">
1731       <fieldref>string_len</fieldref>
1732     </list>
1733   </request>
1734
1735   <request name="ImageText16" opcode="77">
1736     <field type="BYTE" name="string_len" />
1737     <field type="DRAWABLE" name="drawable" />
1738     <field type="GCONTEXT" name="gc" />
1739     <field type="INT16" name="x" />
1740     <field type="INT16" name="y" />
1741     <list type="CHAR2B" name="string">
1742       <fieldref>string_len</fieldref>
1743     </list>
1744   </request>
1745
1746   <enum name= "ColormapAlloc">
1747     <item name="None"><value>0</value></item>
1748     <item name="All"> <value>1</value></item>
1749   </enum>
1750
1751   <request name="CreateColormap" opcode="78">
1752     <field type="BYTE" name="alloc" enum="ColormapAlloc" />
1753     <field type="COLORMAP" name="mid" />
1754     <field type="WINDOW" name="window" />
1755     <field type="VISUALID" name="visual" />
1756   </request>
1757
1758   <request name="FreeColormap" opcode="79">
1759     <pad bytes="1" />
1760     <field type="COLORMAP" name="cmap" />
1761   </request>
1762
1763   <request name="CopyColormapAndFree" opcode="80">
1764     <pad bytes="1" />
1765     <field type="COLORMAP" name="mid" />
1766     <field type="COLORMAP" name="src_cmap" />
1767   </request>
1768
1769   <request name="InstallColormap" opcode="81">
1770     <pad bytes="1" />
1771     <field type="COLORMAP" name="cmap" />
1772   </request>
1773
1774   <request name="UninstallColormap" opcode="82">
1775     <pad bytes="1" />
1776     <field type="COLORMAP" name="cmap" />
1777   </request>
1778
1779   <request name="ListInstalledColormaps" opcode="83">
1780     <pad bytes="1" />
1781     <field type="WINDOW" name="window" />
1782     <reply>
1783       <pad bytes="1" />
1784       <field type="CARD16" name="cmaps_len" />
1785       <pad bytes="22" />
1786       <list type="COLORMAP" name="cmaps">
1787         <fieldref>cmaps_len</fieldref>
1788       </list>
1789     </reply>
1790   </request>
1791
1792   <request name="AllocColor" opcode="84">
1793     <pad bytes="1" />
1794     <field type="COLORMAP" name="cmap" />
1795     <field type="CARD16" name="red" />
1796     <field type="CARD16" name="green" />
1797     <field type="CARD16" name="blue" />
1798     <pad bytes="2" />
1799     <reply>
1800       <pad bytes="1" />
1801       <field type="CARD16" name="red" />
1802       <field type="CARD16" name="green" />
1803       <field type="CARD16" name="blue" />
1804       <pad bytes="2" />
1805       <field type="CARD32" name="pixel" />
1806     </reply>
1807   </request>
1808
1809   <request name="AllocNamedColor" opcode="85">
1810     <pad bytes="1" />
1811     <field type="COLORMAP" name="cmap" />
1812     <field type="CARD16" name="name_len" />
1813     <pad bytes="2" />
1814     <list type="char" name="name">
1815       <fieldref>name_len</fieldref>
1816     </list>
1817     <reply>
1818       <pad bytes="1" />
1819       <field type="CARD32" name="pixel" />
1820       <field type="CARD16" name="exact_red" />
1821       <field type="CARD16" name="exact_green" />
1822       <field type="CARD16" name="exact_blue" />
1823       <field type="CARD16" name="visual_red" />
1824       <field type="CARD16" name="visual_green" />
1825       <field type="CARD16" name="visual_blue" />
1826     </reply>
1827   </request>
1828
1829   <request name="AllocColorCells" opcode="86">
1830     <field type="BOOL" name="contiguous" />
1831     <field type="COLORMAP" name="cmap" />
1832     <field type="CARD16" name="colors" />
1833     <field type="CARD16" name="planes" />
1834     <reply>
1835       <pad bytes="1" />
1836       <field type="CARD16" name="pixels_len" />
1837       <field type="CARD16" name="masks_len" />
1838       <pad bytes="20" />
1839       <list type="CARD32" name="pixels">
1840         <fieldref>pixels_len</fieldref>
1841       </list>
1842       <list type="CARD32" name="masks">
1843         <fieldref>masks_len</fieldref>
1844       </list>
1845     </reply>
1846   </request>
1847
1848   <request name="AllocColorPlanes" opcode="87">
1849     <field type="BOOL" name="contiguous" />
1850     <field type="COLORMAP" name="cmap" />
1851     <field type="CARD16" name="colors" />
1852     <field type="CARD16" name="reds" />
1853     <field type="CARD16" name="greens" />
1854     <field type="CARD16" name="blues" />
1855     <reply>
1856       <pad bytes="1" />
1857       <field type="CARD16" name="pixels_len" />
1858       <pad bytes="2" />
1859       <field type="CARD32" name="red_mask" />
1860       <field type="CARD32" name="green_mask" />
1861       <field type="CARD32" name="blue_mask" />
1862       <pad bytes="8" />
1863       <list type="CARD32" name="pixels">
1864         <fieldref>pixels_len</fieldref>
1865       </list>
1866     </reply>
1867   </request>
1868
1869   <request name="FreeColors" opcode="88">
1870     <pad bytes="1" />
1871     <field type="COLORMAP" name="cmap" />
1872     <field type="CARD32" name="plane_mask" />
1873     <list type="CARD32" name="pixels" />
1874   </request>
1875
1876   <enum name="ColorFlag">
1877     <item name="Red">  <bit>0</bit></item>
1878     <item name="Green"><bit>1</bit></item>
1879     <item name="Blue"> <bit>2</bit></item>
1880   </enum>
1881
1882   <struct name="COLORITEM">
1883     <field type="CARD32" name="pixel" />
1884     <field type="CARD16" name="red" />
1885     <field type="CARD16" name="green" />
1886     <field type="CARD16" name="blue" />
1887     <field type="BYTE" name="flags" mask="ColorFlag" />
1888     <pad bytes="1" />
1889   </struct>
1890   
1891   <request name="StoreColors" opcode="89" combine-adjacent="true">
1892     <pad bytes="1" />
1893     <field type="COLORMAP" name="cmap" />
1894     <list type="COLORITEM" name="items" />
1895   </request>
1896
1897   <request name="StoreNamedColor" opcode="90">
1898     <field type="CARD8" name="flags" mask="ColorFlag" />
1899     <field type="COLORMAP" name="cmap" />
1900     <field type="CARD32" name="pixel" />
1901     <field type="CARD16" name="name_len" />
1902     <pad bytes="2" />
1903     <list type="char" name="name">
1904       <fieldref>name_len</fieldref>
1905     </list>
1906   </request>
1907
1908   <struct name="RGB">
1909     <field type="CARD16" name="red" />
1910     <field type="CARD16" name="green" />
1911     <field type="CARD16" name="blue" />
1912     <pad bytes="2" />
1913   </struct>
1914
1915   <request name="QueryColors" opcode="91">
1916     <pad bytes="1" />
1917     <field type="COLORMAP" name="cmap" />
1918     <list type="CARD32" name="pixels" />
1919     <reply>
1920       <pad bytes="1" />
1921       <field type="CARD16" name="colors_len" />
1922       <pad bytes="22" />
1923       <list type="RGB" name="colors">
1924         <fieldref>colors_len</fieldref>
1925       </list>
1926     </reply>
1927   </request>
1928
1929   <request name="LookupColor" opcode="92">
1930     <pad bytes="1" />
1931     <field type="COLORMAP" name="cmap" />
1932     <field type="CARD16" name="name_len" />
1933     <pad bytes="2" />
1934     <list type="char" name="name">
1935       <fieldref>name_len</fieldref>
1936     </list>
1937     <reply>
1938       <pad bytes="1" />
1939       <field type="CARD16" name="exact_red" />
1940       <field type="CARD16" name="exact_green" />
1941       <field type="CARD16" name="exact_blue" />
1942       <field type="CARD16" name="visual_red" />
1943       <field type="CARD16" name="visual_green" />
1944       <field type="CARD16" name="visual_blue" />
1945     </reply>
1946   </request>
1947
1948   <request name="CreateCursor" opcode="93">
1949     <pad bytes="1" />
1950     <field type="CURSOR" name="cid" />
1951     <field type="PIXMAP" name="source" />
1952     <field type="PIXMAP" name="mask" />
1953     <field type="CARD16" name="fore_red" />
1954     <field type="CARD16" name="fore_green" />
1955     <field type="CARD16" name="fore_blue" />
1956     <field type="CARD16" name="back_red" />
1957     <field type="CARD16" name="back_green" />
1958     <field type="CARD16" name="back_blue" />
1959     <field type="CARD16" name="x" />
1960     <field type="CARD16" name="y" />
1961   </request>
1962
1963   <request name="CreateGlyphCursor" opcode="94">
1964     <pad bytes="1" />
1965     <field type="CURSOR" name="cid" />
1966     <field type="FONT" name="source_font" />
1967     <field type="FONT" name="mask_font" />
1968     <field type="CARD16" name="source_char" />
1969     <field type="CARD16" name="mask_char" />
1970     <field type="CARD16" name="fore_red" />
1971     <field type="CARD16" name="fore_green" />
1972     <field type="CARD16" name="fore_blue" />
1973     <field type="CARD16" name="back_red" />
1974     <field type="CARD16" name="back_green" />
1975     <field type="CARD16" name="back_blue" />
1976   </request>
1977
1978   <request name="FreeCursor" opcode="95">
1979     <pad bytes="1" />
1980     <field type="CURSOR" name="cursor" />
1981   </request>
1982
1983   <request name="RecolorCursor" opcode="96">
1984     <pad bytes="1" />
1985     <field type="CURSOR" name="cursor" />
1986     <field type="CARD16" name="fore_red" />
1987     <field type="CARD16" name="fore_green" />
1988     <field type="CARD16" name="fore_blue" />
1989     <field type="CARD16" name="back_red" />
1990     <field type="CARD16" name="back_green" />
1991     <field type="CARD16" name="back_blue" />
1992   </request>
1993
1994   <enum name="QueryShapeOf">
1995     <item name="LargestCursor"> <value>0</value></item>
1996     <item name="FastestTile">   <value>1</value></item>
1997     <item name="FastestStipple"><value>2</value></item>    
1998   </enum>
1999
2000   <request name="QueryBestSize" opcode="97">
2001     <field type="CARD8" name="class" enum="QueryShapeOf" />
2002     <field type="DRAWABLE" name="drawable" />
2003     <field type="CARD16" name="width" />
2004     <field type="CARD16" name="height" />
2005     <reply>
2006       <pad bytes="1" />
2007       <field type="CARD16" name="width" />
2008       <field type="CARD16" name="height" />
2009     </reply>
2010   </request>
2011
2012   <request name="QueryExtension" opcode="98">
2013     <pad bytes="1" />
2014     <field type="CARD16" name="name_len" />
2015     <pad bytes="2" />
2016     <list type="char" name="name">
2017       <fieldref>name_len</fieldref>
2018     </list>
2019     <reply>
2020       <pad bytes="1" />
2021       <field type="BOOL" name="present" />
2022       <field type="CARD8" name="major_opcode" />
2023       <field type="CARD8" name="first_event" />
2024       <field type="CARD8" name="first_error" />
2025     </reply>
2026   </request>
2027
2028   <request name="ListExtensions" opcode="99">
2029     <reply>
2030       <field type="CARD8" name="names_len" />
2031       <pad bytes="24" />
2032       <list type="STR" name="names">
2033         <fieldref>names_len</fieldref>
2034       </list>
2035     </reply>
2036   </request>
2037
2038   <request name="ChangeKeyboardMapping" opcode="100">
2039     <field type="CARD8" name="keycode_count" />
2040     <field type="KEYCODE" name="first_keycode" />
2041     <field type="CARD8" name="keysyms_per_keycode" />
2042     <list type="KEYSYM" name="keysyms">
2043       <op op="*">
2044         <fieldref>keycode_count</fieldref>
2045         <fieldref>keysyms_per_keycode</fieldref>
2046       </op>
2047     </list>
2048   </request>
2049
2050   <request name="GetKeyboardMapping" opcode="101">
2051     <pad bytes="1" />
2052     <field type="KEYCODE" name="first_keycode" />
2053     <field type="CARD8" name="count" />
2054     <reply>
2055       <field type="BYTE" name="keysyms_per_keycode" />
2056       <pad bytes="24" />
2057       <list type="KEYSYM" name="keysyms">
2058         <fieldref>length</fieldref>
2059       </list>
2060     </reply>
2061   </request>
2062
2063   <enum name="KB">
2064     <item name="KeyClickPercent"><bit>0</bit></item>
2065     <item name="BellPercent">    <bit>1</bit></item>
2066     <item name="BellPitch">      <bit>2</bit></item>
2067     <item name="BellDuration">   <bit>3</bit></item>
2068     <item name="Led">            <bit>4</bit></item>
2069     <item name="LedMode">        <bit>5</bit></item>
2070     <item name="Key">            <bit>6</bit></item>
2071     <item name="AutoRepeatMode"> <bit>7</bit></item>
2072   </enum>
2073
2074   <enum name="LedMode">
2075     <item name="Off"><value>0</value></item>
2076     <item name="On"> <value>1</value></item>
2077   </enum>
2078
2079   <enum name="AutoRepeatMode">
2080     <item name="Off">    <value>0</value></item>
2081     <item name="On">     <value>1</value></item>
2082     <item name="Default"><value>2</value></item>
2083   </enum>
2084
2085   <request name="ChangeKeyboardControl" opcode="102">
2086     <pad bytes="1" />
2087     <valueparam value-mask-type="CARD32"
2088                 value-mask-name="value_mask"
2089                 value-list-name="value_list" />
2090   </request>
2091
2092   <request name="GetKeyboardControl" opcode="103">
2093     <reply>
2094       <field type="BYTE" name="global_auto_repeat" enum="AutoRepeatMode" />
2095       <field type="CARD32" name="led_mask" />
2096       <field type="CARD8" name="key_click_percent" />
2097       <field type="CARD8" name="bell_percent" />
2098       <field type="CARD16" name="bell_pitch" />
2099       <field type="CARD16" name="bell_duration" />
2100       <pad bytes="2" />
2101       <list type="CARD8" name="auto_repeats"><value>32</value></list>
2102     </reply>
2103   </request>
2104
2105   <request name="Bell" opcode="104">
2106     <field type="INT8" name="percent" />
2107   </request>
2108
2109   <request name="ChangePointerControl" opcode="105">
2110     <pad bytes="1" />
2111     <field type="INT16" name="acceleration_numerator" />
2112     <field type="INT16" name="acceleration_denominator" />
2113     <field type="INT16" name="threshold" />
2114     <field type="BOOL" name="do_acceleration" />
2115     <field type="BOOL" name="do_threshold" />
2116   </request>
2117
2118   <request name="GetPointerControl" opcode="106">
2119     <reply>
2120       <pad bytes="1" />
2121       <field type="CARD16" name="acceleration_numerator" />
2122       <field type="CARD16" name="acceleration_denominator" />
2123       <field type="CARD16" name="threshold" />
2124       <pad bytes="18" />
2125     </reply>
2126   </request>
2127
2128   <!-- Screen saver timeout and interval can be set to -1 to restore defaults
2129        and set to 0 to disable the screen saver. -->
2130
2131   <enum name="Blanking">
2132     <item name="NotPreferred"><value>0</value></item>
2133     <item name="Preferred">   <value>1</value></item>
2134     <item name="Default">     <value>2</value></item>
2135   </enum>
2136
2137   <enum name="Exposures">
2138     <item name="NotAllowed"><value>0</value></item>
2139     <item name="Allowed">   <value>1</value></item>
2140     <item name="Default">   <value>2</value></item>
2141   </enum>
2142
2143   <request name="SetScreenSaver" opcode="107">
2144     <pad bytes="1" />
2145     <field type="INT16" name="timeout" />
2146     <field type="INT16" name="interval" />
2147     <field type="CARD8" name="prefer_blanking" enum="Blanking" />
2148     <field type="CARD8" name="allow_exposures" enum="Exposures" />
2149   </request>
2150
2151   <request name="GetScreenSaver" opcode="108">
2152     <reply>
2153       <pad bytes="1" />
2154       <field type="CARD16" name="timeout" />
2155       <field type="CARD16" name="interval" />
2156       <field type="BYTE" name="prefer_blanking" enum="Blanking" />
2157       <field type="BYTE" name="allow_exposures" enum="Exposures" />
2158       <pad bytes="18" />
2159     </reply>
2160   </request>
2161
2162   <enum name="HostMode">
2163     <item name="Insert"><value>0</value></item>
2164     <item name="Delete"><value>1</value></item>
2165   </enum>
2166
2167   <!-- also used and extended for Xau authentication -->
2168   <enum name="Family">
2169     <item name="Internet">         <value>0</value></item>
2170     <item name="DECnet">           <value>1</value></item>
2171     <item name="Chaos">            <value>2</value></item>
2172     <item name="ServerInterpreted"><value>5</value></item>
2173     <item name="Internet6">        <value>6</value></item>
2174   </enum>
2175
2176   <request name="ChangeHosts" opcode="109">
2177     <field type="CARD8" name="mode" enum="HostMode" />
2178     <field type="CARD8" name="family" enum="Family" />
2179     <pad bytes="1" />
2180     <field type="CARD16" name="address_len" />
2181     <list type="char" name="address">
2182       <fieldref>address_len</fieldref>
2183     </list>
2184   </request>
2185
2186   <struct name="HOST">
2187     <field type="CARD8" name="family" enum="Family" />
2188     <pad bytes="1" />
2189     <field type="CARD16" name="address_len" />
2190     <list type="BYTE" name="address">
2191       <fieldref>address_len</fieldref>
2192     </list>
2193   </struct>
2194
2195   <request name="ListHosts" opcode="110">
2196     <reply>
2197       <field type="BYTE" name="mode" enum="AccessControl" />
2198       <field type="CARD16" name="hosts_len" />
2199       <pad bytes="22" />
2200       <list type="HOST" name="hosts">
2201         <fieldref>hosts_len</fieldref>
2202       </list>
2203     </reply>
2204   </request>
2205
2206   <enum name="AccessControl">
2207     <item name="Disable"><value>0</value></item>
2208     <item name="Enable"> <value>1</value></item>
2209   </enum>
2210
2211   <request name="SetAccessControl" opcode="111">
2212     <field type="CARD8" name="mode" enum="AccessControl" />
2213   </request>
2214
2215   <enum name="CloseDown">
2216     <item name="DestroyAll">     <value>0</value></item>
2217     <item name="RetainPermanent"><value>1</value></item>
2218     <item name="RetainTemporary"><value>2</value></item>
2219   </enum>
2220
2221   <request name="SetCloseDownMode" opcode="112">
2222     <field type="CARD8" name="mode" enum="CloseDown" />
2223   </request>
2224
2225   <enum name="Kill">
2226     <item name="AllTemporary"><value>0</value></item>
2227   </enum>
2228
2229   <request name="KillClient" opcode="113">
2230     <pad bytes="1" />
2231     <field type="CARD32" name="resource" altenum="Kill" />
2232   </request>
2233
2234   <request name="RotateProperties" opcode="114">
2235     <pad bytes="1" />
2236     <field type="WINDOW" name="window" />
2237     <field type="CARD16" name="atoms_len" />
2238     <field type="INT16" name="delta" />
2239     <list type="ATOM" name="atoms">
2240       <fieldref>atoms_len</fieldref>
2241     </list>
2242   </request>
2243
2244   <enum name="ScreenSaver">
2245     <item name="Reset"> <value>0</value></item>
2246     <item name="Active"><value>1</value></item>
2247   </enum>
2248
2249   <request name="ForceScreenSaver" opcode="115">
2250     <field type="CARD8" name="mode" enum="ScreenSaver" />
2251   </request>
2252
2253   <!-- Reply from SetPointerMapping or SetModifierMapping -->
2254   <enum name="MappingStatus">
2255     <item name="Success"><value>0</value></item>
2256     <item name="Busy">   <value>1</value></item>
2257     <item name="Failure"><value>2</value></item>
2258   </enum>
2259
2260   <request name="SetPointerMapping" opcode="116">
2261     <field type="CARD8" name="map_len" />
2262     <list type="CARD8" name="map">
2263       <fieldref>map_len</fieldref>
2264     </list>
2265     <reply>
2266       <field type="BYTE" name="status" enum="MappingStatus" />
2267     </reply>
2268   </request>
2269
2270   <request name="GetPointerMapping" opcode="117">
2271     <reply>
2272       <field type="CARD8" name="map_len" />
2273       <pad bytes="24" />
2274       <list type="CARD8" name="map">
2275         <fieldref>map_len</fieldref>
2276       </list>
2277     </reply>
2278   </request>
2279   
2280   <enum name="MapIndex">
2281     <item name="Shift">  <value>0</value></item>
2282     <item name="Lock">   <value>1</value></item>
2283     <item name="Control"><value>2</value></item>
2284     <item name="1">      <value>3</value></item>
2285     <item name="2">      <value>4</value></item>
2286     <item name="3">      <value>5</value></item>
2287     <item name="4">      <value>6</value></item>
2288     <item name="5">      <value>7</value></item>
2289   </enum>
2290
2291   <request name="SetModifierMapping" opcode="118">
2292     <field type="CARD8" name="keycodes_per_modifier" />
2293     <list type="KEYCODE" name="keycodes">
2294       <op op="*">
2295         <fieldref>keycodes_per_modifier</fieldref>
2296         <value>8</value>
2297       </op>
2298     </list>
2299     <reply>
2300       <field type="BYTE" name="status" enum="MappingStatus" />
2301     </reply>
2302   </request>
2303
2304   <request name="GetModifierMapping" opcode="119">
2305     <reply>
2306       <field type="CARD8" name="keycodes_per_modifier" />
2307       <pad bytes="24" />
2308       <list type="KEYCODE" name="keycodes">
2309         <op op="*">
2310           <fieldref>keycodes_per_modifier</fieldref>
2311           <value>8</value>
2312         </op>
2313       </list>
2314     </reply>
2315   </request>
2316
2317   <!--
2318     FIXME: NoOperation should allow specifying payload length
2319     but geez, malloc()ing a 262140 byte buffer just so I have something
2320     to hand to write(2) seems silly...!
2321   -->
2322   <request name="NoOperation" opcode="127" />
2323
2324 </xcb>