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