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