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