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