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