Update the schema: a reply may contain a valueparam.
[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 event and error types -->
30
31   <event name="KeyPress" number="2">
32     <field type="KEYCODE" name="detail" />
33     <field type="TIMESTAMP" name="time" />
34     <field type="WINDOW" name="root" />
35     <field type="WINDOW" name="event" />
36     <field type="WINDOW" name="child" />
37     <field type="INT16" name="root_x" />
38     <field type="INT16" name="root_y" />
39     <field type="INT16" name="event_x" />
40     <field type="INT16" name="event_y" />
41     <field type="CARD16" name="state" />
42     <field type="BOOL" name="same_screen" />
43   </event>
44
45   <eventcopy name="KeyRelease" number="3" ref="KeyPress" />
46
47   <event name="ButtonPress" number="4">
48     <field type="BUTTON" name="detail" />
49     <field type="TIMESTAMP" name="time" />
50     <field type="WINDOW" name="root" />
51     <field type="WINDOW" name="event" />
52     <field type="WINDOW" name="child" />
53     <field type="INT16" name="root_x" />
54     <field type="INT16" name="root_y" />
55     <field type="INT16" name="event_x" />
56     <field type="INT16" name="event_y" />
57     <field type="CARD16" name="state" />
58     <field type="BOOL" name="same_screen" />
59   </event>
60
61   <eventcopy name="ButtonRelease" number="5" ref="ButtonPress" />
62
63   <event name="MotionNotify" number="6">
64     <field type="BYTE" name="detail" />
65     <field type="TIMESTAMP" name="time" />
66     <field type="WINDOW" name="root" />
67     <field type="WINDOW" name="event" />
68     <field type="WINDOW" name="child" />
69     <field type="INT16" name="root_x" />
70     <field type="INT16" name="root_y" />
71     <field type="INT16" name="event_x" />
72     <field type="INT16" name="event_y" />
73     <field type="CARD16" name="state" />
74     <field type="BOOL" name="same_screen" />
75   </event>
76
77   <event name="EnterNotify" number="7">
78     <field type="BYTE" name="detail" />
79     <field type="TIMESTAMP" name="time" />
80     <field type="WINDOW" name="root" />
81     <field type="WINDOW" name="event" />
82     <field type="WINDOW" name="child" />
83     <field type="INT16" name="root_x" />
84     <field type="INT16" name="root_y" />
85     <field type="INT16" name="event_x" />
86     <field type="INT16" name="event_y" />
87     <field type="CARD16" name="state" />
88     <field type="BYTE" name="mode" />
89     <field type="BYTE" name="same_screen_focus" />
90   </event>
91
92   <eventcopy name="LeaveNotify" number="8" ref="EnterNotify" />
93
94   <event name="FocusIn" number="9">
95     <field type="BYTE" name="detail" />
96     <field type="WINDOW" name="event" />
97     <field type="BYTE" name="mode" />
98   </event>
99
100   <eventcopy name="FocusOut" number="10" ref="FocusIn" />
101
102   <event name="KeymapNotify" number="11" no-sequence-number="true">
103     <list type="CARD8" name="keys"><value>31</value></list>
104   </event>
105
106   <event name="Expose" number="12">
107     <pad bytes="1" />
108     <field type="WINDOW" name="window" />
109     <field type="CARD16" name="x" />
110     <field type="CARD16" name="y" />
111     <field type="CARD16" name="width" />
112     <field type="CARD16" name="height" />
113     <field type="CARD16" name="count" />
114   </event>
115
116   <event name="GraphicsExposure" number="13">
117     <pad bytes="1" />
118     <field type="DRAWABLE" name="drawable" />
119     <field type="CARD16" name="x" />
120     <field type="CARD16" name="y" />
121     <field type="CARD16" name="width" />
122     <field type="CARD16" name="height" />
123     <field type="CARD16" name="minor_opcode" />
124     <field type="CARD16" name="count" />
125     <field type="CARD8" name="major_opcode" />
126   </event>
127
128   <event name="NoExposure" number="14">
129     <pad bytes="1" />
130     <field type="DRAWABLE" name="drawable" />
131     <field type="CARD16" name="minor_opcode" />
132     <field type="CARD8" name="major_opcode" />
133   </event>
134
135   <event name="VisibilityNotify" number="15">
136     <pad bytes="1" />
137     <field type="WINDOW" name="window" />
138     <field type="BYTE" name="state" />
139   </event>
140
141   <event name="CreateNotify" number="16">
142     <pad bytes="1" />
143     <field type="WINDOW" name="parent" />
144     <field type="WINDOW" name="window" />
145     <field type="INT16" name="x" />
146     <field type="INT16" name="y" />
147     <field type="CARD16" name="width" />
148     <field type="CARD16" name="height" />
149     <field type="CARD16" name="border_width" />
150     <field type="BOOL" name="override_redirect" />
151   </event>
152
153   <event name="DestroyNotify" number="17">
154     <pad bytes="1" />
155     <field type="WINDOW" name="event" />
156     <field type="WINDOW" name="window" />
157   </event>
158
159   <event name="UnmapNotify" number="18">
160     <pad bytes="1" />
161     <field type="WINDOW" name="event" />
162     <field type="WINDOW" name="window" />
163     <field type="BOOL" name="from_configure" />
164   </event>
165
166   <event name="MapNotify" number="19">
167     <pad bytes="1" />
168     <field type="WINDOW" name="event" />
169     <field type="WINDOW" name="window" />
170     <field type="BOOL" name="override_redirect" />
171   </event>
172
173   <event name="MapRequest" number="20">
174     <pad bytes="1" />
175     <field type="WINDOW" name="parent" />
176     <field type="WINDOW" name="window" />
177   </event>
178
179   <event name="ReparentNotify" number="21">
180     <pad bytes="1" />
181     <field type="WINDOW" name="event" />
182     <field type="WINDOW" name="window" />
183     <field type="WINDOW" name="parent" />
184     <field type="INT16" name="x" />
185     <field type="INT16" name="y" />
186     <field type="BOOL" name="override_redirect" />
187   </event>
188
189   <event name="ConfigureNotify" number="22">
190     <pad bytes="1" />
191     <field type="WINDOW" name="event" />
192     <field type="WINDOW" name="window" />
193     <field type="WINDOW" name="above_sibling" />
194     <field type="INT16" name="x" />
195     <field type="INT16" name="y" />
196     <field type="CARD16" name="width" />
197     <field type="CARD16" name="height" />
198     <field type="CARD16" name="border_width" />
199     <field type="BOOL" name="override_redirect" />
200   </event>
201
202   <event name="ConfigureRequest" number="23">
203     <field type="BYTE" name="stack_mode" />
204     <field type="WINDOW" name="parent" />
205     <field type="WINDOW" name="window" />
206     <field type="WINDOW" name="sibling" />
207     <field type="INT16" name="x" />
208     <field type="INT16" name="y" />
209     <field type="CARD16" name="width" />
210     <field type="CARD16" name="height" />
211     <field type="CARD16" name="border_width" />
212     <field type="CARD16" name="value_mask" />
213   </event>
214
215   <event name="GravityNotify" number="24">
216     <pad bytes="1" />
217     <field type="WINDOW" name="event" />
218     <field type="WINDOW" name="window" />
219     <field type="INT16" name="x" />
220     <field type="INT16" name="y" />
221   </event>
222
223   <event name="ResizeRequest" number="25">
224     <pad bytes="1" />
225     <field type="WINDOW" name="window" />
226     <field type="CARD16" name="width" />
227     <field type="CARD16" name="height" />
228   </event>
229
230   <event name="CirculateNotify" number="26">
231     <pad bytes="1" />
232     <field type="WINDOW" name="event" />
233     <field type="WINDOW" name="window" />
234     <pad bytes="4" />
235     <field type="BYTE" name="place" />
236   </event>
237
238   <eventcopy name="CirculateRequest" number="27" ref="CirculateNotify" />
239
240   <event name="PropertyNotify" number="28">
241     <pad bytes="1" />
242     <field type="WINDOW" name="window" />
243     <field type="ATOM" name="atom" />
244     <field type="TIMESTAMP" name="time" />
245     <field type="BYTE" name="state" />
246   </event>
247
248   <event name="SelectionClear" number="29">
249     <pad bytes="1" />
250     <field type="TIMESTAMP" name="time" />
251     <field type="WINDOW" name="owner" />
252     <field type="ATOM" name="selection" />
253   </event>
254
255   <event name="SelectionRequest" number="30">
256     <pad bytes="1" />
257     <field type="TIMESTAMP" name="time" />
258     <field type="WINDOW" name="owner" />
259     <field type="WINDOW" name="requestor" />
260     <field type="ATOM" name="selection" />
261     <field type="ATOM" name="target" />
262     <field type="ATOM" name="property" />
263   </event>
264
265   <event name="SelectionNotify" number="31">
266     <pad bytes="1" />
267     <field type="TIMESTAMP" name="time" />
268     <field type="WINDOW" name="requestor" />
269     <field type="ATOM" name="selection" />
270     <field type="ATOM" name="target" />
271     <field type="ATOM" name="property" />
272   </event>
273
274   <event name="ColormapNotify" number="32">
275     <pad bytes="1" />
276     <field type="WINDOW" name="window" />
277     <field type="COLORMAP" name="colormap" />
278     <field type="BOOL" name="new" />
279     <field type="BYTE" name="state" />
280   </event>
281
282   <union name="ClientMessageData">
283     <!-- The format member of the ClientMessage event determines which array
284          to use. -->
285     <list type="CARD8"  name="data8" ><value>20</value></list> <!--  8 -->
286     <list type="CARD16" name="data16"><value>10</value></list> <!-- 16 -->
287     <list type="CARD32" name="data32"><value>5</value></list>  <!-- 32 -->
288   </union>
289
290   <event name="ClientMessage" number="33">
291     <field type="CARD8" name="format" /> <!-- 8, 16, or 32. -->
292     <field type="WINDOW" name="window" />
293     <field type="ATOM" name="type" />
294     <field type="ClientMessageData" name="data" />
295   </event>
296
297   <event name="MappingNotify" number="34">
298     <pad bytes="1" />
299     <field type="BYTE" name="request" />
300     <field type="KEYCODE" name="first_keycode" />
301     <field type="CARD8" name="count" />
302   </event>
303
304   <error name="Request" number="1">
305     <field type="CARD32" name="bad_value" />
306     <field type="CARD16" name="minor_opcode" />
307     <field type="CARD8" name="major_opcode" />
308   </error>
309
310   <error name="Value" number="2">
311     <field type="CARD32" name="bad_value" />
312     <field type="CARD16" name="minor_opcode" />
313     <field type="CARD8" name="major_opcode" />
314   </error>
315
316   <errorcopy name="Window" number="3" ref="Value" />
317   <errorcopy name="Pixmap" number="4" ref="Value" />
318   <errorcopy name="Atom" number="5" ref="Value" />
319   <errorcopy name="Cursor" number="6" ref="Value" />
320   <errorcopy name="Font" number="7" ref="Value" />
321   <errorcopy name="Match" number="8" ref="Request" />
322   <errorcopy name="Drawable" number="9" ref="Value" />
323   <errorcopy name="Access" number="10" ref="Request" />
324   <errorcopy name="Alloc" number="11" ref="Request" />
325   <errorcopy name="Colormap" number="12" ref="Value" />
326   <errorcopy name="GContext" number="13" ref="Value" />
327   <errorcopy name="IDChoice" number="14" ref="Value" />
328   <errorcopy name="Name" number="15" ref="Request" />
329   <errorcopy name="Length" number="16" ref="Request" />
330   <errorcopy name="Implementation" number="17" ref="Request" />
331
332   <!-- The requests, in major number order. -->
333   <!-- It is the caller's responsibility to free returned XCB*Rep objects. -->
334
335   <!-- FIXME: The ListFontsWithInfo request is not supported by XCB. -->
336
337   <!-- Window attributes for CreateWindow and ChangeWindowAttributes. -->
338   <enum name="CW">
339     <item name="BackPixmap">
340       <op op="&lt;&lt;"><value>1</value><value>0</value></op>
341     </item>
342     <item name="BackPixel">
343       <op op="&lt;&lt;"><value>1</value><value>1</value></op>
344     </item>
345     <item name="BorderPixmap">
346       <op op="&lt;&lt;"><value>1</value><value>2</value></op>
347     </item>
348     <item name="BorderPixel">
349       <op op="&lt;&lt;"><value>1</value><value>3</value></op>
350     </item>
351     <item name="BitGravity">
352       <op op="&lt;&lt;"><value>1</value><value>4</value></op>
353     </item>
354     <item name="WinGravity">
355       <op op="&lt;&lt;"><value>1</value><value>5</value></op>
356     </item>
357     <item name="BackingStore">
358       <op op="&lt;&lt;"><value>1</value><value>6</value></op>
359     </item>
360     <item name="BackingPlanes">
361       <op op="&lt;&lt;"><value>1</value><value>7</value></op>
362     </item>
363     <item name="BackingPixel">
364       <op op="&lt;&lt;"><value>1</value><value>8</value></op>
365     </item>
366     <item name="OverrideRedirect">
367       <op op="&lt;&lt;"><value>1</value><value>9</value></op>
368     </item>
369     <item name="SaveUnder">
370       <op op="&lt;&lt;"><value>1</value><value>10</value></op>
371     </item>
372     <item name="EventMask">
373       <op op="&lt;&lt;"><value>1</value><value>11</value></op>
374     </item>
375     <item name="DontPropagate">
376       <op op="&lt;&lt;"><value>1</value><value>12</value></op>
377     </item>
378     <item name="Colormap">
379       <op op="&lt;&lt;"><value>1</value><value>13</value></op>
380     </item>
381     <item name="Cursor">
382       <op op="&lt;&lt;"><value>1</value><value>14</value></op>
383     </item>
384   </enum>
385
386   <request name="CreateWindow" opcode="1">
387     <field type="CARD8" name="depth" />
388     <field type="WINDOW" name="wid" />
389     <field type="WINDOW" name="parent" />
390     <field type="INT16" name="x" />
391     <field type="INT16" name="y" />
392     <field type="CARD16" name="width" />
393     <field type="CARD16" name="height" />
394     <field type="CARD16" name="border_width" />
395     <field type="CARD16" name="class" />
396     <field type="VISUALID" name="visual" />
397     <valueparam value-mask-type="CARD32"
398                 value-mask-name="value_mask"
399                 value-list-name="value_list" />
400   </request>
401
402   <request name="ChangeWindowAttributes" opcode="2">
403     <pad bytes="1" />
404     <field type="WINDOW" name="window" />
405     <valueparam value-mask-type="CARD32"
406                 value-mask-name="value_mask"
407                 value-list-name="value_list" />
408   </request>
409
410   <request name="GetWindowAttributes" opcode="3">
411     <pad bytes="1" />
412     <field type="WINDOW" name="window" />
413     <reply>
414       <field type="CARD8" name="backing_store" />
415       <field type="VISUALID" name="visual" />
416       <field type="CARD16" name="class" />
417       <field type="CARD8" name="bit_gravity" />
418       <field type="CARD8" name="win_gravity" />
419       <field type="CARD32" name="backing_planes" />
420       <field type="CARD32" name="backing_pixel" />
421       <field type="BOOL" name="save_under" />
422       <field type="BOOL" name="map_is_installed" />
423       <field type="CARD8" name="map_state" />
424       <field type="BOOL" name="override_redirect" />
425       <field type="COLORMAP" name="colormap" />
426       <field type="CARD32" name="all_event_masks" />
427       <field type="CARD32" name="your_event_mask" />
428       <field type="CARD16" name="do_not_propagate_mask" />
429     </reply>
430   </request>
431
432   <request name="DestroyWindow" opcode="4">
433     <pad bytes="1" />
434     <field type="WINDOW" name="window" />
435   </request>
436
437   <request name="DestroySubwindows" opcode="5">
438     <pad bytes="1" />
439     <field type="WINDOW" name="window" />
440   </request>
441
442   <request name="ChangeSaveSet" opcode="6">
443     <field type="BYTE" name="mode" />
444     <field type="WINDOW" name="window" />
445   </request>
446
447   <request name="ReparentWindow" opcode="7">
448     <pad bytes="1" />
449     <field type="WINDOW" name="window" />
450     <field type="WINDOW" name="parent" />
451     <field type="INT16" name="x" />
452     <field type="INT16" name="y" />
453   </request>
454
455   <request name="MapWindow" opcode="8">
456     <pad bytes="1" />
457     <field type="WINDOW" name="window" />
458   </request>
459
460   <request name="MapSubwindows" opcode="9">
461     <pad bytes="1" />
462     <field type="WINDOW" name="window" />
463   </request>
464
465   <request name="UnmapWindow" opcode="10">
466     <pad bytes="1" />
467     <field type="WINDOW" name="window" />
468   </request>
469
470   <request name="UnmapSubwindows" opcode="11">
471     <pad bytes="1" />
472     <field type="WINDOW" name="window" />
473   </request>
474
475   <request name="ConfigureWindow" opcode="12">
476     <pad bytes="1" />
477     <field type="WINDOW" name="window" />
478     <valueparam value-mask-type="CARD16"
479                 value-mask-name="value_mask"
480                 value-list-name="value_list" />
481   </request>
482
483   <request name="CirculateWindow" opcode="13">
484     <field type="CARD8" name="direction" />
485     <field type="WINDOW" name="window" />
486   </request>
487
488   <request name="GetGeometry" opcode="14">
489     <pad bytes="1" />
490     <field type="DRAWABLE" name="drawable" />
491     <reply>
492       <field type="CARD8" name="depth" />
493       <field type="WINDOW" name="root" />
494       <field type="INT16" name="x" />
495       <field type="INT16" name="y" />
496       <field type="CARD16" name="width" />
497       <field type="CARD16" name="height" />
498       <field type="CARD16" name="border_width" />
499     </reply>
500   </request>
501
502   <request name="QueryTree" opcode="15">
503     <pad bytes="1" />
504     <field type="WINDOW" name="window" />
505     <reply>
506       <pad bytes="1" />
507       <field type="WINDOW" name="root" />
508       <field type="WINDOW" name="parent" />
509       <field type="CARD16" name="children_len" />
510       <pad bytes="14" />
511       <list type="WINDOW" name="children">
512         <fieldref>children_len</fieldref>
513       </list>
514     </reply>
515   </request>
516
517   <request name="InternAtom" opcode="16">
518     <field type="BOOL" name="only_if_exists" />
519     <field type="CARD16" name="name_len" />
520     <pad bytes="2" />
521     <list type="char" name="name">
522       <fieldref>name_len</fieldref>
523     </list>
524     <reply>
525       <pad bytes="1" />
526       <field type="ATOM" name="atom" />
527     </reply>
528   </request>
529
530   <request name="GetAtomName" opcode="17">
531     <pad bytes="1" />
532     <field type="ATOM" name="atom" />
533     <reply>
534       <pad bytes="1" />
535       <field type="CARD16" name="name_len" />
536       <pad bytes="22" />
537       <list type="CARD8" name="name">
538         <fieldref>name_len</fieldref>
539       </list>
540     </reply>
541   </request>
542
543   <request name="ChangeProperty" opcode="18">
544     <field type="CARD8" name="mode" />
545     <field type="WINDOW" name="window" />
546     <field type="ATOM" name="property" />
547     <field type="ATOM" name="type" />
548     <field type="CARD8" name="format" />
549     <pad bytes="3" />
550     <field type="CARD32" name="data_len" />
551     <list type="void" name="data">
552       <op op="/">
553         <op op="*">
554           <fieldref>data_len</fieldref>
555           <fieldref>format</fieldref>
556         </op>
557         <value>8</value>
558       </op>
559     </list>
560   </request>
561
562   <request name="DeleteProperty" opcode="19">
563     <pad bytes="1" />
564     <field type="WINDOW" name="window" />
565     <field type="ATOM" name="property" />
566   </request>
567
568   <request name="GetProperty" opcode="20">
569     <field type="BOOL" name="delete" />
570     <field type="WINDOW" name="window" />
571     <field type="ATOM" name="property" />
572     <field type="ATOM" name="type" />
573     <field type="CARD32" name="long_offset" />
574     <field type="CARD32" name="long_length" />
575     <reply>
576       <field type="CARD8" name="format" />
577       <field type="ATOM" name="type" />
578       <field type="CARD32" name="bytes_after" />
579       <field type="CARD32" name="value_len" />
580       <pad bytes="12" />
581       <list type="void" name="value">
582         <fieldref>value_len</fieldref>
583       </list>
584     </reply>
585   </request>
586
587   <request name="ListProperties" opcode="21">
588     <pad bytes="1" />
589     <field type="WINDOW" name="window" />
590     <reply>
591       <pad bytes="1" />
592       <field type="CARD16" name="atoms_len" />
593       <pad bytes="22" />
594       <list type="ATOM" name="atoms">
595         <fieldref>atoms_len</fieldref>
596       </list>
597     </reply>
598   </request>
599
600   <request name="SetSelectionOwner" opcode="22">
601     <pad bytes="1" />
602     <field type="WINDOW" name="owner" />
603     <field type="ATOM" name="selection" />
604     <field type="TIMESTAMP" name="time" />
605   </request>
606
607   <request name="GetSelectionOwner" opcode="23">
608     <pad bytes="1" />
609     <field type="ATOM" name="selection" />
610     <reply>
611       <pad bytes="1" />
612       <field type="WINDOW" name="owner" />
613     </reply>
614   </request>
615
616   <request name="ConvertSelection" opcode="24">
617     <pad bytes="1" />
618     <field type="WINDOW" name="requestor" />
619     <field type="ATOM" name="selection" />
620     <field type="ATOM" name="target" />
621     <field type="ATOM" name="property" />
622     <field type="TIMESTAMP" name="time" />
623   </request>
624
625   <request name="SendEvent" opcode="25">
626     <field type="BOOL" name="propagate" />
627     <field type="WINDOW" name="destination" />
628     <field type="CARD32" name="event_mask" />
629     <list type="char" name="event"><value>32</value></list>
630   </request>
631
632   <request name="GrabPointer" opcode="26">
633     <field type="BOOL" name="owner_events" />
634     <field type="WINDOW" name="grab_window" />
635     <field type="CARD16" name="event_mask" />
636     <field type="BYTE" name="pointer_mode" />
637     <field type="BYTE" name="keyboard_mode" />
638     <field type="WINDOW" name="confine_to" />
639     <field type="CURSOR" name="cursor" />
640     <field type="TIMESTAMP" name="time" />
641     <reply>
642       <field type="BYTE" name="status" />
643     </reply>
644   </request>
645
646   <request name="UngrabPointer" opcode="27">
647     <pad bytes="1" />
648     <field type="TIMESTAMP" name="time" />
649   </request>
650
651   <request name="GrabButton" opcode="28">
652     <field type="BOOL" name="owner_events" />
653     <field type="WINDOW" name="grab_window" />
654     <field type="CARD16" name="event_mask" />
655     <field type="CARD8" name="pointer_mode" />
656     <field type="CARD8" name="keyboard_mode" />
657     <field type="WINDOW" name="confine_to" />
658     <field type="CURSOR" name="cursor" />
659     <field type="CARD8" name="button" />
660     <pad bytes="1" />
661     <field type="CARD16" name="modifiers" />
662   </request>
663
664   <request name="UngrabButton" opcode="29">
665     <field type="CARD8" name="button" />
666     <field type="WINDOW" name="grab_window" />
667     <field type="CARD16" name="modifiers" />
668     <pad bytes="2" />
669   </request>
670
671   <request name="ChangeActivePointerGrab" opcode="30">
672     <pad bytes="1" />
673     <field type="CURSOR" name="cursor" />
674     <field type="TIMESTAMP" name="time" />
675     <field type="CARD16" name="event_mask" />
676   </request>
677
678   <request name="GrabKeyboard" opcode="31">
679     <field type="BOOL" name="owner_events" />
680     <field type="WINDOW" name="grab_window" />
681     <field type="TIMESTAMP" name="time" />
682     <field type="BYTE" name="pointer_mode" />
683     <field type="BYTE" name="keyboard_mode" />
684     <reply>
685       <field type="BYTE" name="status" />
686     </reply>
687   </request>
688
689   <request name="UngrabKeyboard" opcode="32">
690     <pad bytes="1" />
691     <field type="TIMESTAMP" name="time" />
692   </request>
693
694   <request name="GrabKey" opcode="33">
695     <field type="BOOL" name="owner_events" />
696     <field type="WINDOW" name="grab_window" />
697     <field type="CARD16" name="modifiers" />
698     <field type="KEYCODE" name="key" />
699     <field type="CARD8" name="pointer_mode" />
700     <field type="CARD8" name="keyboard_mode" />
701   </request>
702
703   <request name="UngrabKey" opcode="34">
704     <field type="CARD8" name="key" />
705     <field type="WINDOW" name="grab_window" />
706     <field type="CARD16" name="modifiers" />
707   </request>
708
709   <request name="AllowEvents" opcode="35">
710     <field type="CARD8" name="mode" />
711     <field type="TIMESTAMP" name="time" />
712   </request>
713
714   <request name="GrabServer" opcode="36" />
715
716   <request name="UngrabServer" opcode="37" />
717
718   <request name="QueryPointer" opcode="38">
719     <pad bytes="1" />
720     <field type="WINDOW" name="window" />
721     <reply>
722       <field type="BOOL" name="same_screen" />
723       <field type="WINDOW" name="root" />
724       <field type="WINDOW" name="child" />
725       <field type="INT16" name="root_x" />
726       <field type="INT16" name="root_y" />
727       <field type="INT16" name="win_x" />
728       <field type="INT16" name="win_y" />
729       <field type="CARD16" name="mask" />
730     </reply>
731   </request>
732
733   <struct name="TIMECOORD">
734     <field type="TIMESTAMP" name="time" />
735     <field type="INT16" name="x" />
736     <field type="INT16" name="y" />
737   </struct>
738
739   <request name="GetMotionEvents" opcode="39">
740     <pad bytes="1" />
741     <field type="WINDOW" name="window" />
742     <field type="TIMESTAMP" name="start" />
743     <field type="TIMESTAMP" name="stop" />
744     <reply>
745       <pad bytes="1" />
746       <field type="CARD32" name="events_len" />
747       <pad bytes="20" />
748       <list type="TIMECOORD" name="events">
749         <fieldref>events_len</fieldref>
750       </list>
751     </reply>
752   </request>
753
754   <request name="TranslateCoordinates" opcode="40">
755     <pad bytes="1" />
756     <field type="WINDOW" name="src_window" />
757     <field type="WINDOW" name="dst_window" />
758     <field type="INT16" name="src_x" />
759     <field type="INT16" name="src_y" />
760     <reply>
761       <field type="BOOL" name="same_screen" />
762       <field type="WINDOW" name="child" />
763       <field type="CARD16" name="dst_x" />
764       <field type="CARD16" name="dst_y" />
765     </reply>
766   </request>
767
768   <request name="WarpPointer" opcode="41">
769     <pad bytes="1" />
770     <field type="WINDOW" name="src_window" />
771     <field type="WINDOW" name="dst_window" />
772     <field type="INT16" name="src_x" />
773     <field type="INT16" name="src_y" />
774     <field type="CARD16" name="src_width" />
775     <field type="CARD16" name="src_height" />
776     <field type="INT16" name="dst_x" />
777     <field type="INT16" name="dst_y" />
778   </request>
779
780   <request name="SetInputFocus" opcode="42">
781     <field type="CARD8" name="revert_to" />
782     <field type="WINDOW" name="focus" />
783     <field type="TIMESTAMP" name="time" />
784   </request>
785
786   <request name="GetInputFocus" opcode="43">
787     <reply>
788       <field type="CARD8" name="revert_to" />
789       <field type="WINDOW" name="focus" />
790     </reply>
791   </request>
792
793   <request name="QueryKeymap" opcode="44">
794     <reply>
795       <pad bytes="1" />
796       <list type="CARD8" name="keys"><value>32</value></list>
797     </reply>
798   </request>
799
800   <request name="OpenFont" opcode="45">
801     <pad bytes="1" />
802     <field type="FONT" name="fid" />
803     <field type="CARD16" name="name_len" />
804     <list type="char" name="name">
805       <fieldref>name_len</fieldref>
806     </list>
807   </request>
808
809   <request name="CloseFont" opcode="46">
810     <pad bytes="1" />
811     <field type="FONT" name="font" />
812   </request>
813
814   <struct name="FONTPROP">
815     <field type="ATOM" name="name" />
816     <field type="CARD32" name="value" />
817   </struct>
818
819   <struct name="CHARINFO">
820     <field type="INT16" name="left_side_bearing" />
821     <field type="INT16" name="right_side_bearing" />
822     <field type="INT16" name="character_width" />
823     <field type="INT16" name="ascent" />
824     <field type="INT16" name="descent" />
825     <field type="CARD16" name="attributes" />
826   </struct>
827
828   <request name="QueryFont" opcode="47">
829     <pad bytes="1" />
830     <field type="FONTABLE" name="font" />
831     <reply>
832       <pad bytes="1" />
833       <field type="CHARINFO" name="min_bounds" />
834       <pad bytes="4" />
835       <field type="CHARINFO" name="max_bounds" />
836       <pad bytes="4" />
837       <field type="CARD16" name="min_char_or_byte2" />
838       <field type="CARD16" name="max_char_or_byte2" />
839       <field type="CARD16" name="default_char" />
840       <field type="CARD16" name="properties_len" />
841       <field type="BYTE" name="draw_direction" />
842       <field type="CARD8" name="min_byte1" />
843       <field type="CARD8" name="max_byte1" />
844       <field type="BOOL" name="all_chars_exist" />
845       <field type="INT16" name="font_ascent" />
846       <field type="INT16" name="font_descent" />
847       <field type="CARD32" name="char_infos_len" />
848       <list type="FONTPROP" name="properties">
849         <fieldref>properties_len</fieldref>
850       </list>
851       <list type="CHARINFO" name="char_infos">
852         <fieldref>char_infos_len</fieldref>
853       </list>
854     </reply>
855   </request>
856
857   <request name="QueryTextExtents" opcode="48">
858     <exprfield type="BOOL" name="odd_length">
859       <op op="&amp;"><fieldref>string_len</fieldref><value>1</value></op>
860     </exprfield>
861     <field type="FONTABLE" name="font" />
862     <list type="CHAR2B" name="string" />
863     <reply>
864       <field type="BYTE" name="draw_direction" />
865       <field type="INT16" name="font_ascent" />
866       <field type="INT16" name="font_descent" />
867       <field type="INT16" name="overall_ascent" />
868       <field type="INT16" name="overall_descent" />
869       <field type="INT32" name="overall_width" />
870       <field type="INT32" name="overall_left" />
871       <field type="INT32" name="overall_right" />
872     </reply>
873   </request>
874
875   <struct name="STR">
876     <field type="CARD8" name="name_len" />
877     <list type="char" name="name">
878       <fieldref>name_len</fieldref>
879     </list>
880   </struct>
881
882   <request name="ListFonts" opcode="49">
883     <pad bytes="1" />
884     <field type="CARD16" name="max_names" />
885     <field type="CARD16" name="pattern_len" />
886     <list type="char" name="pattern">
887       <fieldref>pattern_len</fieldref>
888     </list>
889     <reply>
890       <pad bytes="1" />
891       <field type="CARD16" name="names_len" />
892       <pad bytes="22" />
893       <list type="STR" name="names">
894         <fieldref>names_len</fieldref>
895       </list>
896     </reply>
897   </request>
898
899   <request name="ListFontsWithInfo" opcode="50">
900     <pad bytes="1" />
901     <field type="CARD16" name="max_names" />
902     <field type="CARD16" name="pattern_len" />
903     <list type="char" name="pattern">
904       <fieldref>pattern_len</fieldref>
905     </list>
906     <reply>
907       <field type="CARD8" name="name_len" />
908       <field type="CHARINFO" name="min_bounds" />
909       <pad bytes="4" />
910       <field type="CHARINFO" name="max_bounds" />
911       <pad bytes="4" />
912       <field type="CARD16" name="min_char_or_byte2" />
913       <field type="CARD16" name="max_char_or_byte2" />
914       <field type="CARD16" name="default_char" />
915       <field type="CARD16" name="properties_len" />
916       <field type="BYTE" name="draw_direction" />
917       <field type="CARD8" name="min_byte1" />
918       <field type="CARD8" name="max_byte1" />
919       <field type="BOOL" name="all_chars_exist" />
920       <field type="INT16" name="font_ascent" />
921       <field type="INT16" name="font_descent" />
922       <field type="CARD32" name="replies_hint" />
923       <list type="FONTPROP" name="properties">
924         <fieldref>properties_len</fieldref>
925       </list>
926       <list type="char" name="name">
927         <fieldref>name_len</fieldref>
928       </list>
929     </reply>
930   </request>
931
932   <request name="SetFontPath" opcode="51">
933     <pad bytes="1" />
934     <field type="CARD16" name="font_qty" />
935     <list type="char" name="path" />
936   </request>
937
938   <request name="GetFontPath" opcode="52">
939     <reply>
940       <pad bytes="1" />
941       <field type="CARD16" name="path_len" />
942       <pad bytes="22" />
943       <list type="STR" name="path">
944         <fieldref>path_len</fieldref>
945       </list>
946     </reply>
947   </request>
948
949   <request name="CreatePixmap" opcode="53">
950     <field type="CARD8" name="depth" />
951     <field type="PIXMAP" name="pid" />
952     <field type="DRAWABLE" name="drawable" />
953     <field type="CARD16" name="width" />
954     <field type="CARD16" name="height" />
955   </request>
956
957   <request name="FreePixmap" opcode="54">
958     <pad bytes="1" />
959     <field type="PIXMAP" name="pixmap" />
960   </request>
961
962   <request name="CreateGC" opcode="55">
963     <pad bytes="1" />
964     <field type="GCONTEXT" name="cid" />
965     <field type="DRAWABLE" name="drawable" />
966     <valueparam value-mask-type="CARD32"
967                 value-mask-name="value_mask"
968                 value-list-name="value_list" />
969   </request>
970
971   <request name="ChangeGC" opcode="56">
972     <pad bytes="1" />
973     <field type="GCONTEXT" name="gc" />
974     <valueparam value-mask-type="CARD32"
975                 value-mask-name="value_mask"
976                 value-list-name="value_list" />
977   </request>
978
979   <request name="CopyGC" opcode="57">
980     <pad bytes="1" />
981     <field type="GCONTEXT" name="src_gc" />
982     <field type="GCONTEXT" name="dst_gc" />
983     <field type="CARD32" name="value_mask" />
984   </request>
985
986   <request name="SetDashes" opcode="58">
987     <pad bytes="1" />
988     <field type="GCONTEXT" name="gc" />
989     <field type="CARD16" name="dash_offset" />
990     <field type="CARD16" name="dashes_len" />
991     <list type="CARD8" name="dashes">
992       <fieldref>dashes_len</fieldref>
993     </list>
994   </request>
995
996   <request name="SetClipRectangles" opcode="59">
997     <field type="BYTE" name="ordering" />
998     <field type="GCONTEXT" name="gc" />
999     <field type="INT16" name="clip_x_origin" />
1000     <field type="INT16" name="clip_y_origin" />
1001     <list type="RECTANGLE" name="rectangles" />
1002   </request>
1003
1004   <request name="FreeGC" opcode="60">
1005     <pad bytes="1" />
1006     <field type="GCONTEXT" name="gc" />
1007   </request>
1008
1009   <request name="ClearArea" opcode="61">
1010     <field type="BOOL" name="exposures" />
1011     <field type="WINDOW" name="window" />
1012     <field type="INT16" name="x" />
1013     <field type="INT16" name="y" />
1014     <field type="CARD16" name="width" />
1015     <field type="CARD16" name="height" />
1016   </request>
1017
1018   <request name="CopyArea" opcode="62">
1019     <pad bytes="1" />
1020     <field type="DRAWABLE" name="src_drawable" />
1021     <field type="DRAWABLE" name="dst_drawable" />
1022     <field type="GCONTEXT" name="gc" />
1023     <field type="INT16" name="src_x" />
1024     <field type="INT16" name="src_y" />
1025     <field type="INT16" name="dst_x" />
1026     <field type="INT16" name="dst_y" />
1027     <field type="CARD16" name="width" />
1028     <field type="CARD16" name="height" />
1029   </request>
1030
1031   <request name="CopyPlane" opcode="63">
1032     <pad bytes="1" />
1033     <field type="DRAWABLE" name="src_drawable" />
1034     <field type="DRAWABLE" name="dst_drawable" />
1035     <field type="GCONTEXT" name="gc" />
1036     <field type="INT16" name="src_x" />
1037     <field type="INT16" name="src_y" />
1038     <field type="INT16" name="dst_x" />
1039     <field type="INT16" name="dst_y" />
1040     <field type="CARD16" name="width" />
1041     <field type="CARD16" name="height" />
1042     <field type="CARD32" name="bit_plane" />
1043   </request>
1044
1045   <request name="PolyPoint" opcode="64" combine-adjacent="true">
1046     <field type="BYTE" name="coordinate_mode" />
1047     <field type="DRAWABLE" name="drawable" />
1048     <field type="GCONTEXT" name="gc" />
1049     <list type="POINT" name="points" />
1050   </request>
1051
1052   <request name="PolyLine" opcode="65" combine-adjacent="true">
1053     <field type="BYTE" name="coordinate_mode" />
1054     <field type="DRAWABLE" name="drawable" />
1055     <field type="GCONTEXT" name="gc" />
1056     <list type="POINT" name="points" />
1057   </request>
1058
1059   <struct name="SEGMENT">
1060     <field type="INT16" name="x1" />
1061     <field type="INT16" name="y1" />
1062     <field type="INT16" name="x2" />
1063     <field type="INT16" name="y2" />
1064   </struct>
1065
1066   <request name="PolySegment" opcode="66" combine-adjacent="true">
1067     <pad bytes="1" />
1068     <field type="DRAWABLE" name="drawable" />
1069     <field type="GCONTEXT" name="gc" />
1070     <list type="SEGMENT" name="segments" />
1071   </request>
1072
1073   <request name="PolyRectangle" opcode="67" combine-adjacent="true">
1074     <pad bytes="1" />
1075     <field type="DRAWABLE" name="drawable" />
1076     <field type="GCONTEXT" name="gc" />
1077     <list type="RECTANGLE" name="rectangles" />
1078   </request>
1079
1080   <!--
1081     The semantics of PolyArc change after the first arc: the GC's
1082     join style may be applied to successive arcs under some circumstances.
1083     So using combine-adjacent here is bad.
1084   -->
1085   <request name="PolyArc" opcode="68">
1086     <pad bytes="1" />
1087     <field type="DRAWABLE" name="drawable" />
1088     <field type="GCONTEXT" name="gc" />
1089     <list type="ARC" name="arcs" />
1090   </request>
1091
1092   <request name="FillPoly" opcode="69">
1093     <pad bytes="1" />
1094     <field type="DRAWABLE" name="drawable" />
1095     <field type="GCONTEXT" name="gc" />
1096     <field type="CARD8" name="shape" />
1097     <field type="CARD8" name="coordinate_mode" />
1098     <list type="POINT" name="points" />
1099   </request>
1100
1101   <request name="PolyFillRectangle" opcode="70" combine-adjacent="true">
1102     <pad bytes="1" />
1103     <field type="DRAWABLE" name="drawable" />
1104     <field type="GCONTEXT" name="gc" />
1105     <list type="RECTANGLE" name="rectangles" />
1106   </request>
1107
1108   <request name="PolyFillArc" opcode="71" combine-adjacent="true">
1109     <pad bytes="1" />
1110     <field type="DRAWABLE" name="drawable" />
1111     <field type="GCONTEXT" name="gc" />
1112     <list type="ARC" name="arcs" />
1113   </request>
1114
1115   <request name="PutImage" opcode="72">
1116     <field type="CARD8" name="format" />
1117     <field type="DRAWABLE" name="drawable" />
1118     <field type="GCONTEXT" name="gc" />
1119     <field type="CARD16" name="width" />
1120     <field type="CARD16" name="height" />
1121     <field type="INT16" name="dst_x" />
1122     <field type="INT16" name="dst_y" />
1123     <field type="CARD8" name="left_pad" />
1124     <field type="CARD8" name="depth" />
1125     <list type="BYTE" name="data" />
1126   </request>
1127
1128   <!-- FIXME: data array in reply will include padding, but ought not to. -->
1129   <request name="GetImage" opcode="73">
1130     <field type="CARD8" name="format" />
1131     <field type="DRAWABLE" name="drawable" />
1132     <field type="INT16" name="x" />
1133     <field type="INT16" name="y" />
1134     <field type="CARD16" name="width" />
1135     <field type="CARD16" name="height" />
1136     <field type="CARD32" name="plane_mask" />
1137     <reply>
1138       <field type="CARD8" name="depth" />
1139       <field type="VISUALID" name="visual" />
1140       <pad bytes="20" />
1141       <list type="BYTE" name="data">
1142         <op op="*">
1143           <fieldref>length</fieldref>
1144           <value>4</value>
1145         </op>
1146       </list>
1147     </reply>
1148   </request>
1149
1150   <request name="PolyText8" opcode="74">
1151     <pad bytes="1" />
1152     <field type="DRAWABLE" name="drawable" />
1153     <field type="GCONTEXT" name="gc" />
1154     <field type="INT16" name="x" />
1155     <field type="INT16" name="y" />
1156     <list type="BYTE" name="items" />
1157   </request>
1158
1159   <request name="PolyText16" opcode="75">
1160     <pad bytes="1" />
1161     <field type="DRAWABLE" name="drawable" />
1162     <field type="GCONTEXT" name="gc" />
1163     <field type="INT16" name="x" />
1164     <field type="INT16" name="y" />
1165     <list type="BYTE" name="items" />
1166   </request>
1167
1168   <request name="ImageText8" opcode="76">
1169     <field type="BYTE" name="string_len" />
1170     <field type="DRAWABLE" name="drawable" />
1171     <field type="GCONTEXT" name="gc" />
1172     <field type="INT16" name="x" />
1173     <field type="INT16" name="y" />
1174     <list type="char" name="string">
1175       <fieldref>string_len</fieldref>
1176     </list>
1177   </request>
1178
1179   <request name="ImageText16" opcode="77">
1180     <field type="BYTE" name="string_len" />
1181     <field type="DRAWABLE" name="drawable" />
1182     <field type="GCONTEXT" name="gc" />
1183     <field type="INT16" name="x" />
1184     <field type="INT16" name="y" />
1185     <list type="CHAR2B" name="string">
1186       <fieldref>string_len</fieldref>
1187     </list>
1188   </request>
1189
1190   <request name="CreateColormap" opcode="78">
1191     <field type="BYTE" name="alloc" />
1192     <field type="COLORMAP" name="mid" />
1193     <field type="WINDOW" name="window" />
1194     <field type="VISUALID" name="visual" />
1195   </request>
1196
1197   <request name="FreeColormap" opcode="79">
1198     <pad bytes="1" />
1199     <field type="COLORMAP" name="cmap" />
1200   </request>
1201
1202   <request name="CopyColormapAndFree" opcode="80">
1203     <pad bytes="1" />
1204     <field type="COLORMAP" name="mid" />
1205     <field type="COLORMAP" name="src_cmap" />
1206   </request>
1207
1208   <request name="InstallColormap" opcode="81">
1209     <pad bytes="1" />
1210     <field type="COLORMAP" name="cmap" />
1211   </request>
1212
1213   <request name="UninstallColormap" opcode="82">
1214     <pad bytes="1" />
1215     <field type="COLORMAP" name="cmap" />
1216   </request>
1217
1218   <request name="ListInstalledColormaps" opcode="83">
1219     <pad bytes="1" />
1220     <field type="WINDOW" name="window" />
1221     <reply>
1222       <pad bytes="1" />
1223       <field type="CARD16" name="cmaps_len" />
1224       <pad bytes="22" />
1225       <list type="COLORMAP" name="cmaps">
1226         <fieldref>cmaps_len</fieldref>
1227       </list>
1228     </reply>
1229   </request>
1230
1231   <request name="AllocColor" opcode="84">
1232     <pad bytes="1" />
1233     <field type="COLORMAP" name="cmap" />
1234     <field type="CARD16" name="red" />
1235     <field type="CARD16" name="green" />
1236     <field type="CARD16" name="blue" />
1237     <reply>
1238       <pad bytes="1" />
1239       <field type="CARD16" name="red" />
1240       <field type="CARD16" name="green" />
1241       <field type="CARD16" name="blue" />
1242       <pad bytes="2" />
1243       <field type="CARD32" name="pixel" />
1244     </reply>
1245   </request>
1246
1247   <request name="AllocNamedColor" opcode="85">
1248     <pad bytes="1" />
1249     <field type="COLORMAP" name="cmap" />
1250     <field type="CARD16" name="name_len" />
1251     <list type="char" name="name">
1252       <fieldref>name_len</fieldref>
1253     </list>
1254     <reply>
1255       <pad bytes="1" />
1256       <field type="CARD32" name="pixel" />
1257       <field type="CARD16" name="exact_red" />
1258       <field type="CARD16" name="exact_green" />
1259       <field type="CARD16" name="exact_blue" />
1260       <field type="CARD16" name="visual_red" />
1261       <field type="CARD16" name="visual_green" />
1262       <field type="CARD16" name="visual_blue" />
1263     </reply>
1264   </request>
1265
1266   <request name="AllocColorCells" opcode="86">
1267     <field type="BOOL" name="contiguous" />
1268     <field type="COLORMAP" name="cmap" />
1269     <field type="CARD16" name="colors" />
1270     <field type="CARD16" name="planes" />
1271     <reply>
1272       <pad bytes="1" />
1273       <field type="CARD16" name="pixels_len" />
1274       <field type="CARD16" name="masks_len" />
1275       <pad bytes="20" />
1276       <list type="CARD32" name="pixels">
1277         <fieldref>pixels_len</fieldref>
1278       </list>
1279       <list type="CARD32" name="masks">
1280         <fieldref>masks_len</fieldref>
1281       </list>
1282     </reply>
1283   </request>
1284
1285   <request name="AllocColorPlanes" opcode="87">
1286     <field type="BOOL" name="contiguous" />
1287     <field type="COLORMAP" name="cmap" />
1288     <field type="CARD16" name="colors" />
1289     <field type="CARD16" name="reds" />
1290     <field type="CARD16" name="greens" />
1291     <field type="CARD16" name="blues" />
1292     <reply>
1293       <pad bytes="1" />
1294       <field type="CARD16" name="pixels_len" />
1295       <pad bytes="2" />
1296       <field type="CARD32" name="red_mask" />
1297       <field type="CARD32" name="green_mask" />
1298       <field type="CARD32" name="blue_mask" />
1299       <pad bytes="8" />
1300       <list type="CARD32" name="pixels">
1301         <fieldref>pixels_len</fieldref>
1302       </list>
1303     </reply>
1304   </request>
1305
1306   <request name="FreeColors" opcode="88">
1307     <pad bytes="1" />
1308     <field type="COLORMAP" name="cmap" />
1309     <field type="CARD32" name="plane_mask" />
1310     <list type="CARD32" name="pixels" />
1311   </request>
1312
1313   <struct name="COLORITEM">
1314     <field type="CARD32" name="pixel" />
1315     <field type="CARD16" name="red" />
1316     <field type="CARD16" name="green" />
1317     <field type="CARD16" name="blue" />
1318     <field type="BYTE" name="flags" />
1319     <pad bytes="1" />
1320   </struct>
1321   
1322   <request name="StoreColors" opcode="89" combine-adjacent="true">
1323     <pad bytes="1" />
1324     <field type="COLORMAP" name="cmap" />
1325     <list type="COLORITEM" name="items" />
1326   </request>
1327
1328   <request name="StoreNamedColor" opcode="90">
1329     <field type="CARD8" name="flags" />
1330     <field type="COLORMAP" name="cmap" />
1331     <field type="CARD32" name="pixel" />
1332     <field type="CARD16" name="name_len" />
1333     <list type="char" name="name">
1334       <fieldref>name_len</fieldref>
1335     </list>
1336   </request>
1337
1338   <struct name="RGB">
1339     <field type="CARD16" name="red" />
1340     <field type="CARD16" name="green" />
1341     <field type="CARD16" name="blue" />
1342     <pad bytes="2" />
1343   </struct>
1344
1345   <request name="QueryColors" opcode="91">
1346     <pad bytes="1" />
1347     <field type="COLORMAP" name="cmap" />
1348     <list type="CARD32" name="pixels" />
1349     <reply>
1350       <pad bytes="1" />
1351       <field type="CARD16" name="colors_len" />
1352       <pad bytes="22" />
1353       <list type="RGB" name="colors">
1354         <fieldref>colors_len</fieldref>
1355       </list>
1356     </reply>
1357   </request>
1358
1359   <request name="LookupColor" opcode="92">
1360     <pad bytes="1" />
1361     <field type="COLORMAP" name="cmap" />
1362     <field type="CARD16" name="name_len" />
1363     <list type="char" name="name">
1364       <fieldref>name_len</fieldref>
1365     </list>
1366     <reply>
1367       <pad bytes="1" />
1368       <field type="CARD16" name="exact_red" />
1369       <field type="CARD16" name="exact_green" />
1370       <field type="CARD16" name="exact_blue" />
1371       <field type="CARD16" name="visual_red" />
1372       <field type="CARD16" name="visual_green" />
1373       <field type="CARD16" name="visual_blue" />
1374     </reply>
1375   </request>
1376
1377   <request name="CreateCursor" opcode="93">
1378     <pad bytes="1" />
1379     <field type="CURSOR" name="cid" />
1380     <field type="PIXMAP" name="source" />
1381     <field type="PIXMAP" name="mask" />
1382     <field type="CARD16" name="fore_red" />
1383     <field type="CARD16" name="fore_green" />
1384     <field type="CARD16" name="fore_blue" />
1385     <field type="CARD16" name="back_red" />
1386     <field type="CARD16" name="back_green" />
1387     <field type="CARD16" name="back_blue" />
1388     <field type="CARD16" name="x" />
1389     <field type="CARD16" name="y" />
1390   </request>
1391
1392   <request name="CreateGlyphCursor" opcode="94">
1393     <pad bytes="1" />
1394     <field type="CURSOR" name="cid" />
1395     <field type="FONT" name="source_font" />
1396     <field type="FONT" name="mask_font" />
1397     <field type="CARD16" name="source_char" />
1398     <field type="CARD16" name="mask_char" />
1399     <field type="CARD16" name="fore_red" />
1400     <field type="CARD16" name="fore_green" />
1401     <field type="CARD16" name="fore_blue" />
1402     <field type="CARD16" name="back_red" />
1403     <field type="CARD16" name="back_green" />
1404     <field type="CARD16" name="back_blue" />
1405   </request>
1406
1407   <request name="FreeCursor" opcode="95">
1408     <pad bytes="1" />
1409     <field type="CURSOR" name="cursor" />
1410   </request>
1411
1412   <request name="RecolorCursor" opcode="96">
1413     <pad bytes="1" />
1414     <field type="CURSOR" name="cursor" />
1415     <field type="CARD16" name="fore_red" />
1416     <field type="CARD16" name="fore_green" />
1417     <field type="CARD16" name="fore_blue" />
1418     <field type="CARD16" name="back_red" />
1419     <field type="CARD16" name="back_green" />
1420     <field type="CARD16" name="back_blue" />
1421   </request>
1422
1423   <request name="QueryBestSize" opcode="97">
1424     <field type="CARD8" name="class" />
1425     <field type="DRAWABLE" name="drawable" />
1426     <field type="CARD16" name="width" />
1427     <field type="CARD16" name="height" />
1428     <reply>
1429       <pad bytes="1" />
1430       <field type="CARD16" name="width" />
1431       <field type="CARD16" name="height" />
1432     </reply>
1433   </request>
1434
1435   <request name="QueryExtension" opcode="98">
1436     <pad bytes="1" />
1437     <field type="CARD16" name="name_len" />
1438     <list type="char" name="name">
1439       <fieldref>name_len</fieldref>
1440     </list>
1441     <reply>
1442       <pad bytes="1" />
1443       <field type="BOOL" name="present" />
1444       <field type="CARD8" name="major_opcode" />
1445       <field type="CARD8" name="first_event" />
1446       <field type="CARD8" name="first_error" />
1447     </reply>
1448   </request>
1449
1450   <request name="ListExtensions" opcode="99">
1451     <reply>
1452       <field type="CARD8" name="names_len" />
1453       <pad bytes="24" />
1454       <list type="STR" name="names">
1455         <fieldref>names_len</fieldref>
1456       </list>
1457     </reply>
1458   </request>
1459
1460   <request name="ChangeKeyboardMapping" opcode="100">
1461     <field type="CARD8" name="keycode_count" />
1462     <field type="KEYCODE" name="first_keycode" />
1463     <field type="CARD8" name="keysyms_per_keycode" />
1464     <list type="KEYSYM" name="keysyms">
1465       <op op="*">
1466         <fieldref>keycode_count</fieldref>
1467         <fieldref>keysyms_per_keycode</fieldref>
1468       </op>
1469     </list>
1470   </request>
1471
1472   <request name="GetKeyboardMapping" opcode="101">
1473     <pad bytes="1" />
1474     <field type="KEYCODE" name="first_keycode" />
1475     <field type="CARD8" name="count" />
1476     <reply>
1477       <field type="BYTE" name="keysyms_per_keycode" />
1478       <pad bytes="24" />
1479       <list type="KEYSYM" name="keysyms">
1480         <op op="*">
1481           <fieldref>length</fieldref>
1482           <value>4</value>
1483         </op>
1484       </list>
1485     </reply>
1486   </request>
1487
1488   <request name="ChangeKeyboardControl" opcode="102">
1489     <pad bytes="1" />
1490     <valueparam value-mask-type="CARD32"
1491                 value-mask-name="value_mask"
1492                 value-list-name="value_list" />
1493   </request>
1494
1495   <request name="GetKeyboardControl" opcode="103">
1496     <reply>
1497       <field type="BYTE" name="global_auto_repeat" />
1498       <field type="CARD32" name="led_mask" />
1499       <field type="CARD8" name="key_click_percent" />
1500       <field type="CARD8" name="bell_percent" />
1501       <field type="CARD16" name="bell_pitch" />
1502       <field type="CARD16" name="bell_duration" />
1503       <pad bytes="2" />
1504       <list type="CARD8" name="auto_repeats"><value>32</value></list>
1505     </reply>
1506   </request>
1507
1508   <request name="Bell" opcode="104">
1509     <field type="INT8" name="percent" />
1510   </request>
1511
1512   <request name="ChangePointerControl" opcode="105">
1513     <pad bytes="1" />
1514     <field type="INT16" name="acceleration_numerator" />
1515     <field type="INT16" name="acceleration_denominator" />
1516     <field type="INT16" name="threshold" />
1517     <field type="BOOL" name="do_acceleration" />
1518     <field type="BOOL" name="do_threshold" />
1519   </request>
1520
1521   <request name="GetPointerControl" opcode="106">
1522     <reply>
1523       <pad bytes="1" />
1524       <field type="CARD16" name="acceleration_numerator" />
1525       <field type="CARD16" name="acceleration_denominator" />
1526       <field type="CARD16" name="threshold" />
1527     </reply>
1528   </request>
1529
1530   <request name="SetScreenSaver" opcode="107">
1531     <pad bytes="1" />
1532     <field type="INT16" name="timeout" />
1533     <field type="INT16" name="interval" />
1534     <field type="CARD8" name="prefer_blanking" />
1535     <field type="CARD8" name="allow_exposures" />
1536   </request>
1537
1538   <request name="GetScreenSaver" opcode="108">
1539     <reply>
1540       <pad bytes="1" />
1541       <field type="CARD16" name="timeout" />
1542       <field type="CARD16" name="interval" />
1543       <field type="BYTE" name="prefer_blanking" />
1544       <field type="BYTE" name="allow_exposures" />
1545     </reply>
1546   </request>
1547
1548   <request name="ChangeHosts" opcode="109">
1549     <field type="CARD8" name="mode" />
1550     <field type="CARD8" name="family" />
1551     <pad bytes="1" />
1552     <field type="CARD16" name="address_len" />
1553     <list type="char" name="address">
1554       <fieldref>address_len</fieldref>
1555     </list>
1556   </request>
1557
1558   <struct name="HOST">
1559     <field type="CARD8" name="family" />
1560     <pad bytes="1" />
1561     <field type="CARD16" name="address_len" />
1562     <list type="BYTE" name="address">
1563       <fieldref>address_len</fieldref>
1564     </list>
1565   </struct>
1566
1567   <request name="ListHosts" opcode="110">
1568     <reply>
1569       <field type="BYTE" name="mode" />
1570       <field type="CARD16" name="hosts_len" />
1571       <pad bytes="22" />
1572       <list type="HOST" name="hosts">
1573         <fieldref>hosts_len</fieldref>
1574       </list>
1575     </reply>
1576   </request>
1577
1578   <request name="SetAccessControl" opcode="111">
1579     <field type="CARD8" name="mode" />
1580   </request>
1581
1582   <request name="SetCloseDownMode" opcode="112">
1583     <field type="CARD8" name="mode" />
1584   </request>
1585
1586   <request name="KillClient" opcode="113">
1587     <pad bytes="1" />
1588     <field type="CARD32" name="resource" />
1589   </request>
1590
1591   <request name="RotateProperties" opcode="114">
1592     <field type="WINDOW" name="window" />
1593     <field type="CARD16" name="atoms_len" />
1594     <field type="INT16" name="delta" />
1595     <list type="ATOM" name="atoms">
1596       <fieldref>atoms_len</fieldref>
1597     </list>
1598   </request>
1599
1600   <request name="ForceScreenSaver" opcode="115">
1601     <field type="CARD8" name="mode" />
1602   </request>
1603
1604   <request name="SetPointerMapping" opcode="116">
1605     <field type="CARD8" name="map_len" />
1606     <list type="CARD8" name="map">
1607       <fieldref>map_len</fieldref>
1608     </list>
1609     <reply>
1610       <field type="BYTE" name="status" />
1611     </reply>
1612   </request>
1613
1614   <request name="GetPointerMapping" opcode="117">
1615     <reply>
1616       <field type="CARD8" name="map_len" />
1617       <pad bytes="24" />
1618       <list type="CARD8" name="map">
1619         <fieldref>map_len</fieldref>
1620       </list>
1621     </reply>
1622   </request>
1623
1624   <request name="SetModifierMapping" opcode="118">
1625     <field type="CARD8" name="keycodes_per_modifier" />
1626     <list type="KEYCODE" name="keycodes">
1627       <op op="*">
1628         <fieldref>keycodes_per_modifier</fieldref>
1629         <value>8</value>
1630       </op>
1631     </list>
1632     <reply>
1633       <field type="BYTE" name="status" />
1634     </reply>
1635   </request>
1636
1637   <request name="GetModifierMapping" opcode="119">
1638     <reply>
1639       <field type="CARD8" name="keycodes_per_modifier" />
1640       <pad bytes="24" />
1641       <list type="KEYCODE" name="keycodes">
1642         <op op="*">
1643           <fieldref>keycodes_per_modifier</fieldref>
1644           <value>8</value>
1645         </op>
1646       </list>
1647     </reply>
1648   </request>
1649
1650   <!--
1651     FIXME: NoOperation should allow specifying payload length
1652     but geez, malloc()ing a 262140 byte buffer just so I have something
1653     to hand to write(2) seems silly...!
1654   -->
1655   <request name="NoOperation" opcode="127" />
1656
1657 </xcb>