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