Correct the length calculation for the value field of GetPropertyReply.
[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   </enum>
1252
1253   <request name="SetInputFocus" opcode="42">
1254     <field type="CARD8" name="revert_to" enum="InputFocus" />
1255     <field type="WINDOW" name="focus" altenum="InputFocus" />
1256     <field type="TIMESTAMP" name="time" altenum="Time" />
1257   </request>
1258
1259   <request name="GetInputFocus" opcode="43">
1260     <reply>
1261       <field type="CARD8" name="revert_to" enum="InputFocus" />
1262       <field type="WINDOW" name="focus" altenum="InputFocus" />
1263     </reply>
1264   </request>
1265
1266   <request name="QueryKeymap" opcode="44">
1267     <reply>
1268       <pad bytes="1" />
1269       <list type="CARD8" name="keys"><value>32</value></list>
1270     </reply>
1271   </request>
1272
1273   <request name="OpenFont" opcode="45">
1274     <pad bytes="1" />
1275     <field type="FONT" name="fid" />
1276     <field type="CARD16" name="name_len" />
1277     <pad bytes="2" />
1278     <list type="char" name="name">
1279       <fieldref>name_len</fieldref>
1280     </list>
1281   </request>
1282
1283   <request name="CloseFont" opcode="46">
1284     <pad bytes="1" />
1285     <field type="FONT" name="font" />
1286   </request>
1287
1288   <enum name="FontDraw">
1289     <item name="LeftToRight"><value>0</value></item>
1290     <item name="RightToLeft"><value>1</value></item>
1291   </enum>
1292
1293   <struct name="FONTPROP">
1294     <field type="ATOM" name="name" />
1295     <field type="CARD32" name="value" />
1296   </struct>
1297
1298   <struct name="CHARINFO">
1299     <field type="INT16" name="left_side_bearing" />
1300     <field type="INT16" name="right_side_bearing" />
1301     <field type="INT16" name="character_width" />
1302     <field type="INT16" name="ascent" />
1303     <field type="INT16" name="descent" />
1304     <field type="CARD16" name="attributes" />
1305   </struct>
1306
1307   <request name="QueryFont" opcode="47">
1308     <pad bytes="1" />
1309     <field type="FONTABLE" name="font" />
1310     <reply>
1311       <pad bytes="1" />
1312       <field type="CHARINFO" name="min_bounds" />
1313       <pad bytes="4" />
1314       <field type="CHARINFO" name="max_bounds" />
1315       <pad bytes="4" />
1316       <field type="CARD16" name="min_char_or_byte2" />
1317       <field type="CARD16" name="max_char_or_byte2" />
1318       <field type="CARD16" name="default_char" />
1319       <field type="CARD16" name="properties_len" />
1320       <field type="BYTE" name="draw_direction" enum="FontDraw" />
1321       <field type="CARD8" name="min_byte1" />
1322       <field type="CARD8" name="max_byte1" />
1323       <field type="BOOL" name="all_chars_exist" />
1324       <field type="INT16" name="font_ascent" />
1325       <field type="INT16" name="font_descent" />
1326       <field type="CARD32" name="char_infos_len" />
1327       <list type="FONTPROP" name="properties">
1328         <fieldref>properties_len</fieldref>
1329       </list>
1330       <list type="CHARINFO" name="char_infos">
1331         <fieldref>char_infos_len</fieldref>
1332       </list>
1333     </reply>
1334   </request>
1335
1336   <request name="QueryTextExtents" opcode="48">
1337     <exprfield type="BOOL" name="odd_length">
1338       <op op="&amp;"><fieldref>string_len</fieldref><value>1</value></op>
1339     </exprfield>
1340     <field type="FONTABLE" name="font" />
1341     <list type="CHAR2B" name="string" />
1342     <reply>
1343       <field type="BYTE" name="draw_direction" enum="FontDraw" />
1344       <field type="INT16" name="font_ascent" />
1345       <field type="INT16" name="font_descent" />
1346       <field type="INT16" name="overall_ascent" />
1347       <field type="INT16" name="overall_descent" />
1348       <field type="INT32" name="overall_width" />
1349       <field type="INT32" name="overall_left" />
1350       <field type="INT32" name="overall_right" />
1351     </reply>
1352   </request>
1353
1354   <struct name="STR">
1355     <field type="CARD8" name="name_len" />
1356     <list type="char" name="name">
1357       <fieldref>name_len</fieldref>
1358     </list>
1359   </struct>
1360
1361   <request name="ListFonts" opcode="49">
1362     <pad bytes="1" />
1363     <field type="CARD16" name="max_names" />
1364     <field type="CARD16" name="pattern_len" />
1365     <list type="char" name="pattern">
1366       <fieldref>pattern_len</fieldref>
1367     </list>
1368     <reply>
1369       <pad bytes="1" />
1370       <field type="CARD16" name="names_len" />
1371       <pad bytes="22" />
1372       <list type="STR" name="names">
1373         <fieldref>names_len</fieldref>
1374       </list>
1375     </reply>
1376   </request>
1377
1378   <request name="ListFontsWithInfo" opcode="50">
1379     <pad bytes="1" />
1380     <field type="CARD16" name="max_names" />
1381     <field type="CARD16" name="pattern_len" />
1382     <list type="char" name="pattern">
1383       <fieldref>pattern_len</fieldref>
1384     </list>
1385     <reply>
1386       <field type="CARD8" name="name_len" />
1387       <field type="CHARINFO" name="min_bounds" />
1388       <pad bytes="4" />
1389       <field type="CHARINFO" name="max_bounds" />
1390       <pad bytes="4" />
1391       <field type="CARD16" name="min_char_or_byte2" />
1392       <field type="CARD16" name="max_char_or_byte2" />
1393       <field type="CARD16" name="default_char" />
1394       <field type="CARD16" name="properties_len" />
1395       <field type="BYTE" name="draw_direction" enum="FontDraw" />
1396       <field type="CARD8" name="min_byte1" />
1397       <field type="CARD8" name="max_byte1" />
1398       <field type="BOOL" name="all_chars_exist" />
1399       <field type="INT16" name="font_ascent" />
1400       <field type="INT16" name="font_descent" />
1401       <field type="CARD32" name="replies_hint" />
1402       <list type="FONTPROP" name="properties">
1403         <fieldref>properties_len</fieldref>
1404       </list>
1405       <list type="char" name="name">
1406         <fieldref>name_len</fieldref>
1407       </list>
1408     </reply>
1409   </request>
1410
1411   <request name="SetFontPath" opcode="51">
1412     <pad bytes="1" />
1413     <field type="CARD16" name="font_qty" />
1414     <list type="char" name="path" />
1415   </request>
1416
1417   <request name="GetFontPath" opcode="52">
1418     <reply>
1419       <pad bytes="1" />
1420       <field type="CARD16" name="path_len" />
1421       <pad bytes="22" />
1422       <list type="STR" name="path">
1423         <fieldref>path_len</fieldref>
1424       </list>
1425     </reply>
1426   </request>
1427
1428   <request name="CreatePixmap" opcode="53">
1429     <field type="CARD8" name="depth" />
1430     <field type="PIXMAP" name="pid" />
1431     <field type="DRAWABLE" name="drawable" />
1432     <field type="CARD16" name="width" />
1433     <field type="CARD16" name="height" />
1434   </request>
1435
1436   <request name="FreePixmap" opcode="54">
1437     <pad bytes="1" />
1438     <field type="PIXMAP" name="pixmap" />
1439   </request>
1440   
1441   <enum name="GC">
1442     <item name="Function">          <bit>0</bit></item>
1443     <item name="PlaneMask">         <bit>1</bit></item>
1444     <item name="Foreground">        <bit>2</bit></item>
1445     <item name="Background">        <bit>3</bit></item>
1446     <item name="LineWidth">         <bit>4</bit></item>
1447     <item name="LineStyle">         <bit>5</bit></item>
1448     <item name="CapStyle">          <bit>6</bit></item>
1449     <item name="JoinStyle">         <bit>7</bit></item>
1450     <item name="FillStyle">         <bit>8</bit></item>
1451     <item name="FillRule">          <bit>9</bit></item>
1452     <item name="Tile">              <bit>10</bit></item>
1453     <item name="Stipple">           <bit>11</bit></item>
1454     <item name="TileStippleOriginX"><bit>12</bit></item>
1455     <item name="TileStippleOriginY"><bit>13</bit></item>
1456     <item name="Font">              <bit>14</bit></item>
1457     <item name="SubwindowMode">     <bit>15</bit></item>
1458     <item name="GraphicsExposures"> <bit>16</bit></item>
1459     <item name="ClipOriginX">       <bit>17</bit></item>
1460     <item name="ClipOriginY">       <bit>18</bit></item>
1461     <item name="ClipMask">          <bit>19</bit></item>
1462     <item name="DashOffset">        <bit>20</bit></item>
1463     <item name="DashList">          <bit>21</bit></item>
1464     <item name="ArcMode">           <bit>22</bit></item>
1465   </enum>
1466
1467   <!-- GC Function values -->
1468   <enum name="GX">
1469     <item name="clear">       <value>0</value></item>
1470     <item name="and">         <value>1</value></item>
1471     <item name="andReverse">  <value>2</value></item>
1472     <item name="copy">        <value>3</value></item>
1473     <item name="andInverted"> <value>4</value></item>
1474     <item name="noop">        <value>5</value></item>
1475     <item name="xor">         <value>6</value></item>
1476     <item name="or">          <value>7</value></item>
1477     <item name="nor">         <value>8</value></item>
1478     <item name="equiv">       <value>9</value></item>
1479     <item name="invert">      <value>10</value></item>
1480     <item name="orReverse">   <value>11</value></item>
1481     <item name="copyInverted"><value>12</value></item>
1482     <item name="orInverted">  <value>13</value></item>
1483     <item name="nand">        <value>14</value></item>
1484     <item name="set">         <value>15</value></item>
1485   </enum>
1486
1487   <enum name="LineStyle">
1488     <item name="Solid">     <value>0</value></item>
1489     <item name="OnOffDash"> <value>1</value></item>
1490     <item name="DoubleDash"><value>2</value></item>
1491   </enum>
1492
1493   <enum name="CapStyle">
1494     <item name="NotLast">   <value>0</value></item>
1495     <item name="Butt">      <value>1</value></item>
1496     <item name="Round">     <value>2</value></item>
1497     <item name="Projecting"><value>3</value></item>
1498   </enum>
1499
1500   <enum name="JoinStyle">
1501     <item name="Miter">     <value>0</value></item>
1502     <item name="Round">     <value>1</value></item>
1503     <item name="Bevel">     <value>2</value></item>
1504   </enum>
1505
1506   <enum name="FillStyle">
1507     <item name="Solid">         <value>0</value></item>
1508     <item name="Tiled">         <value>1</value></item>
1509     <item name="Stippled">      <value>2</value></item>
1510     <item name="OpaqueStippled"><value>3</value></item>
1511   </enum>
1512
1513   <enum name="FillRule">
1514     <item name="EvenOdd"><value>0</value></item>
1515     <item name="Winding"><value>1</value></item>
1516   </enum>
1517
1518   <enum name="SubwindowMode">
1519     <item name="ClipByChildren">  <value>0</value></item>
1520     <item name="IncludeInferiors"><value>1</value></item>
1521   </enum>
1522
1523   <enum name="ArcMode">
1524     <item name="Chord">   <value>0</value></item>
1525     <item name="PieSlice"><value>1</value></item>
1526   </enum>
1527
1528   <request name="CreateGC" opcode="55">
1529     <pad bytes="1" />
1530     <field type="GCONTEXT" name="cid" />
1531     <field type="DRAWABLE" name="drawable" />
1532     <valueparam value-mask-type="CARD32"
1533                 value-mask-name="value_mask"
1534                 value-list-name="value_list" />
1535   </request>
1536
1537   <request name="ChangeGC" opcode="56">
1538     <pad bytes="1" />
1539     <field type="GCONTEXT" name="gc" />
1540     <valueparam value-mask-type="CARD32"
1541                 value-mask-name="value_mask"
1542                 value-list-name="value_list" />
1543   </request>
1544
1545   <request name="CopyGC" opcode="57">
1546     <pad bytes="1" />
1547     <field type="GCONTEXT" name="src_gc" />
1548     <field type="GCONTEXT" name="dst_gc" />
1549     <field type="CARD32" name="value_mask" mask="GC" />
1550   </request>
1551
1552   <request name="SetDashes" opcode="58">
1553     <pad bytes="1" />
1554     <field type="GCONTEXT" name="gc" />
1555     <field type="CARD16" name="dash_offset" />
1556     <field type="CARD16" name="dashes_len" />
1557     <list type="CARD8" name="dashes">
1558       <fieldref>dashes_len</fieldref>
1559     </list>
1560   </request>
1561
1562   <enum name="ClipOrdering">
1563     <item name="Unsorted"><value>0</value></item>
1564     <item name="YSorted"> <value>1</value></item>
1565     <item name="YXSorted"><value>2</value></item>
1566     <item name="YXBanded"><value>3</value></item>
1567   </enum>
1568
1569   <request name="SetClipRectangles" opcode="59">
1570     <field type="BYTE" name="ordering" enum="ClipOrdering" />
1571     <field type="GCONTEXT" name="gc" />
1572     <field type="INT16" name="clip_x_origin" />
1573     <field type="INT16" name="clip_y_origin" />
1574     <list type="RECTANGLE" name="rectangles" />
1575   </request>
1576
1577   <request name="FreeGC" opcode="60">
1578     <pad bytes="1" />
1579     <field type="GCONTEXT" name="gc" />
1580   </request>
1581
1582   <request name="ClearArea" opcode="61">
1583     <field type="BOOL" name="exposures" />
1584     <field type="WINDOW" name="window" />
1585     <field type="INT16" name="x" />
1586     <field type="INT16" name="y" />
1587     <field type="CARD16" name="width" />
1588     <field type="CARD16" name="height" />
1589   </request>
1590
1591   <request name="CopyArea" opcode="62">
1592     <pad bytes="1" />
1593     <field type="DRAWABLE" name="src_drawable" />
1594     <field type="DRAWABLE" name="dst_drawable" />
1595     <field type="GCONTEXT" name="gc" />
1596     <field type="INT16" name="src_x" />
1597     <field type="INT16" name="src_y" />
1598     <field type="INT16" name="dst_x" />
1599     <field type="INT16" name="dst_y" />
1600     <field type="CARD16" name="width" />
1601     <field type="CARD16" name="height" />
1602   </request>
1603
1604   <request name="CopyPlane" opcode="63">
1605     <pad bytes="1" />
1606     <field type="DRAWABLE" name="src_drawable" />
1607     <field type="DRAWABLE" name="dst_drawable" />
1608     <field type="GCONTEXT" name="gc" />
1609     <field type="INT16" name="src_x" />
1610     <field type="INT16" name="src_y" />
1611     <field type="INT16" name="dst_x" />
1612     <field type="INT16" name="dst_y" />
1613     <field type="CARD16" name="width" />
1614     <field type="CARD16" name="height" />
1615     <field type="CARD32" name="bit_plane" />
1616   </request>
1617   
1618   <enum name="CoordMode">
1619     <item name="Origin">  <value>0</value></item>
1620     <item name="Previous"><value>1</value></item>
1621   </enum>
1622
1623   <!-- combine-adjacent doesn't work for mode==Relative -->
1624   <request name="PolyPoint" opcode="64">
1625     <field type="BYTE" name="coordinate_mode" enum="CoordMode" />
1626     <field type="DRAWABLE" name="drawable" />
1627     <field type="GCONTEXT" name="gc" />
1628     <list type="POINT" name="points" />
1629   </request>
1630
1631   <request name="PolyLine" opcode="65" combine-adjacent="true">
1632     <field type="BYTE" name="coordinate_mode" enum="CoordMode" />
1633     <field type="DRAWABLE" name="drawable" />
1634     <field type="GCONTEXT" name="gc" />
1635     <list type="POINT" name="points" />
1636   </request>
1637
1638   <struct name="SEGMENT">
1639     <field type="INT16" name="x1" />
1640     <field type="INT16" name="y1" />
1641     <field type="INT16" name="x2" />
1642     <field type="INT16" name="y2" />
1643   </struct>
1644
1645   <request name="PolySegment" opcode="66" combine-adjacent="true">
1646     <pad bytes="1" />
1647     <field type="DRAWABLE" name="drawable" />
1648     <field type="GCONTEXT" name="gc" />
1649     <list type="SEGMENT" name="segments" />
1650   </request>
1651
1652   <request name="PolyRectangle" opcode="67" combine-adjacent="true">
1653     <pad bytes="1" />
1654     <field type="DRAWABLE" name="drawable" />
1655     <field type="GCONTEXT" name="gc" />
1656     <list type="RECTANGLE" name="rectangles" />
1657   </request>
1658
1659   <!--
1660     The semantics of PolyArc change after the first arc: the GC's
1661     join style may be applied to successive arcs under some circumstances.
1662     So using combine-adjacent here is bad.
1663   -->
1664   <request name="PolyArc" opcode="68">
1665     <pad bytes="1" />
1666     <field type="DRAWABLE" name="drawable" />
1667     <field type="GCONTEXT" name="gc" />
1668     <list type="ARC" name="arcs" />
1669   </request>
1670
1671   <enum name="PolyShape">
1672     <item name="Complex">  <value>0</value></item>
1673     <item name="Nonconvex"><value>1</value></item>
1674     <item name="Convex">   <value>2</value></item>
1675   </enum>
1676
1677   <request name="FillPoly" opcode="69">
1678     <pad bytes="1" />
1679     <field type="DRAWABLE" name="drawable" />
1680     <field type="GCONTEXT" name="gc" />
1681     <field type="CARD8" name="shape" enum="PolyShape" />
1682     <field type="CARD8" name="coordinate_mode" enum="CoordMode" />
1683     <pad bytes="2" />
1684     <list type="POINT" name="points" />
1685   </request>
1686
1687   <request name="PolyFillRectangle" opcode="70" combine-adjacent="true">
1688     <pad bytes="1" />
1689     <field type="DRAWABLE" name="drawable" />
1690     <field type="GCONTEXT" name="gc" />
1691     <list type="RECTANGLE" name="rectangles" />
1692   </request>
1693
1694   <request name="PolyFillArc" opcode="71" combine-adjacent="true">
1695     <pad bytes="1" />
1696     <field type="DRAWABLE" name="drawable" />
1697     <field type="GCONTEXT" name="gc" />
1698     <list type="ARC" name="arcs" />
1699   </request>
1700   
1701   <enum name="ImageFormat">
1702     <item name="XYBitmap"><value>0</value></item>
1703     <item name="XYPixmap"><value>1</value></item>
1704     <item name="ZPixmap"> <value>2</value></item>
1705   </enum>
1706
1707   <request name="PutImage" opcode="72">
1708     <field type="CARD8" name="format" enum="ImageFormat" />
1709     <field type="DRAWABLE" name="drawable" />
1710     <field type="GCONTEXT" name="gc" />
1711     <field type="CARD16" name="width" />
1712     <field type="CARD16" name="height" />
1713     <field type="INT16" name="dst_x" />
1714     <field type="INT16" name="dst_y" />
1715     <field type="CARD8" name="left_pad" />
1716     <field type="CARD8" name="depth" />
1717     <pad bytes="2" />
1718     <list type="BYTE" name="data" />
1719   </request>
1720
1721   <!-- FIXME: data array in reply will include padding, but ought not to. -->
1722   <request name="GetImage" opcode="73">
1723     <field type="CARD8" name="format" enum="ImageFormat" />
1724     <field type="DRAWABLE" name="drawable" />
1725     <field type="INT16" name="x" />
1726     <field type="INT16" name="y" />
1727     <field type="CARD16" name="width" />
1728     <field type="CARD16" name="height" />
1729     <field type="CARD32" name="plane_mask" />
1730     <reply>
1731       <field type="CARD8" name="depth" />
1732       <field type="VISUALID" name="visual" />
1733       <pad bytes="20" />
1734       <list type="BYTE" name="data">
1735         <op op="*">
1736           <fieldref>length</fieldref>
1737           <value>4</value>
1738         </op>
1739       </list>
1740     </reply>
1741   </request>
1742
1743   <request name="PolyText8" opcode="74">
1744     <pad bytes="1" />
1745     <field type="DRAWABLE" name="drawable" />
1746     <field type="GCONTEXT" name="gc" />
1747     <field type="INT16" name="x" />
1748     <field type="INT16" name="y" />
1749     <list type="BYTE" name="items" />
1750   </request>
1751
1752   <request name="PolyText16" opcode="75">
1753     <pad bytes="1" />
1754     <field type="DRAWABLE" name="drawable" />
1755     <field type="GCONTEXT" name="gc" />
1756     <field type="INT16" name="x" />
1757     <field type="INT16" name="y" />
1758     <list type="BYTE" name="items" />
1759   </request>
1760
1761   <request name="ImageText8" opcode="76">
1762     <field type="BYTE" name="string_len" />
1763     <field type="DRAWABLE" name="drawable" />
1764     <field type="GCONTEXT" name="gc" />
1765     <field type="INT16" name="x" />
1766     <field type="INT16" name="y" />
1767     <list type="char" name="string">
1768       <fieldref>string_len</fieldref>
1769     </list>
1770   </request>
1771
1772   <request name="ImageText16" opcode="77">
1773     <field type="BYTE" name="string_len" />
1774     <field type="DRAWABLE" name="drawable" />
1775     <field type="GCONTEXT" name="gc" />
1776     <field type="INT16" name="x" />
1777     <field type="INT16" name="y" />
1778     <list type="CHAR2B" name="string">
1779       <fieldref>string_len</fieldref>
1780     </list>
1781   </request>
1782
1783   <enum name= "ColormapAlloc">
1784     <item name="None"><value>0</value></item>
1785     <item name="All"> <value>1</value></item>
1786   </enum>
1787
1788   <request name="CreateColormap" opcode="78">
1789     <field type="BYTE" name="alloc" enum="ColormapAlloc" />
1790     <field type="COLORMAP" name="mid" />
1791     <field type="WINDOW" name="window" />
1792     <field type="VISUALID" name="visual" />
1793   </request>
1794
1795   <request name="FreeColormap" opcode="79">
1796     <pad bytes="1" />
1797     <field type="COLORMAP" name="cmap" />
1798   </request>
1799
1800   <request name="CopyColormapAndFree" opcode="80">
1801     <pad bytes="1" />
1802     <field type="COLORMAP" name="mid" />
1803     <field type="COLORMAP" name="src_cmap" />
1804   </request>
1805
1806   <request name="InstallColormap" opcode="81">
1807     <pad bytes="1" />
1808     <field type="COLORMAP" name="cmap" />
1809   </request>
1810
1811   <request name="UninstallColormap" opcode="82">
1812     <pad bytes="1" />
1813     <field type="COLORMAP" name="cmap" />
1814   </request>
1815
1816   <request name="ListInstalledColormaps" opcode="83">
1817     <pad bytes="1" />
1818     <field type="WINDOW" name="window" />
1819     <reply>
1820       <pad bytes="1" />
1821       <field type="CARD16" name="cmaps_len" />
1822       <pad bytes="22" />
1823       <list type="COLORMAP" name="cmaps">
1824         <fieldref>cmaps_len</fieldref>
1825       </list>
1826     </reply>
1827   </request>
1828
1829   <request name="AllocColor" opcode="84">
1830     <pad bytes="1" />
1831     <field type="COLORMAP" name="cmap" />
1832     <field type="CARD16" name="red" />
1833     <field type="CARD16" name="green" />
1834     <field type="CARD16" name="blue" />
1835     <pad bytes="2" />
1836     <reply>
1837       <pad bytes="1" />
1838       <field type="CARD16" name="red" />
1839       <field type="CARD16" name="green" />
1840       <field type="CARD16" name="blue" />
1841       <pad bytes="2" />
1842       <field type="CARD32" name="pixel" />
1843     </reply>
1844   </request>
1845
1846   <request name="AllocNamedColor" opcode="85">
1847     <pad bytes="1" />
1848     <field type="COLORMAP" name="cmap" />
1849     <field type="CARD16" name="name_len" />
1850     <pad bytes="2" />
1851     <list type="char" name="name">
1852       <fieldref>name_len</fieldref>
1853     </list>
1854     <reply>
1855       <pad bytes="1" />
1856       <field type="CARD32" name="pixel" />
1857       <field type="CARD16" name="exact_red" />
1858       <field type="CARD16" name="exact_green" />
1859       <field type="CARD16" name="exact_blue" />
1860       <field type="CARD16" name="visual_red" />
1861       <field type="CARD16" name="visual_green" />
1862       <field type="CARD16" name="visual_blue" />
1863     </reply>
1864   </request>
1865
1866   <request name="AllocColorCells" opcode="86">
1867     <field type="BOOL" name="contiguous" />
1868     <field type="COLORMAP" name="cmap" />
1869     <field type="CARD16" name="colors" />
1870     <field type="CARD16" name="planes" />
1871     <reply>
1872       <pad bytes="1" />
1873       <field type="CARD16" name="pixels_len" />
1874       <field type="CARD16" name="masks_len" />
1875       <pad bytes="20" />
1876       <list type="CARD32" name="pixels">
1877         <fieldref>pixels_len</fieldref>
1878       </list>
1879       <list type="CARD32" name="masks">
1880         <fieldref>masks_len</fieldref>
1881       </list>
1882     </reply>
1883   </request>
1884
1885   <request name="AllocColorPlanes" opcode="87">
1886     <field type="BOOL" name="contiguous" />
1887     <field type="COLORMAP" name="cmap" />
1888     <field type="CARD16" name="colors" />
1889     <field type="CARD16" name="reds" />
1890     <field type="CARD16" name="greens" />
1891     <field type="CARD16" name="blues" />
1892     <reply>
1893       <pad bytes="1" />
1894       <field type="CARD16" name="pixels_len" />
1895       <pad bytes="2" />
1896       <field type="CARD32" name="red_mask" />
1897       <field type="CARD32" name="green_mask" />
1898       <field type="CARD32" name="blue_mask" />
1899       <pad bytes="8" />
1900       <list type="CARD32" name="pixels">
1901         <fieldref>pixels_len</fieldref>
1902       </list>
1903     </reply>
1904   </request>
1905
1906   <request name="FreeColors" opcode="88">
1907     <pad bytes="1" />
1908     <field type="COLORMAP" name="cmap" />
1909     <field type="CARD32" name="plane_mask" />
1910     <list type="CARD32" name="pixels" />
1911   </request>
1912
1913   <enum name="ColorFlag">
1914     <item name="Red">  <bit>0</bit></item>
1915     <item name="Green"><bit>1</bit></item>
1916     <item name="Blue"> <bit>2</bit></item>
1917   </enum>
1918
1919   <struct name="COLORITEM">
1920     <field type="CARD32" name="pixel" />
1921     <field type="CARD16" name="red" />
1922     <field type="CARD16" name="green" />
1923     <field type="CARD16" name="blue" />
1924     <field type="BYTE" name="flags" mask="ColorFlag" />
1925     <pad bytes="1" />
1926   </struct>
1927   
1928   <request name="StoreColors" opcode="89" combine-adjacent="true">
1929     <pad bytes="1" />
1930     <field type="COLORMAP" name="cmap" />
1931     <list type="COLORITEM" name="items" />
1932   </request>
1933
1934   <request name="StoreNamedColor" opcode="90">
1935     <field type="CARD8" name="flags" mask="ColorFlag" />
1936     <field type="COLORMAP" name="cmap" />
1937     <field type="CARD32" name="pixel" />
1938     <field type="CARD16" name="name_len" />
1939     <pad bytes="2" />
1940     <list type="char" name="name">
1941       <fieldref>name_len</fieldref>
1942     </list>
1943   </request>
1944
1945   <struct name="RGB">
1946     <field type="CARD16" name="red" />
1947     <field type="CARD16" name="green" />
1948     <field type="CARD16" name="blue" />
1949     <pad bytes="2" />
1950   </struct>
1951
1952   <request name="QueryColors" opcode="91">
1953     <pad bytes="1" />
1954     <field type="COLORMAP" name="cmap" />
1955     <list type="CARD32" name="pixels" />
1956     <reply>
1957       <pad bytes="1" />
1958       <field type="CARD16" name="colors_len" />
1959       <pad bytes="22" />
1960       <list type="RGB" name="colors">
1961         <fieldref>colors_len</fieldref>
1962       </list>
1963     </reply>
1964   </request>
1965
1966   <request name="LookupColor" opcode="92">
1967     <pad bytes="1" />
1968     <field type="COLORMAP" name="cmap" />
1969     <field type="CARD16" name="name_len" />
1970     <pad bytes="2" />
1971     <list type="char" name="name">
1972       <fieldref>name_len</fieldref>
1973     </list>
1974     <reply>
1975       <pad bytes="1" />
1976       <field type="CARD16" name="exact_red" />
1977       <field type="CARD16" name="exact_green" />
1978       <field type="CARD16" name="exact_blue" />
1979       <field type="CARD16" name="visual_red" />
1980       <field type="CARD16" name="visual_green" />
1981       <field type="CARD16" name="visual_blue" />
1982     </reply>
1983   </request>
1984
1985   <enum name="Pixmap">
1986     <item name="None"> <value>0</value></item>
1987   </enum>
1988
1989   <request name="CreateCursor" opcode="93">
1990     <pad bytes="1" />
1991     <field type="CURSOR" name="cid" />
1992     <field type="PIXMAP" name="source" />
1993     <field type="PIXMAP" name="mask" altenum="Pixmap" />
1994     <field type="CARD16" name="fore_red" />
1995     <field type="CARD16" name="fore_green" />
1996     <field type="CARD16" name="fore_blue" />
1997     <field type="CARD16" name="back_red" />
1998     <field type="CARD16" name="back_green" />
1999     <field type="CARD16" name="back_blue" />
2000     <field type="CARD16" name="x" />
2001     <field type="CARD16" name="y" />
2002   </request>
2003
2004   <enum name="Font">
2005     <item name="None"> <value>0</value></item>
2006   </enum>
2007
2008   <request name="CreateGlyphCursor" opcode="94">
2009     <pad bytes="1" />
2010     <field type="CURSOR" name="cid" />
2011     <field type="FONT" name="source_font" />
2012     <field type="FONT" name="mask_font" altenum="Font" />
2013     <field type="CARD16" name="source_char" />
2014     <field type="CARD16" name="mask_char" />
2015     <field type="CARD16" name="fore_red" />
2016     <field type="CARD16" name="fore_green" />
2017     <field type="CARD16" name="fore_blue" />
2018     <field type="CARD16" name="back_red" />
2019     <field type="CARD16" name="back_green" />
2020     <field type="CARD16" name="back_blue" />
2021   </request>
2022
2023   <request name="FreeCursor" opcode="95">
2024     <pad bytes="1" />
2025     <field type="CURSOR" name="cursor" />
2026   </request>
2027
2028   <request name="RecolorCursor" opcode="96">
2029     <pad bytes="1" />
2030     <field type="CURSOR" name="cursor" />
2031     <field type="CARD16" name="fore_red" />
2032     <field type="CARD16" name="fore_green" />
2033     <field type="CARD16" name="fore_blue" />
2034     <field type="CARD16" name="back_red" />
2035     <field type="CARD16" name="back_green" />
2036     <field type="CARD16" name="back_blue" />
2037   </request>
2038
2039   <enum name="QueryShapeOf">
2040     <item name="LargestCursor"> <value>0</value></item>
2041     <item name="FastestTile">   <value>1</value></item>
2042     <item name="FastestStipple"><value>2</value></item>    
2043   </enum>
2044
2045   <request name="QueryBestSize" opcode="97">
2046     <field type="CARD8" name="class" enum="QueryShapeOf" />
2047     <field type="DRAWABLE" name="drawable" />
2048     <field type="CARD16" name="width" />
2049     <field type="CARD16" name="height" />
2050     <reply>
2051       <pad bytes="1" />
2052       <field type="CARD16" name="width" />
2053       <field type="CARD16" name="height" />
2054     </reply>
2055   </request>
2056
2057   <request name="QueryExtension" opcode="98">
2058     <pad bytes="1" />
2059     <field type="CARD16" name="name_len" />
2060     <pad bytes="2" />
2061     <list type="char" name="name">
2062       <fieldref>name_len</fieldref>
2063     </list>
2064     <reply>
2065       <pad bytes="1" />
2066       <field type="BOOL" name="present" />
2067       <field type="CARD8" name="major_opcode" />
2068       <field type="CARD8" name="first_event" />
2069       <field type="CARD8" name="first_error" />
2070     </reply>
2071   </request>
2072
2073   <request name="ListExtensions" opcode="99">
2074     <reply>
2075       <field type="CARD8" name="names_len" />
2076       <pad bytes="24" />
2077       <list type="STR" name="names">
2078         <fieldref>names_len</fieldref>
2079       </list>
2080     </reply>
2081   </request>
2082
2083   <request name="ChangeKeyboardMapping" opcode="100">
2084     <field type="CARD8" name="keycode_count" />
2085     <field type="KEYCODE" name="first_keycode" />
2086     <field type="CARD8" name="keysyms_per_keycode" />
2087     <list type="KEYSYM" name="keysyms">
2088       <op op="*">
2089         <fieldref>keycode_count</fieldref>
2090         <fieldref>keysyms_per_keycode</fieldref>
2091       </op>
2092     </list>
2093   </request>
2094
2095   <request name="GetKeyboardMapping" opcode="101">
2096     <pad bytes="1" />
2097     <field type="KEYCODE" name="first_keycode" />
2098     <field type="CARD8" name="count" />
2099     <reply>
2100       <field type="BYTE" name="keysyms_per_keycode" />
2101       <pad bytes="24" />
2102       <list type="KEYSYM" name="keysyms">
2103         <fieldref>length</fieldref>
2104       </list>
2105     </reply>
2106   </request>
2107
2108   <enum name="KB">
2109     <item name="KeyClickPercent"><bit>0</bit></item>
2110     <item name="BellPercent">    <bit>1</bit></item>
2111     <item name="BellPitch">      <bit>2</bit></item>
2112     <item name="BellDuration">   <bit>3</bit></item>
2113     <item name="Led">            <bit>4</bit></item>
2114     <item name="LedMode">        <bit>5</bit></item>
2115     <item name="Key">            <bit>6</bit></item>
2116     <item name="AutoRepeatMode"> <bit>7</bit></item>
2117   </enum>
2118
2119   <enum name="LedMode">
2120     <item name="Off"><value>0</value></item>
2121     <item name="On"> <value>1</value></item>
2122   </enum>
2123
2124   <enum name="AutoRepeatMode">
2125     <item name="Off">    <value>0</value></item>
2126     <item name="On">     <value>1</value></item>
2127     <item name="Default"><value>2</value></item>
2128   </enum>
2129
2130   <request name="ChangeKeyboardControl" opcode="102">
2131     <pad bytes="1" />
2132     <valueparam value-mask-type="CARD32"
2133                 value-mask-name="value_mask"
2134                 value-list-name="value_list" />
2135   </request>
2136
2137   <request name="GetKeyboardControl" opcode="103">
2138     <reply>
2139       <field type="BYTE" name="global_auto_repeat" enum="AutoRepeatMode" />
2140       <field type="CARD32" name="led_mask" />
2141       <field type="CARD8" name="key_click_percent" />
2142       <field type="CARD8" name="bell_percent" />
2143       <field type="CARD16" name="bell_pitch" />
2144       <field type="CARD16" name="bell_duration" />
2145       <pad bytes="2" />
2146       <list type="CARD8" name="auto_repeats"><value>32</value></list>
2147     </reply>
2148   </request>
2149
2150   <request name="Bell" opcode="104">
2151     <field type="INT8" name="percent" />
2152   </request>
2153
2154   <request name="ChangePointerControl" opcode="105">
2155     <pad bytes="1" />
2156     <field type="INT16" name="acceleration_numerator" />
2157     <field type="INT16" name="acceleration_denominator" />
2158     <field type="INT16" name="threshold" />
2159     <field type="BOOL" name="do_acceleration" />
2160     <field type="BOOL" name="do_threshold" />
2161   </request>
2162
2163   <request name="GetPointerControl" opcode="106">
2164     <reply>
2165       <pad bytes="1" />
2166       <field type="CARD16" name="acceleration_numerator" />
2167       <field type="CARD16" name="acceleration_denominator" />
2168       <field type="CARD16" name="threshold" />
2169       <pad bytes="18" />
2170     </reply>
2171   </request>
2172
2173   <!-- Screen saver timeout and interval can be set to -1 to restore defaults
2174        and set to 0 to disable the screen saver. -->
2175
2176   <enum name="Blanking">
2177     <item name="NotPreferred"><value>0</value></item>
2178     <item name="Preferred">   <value>1</value></item>
2179     <item name="Default">     <value>2</value></item>
2180   </enum>
2181
2182   <enum name="Exposures">
2183     <item name="NotAllowed"><value>0</value></item>
2184     <item name="Allowed">   <value>1</value></item>
2185     <item name="Default">   <value>2</value></item>
2186   </enum>
2187
2188   <request name="SetScreenSaver" opcode="107">
2189     <pad bytes="1" />
2190     <field type="INT16" name="timeout" />
2191     <field type="INT16" name="interval" />
2192     <field type="CARD8" name="prefer_blanking" enum="Blanking" />
2193     <field type="CARD8" name="allow_exposures" enum="Exposures" />
2194   </request>
2195
2196   <request name="GetScreenSaver" opcode="108">
2197     <reply>
2198       <pad bytes="1" />
2199       <field type="CARD16" name="timeout" />
2200       <field type="CARD16" name="interval" />
2201       <field type="BYTE" name="prefer_blanking" enum="Blanking" />
2202       <field type="BYTE" name="allow_exposures" enum="Exposures" />
2203       <pad bytes="18" />
2204     </reply>
2205   </request>
2206
2207   <enum name="HostMode">
2208     <item name="Insert"><value>0</value></item>
2209     <item name="Delete"><value>1</value></item>
2210   </enum>
2211
2212   <!-- also used and extended for Xau authentication -->
2213   <enum name="Family">
2214     <item name="Internet">         <value>0</value></item>
2215     <item name="DECnet">           <value>1</value></item>
2216     <item name="Chaos">            <value>2</value></item>
2217     <item name="ServerInterpreted"><value>5</value></item>
2218     <item name="Internet6">        <value>6</value></item>
2219   </enum>
2220
2221   <request name="ChangeHosts" opcode="109">
2222     <field type="CARD8" name="mode" enum="HostMode" />
2223     <field type="CARD8" name="family" enum="Family" />
2224     <pad bytes="1" />
2225     <field type="CARD16" name="address_len" />
2226     <list type="char" name="address">
2227       <fieldref>address_len</fieldref>
2228     </list>
2229   </request>
2230
2231   <struct name="HOST">
2232     <field type="CARD8" name="family" enum="Family" />
2233     <pad bytes="1" />
2234     <field type="CARD16" name="address_len" />
2235     <list type="BYTE" name="address">
2236       <fieldref>address_len</fieldref>
2237     </list>
2238   </struct>
2239
2240   <request name="ListHosts" opcode="110">
2241     <reply>
2242       <field type="BYTE" name="mode" enum="AccessControl" />
2243       <field type="CARD16" name="hosts_len" />
2244       <pad bytes="22" />
2245       <list type="HOST" name="hosts">
2246         <fieldref>hosts_len</fieldref>
2247       </list>
2248     </reply>
2249   </request>
2250
2251   <enum name="AccessControl">
2252     <item name="Disable"><value>0</value></item>
2253     <item name="Enable"> <value>1</value></item>
2254   </enum>
2255
2256   <request name="SetAccessControl" opcode="111">
2257     <field type="CARD8" name="mode" enum="AccessControl" />
2258   </request>
2259
2260   <enum name="CloseDown">
2261     <item name="DestroyAll">     <value>0</value></item>
2262     <item name="RetainPermanent"><value>1</value></item>
2263     <item name="RetainTemporary"><value>2</value></item>
2264   </enum>
2265
2266   <request name="SetCloseDownMode" opcode="112">
2267     <field type="CARD8" name="mode" enum="CloseDown" />
2268   </request>
2269
2270   <enum name="Kill">
2271     <item name="AllTemporary"><value>0</value></item>
2272   </enum>
2273
2274   <request name="KillClient" opcode="113">
2275     <pad bytes="1" />
2276     <field type="CARD32" name="resource" altenum="Kill" />
2277   </request>
2278
2279   <request name="RotateProperties" opcode="114">
2280     <pad bytes="1" />
2281     <field type="WINDOW" name="window" />
2282     <field type="CARD16" name="atoms_len" />
2283     <field type="INT16" name="delta" />
2284     <list type="ATOM" name="atoms">
2285       <fieldref>atoms_len</fieldref>
2286     </list>
2287   </request>
2288
2289   <enum name="ScreenSaver">
2290     <item name="Reset"> <value>0</value></item>
2291     <item name="Active"><value>1</value></item>
2292   </enum>
2293
2294   <request name="ForceScreenSaver" opcode="115">
2295     <field type="CARD8" name="mode" enum="ScreenSaver" />
2296   </request>
2297
2298   <!-- Reply from SetPointerMapping or SetModifierMapping -->
2299   <enum name="MappingStatus">
2300     <item name="Success"><value>0</value></item>
2301     <item name="Busy">   <value>1</value></item>
2302     <item name="Failure"><value>2</value></item>
2303   </enum>
2304
2305   <request name="SetPointerMapping" opcode="116">
2306     <field type="CARD8" name="map_len" />
2307     <list type="CARD8" name="map">
2308       <fieldref>map_len</fieldref>
2309     </list>
2310     <reply>
2311       <field type="BYTE" name="status" enum="MappingStatus" />
2312     </reply>
2313   </request>
2314
2315   <request name="GetPointerMapping" opcode="117">
2316     <reply>
2317       <field type="CARD8" name="map_len" />
2318       <pad bytes="24" />
2319       <list type="CARD8" name="map">
2320         <fieldref>map_len</fieldref>
2321       </list>
2322     </reply>
2323   </request>
2324   
2325   <enum name="MapIndex">
2326     <item name="Shift">  <value>0</value></item>
2327     <item name="Lock">   <value>1</value></item>
2328     <item name="Control"><value>2</value></item>
2329     <item name="1">      <value>3</value></item>
2330     <item name="2">      <value>4</value></item>
2331     <item name="3">      <value>5</value></item>
2332     <item name="4">      <value>6</value></item>
2333     <item name="5">      <value>7</value></item>
2334   </enum>
2335
2336   <request name="SetModifierMapping" opcode="118">
2337     <field type="CARD8" name="keycodes_per_modifier" />
2338     <list type="KEYCODE" name="keycodes">
2339       <op op="*">
2340         <fieldref>keycodes_per_modifier</fieldref>
2341         <value>8</value>
2342       </op>
2343     </list>
2344     <reply>
2345       <field type="BYTE" name="status" enum="MappingStatus" />
2346     </reply>
2347   </request>
2348
2349   <request name="GetModifierMapping" opcode="119">
2350     <reply>
2351       <field type="CARD8" name="keycodes_per_modifier" />
2352       <pad bytes="24" />
2353       <list type="KEYCODE" name="keycodes">
2354         <op op="*">
2355           <fieldref>keycodes_per_modifier</fieldref>
2356           <value>8</value>
2357         </op>
2358       </list>
2359     </reply>
2360   </request>
2361
2362   <!--
2363     FIXME: NoOperation should allow specifying payload length
2364     but geez, malloc()ing a 262140 byte buffer just so I have something
2365     to hand to write(2) seems silly...!
2366   -->
2367   <request name="NoOperation" opcode="127" />
2368
2369 </xcb>