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