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