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