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