Wireshark  4.3.0
The Wireshark network protocol analyzer
x11-extension-implementation.h
1 /* Do not modify this file. */
2 /* It was automatically generated by ../../tools/process-x11-xcb.pl
3  using xcbproto version xcb-proto-1.14-3-g7d58eed */
4 /*
5  * Copyright 2008, 2009, 2013, 2014 Open Text Corporation <pharris[AT]opentext.com>
6  *
7  * Wireshark - Network traffic analyzer
8  * By Gerald Combs <gerald[AT]wireshark.org>
9  * Copyright 1998 Gerald Combs
10  *
11  * SPDX-License-Identifier: GPL-2.0-or-later
12  */
13 
14 #include "x11-glx-render-enum.h"
15 
16 static void mesa_CallList(tvbuff_t *tvb, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
17 {
18  proto_tree_add_item(t, hf_x11_glx_render_CallList_list, tvb, *offsetp, 4, byte_order);
19  *offsetp += 4;
20 }
21 
22 static void mesa_CallLists(tvbuff_t *tvb, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
23 {
24  int n;
25  int type;
26  n = tvb_get_guint32(tvb, *offsetp, byte_order);
27  proto_tree_add_item(t, hf_x11_glx_render_CallLists_n, tvb, *offsetp, 4, byte_order);
28  *offsetp += 4;
29  type = tvb_get_guint32(tvb, *offsetp, byte_order);
30  proto_tree_add_item(t, hf_x11_glx_render_CallLists_type, tvb, *offsetp, 4, byte_order);
31  *offsetp += 4;
32  switch(type) {
33  case 0x1400: /* BYTE */
34  listOfByte(tvb, offsetp, t, hf_x11_glx_render_CallLists_lists_signed, n, byte_order);
35  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, (length - 8 - n), ENC_NA);
36  *offsetp += (length - 8 - n);
37  break;
38  case 0x1401: /* UNSIGNED_BYTE */
39  listOfByte(tvb, offsetp, t, hf_x11_glx_render_CallLists_lists_unsigned, n, byte_order);
40  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, (length - 8 - n), ENC_NA);
41  *offsetp += (length - 8 - n);
42  break;
43  case 0x1402: /* SHORT */
44  listOfInt16(tvb, offsetp, t, hf_x11_glx_render_CallLists_lists, hf_x11_glx_render_CallLists_lists_item_int16, n, byte_order);
45  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, (length - 8 - 2 * n), ENC_NA);
46  *offsetp += (length - 8 - 2 * n);
47  break;
48  case 0x1403: /* UNSIGNED_SHORT */
49  listOfCard16(tvb, offsetp, t, hf_x11_glx_render_CallLists_lists, hf_x11_glx_render_CallLists_lists_item_card16, n, byte_order);
50  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, (length - 8 - 2 * n), ENC_NA);
51  *offsetp += (length - 8 - 2 * n);
52  break;
53  case 0x1404: /* INT */
54  listOfInt32(tvb, offsetp, t, hf_x11_glx_render_CallLists_lists, hf_x11_glx_render_CallLists_lists_item_int32, n, byte_order);
55  break;
56  case 0x1405: /* UNSIGNED_INT */
57  listOfCard32(tvb, offsetp, t, hf_x11_glx_render_CallLists_lists, hf_x11_glx_render_CallLists_lists_item_card32, n, byte_order);
58  break;
59  case 0x1406: /* FLOAT */
60  listOfFloat(tvb, offsetp, t, hf_x11_glx_render_CallLists_lists, hf_x11_glx_render_CallLists_lists_item_float, n, byte_order);
61  break;
62  case 0x1407: /* 2_BYTES */
63  listOfCard16(tvb, offsetp, t, hf_x11_glx_render_CallLists_lists, hf_x11_glx_render_CallLists_lists_item_card16, n, ENC_BIG_ENDIAN);
64  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, (length - 8 - 2 * n), ENC_NA);
65  *offsetp += (length - 8 - 2 * n);
66  break;
67  case 0x1408: /* 3_BYTES */
68  UNDECODED(3 * n);
69  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, (length - 8 - 3 * n), ENC_NA);
70  *offsetp += (length - 8 - 3 * n);
71  break;
72  case 0x1409: /* 4_BYTES */
73  listOfCard32(tvb, offsetp, t, hf_x11_glx_render_CallLists_lists, hf_x11_glx_render_CallLists_lists_item_card32, n, ENC_BIG_ENDIAN);
74  break;
75  case 0x140B: /* HALF_FLOAT */
76  UNDECODED(2 * n);
77  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, (length - 8 - 2 * n), ENC_NA);
78  *offsetp += (length - 8 - 2 * n);
79  break;
80  default: /* Unknown */
81  UNDECODED(length - 8);
82  break;
83  }
84 }
85 
86 static void mesa_ListBase(tvbuff_t *tvb, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
87 {
88  proto_tree_add_item(t, hf_x11_glx_render_ListBase_base, tvb, *offsetp, 4, byte_order);
89  *offsetp += 4;
90 }
91 
92 static void mesa_Begin(tvbuff_t *tvb, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
93 {
94  proto_tree_add_item(t, hf_x11_glx_render_Begin_mode, tvb, *offsetp, 4, byte_order);
95  *offsetp += 4;
96 }
97 
98 static void mesa_Bitmap(tvbuff_t *tvb, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
99 {
100  proto_tree_add_item(t, hf_x11_glx_render_Bitmap_swapbytes, tvb, *offsetp, 1, byte_order);
101  *offsetp += 1;
102  proto_tree_add_item(t, hf_x11_glx_render_Bitmap_lsbfirst, tvb, *offsetp, 1, byte_order);
103  *offsetp += 1;
104  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 2, ENC_NA);
105  *offsetp += 2;
106  proto_tree_add_item(t, hf_x11_glx_render_Bitmap_rowlength, tvb, *offsetp, 4, byte_order);
107  *offsetp += 4;
108  proto_tree_add_item(t, hf_x11_glx_render_Bitmap_skiprows, tvb, *offsetp, 4, byte_order);
109  *offsetp += 4;
110  proto_tree_add_item(t, hf_x11_glx_render_Bitmap_skippixels, tvb, *offsetp, 4, byte_order);
111  *offsetp += 4;
112  proto_tree_add_item(t, hf_x11_glx_render_Bitmap_alignment, tvb, *offsetp, 4, byte_order);
113  *offsetp += 4;
114  proto_tree_add_item(t, hf_x11_glx_render_Bitmap_width, tvb, *offsetp, 4, byte_order);
115  *offsetp += 4;
116  proto_tree_add_item(t, hf_x11_glx_render_Bitmap_height, tvb, *offsetp, 4, byte_order);
117  *offsetp += 4;
118  proto_tree_add_item(t, hf_x11_glx_render_Bitmap_xorig, tvb, *offsetp, 4, byte_order);
119  *offsetp += 4;
120  proto_tree_add_item(t, hf_x11_glx_render_Bitmap_yorig, tvb, *offsetp, 4, byte_order);
121  *offsetp += 4;
122  proto_tree_add_item(t, hf_x11_glx_render_Bitmap_xmove, tvb, *offsetp, 4, byte_order);
123  *offsetp += 4;
124  proto_tree_add_item(t, hf_x11_glx_render_Bitmap_ymove, tvb, *offsetp, 4, byte_order);
125  *offsetp += 4;
126  listOfByte(tvb, offsetp, t, hf_x11_glx_render_Bitmap_bitmap, (length - 44) / 1, byte_order);
127 }
128 
129 static void mesa_Color3bv(tvbuff_t *tvb, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
130 {
131  listOfByte(tvb, offsetp, t, hf_x11_glx_render_Color3bv_v, 3, byte_order);
132 }
133 
134 static void mesa_Color3dv(tvbuff_t *tvb, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
135 {
136  listOfDouble(tvb, offsetp, t, hf_x11_glx_render_Color3dv_v, hf_x11_glx_render_Color3dv_v_item, 3, byte_order);
137 }
138 
139 static void mesa_Color3fv(tvbuff_t *tvb, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
140 {
141  listOfFloat(tvb, offsetp, t, hf_x11_glx_render_Color3fv_v, hf_x11_glx_render_Color3fv_v_item, 3, byte_order);
142 }
143 
144 static void mesa_Color3iv(tvbuff_t *tvb, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
145 {
146  listOfInt32(tvb, offsetp, t, hf_x11_glx_render_Color3iv_v, hf_x11_glx_render_Color3iv_v_item, 3, byte_order);
147 }
148 
149 static void mesa_Color3sv(tvbuff_t *tvb, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
150 {
151  listOfInt16(tvb, offsetp, t, hf_x11_glx_render_Color3sv_v, hf_x11_glx_render_Color3sv_v_item, 3, byte_order);
152 }
153 
154 static void mesa_Color3ubv(tvbuff_t *tvb, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
155 {
156  listOfByte(tvb, offsetp, t, hf_x11_glx_render_Color3ubv_v, 3, byte_order);
157 }
158 
159 static void mesa_Color3uiv(tvbuff_t *tvb, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
160 {
161  listOfCard32(tvb, offsetp, t, hf_x11_glx_render_Color3uiv_v, hf_x11_glx_render_Color3uiv_v_item, 3, byte_order);
162 }
163 
164 static void mesa_Color3usv(tvbuff_t *tvb, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
165 {
166  listOfCard16(tvb, offsetp, t, hf_x11_glx_render_Color3usv_v, hf_x11_glx_render_Color3usv_v_item, 3, byte_order);
167 }
168 
169 static void mesa_Color4bv(tvbuff_t *tvb, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
170 {
171  listOfByte(tvb, offsetp, t, hf_x11_glx_render_Color4bv_v, 4, byte_order);
172 }
173 
174 static void mesa_Color4dv(tvbuff_t *tvb, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
175 {
176  listOfDouble(tvb, offsetp, t, hf_x11_glx_render_Color4dv_v, hf_x11_glx_render_Color4dv_v_item, 4, byte_order);
177 }
178 
179 static void mesa_Color4fv(tvbuff_t *tvb, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
180 {
181  listOfFloat(tvb, offsetp, t, hf_x11_glx_render_Color4fv_v, hf_x11_glx_render_Color4fv_v_item, 4, byte_order);
182 }
183 
184 static void mesa_Color4iv(tvbuff_t *tvb, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
185 {
186  listOfInt32(tvb, offsetp, t, hf_x11_glx_render_Color4iv_v, hf_x11_glx_render_Color4iv_v_item, 4, byte_order);
187 }
188 
189 static void mesa_Color4sv(tvbuff_t *tvb, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
190 {
191  listOfInt16(tvb, offsetp, t, hf_x11_glx_render_Color4sv_v, hf_x11_glx_render_Color4sv_v_item, 4, byte_order);
192 }
193 
194 static void mesa_Color4ubv(tvbuff_t *tvb, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
195 {
196  listOfByte(tvb, offsetp, t, hf_x11_glx_render_Color4ubv_v, 4, byte_order);
197 }
198 
199 static void mesa_Color4uiv(tvbuff_t *tvb, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
200 {
201  listOfCard32(tvb, offsetp, t, hf_x11_glx_render_Color4uiv_v, hf_x11_glx_render_Color4uiv_v_item, 4, byte_order);
202 }
203 
204 static void mesa_Color4usv(tvbuff_t *tvb, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
205 {
206  listOfCard16(tvb, offsetp, t, hf_x11_glx_render_Color4usv_v, hf_x11_glx_render_Color4usv_v_item, 4, byte_order);
207 }
208 
209 static void mesa_EdgeFlagv(tvbuff_t *tvb, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
210 {
211  listOfByte(tvb, offsetp, t, hf_x11_glx_render_EdgeFlagv_flag, 1, byte_order);
212 }
213 
214 static void mesa_End(tvbuff_t *tvb _U_, int *offsetp _U_, proto_tree *t _U_, guint byte_order _U_, int length _U_)
215 {
216 }
217 
218 static void mesa_Indexdv(tvbuff_t *tvb, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
219 {
220  listOfDouble(tvb, offsetp, t, hf_x11_glx_render_Indexdv_c, hf_x11_glx_render_Indexdv_c_item, 1, byte_order);
221 }
222 
223 static void mesa_Indexfv(tvbuff_t *tvb, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
224 {
225  listOfFloat(tvb, offsetp, t, hf_x11_glx_render_Indexfv_c, hf_x11_glx_render_Indexfv_c_item, 1, byte_order);
226 }
227 
228 static void mesa_Indexiv(tvbuff_t *tvb, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
229 {
230  listOfInt32(tvb, offsetp, t, hf_x11_glx_render_Indexiv_c, hf_x11_glx_render_Indexiv_c_item, 1, byte_order);
231 }
232 
233 static void mesa_Indexsv(tvbuff_t *tvb, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
234 {
235  listOfInt16(tvb, offsetp, t, hf_x11_glx_render_Indexsv_c, hf_x11_glx_render_Indexsv_c_item, 1, byte_order);
236 }
237 
238 static void mesa_Normal3bv(tvbuff_t *tvb, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
239 {
240  listOfByte(tvb, offsetp, t, hf_x11_glx_render_Normal3bv_v, 3, byte_order);
241 }
242 
243 static void mesa_Normal3dv(tvbuff_t *tvb, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
244 {
245  listOfDouble(tvb, offsetp, t, hf_x11_glx_render_Normal3dv_v, hf_x11_glx_render_Normal3dv_v_item, 3, byte_order);
246 }
247 
248 static void mesa_Normal3fv(tvbuff_t *tvb, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
249 {
250  listOfFloat(tvb, offsetp, t, hf_x11_glx_render_Normal3fv_v, hf_x11_glx_render_Normal3fv_v_item, 3, byte_order);
251 }
252 
253 static void mesa_Normal3iv(tvbuff_t *tvb, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
254 {
255  listOfInt32(tvb, offsetp, t, hf_x11_glx_render_Normal3iv_v, hf_x11_glx_render_Normal3iv_v_item, 3, byte_order);
256 }
257 
258 static void mesa_Normal3sv(tvbuff_t *tvb, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
259 {
260  listOfInt16(tvb, offsetp, t, hf_x11_glx_render_Normal3sv_v, hf_x11_glx_render_Normal3sv_v_item, 3, byte_order);
261 }
262 
263 static void mesa_RasterPos2dv(tvbuff_t *tvb, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
264 {
265  listOfDouble(tvb, offsetp, t, hf_x11_glx_render_RasterPos2dv_v, hf_x11_glx_render_RasterPos2dv_v_item, 2, byte_order);
266 }
267 
268 static void mesa_RasterPos2fv(tvbuff_t *tvb, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
269 {
270  listOfFloat(tvb, offsetp, t, hf_x11_glx_render_RasterPos2fv_v, hf_x11_glx_render_RasterPos2fv_v_item, 2, byte_order);
271 }
272 
273 static void mesa_RasterPos2iv(tvbuff_t *tvb, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
274 {
275  listOfInt32(tvb, offsetp, t, hf_x11_glx_render_RasterPos2iv_v, hf_x11_glx_render_RasterPos2iv_v_item, 2, byte_order);
276 }
277 
278 static void mesa_RasterPos2sv(tvbuff_t *tvb, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
279 {
280  listOfInt16(tvb, offsetp, t, hf_x11_glx_render_RasterPos2sv_v, hf_x11_glx_render_RasterPos2sv_v_item, 2, byte_order);
281 }
282 
283 static void mesa_RasterPos3dv(tvbuff_t *tvb, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
284 {
285  listOfDouble(tvb, offsetp, t, hf_x11_glx_render_RasterPos3dv_v, hf_x11_glx_render_RasterPos3dv_v_item, 3, byte_order);
286 }
287 
288 static void mesa_RasterPos3fv(tvbuff_t *tvb, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
289 {
290  listOfFloat(tvb, offsetp, t, hf_x11_glx_render_RasterPos3fv_v, hf_x11_glx_render_RasterPos3fv_v_item, 3, byte_order);
291 }
292 
293 static void mesa_RasterPos3iv(tvbuff_t *tvb, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
294 {
295  listOfInt32(tvb, offsetp, t, hf_x11_glx_render_RasterPos3iv_v, hf_x11_glx_render_RasterPos3iv_v_item, 3, byte_order);
296 }
297 
298 static void mesa_RasterPos3sv(tvbuff_t *tvb, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
299 {
300  listOfInt16(tvb, offsetp, t, hf_x11_glx_render_RasterPos3sv_v, hf_x11_glx_render_RasterPos3sv_v_item, 3, byte_order);
301 }
302 
303 static void mesa_RasterPos4dv(tvbuff_t *tvb, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
304 {
305  listOfDouble(tvb, offsetp, t, hf_x11_glx_render_RasterPos4dv_v, hf_x11_glx_render_RasterPos4dv_v_item, 4, byte_order);
306 }
307 
308 static void mesa_RasterPos4fv(tvbuff_t *tvb, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
309 {
310  listOfFloat(tvb, offsetp, t, hf_x11_glx_render_RasterPos4fv_v, hf_x11_glx_render_RasterPos4fv_v_item, 4, byte_order);
311 }
312 
313 static void mesa_RasterPos4iv(tvbuff_t *tvb, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
314 {
315  listOfInt32(tvb, offsetp, t, hf_x11_glx_render_RasterPos4iv_v, hf_x11_glx_render_RasterPos4iv_v_item, 4, byte_order);
316 }
317 
318 static void mesa_RasterPos4sv(tvbuff_t *tvb, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
319 {
320  listOfInt16(tvb, offsetp, t, hf_x11_glx_render_RasterPos4sv_v, hf_x11_glx_render_RasterPos4sv_v_item, 4, byte_order);
321 }
322 
323 static void mesa_Rectdv(tvbuff_t *tvb, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
324 {
325  listOfDouble(tvb, offsetp, t, hf_x11_glx_render_Rectdv_v1, hf_x11_glx_render_Rectdv_v1_item, 2, byte_order);
326  listOfDouble(tvb, offsetp, t, hf_x11_glx_render_Rectdv_v2, hf_x11_glx_render_Rectdv_v2_item, 2, byte_order);
327 }
328 
329 static void mesa_Rectfv(tvbuff_t *tvb, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
330 {
331  listOfFloat(tvb, offsetp, t, hf_x11_glx_render_Rectfv_v1, hf_x11_glx_render_Rectfv_v1_item, 2, byte_order);
332  listOfFloat(tvb, offsetp, t, hf_x11_glx_render_Rectfv_v2, hf_x11_glx_render_Rectfv_v2_item, 2, byte_order);
333 }
334 
335 static void mesa_Rectiv(tvbuff_t *tvb, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
336 {
337  listOfInt32(tvb, offsetp, t, hf_x11_glx_render_Rectiv_v1, hf_x11_glx_render_Rectiv_v1_item, 2, byte_order);
338  listOfInt32(tvb, offsetp, t, hf_x11_glx_render_Rectiv_v2, hf_x11_glx_render_Rectiv_v2_item, 2, byte_order);
339 }
340 
341 static void mesa_Rectsv(tvbuff_t *tvb, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
342 {
343  listOfInt16(tvb, offsetp, t, hf_x11_glx_render_Rectsv_v1, hf_x11_glx_render_Rectsv_v1_item, 2, byte_order);
344  listOfInt16(tvb, offsetp, t, hf_x11_glx_render_Rectsv_v2, hf_x11_glx_render_Rectsv_v2_item, 2, byte_order);
345 }
346 
347 static void mesa_TexCoord1dv(tvbuff_t *tvb, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
348 {
349  listOfDouble(tvb, offsetp, t, hf_x11_glx_render_TexCoord1dv_v, hf_x11_glx_render_TexCoord1dv_v_item, 1, byte_order);
350 }
351 
352 static void mesa_TexCoord1fv(tvbuff_t *tvb, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
353 {
354  listOfFloat(tvb, offsetp, t, hf_x11_glx_render_TexCoord1fv_v, hf_x11_glx_render_TexCoord1fv_v_item, 1, byte_order);
355 }
356 
357 static void mesa_TexCoord1iv(tvbuff_t *tvb, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
358 {
359  listOfInt32(tvb, offsetp, t, hf_x11_glx_render_TexCoord1iv_v, hf_x11_glx_render_TexCoord1iv_v_item, 1, byte_order);
360 }
361 
362 static void mesa_TexCoord1sv(tvbuff_t *tvb, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
363 {
364  listOfInt16(tvb, offsetp, t, hf_x11_glx_render_TexCoord1sv_v, hf_x11_glx_render_TexCoord1sv_v_item, 1, byte_order);
365 }
366 
367 static void mesa_TexCoord2dv(tvbuff_t *tvb, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
368 {
369  listOfDouble(tvb, offsetp, t, hf_x11_glx_render_TexCoord2dv_v, hf_x11_glx_render_TexCoord2dv_v_item, 2, byte_order);
370 }
371 
372 static void mesa_TexCoord2fv(tvbuff_t *tvb, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
373 {
374  listOfFloat(tvb, offsetp, t, hf_x11_glx_render_TexCoord2fv_v, hf_x11_glx_render_TexCoord2fv_v_item, 2, byte_order);
375 }
376 
377 static void mesa_TexCoord2iv(tvbuff_t *tvb, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
378 {
379  listOfInt32(tvb, offsetp, t, hf_x11_glx_render_TexCoord2iv_v, hf_x11_glx_render_TexCoord2iv_v_item, 2, byte_order);
380 }
381 
382 static void mesa_TexCoord2sv(tvbuff_t *tvb, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
383 {
384  listOfInt16(tvb, offsetp, t, hf_x11_glx_render_TexCoord2sv_v, hf_x11_glx_render_TexCoord2sv_v_item, 2, byte_order);
385 }
386 
387 static void mesa_TexCoord3dv(tvbuff_t *tvb, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
388 {
389  listOfDouble(tvb, offsetp, t, hf_x11_glx_render_TexCoord3dv_v, hf_x11_glx_render_TexCoord3dv_v_item, 3, byte_order);
390 }
391 
392 static void mesa_TexCoord3fv(tvbuff_t *tvb, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
393 {
394  listOfFloat(tvb, offsetp, t, hf_x11_glx_render_TexCoord3fv_v, hf_x11_glx_render_TexCoord3fv_v_item, 3, byte_order);
395 }
396 
397 static void mesa_TexCoord3iv(tvbuff_t *tvb, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
398 {
399  listOfInt32(tvb, offsetp, t, hf_x11_glx_render_TexCoord3iv_v, hf_x11_glx_render_TexCoord3iv_v_item, 3, byte_order);
400 }
401 
402 static void mesa_TexCoord3sv(tvbuff_t *tvb, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
403 {
404  listOfInt16(tvb, offsetp, t, hf_x11_glx_render_TexCoord3sv_v, hf_x11_glx_render_TexCoord3sv_v_item, 3, byte_order);
405 }
406 
407 static void mesa_TexCoord4dv(tvbuff_t *tvb, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
408 {
409  listOfDouble(tvb, offsetp, t, hf_x11_glx_render_TexCoord4dv_v, hf_x11_glx_render_TexCoord4dv_v_item, 4, byte_order);
410 }
411 
412 static void mesa_TexCoord4fv(tvbuff_t *tvb, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
413 {
414  listOfFloat(tvb, offsetp, t, hf_x11_glx_render_TexCoord4fv_v, hf_x11_glx_render_TexCoord4fv_v_item, 4, byte_order);
415 }
416 
417 static void mesa_TexCoord4iv(tvbuff_t *tvb, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
418 {
419  listOfInt32(tvb, offsetp, t, hf_x11_glx_render_TexCoord4iv_v, hf_x11_glx_render_TexCoord4iv_v_item, 4, byte_order);
420 }
421 
422 static void mesa_TexCoord4sv(tvbuff_t *tvb, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
423 {
424  listOfInt16(tvb, offsetp, t, hf_x11_glx_render_TexCoord4sv_v, hf_x11_glx_render_TexCoord4sv_v_item, 4, byte_order);
425 }
426 
427 static void mesa_Vertex2dv(tvbuff_t *tvb, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
428 {
429  listOfDouble(tvb, offsetp, t, hf_x11_glx_render_Vertex2dv_v, hf_x11_glx_render_Vertex2dv_v_item, 2, byte_order);
430 }
431 
432 static void mesa_Vertex2fv(tvbuff_t *tvb, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
433 {
434  listOfFloat(tvb, offsetp, t, hf_x11_glx_render_Vertex2fv_v, hf_x11_glx_render_Vertex2fv_v_item, 2, byte_order);
435 }
436 
437 static void mesa_Vertex2iv(tvbuff_t *tvb, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
438 {
439  listOfInt32(tvb, offsetp, t, hf_x11_glx_render_Vertex2iv_v, hf_x11_glx_render_Vertex2iv_v_item, 2, byte_order);
440 }
441 
442 static void mesa_Vertex2sv(tvbuff_t *tvb, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
443 {
444  listOfInt16(tvb, offsetp, t, hf_x11_glx_render_Vertex2sv_v, hf_x11_glx_render_Vertex2sv_v_item, 2, byte_order);
445 }
446 
447 static void mesa_Vertex3dv(tvbuff_t *tvb, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
448 {
449  listOfDouble(tvb, offsetp, t, hf_x11_glx_render_Vertex3dv_v, hf_x11_glx_render_Vertex3dv_v_item, 3, byte_order);
450 }
451 
452 static void mesa_Vertex3fv(tvbuff_t *tvb, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
453 {
454  listOfFloat(tvb, offsetp, t, hf_x11_glx_render_Vertex3fv_v, hf_x11_glx_render_Vertex3fv_v_item, 3, byte_order);
455 }
456 
457 static void mesa_Vertex3iv(tvbuff_t *tvb, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
458 {
459  listOfInt32(tvb, offsetp, t, hf_x11_glx_render_Vertex3iv_v, hf_x11_glx_render_Vertex3iv_v_item, 3, byte_order);
460 }
461 
462 static void mesa_Vertex3sv(tvbuff_t *tvb, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
463 {
464  listOfInt16(tvb, offsetp, t, hf_x11_glx_render_Vertex3sv_v, hf_x11_glx_render_Vertex3sv_v_item, 3, byte_order);
465 }
466 
467 static void mesa_Vertex4dv(tvbuff_t *tvb, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
468 {
469  listOfDouble(tvb, offsetp, t, hf_x11_glx_render_Vertex4dv_v, hf_x11_glx_render_Vertex4dv_v_item, 4, byte_order);
470 }
471 
472 static void mesa_Vertex4fv(tvbuff_t *tvb, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
473 {
474  listOfFloat(tvb, offsetp, t, hf_x11_glx_render_Vertex4fv_v, hf_x11_glx_render_Vertex4fv_v_item, 4, byte_order);
475 }
476 
477 static void mesa_Vertex4iv(tvbuff_t *tvb, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
478 {
479  listOfInt32(tvb, offsetp, t, hf_x11_glx_render_Vertex4iv_v, hf_x11_glx_render_Vertex4iv_v_item, 4, byte_order);
480 }
481 
482 static void mesa_Vertex4sv(tvbuff_t *tvb, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
483 {
484  listOfInt16(tvb, offsetp, t, hf_x11_glx_render_Vertex4sv_v, hf_x11_glx_render_Vertex4sv_v_item, 4, byte_order);
485 }
486 
487 static void mesa_ClipPlane(tvbuff_t *tvb, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
488 {
489  proto_tree_add_item(t, hf_x11_glx_render_ClipPlane_plane, tvb, *offsetp, 4, byte_order);
490  *offsetp += 4;
491  listOfDouble(tvb, offsetp, t, hf_x11_glx_render_ClipPlane_equation, hf_x11_glx_render_ClipPlane_equation_item, 4, byte_order);
492 }
493 
494 static void mesa_ColorMaterial(tvbuff_t *tvb, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
495 {
496  proto_tree_add_item(t, hf_x11_glx_render_ColorMaterial_face, tvb, *offsetp, 4, byte_order);
497  *offsetp += 4;
498  proto_tree_add_item(t, hf_x11_glx_render_ColorMaterial_mode, tvb, *offsetp, 4, byte_order);
499  *offsetp += 4;
500 }
501 
502 static void mesa_CullFace(tvbuff_t *tvb, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
503 {
504  proto_tree_add_item(t, hf_x11_glx_render_CullFace_mode, tvb, *offsetp, 4, byte_order);
505  *offsetp += 4;
506 }
507 
508 static void mesa_Fogf(tvbuff_t *tvb, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
509 {
510  proto_tree_add_item(t, hf_x11_glx_render_Fogf_pname, tvb, *offsetp, 4, byte_order);
511  *offsetp += 4;
512  proto_tree_add_item(t, hf_x11_glx_render_Fogf_param, tvb, *offsetp, 4, byte_order);
513  *offsetp += 4;
514 }
515 
516 static void mesa_Fogfv(tvbuff_t *tvb, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
517 {
518  proto_tree_add_item(t, hf_x11_glx_render_Fogfv_pname, tvb, *offsetp, 4, byte_order);
519  *offsetp += 4;
520  listOfFloat(tvb, offsetp, t, hf_x11_glx_render_Fogfv_params, hf_x11_glx_render_Fogfv_params_item, (length - 4) / 4, byte_order);
521 }
522 
523 static void mesa_Fogi(tvbuff_t *tvb, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
524 {
525  proto_tree_add_item(t, hf_x11_glx_render_Fogi_pname, tvb, *offsetp, 4, byte_order);
526  *offsetp += 4;
527  proto_tree_add_item(t, hf_x11_glx_render_Fogi_param, tvb, *offsetp, 4, byte_order);
528  *offsetp += 4;
529 }
530 
531 static void mesa_Fogiv(tvbuff_t *tvb, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
532 {
533  proto_tree_add_item(t, hf_x11_glx_render_Fogiv_pname, tvb, *offsetp, 4, byte_order);
534  *offsetp += 4;
535  listOfInt32(tvb, offsetp, t, hf_x11_glx_render_Fogiv_params, hf_x11_glx_render_Fogiv_params_item, (length - 4) / 4, byte_order);
536 }
537 
538 static void mesa_FrontFace(tvbuff_t *tvb, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
539 {
540  proto_tree_add_item(t, hf_x11_glx_render_FrontFace_mode, tvb, *offsetp, 4, byte_order);
541  *offsetp += 4;
542 }
543 
544 static void mesa_Hint(tvbuff_t *tvb, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
545 {
546  proto_tree_add_item(t, hf_x11_glx_render_Hint_target, tvb, *offsetp, 4, byte_order);
547  *offsetp += 4;
548  proto_tree_add_item(t, hf_x11_glx_render_Hint_mode, tvb, *offsetp, 4, byte_order);
549  *offsetp += 4;
550 }
551 
552 static void mesa_Lightf(tvbuff_t *tvb, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
553 {
554  proto_tree_add_item(t, hf_x11_glx_render_Lightf_light, tvb, *offsetp, 4, byte_order);
555  *offsetp += 4;
556  proto_tree_add_item(t, hf_x11_glx_render_Lightf_pname, tvb, *offsetp, 4, byte_order);
557  *offsetp += 4;
558  proto_tree_add_item(t, hf_x11_glx_render_Lightf_param, tvb, *offsetp, 4, byte_order);
559  *offsetp += 4;
560 }
561 
562 static void mesa_Lightfv(tvbuff_t *tvb, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
563 {
564  proto_tree_add_item(t, hf_x11_glx_render_Lightfv_light, tvb, *offsetp, 4, byte_order);
565  *offsetp += 4;
566  proto_tree_add_item(t, hf_x11_glx_render_Lightfv_pname, tvb, *offsetp, 4, byte_order);
567  *offsetp += 4;
568  listOfFloat(tvb, offsetp, t, hf_x11_glx_render_Lightfv_params, hf_x11_glx_render_Lightfv_params_item, (length - 8) / 4, byte_order);
569 }
570 
571 static void mesa_Lighti(tvbuff_t *tvb, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
572 {
573  proto_tree_add_item(t, hf_x11_glx_render_Lighti_light, tvb, *offsetp, 4, byte_order);
574  *offsetp += 4;
575  proto_tree_add_item(t, hf_x11_glx_render_Lighti_pname, tvb, *offsetp, 4, byte_order);
576  *offsetp += 4;
577  proto_tree_add_item(t, hf_x11_glx_render_Lighti_param, tvb, *offsetp, 4, byte_order);
578  *offsetp += 4;
579 }
580 
581 static void mesa_Lightiv(tvbuff_t *tvb, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
582 {
583  proto_tree_add_item(t, hf_x11_glx_render_Lightiv_light, tvb, *offsetp, 4, byte_order);
584  *offsetp += 4;
585  proto_tree_add_item(t, hf_x11_glx_render_Lightiv_pname, tvb, *offsetp, 4, byte_order);
586  *offsetp += 4;
587  listOfInt32(tvb, offsetp, t, hf_x11_glx_render_Lightiv_params, hf_x11_glx_render_Lightiv_params_item, (length - 8) / 4, byte_order);
588 }
589 
590 static void mesa_LightModelf(tvbuff_t *tvb, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
591 {
592  proto_tree_add_item(t, hf_x11_glx_render_LightModelf_pname, tvb, *offsetp, 4, byte_order);
593  *offsetp += 4;
594  proto_tree_add_item(t, hf_x11_glx_render_LightModelf_param, tvb, *offsetp, 4, byte_order);
595  *offsetp += 4;
596 }
597 
598 static void mesa_LightModelfv(tvbuff_t *tvb, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
599 {
600  proto_tree_add_item(t, hf_x11_glx_render_LightModelfv_pname, tvb, *offsetp, 4, byte_order);
601  *offsetp += 4;
602  listOfFloat(tvb, offsetp, t, hf_x11_glx_render_LightModelfv_params, hf_x11_glx_render_LightModelfv_params_item, (length - 4) / 4, byte_order);
603 }
604 
605 static void mesa_LightModeli(tvbuff_t *tvb, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
606 {
607  proto_tree_add_item(t, hf_x11_glx_render_LightModeli_pname, tvb, *offsetp, 4, byte_order);
608  *offsetp += 4;
609  proto_tree_add_item(t, hf_x11_glx_render_LightModeli_param, tvb, *offsetp, 4, byte_order);
610  *offsetp += 4;
611 }
612 
613 static void mesa_LightModeliv(tvbuff_t *tvb, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
614 {
615  proto_tree_add_item(t, hf_x11_glx_render_LightModeliv_pname, tvb, *offsetp, 4, byte_order);
616  *offsetp += 4;
617  listOfInt32(tvb, offsetp, t, hf_x11_glx_render_LightModeliv_params, hf_x11_glx_render_LightModeliv_params_item, (length - 4) / 4, byte_order);
618 }
619 
620 static void mesa_LineStipple(tvbuff_t *tvb, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
621 {
622  proto_tree_add_item(t, hf_x11_glx_render_LineStipple_factor, tvb, *offsetp, 4, byte_order);
623  *offsetp += 4;
624  proto_tree_add_item(t, hf_x11_glx_render_LineStipple_pattern, tvb, *offsetp, 2, byte_order);
625  *offsetp += 2;
626 }
627 
628 static void mesa_LineWidth(tvbuff_t *tvb, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
629 {
630  proto_tree_add_item(t, hf_x11_glx_render_LineWidth_width, tvb, *offsetp, 4, byte_order);
631  *offsetp += 4;
632 }
633 
634 static void mesa_Materialf(tvbuff_t *tvb, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
635 {
636  proto_tree_add_item(t, hf_x11_glx_render_Materialf_face, tvb, *offsetp, 4, byte_order);
637  *offsetp += 4;
638  proto_tree_add_item(t, hf_x11_glx_render_Materialf_pname, tvb, *offsetp, 4, byte_order);
639  *offsetp += 4;
640  proto_tree_add_item(t, hf_x11_glx_render_Materialf_param, tvb, *offsetp, 4, byte_order);
641  *offsetp += 4;
642 }
643 
644 static void mesa_Materialfv(tvbuff_t *tvb, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
645 {
646  proto_tree_add_item(t, hf_x11_glx_render_Materialfv_face, tvb, *offsetp, 4, byte_order);
647  *offsetp += 4;
648  proto_tree_add_item(t, hf_x11_glx_render_Materialfv_pname, tvb, *offsetp, 4, byte_order);
649  *offsetp += 4;
650  listOfFloat(tvb, offsetp, t, hf_x11_glx_render_Materialfv_params, hf_x11_glx_render_Materialfv_params_item, (length - 8) / 4, byte_order);
651 }
652 
653 static void mesa_Materiali(tvbuff_t *tvb, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
654 {
655  proto_tree_add_item(t, hf_x11_glx_render_Materiali_face, tvb, *offsetp, 4, byte_order);
656  *offsetp += 4;
657  proto_tree_add_item(t, hf_x11_glx_render_Materiali_pname, tvb, *offsetp, 4, byte_order);
658  *offsetp += 4;
659  proto_tree_add_item(t, hf_x11_glx_render_Materiali_param, tvb, *offsetp, 4, byte_order);
660  *offsetp += 4;
661 }
662 
663 static void mesa_Materialiv(tvbuff_t *tvb, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
664 {
665  proto_tree_add_item(t, hf_x11_glx_render_Materialiv_face, tvb, *offsetp, 4, byte_order);
666  *offsetp += 4;
667  proto_tree_add_item(t, hf_x11_glx_render_Materialiv_pname, tvb, *offsetp, 4, byte_order);
668  *offsetp += 4;
669  listOfInt32(tvb, offsetp, t, hf_x11_glx_render_Materialiv_params, hf_x11_glx_render_Materialiv_params_item, (length - 8) / 4, byte_order);
670 }
671 
672 static void mesa_PointSize(tvbuff_t *tvb, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
673 {
674  proto_tree_add_item(t, hf_x11_glx_render_PointSize_size, tvb, *offsetp, 4, byte_order);
675  *offsetp += 4;
676 }
677 
678 static void mesa_PolygonMode(tvbuff_t *tvb, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
679 {
680  proto_tree_add_item(t, hf_x11_glx_render_PolygonMode_face, tvb, *offsetp, 4, byte_order);
681  *offsetp += 4;
682  proto_tree_add_item(t, hf_x11_glx_render_PolygonMode_mode, tvb, *offsetp, 4, byte_order);
683  *offsetp += 4;
684 }
685 
686 static void mesa_PolygonStipple(tvbuff_t *tvb, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
687 {
688  proto_tree_add_item(t, hf_x11_glx_render_PolygonStipple_swapbytes, tvb, *offsetp, 1, byte_order);
689  *offsetp += 1;
690  proto_tree_add_item(t, hf_x11_glx_render_PolygonStipple_lsbfirst, tvb, *offsetp, 1, byte_order);
691  *offsetp += 1;
692  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 2, ENC_NA);
693  *offsetp += 2;
694  proto_tree_add_item(t, hf_x11_glx_render_PolygonStipple_rowlength, tvb, *offsetp, 4, byte_order);
695  *offsetp += 4;
696  proto_tree_add_item(t, hf_x11_glx_render_PolygonStipple_skiprows, tvb, *offsetp, 4, byte_order);
697  *offsetp += 4;
698  proto_tree_add_item(t, hf_x11_glx_render_PolygonStipple_skippixels, tvb, *offsetp, 4, byte_order);
699  *offsetp += 4;
700  proto_tree_add_item(t, hf_x11_glx_render_PolygonStipple_alignment, tvb, *offsetp, 4, byte_order);
701  *offsetp += 4;
702  listOfByte(tvb, offsetp, t, hf_x11_glx_render_PolygonStipple_mask, (length - 20) / 1, byte_order);
703 }
704 
705 static void mesa_Scissor(tvbuff_t *tvb, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
706 {
707  proto_tree_add_item(t, hf_x11_glx_render_Scissor_x, tvb, *offsetp, 4, byte_order);
708  *offsetp += 4;
709  proto_tree_add_item(t, hf_x11_glx_render_Scissor_y, tvb, *offsetp, 4, byte_order);
710  *offsetp += 4;
711  proto_tree_add_item(t, hf_x11_glx_render_Scissor_width, tvb, *offsetp, 4, byte_order);
712  *offsetp += 4;
713  proto_tree_add_item(t, hf_x11_glx_render_Scissor_height, tvb, *offsetp, 4, byte_order);
714  *offsetp += 4;
715 }
716 
717 static void mesa_ShadeModel(tvbuff_t *tvb, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
718 {
719  proto_tree_add_item(t, hf_x11_glx_render_ShadeModel_mode, tvb, *offsetp, 4, byte_order);
720  *offsetp += 4;
721 }
722 
723 static void mesa_TexParameterf(tvbuff_t *tvb, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
724 {
725  proto_tree_add_item(t, hf_x11_glx_render_TexParameterf_target, tvb, *offsetp, 4, byte_order);
726  *offsetp += 4;
727  proto_tree_add_item(t, hf_x11_glx_render_TexParameterf_pname, tvb, *offsetp, 4, byte_order);
728  *offsetp += 4;
729  proto_tree_add_item(t, hf_x11_glx_render_TexParameterf_param, tvb, *offsetp, 4, byte_order);
730  *offsetp += 4;
731 }
732 
733 static void mesa_TexParameterfv(tvbuff_t *tvb, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
734 {
735  proto_tree_add_item(t, hf_x11_glx_render_TexParameterfv_target, tvb, *offsetp, 4, byte_order);
736  *offsetp += 4;
737  proto_tree_add_item(t, hf_x11_glx_render_TexParameterfv_pname, tvb, *offsetp, 4, byte_order);
738  *offsetp += 4;
739  listOfFloat(tvb, offsetp, t, hf_x11_glx_render_TexParameterfv_params, hf_x11_glx_render_TexParameterfv_params_item, (length - 8) / 4, byte_order);
740 }
741 
742 static void mesa_TexParameteri(tvbuff_t *tvb, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
743 {
744  proto_tree_add_item(t, hf_x11_glx_render_TexParameteri_target, tvb, *offsetp, 4, byte_order);
745  *offsetp += 4;
746  proto_tree_add_item(t, hf_x11_glx_render_TexParameteri_pname, tvb, *offsetp, 4, byte_order);
747  *offsetp += 4;
748  proto_tree_add_item(t, hf_x11_glx_render_TexParameteri_param, tvb, *offsetp, 4, byte_order);
749  *offsetp += 4;
750 }
751 
752 static void mesa_TexParameteriv(tvbuff_t *tvb, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
753 {
754  proto_tree_add_item(t, hf_x11_glx_render_TexParameteriv_target, tvb, *offsetp, 4, byte_order);
755  *offsetp += 4;
756  proto_tree_add_item(t, hf_x11_glx_render_TexParameteriv_pname, tvb, *offsetp, 4, byte_order);
757  *offsetp += 4;
758  listOfInt32(tvb, offsetp, t, hf_x11_glx_render_TexParameteriv_params, hf_x11_glx_render_TexParameteriv_params_item, (length - 8) / 4, byte_order);
759 }
760 
761 static void mesa_TexImage1D(tvbuff_t *tvb, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
762 {
763  proto_tree_add_item(t, hf_x11_glx_render_TexImage1D_swapbytes, tvb, *offsetp, 1, byte_order);
764  *offsetp += 1;
765  proto_tree_add_item(t, hf_x11_glx_render_TexImage1D_lsbfirst, tvb, *offsetp, 1, byte_order);
766  *offsetp += 1;
767  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 2, ENC_NA);
768  *offsetp += 2;
769  proto_tree_add_item(t, hf_x11_glx_render_TexImage1D_rowlength, tvb, *offsetp, 4, byte_order);
770  *offsetp += 4;
771  proto_tree_add_item(t, hf_x11_glx_render_TexImage1D_skiprows, tvb, *offsetp, 4, byte_order);
772  *offsetp += 4;
773  proto_tree_add_item(t, hf_x11_glx_render_TexImage1D_skippixels, tvb, *offsetp, 4, byte_order);
774  *offsetp += 4;
775  proto_tree_add_item(t, hf_x11_glx_render_TexImage1D_alignment, tvb, *offsetp, 4, byte_order);
776  *offsetp += 4;
777  proto_tree_add_item(t, hf_x11_glx_render_TexImage1D_target, tvb, *offsetp, 4, byte_order);
778  *offsetp += 4;
779  proto_tree_add_item(t, hf_x11_glx_render_TexImage1D_level, tvb, *offsetp, 4, byte_order);
780  *offsetp += 4;
781  proto_tree_add_item(t, hf_x11_glx_render_TexImage1D_internalformat, tvb, *offsetp, 4, byte_order);
782  *offsetp += 4;
783  proto_tree_add_item(t, hf_x11_glx_render_TexImage1D_width, tvb, *offsetp, 4, byte_order);
784  *offsetp += 4;
785  proto_tree_add_item(t, hf_x11_glx_render_TexImage1D_border, tvb, *offsetp, 4, byte_order);
786  *offsetp += 4;
787  proto_tree_add_item(t, hf_x11_glx_render_TexImage1D_format, tvb, *offsetp, 4, byte_order);
788  *offsetp += 4;
789  proto_tree_add_item(t, hf_x11_glx_render_TexImage1D_type, tvb, *offsetp, 4, byte_order);
790  *offsetp += 4;
791  listOfByte(tvb, offsetp, t, hf_x11_glx_render_TexImage1D_pixels, (length - 48) / 1, byte_order);
792 }
793 
794 static void mesa_TexImage2D(tvbuff_t *tvb, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
795 {
796  proto_tree_add_item(t, hf_x11_glx_render_TexImage2D_swapbytes, tvb, *offsetp, 1, byte_order);
797  *offsetp += 1;
798  proto_tree_add_item(t, hf_x11_glx_render_TexImage2D_lsbfirst, tvb, *offsetp, 1, byte_order);
799  *offsetp += 1;
800  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 2, ENC_NA);
801  *offsetp += 2;
802  proto_tree_add_item(t, hf_x11_glx_render_TexImage2D_rowlength, tvb, *offsetp, 4, byte_order);
803  *offsetp += 4;
804  proto_tree_add_item(t, hf_x11_glx_render_TexImage2D_skiprows, tvb, *offsetp, 4, byte_order);
805  *offsetp += 4;
806  proto_tree_add_item(t, hf_x11_glx_render_TexImage2D_skippixels, tvb, *offsetp, 4, byte_order);
807  *offsetp += 4;
808  proto_tree_add_item(t, hf_x11_glx_render_TexImage2D_alignment, tvb, *offsetp, 4, byte_order);
809  *offsetp += 4;
810  proto_tree_add_item(t, hf_x11_glx_render_TexImage2D_target, tvb, *offsetp, 4, byte_order);
811  *offsetp += 4;
812  proto_tree_add_item(t, hf_x11_glx_render_TexImage2D_level, tvb, *offsetp, 4, byte_order);
813  *offsetp += 4;
814  proto_tree_add_item(t, hf_x11_glx_render_TexImage2D_internalformat, tvb, *offsetp, 4, byte_order);
815  *offsetp += 4;
816  proto_tree_add_item(t, hf_x11_glx_render_TexImage2D_width, tvb, *offsetp, 4, byte_order);
817  *offsetp += 4;
818  proto_tree_add_item(t, hf_x11_glx_render_TexImage2D_height, tvb, *offsetp, 4, byte_order);
819  *offsetp += 4;
820  proto_tree_add_item(t, hf_x11_glx_render_TexImage2D_border, tvb, *offsetp, 4, byte_order);
821  *offsetp += 4;
822  proto_tree_add_item(t, hf_x11_glx_render_TexImage2D_format, tvb, *offsetp, 4, byte_order);
823  *offsetp += 4;
824  proto_tree_add_item(t, hf_x11_glx_render_TexImage2D_type, tvb, *offsetp, 4, byte_order);
825  *offsetp += 4;
826  listOfByte(tvb, offsetp, t, hf_x11_glx_render_TexImage2D_pixels, (length - 52) / 1, byte_order);
827 }
828 
829 static void mesa_TexEnvf(tvbuff_t *tvb, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
830 {
831  proto_tree_add_item(t, hf_x11_glx_render_TexEnvf_target, tvb, *offsetp, 4, byte_order);
832  *offsetp += 4;
833  proto_tree_add_item(t, hf_x11_glx_render_TexEnvf_pname, tvb, *offsetp, 4, byte_order);
834  *offsetp += 4;
835  proto_tree_add_item(t, hf_x11_glx_render_TexEnvf_param, tvb, *offsetp, 4, byte_order);
836  *offsetp += 4;
837 }
838 
839 static void mesa_TexEnvfv(tvbuff_t *tvb, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
840 {
841  proto_tree_add_item(t, hf_x11_glx_render_TexEnvfv_target, tvb, *offsetp, 4, byte_order);
842  *offsetp += 4;
843  proto_tree_add_item(t, hf_x11_glx_render_TexEnvfv_pname, tvb, *offsetp, 4, byte_order);
844  *offsetp += 4;
845  listOfFloat(tvb, offsetp, t, hf_x11_glx_render_TexEnvfv_params, hf_x11_glx_render_TexEnvfv_params_item, (length - 8) / 4, byte_order);
846 }
847 
848 static void mesa_TexEnvi(tvbuff_t *tvb, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
849 {
850  proto_tree_add_item(t, hf_x11_glx_render_TexEnvi_target, tvb, *offsetp, 4, byte_order);
851  *offsetp += 4;
852  proto_tree_add_item(t, hf_x11_glx_render_TexEnvi_pname, tvb, *offsetp, 4, byte_order);
853  *offsetp += 4;
854  proto_tree_add_item(t, hf_x11_glx_render_TexEnvi_param, tvb, *offsetp, 4, byte_order);
855  *offsetp += 4;
856 }
857 
858 static void mesa_TexEnviv(tvbuff_t *tvb, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
859 {
860  proto_tree_add_item(t, hf_x11_glx_render_TexEnviv_target, tvb, *offsetp, 4, byte_order);
861  *offsetp += 4;
862  proto_tree_add_item(t, hf_x11_glx_render_TexEnviv_pname, tvb, *offsetp, 4, byte_order);
863  *offsetp += 4;
864  listOfInt32(tvb, offsetp, t, hf_x11_glx_render_TexEnviv_params, hf_x11_glx_render_TexEnviv_params_item, (length - 8) / 4, byte_order);
865 }
866 
867 static void mesa_TexGend(tvbuff_t *tvb, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
868 {
869  proto_tree_add_item(t, hf_x11_glx_render_TexGend_coord, tvb, *offsetp, 4, byte_order);
870  *offsetp += 4;
871  proto_tree_add_item(t, hf_x11_glx_render_TexGend_pname, tvb, *offsetp, 4, byte_order);
872  *offsetp += 4;
873  proto_tree_add_item(t, hf_x11_glx_render_TexGend_param, tvb, *offsetp, 8, byte_order);
874  *offsetp += 8;
875 }
876 
877 static void mesa_TexGendv(tvbuff_t *tvb, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
878 {
879  proto_tree_add_item(t, hf_x11_glx_render_TexGendv_coord, tvb, *offsetp, 4, byte_order);
880  *offsetp += 4;
881  proto_tree_add_item(t, hf_x11_glx_render_TexGendv_pname, tvb, *offsetp, 4, byte_order);
882  *offsetp += 4;
883  listOfDouble(tvb, offsetp, t, hf_x11_glx_render_TexGendv_params, hf_x11_glx_render_TexGendv_params_item, (length - 8) / 8, byte_order);
884 }
885 
886 static void mesa_TexGenf(tvbuff_t *tvb, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
887 {
888  proto_tree_add_item(t, hf_x11_glx_render_TexGenf_coord, tvb, *offsetp, 4, byte_order);
889  *offsetp += 4;
890  proto_tree_add_item(t, hf_x11_glx_render_TexGenf_pname, tvb, *offsetp, 4, byte_order);
891  *offsetp += 4;
892  proto_tree_add_item(t, hf_x11_glx_render_TexGenf_param, tvb, *offsetp, 4, byte_order);
893  *offsetp += 4;
894 }
895 
896 static void mesa_TexGenfv(tvbuff_t *tvb, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
897 {
898  proto_tree_add_item(t, hf_x11_glx_render_TexGenfv_coord, tvb, *offsetp, 4, byte_order);
899  *offsetp += 4;
900  proto_tree_add_item(t, hf_x11_glx_render_TexGenfv_pname, tvb, *offsetp, 4, byte_order);
901  *offsetp += 4;
902  listOfFloat(tvb, offsetp, t, hf_x11_glx_render_TexGenfv_params, hf_x11_glx_render_TexGenfv_params_item, (length - 8) / 4, byte_order);
903 }
904 
905 static void mesa_TexGeni(tvbuff_t *tvb, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
906 {
907  proto_tree_add_item(t, hf_x11_glx_render_TexGeni_coord, tvb, *offsetp, 4, byte_order);
908  *offsetp += 4;
909  proto_tree_add_item(t, hf_x11_glx_render_TexGeni_pname, tvb, *offsetp, 4, byte_order);
910  *offsetp += 4;
911  proto_tree_add_item(t, hf_x11_glx_render_TexGeni_param, tvb, *offsetp, 4, byte_order);
912  *offsetp += 4;
913 }
914 
915 static void mesa_TexGeniv(tvbuff_t *tvb, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
916 {
917  proto_tree_add_item(t, hf_x11_glx_render_TexGeniv_coord, tvb, *offsetp, 4, byte_order);
918  *offsetp += 4;
919  proto_tree_add_item(t, hf_x11_glx_render_TexGeniv_pname, tvb, *offsetp, 4, byte_order);
920  *offsetp += 4;
921  listOfInt32(tvb, offsetp, t, hf_x11_glx_render_TexGeniv_params, hf_x11_glx_render_TexGeniv_params_item, (length - 8) / 4, byte_order);
922 }
923 
924 static void mesa_InitNames(tvbuff_t *tvb _U_, int *offsetp _U_, proto_tree *t _U_, guint byte_order _U_, int length _U_)
925 {
926 }
927 
928 static void mesa_LoadName(tvbuff_t *tvb, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
929 {
930  proto_tree_add_item(t, hf_x11_glx_render_LoadName_name, tvb, *offsetp, 4, byte_order);
931  *offsetp += 4;
932 }
933 
934 static void mesa_PassThrough(tvbuff_t *tvb, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
935 {
936  proto_tree_add_item(t, hf_x11_glx_render_PassThrough_token, tvb, *offsetp, 4, byte_order);
937  *offsetp += 4;
938 }
939 
940 static void mesa_PopName(tvbuff_t *tvb _U_, int *offsetp _U_, proto_tree *t _U_, guint byte_order _U_, int length _U_)
941 {
942 }
943 
944 static void mesa_PushName(tvbuff_t *tvb, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
945 {
946  proto_tree_add_item(t, hf_x11_glx_render_PushName_name, tvb, *offsetp, 4, byte_order);
947  *offsetp += 4;
948 }
949 
950 static void mesa_DrawBuffer(tvbuff_t *tvb, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
951 {
952  proto_tree_add_item(t, hf_x11_glx_render_DrawBuffer_mode, tvb, *offsetp, 4, byte_order);
953  *offsetp += 4;
954 }
955 
956 static void mesa_Clear(tvbuff_t *tvb, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
957 {
958  proto_tree_add_item(t, hf_x11_glx_render_Clear_mask, tvb, *offsetp, 4, byte_order);
959  *offsetp += 4;
960 }
961 
962 static void mesa_ClearAccum(tvbuff_t *tvb, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
963 {
964  proto_tree_add_item(t, hf_x11_glx_render_ClearAccum_red, tvb, *offsetp, 4, byte_order);
965  *offsetp += 4;
966  proto_tree_add_item(t, hf_x11_glx_render_ClearAccum_green, tvb, *offsetp, 4, byte_order);
967  *offsetp += 4;
968  proto_tree_add_item(t, hf_x11_glx_render_ClearAccum_blue, tvb, *offsetp, 4, byte_order);
969  *offsetp += 4;
970  proto_tree_add_item(t, hf_x11_glx_render_ClearAccum_alpha, tvb, *offsetp, 4, byte_order);
971  *offsetp += 4;
972 }
973 
974 static void mesa_ClearIndex(tvbuff_t *tvb, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
975 {
976  proto_tree_add_item(t, hf_x11_glx_render_ClearIndex_c, tvb, *offsetp, 4, byte_order);
977  *offsetp += 4;
978 }
979 
980 static void mesa_ClearColor(tvbuff_t *tvb, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
981 {
982  proto_tree_add_item(t, hf_x11_glx_render_ClearColor_red, tvb, *offsetp, 4, byte_order);
983  *offsetp += 4;
984  proto_tree_add_item(t, hf_x11_glx_render_ClearColor_green, tvb, *offsetp, 4, byte_order);
985  *offsetp += 4;
986  proto_tree_add_item(t, hf_x11_glx_render_ClearColor_blue, tvb, *offsetp, 4, byte_order);
987  *offsetp += 4;
988  proto_tree_add_item(t, hf_x11_glx_render_ClearColor_alpha, tvb, *offsetp, 4, byte_order);
989  *offsetp += 4;
990 }
991 
992 static void mesa_ClearStencil(tvbuff_t *tvb, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
993 {
994  proto_tree_add_item(t, hf_x11_glx_render_ClearStencil_s, tvb, *offsetp, 4, byte_order);
995  *offsetp += 4;
996 }
997 
998 static void mesa_ClearDepth(tvbuff_t *tvb, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
999 {
1000  proto_tree_add_item(t, hf_x11_glx_render_ClearDepth_depth, tvb, *offsetp, 8, byte_order);
1001  *offsetp += 8;
1002 }
1003 
1004 static void mesa_StencilMask(tvbuff_t *tvb, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
1005 {
1006  proto_tree_add_item(t, hf_x11_glx_render_StencilMask_mask, tvb, *offsetp, 4, byte_order);
1007  *offsetp += 4;
1008 }
1009 
1010 static void mesa_ColorMask(tvbuff_t *tvb, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
1011 {
1012  proto_tree_add_item(t, hf_x11_glx_render_ColorMask_red, tvb, *offsetp, 1, byte_order);
1013  *offsetp += 1;
1014  proto_tree_add_item(t, hf_x11_glx_render_ColorMask_green, tvb, *offsetp, 1, byte_order);
1015  *offsetp += 1;
1016  proto_tree_add_item(t, hf_x11_glx_render_ColorMask_blue, tvb, *offsetp, 1, byte_order);
1017  *offsetp += 1;
1018  proto_tree_add_item(t, hf_x11_glx_render_ColorMask_alpha, tvb, *offsetp, 1, byte_order);
1019  *offsetp += 1;
1020 }
1021 
1022 static void mesa_DepthMask(tvbuff_t *tvb, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
1023 {
1024  proto_tree_add_item(t, hf_x11_glx_render_DepthMask_flag, tvb, *offsetp, 1, byte_order);
1025  *offsetp += 1;
1026 }
1027 
1028 static void mesa_IndexMask(tvbuff_t *tvb, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
1029 {
1030  proto_tree_add_item(t, hf_x11_glx_render_IndexMask_mask, tvb, *offsetp, 4, byte_order);
1031  *offsetp += 4;
1032 }
1033 
1034 static void mesa_Accum(tvbuff_t *tvb, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
1035 {
1036  proto_tree_add_item(t, hf_x11_glx_render_Accum_op, tvb, *offsetp, 4, byte_order);
1037  *offsetp += 4;
1038  proto_tree_add_item(t, hf_x11_glx_render_Accum_value, tvb, *offsetp, 4, byte_order);
1039  *offsetp += 4;
1040 }
1041 
1042 static void mesa_Disable(tvbuff_t *tvb, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
1043 {
1044  proto_tree_add_item(t, hf_x11_glx_render_Disable_cap, tvb, *offsetp, 4, byte_order);
1045  *offsetp += 4;
1046 }
1047 
1048 static void mesa_Enable(tvbuff_t *tvb, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
1049 {
1050  proto_tree_add_item(t, hf_x11_glx_render_Enable_cap, tvb, *offsetp, 4, byte_order);
1051  *offsetp += 4;
1052 }
1053 
1054 static void mesa_PopAttrib(tvbuff_t *tvb _U_, int *offsetp _U_, proto_tree *t _U_, guint byte_order _U_, int length _U_)
1055 {
1056 }
1057 
1058 static void mesa_PushAttrib(tvbuff_t *tvb, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
1059 {
1060  proto_tree_add_item(t, hf_x11_glx_render_PushAttrib_mask, tvb, *offsetp, 4, byte_order);
1061  *offsetp += 4;
1062 }
1063 
1064 static void mesa_Map1d(tvbuff_t *tvb, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
1065 {
1066  proto_tree_add_item(t, hf_x11_glx_render_Map1d_target, tvb, *offsetp, 4, byte_order);
1067  *offsetp += 4;
1068  proto_tree_add_item(t, hf_x11_glx_render_Map1d_u1, tvb, *offsetp, 8, byte_order);
1069  *offsetp += 8;
1070  proto_tree_add_item(t, hf_x11_glx_render_Map1d_u2, tvb, *offsetp, 8, byte_order);
1071  *offsetp += 8;
1072  proto_tree_add_item(t, hf_x11_glx_render_Map1d_stride, tvb, *offsetp, 4, byte_order);
1073  *offsetp += 4;
1074  proto_tree_add_item(t, hf_x11_glx_render_Map1d_order, tvb, *offsetp, 4, byte_order);
1075  *offsetp += 4;
1076  listOfDouble(tvb, offsetp, t, hf_x11_glx_render_Map1d_points, hf_x11_glx_render_Map1d_points_item, (length - 28) / 8, byte_order);
1077 }
1078 
1079 static void mesa_Map1f(tvbuff_t *tvb, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
1080 {
1081  proto_tree_add_item(t, hf_x11_glx_render_Map1f_target, tvb, *offsetp, 4, byte_order);
1082  *offsetp += 4;
1083  proto_tree_add_item(t, hf_x11_glx_render_Map1f_u1, tvb, *offsetp, 4, byte_order);
1084  *offsetp += 4;
1085  proto_tree_add_item(t, hf_x11_glx_render_Map1f_u2, tvb, *offsetp, 4, byte_order);
1086  *offsetp += 4;
1087  proto_tree_add_item(t, hf_x11_glx_render_Map1f_stride, tvb, *offsetp, 4, byte_order);
1088  *offsetp += 4;
1089  proto_tree_add_item(t, hf_x11_glx_render_Map1f_order, tvb, *offsetp, 4, byte_order);
1090  *offsetp += 4;
1091  listOfFloat(tvb, offsetp, t, hf_x11_glx_render_Map1f_points, hf_x11_glx_render_Map1f_points_item, (length - 20) / 4, byte_order);
1092 }
1093 
1094 static void mesa_Map2d(tvbuff_t *tvb, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
1095 {
1096  proto_tree_add_item(t, hf_x11_glx_render_Map2d_target, tvb, *offsetp, 4, byte_order);
1097  *offsetp += 4;
1098  proto_tree_add_item(t, hf_x11_glx_render_Map2d_u1, tvb, *offsetp, 8, byte_order);
1099  *offsetp += 8;
1100  proto_tree_add_item(t, hf_x11_glx_render_Map2d_u2, tvb, *offsetp, 8, byte_order);
1101  *offsetp += 8;
1102  proto_tree_add_item(t, hf_x11_glx_render_Map2d_ustride, tvb, *offsetp, 4, byte_order);
1103  *offsetp += 4;
1104  proto_tree_add_item(t, hf_x11_glx_render_Map2d_uorder, tvb, *offsetp, 4, byte_order);
1105  *offsetp += 4;
1106  proto_tree_add_item(t, hf_x11_glx_render_Map2d_v1, tvb, *offsetp, 8, byte_order);
1107  *offsetp += 8;
1108  proto_tree_add_item(t, hf_x11_glx_render_Map2d_v2, tvb, *offsetp, 8, byte_order);
1109  *offsetp += 8;
1110  proto_tree_add_item(t, hf_x11_glx_render_Map2d_vstride, tvb, *offsetp, 4, byte_order);
1111  *offsetp += 4;
1112  proto_tree_add_item(t, hf_x11_glx_render_Map2d_vorder, tvb, *offsetp, 4, byte_order);
1113  *offsetp += 4;
1114  listOfDouble(tvb, offsetp, t, hf_x11_glx_render_Map2d_points, hf_x11_glx_render_Map2d_points_item, (length - 52) / 8, byte_order);
1115 }
1116 
1117 static void mesa_Map2f(tvbuff_t *tvb, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
1118 {
1119  proto_tree_add_item(t, hf_x11_glx_render_Map2f_target, tvb, *offsetp, 4, byte_order);
1120  *offsetp += 4;
1121  proto_tree_add_item(t, hf_x11_glx_render_Map2f_u1, tvb, *offsetp, 4, byte_order);
1122  *offsetp += 4;
1123  proto_tree_add_item(t, hf_x11_glx_render_Map2f_u2, tvb, *offsetp, 4, byte_order);
1124  *offsetp += 4;
1125  proto_tree_add_item(t, hf_x11_glx_render_Map2f_ustride, tvb, *offsetp, 4, byte_order);
1126  *offsetp += 4;
1127  proto_tree_add_item(t, hf_x11_glx_render_Map2f_uorder, tvb, *offsetp, 4, byte_order);
1128  *offsetp += 4;
1129  proto_tree_add_item(t, hf_x11_glx_render_Map2f_v1, tvb, *offsetp, 4, byte_order);
1130  *offsetp += 4;
1131  proto_tree_add_item(t, hf_x11_glx_render_Map2f_v2, tvb, *offsetp, 4, byte_order);
1132  *offsetp += 4;
1133  proto_tree_add_item(t, hf_x11_glx_render_Map2f_vstride, tvb, *offsetp, 4, byte_order);
1134  *offsetp += 4;
1135  proto_tree_add_item(t, hf_x11_glx_render_Map2f_vorder, tvb, *offsetp, 4, byte_order);
1136  *offsetp += 4;
1137  listOfFloat(tvb, offsetp, t, hf_x11_glx_render_Map2f_points, hf_x11_glx_render_Map2f_points_item, (length - 36) / 4, byte_order);
1138 }
1139 
1140 static void mesa_MapGrid1d(tvbuff_t *tvb, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
1141 {
1142  proto_tree_add_item(t, hf_x11_glx_render_MapGrid1d_un, tvb, *offsetp, 4, byte_order);
1143  *offsetp += 4;
1144  proto_tree_add_item(t, hf_x11_glx_render_MapGrid1d_u1, tvb, *offsetp, 8, byte_order);
1145  *offsetp += 8;
1146  proto_tree_add_item(t, hf_x11_glx_render_MapGrid1d_u2, tvb, *offsetp, 8, byte_order);
1147  *offsetp += 8;
1148 }
1149 
1150 static void mesa_MapGrid1f(tvbuff_t *tvb, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
1151 {
1152  proto_tree_add_item(t, hf_x11_glx_render_MapGrid1f_un, tvb, *offsetp, 4, byte_order);
1153  *offsetp += 4;
1154  proto_tree_add_item(t, hf_x11_glx_render_MapGrid1f_u1, tvb, *offsetp, 4, byte_order);
1155  *offsetp += 4;
1156  proto_tree_add_item(t, hf_x11_glx_render_MapGrid1f_u2, tvb, *offsetp, 4, byte_order);
1157  *offsetp += 4;
1158 }
1159 
1160 static void mesa_MapGrid2d(tvbuff_t *tvb, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
1161 {
1162  proto_tree_add_item(t, hf_x11_glx_render_MapGrid2d_un, tvb, *offsetp, 4, byte_order);
1163  *offsetp += 4;
1164  proto_tree_add_item(t, hf_x11_glx_render_MapGrid2d_u1, tvb, *offsetp, 8, byte_order);
1165  *offsetp += 8;
1166  proto_tree_add_item(t, hf_x11_glx_render_MapGrid2d_u2, tvb, *offsetp, 8, byte_order);
1167  *offsetp += 8;
1168  proto_tree_add_item(t, hf_x11_glx_render_MapGrid2d_vn, tvb, *offsetp, 4, byte_order);
1169  *offsetp += 4;
1170  proto_tree_add_item(t, hf_x11_glx_render_MapGrid2d_v1, tvb, *offsetp, 8, byte_order);
1171  *offsetp += 8;
1172  proto_tree_add_item(t, hf_x11_glx_render_MapGrid2d_v2, tvb, *offsetp, 8, byte_order);
1173  *offsetp += 8;
1174 }
1175 
1176 static void mesa_MapGrid2f(tvbuff_t *tvb, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
1177 {
1178  proto_tree_add_item(t, hf_x11_glx_render_MapGrid2f_un, tvb, *offsetp, 4, byte_order);
1179  *offsetp += 4;
1180  proto_tree_add_item(t, hf_x11_glx_render_MapGrid2f_u1, tvb, *offsetp, 4, byte_order);
1181  *offsetp += 4;
1182  proto_tree_add_item(t, hf_x11_glx_render_MapGrid2f_u2, tvb, *offsetp, 4, byte_order);
1183  *offsetp += 4;
1184  proto_tree_add_item(t, hf_x11_glx_render_MapGrid2f_vn, tvb, *offsetp, 4, byte_order);
1185  *offsetp += 4;
1186  proto_tree_add_item(t, hf_x11_glx_render_MapGrid2f_v1, tvb, *offsetp, 4, byte_order);
1187  *offsetp += 4;
1188  proto_tree_add_item(t, hf_x11_glx_render_MapGrid2f_v2, tvb, *offsetp, 4, byte_order);
1189  *offsetp += 4;
1190 }
1191 
1192 static void mesa_EvalCoord1dv(tvbuff_t *tvb, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
1193 {
1194  listOfDouble(tvb, offsetp, t, hf_x11_glx_render_EvalCoord1dv_u, hf_x11_glx_render_EvalCoord1dv_u_item, 1, byte_order);
1195 }
1196 
1197 static void mesa_EvalCoord1fv(tvbuff_t *tvb, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
1198 {
1199  listOfFloat(tvb, offsetp, t, hf_x11_glx_render_EvalCoord1fv_u, hf_x11_glx_render_EvalCoord1fv_u_item, 1, byte_order);
1200 }
1201 
1202 static void mesa_EvalCoord2dv(tvbuff_t *tvb, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
1203 {
1204  listOfDouble(tvb, offsetp, t, hf_x11_glx_render_EvalCoord2dv_u, hf_x11_glx_render_EvalCoord2dv_u_item, 2, byte_order);
1205 }
1206 
1207 static void mesa_EvalCoord2fv(tvbuff_t *tvb, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
1208 {
1209  listOfFloat(tvb, offsetp, t, hf_x11_glx_render_EvalCoord2fv_u, hf_x11_glx_render_EvalCoord2fv_u_item, 2, byte_order);
1210 }
1211 
1212 static void mesa_EvalMesh1(tvbuff_t *tvb, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
1213 {
1214  proto_tree_add_item(t, hf_x11_glx_render_EvalMesh1_mode, tvb, *offsetp, 4, byte_order);
1215  *offsetp += 4;
1216  proto_tree_add_item(t, hf_x11_glx_render_EvalMesh1_i1, tvb, *offsetp, 4, byte_order);
1217  *offsetp += 4;
1218  proto_tree_add_item(t, hf_x11_glx_render_EvalMesh1_i2, tvb, *offsetp, 4, byte_order);
1219  *offsetp += 4;
1220 }
1221 
1222 static void mesa_EvalPoint1(tvbuff_t *tvb, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
1223 {
1224  proto_tree_add_item(t, hf_x11_glx_render_EvalPoint1_i, tvb, *offsetp, 4, byte_order);
1225  *offsetp += 4;
1226 }
1227 
1228 static void mesa_EvalMesh2(tvbuff_t *tvb, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
1229 {
1230  proto_tree_add_item(t, hf_x11_glx_render_EvalMesh2_mode, tvb, *offsetp, 4, byte_order);
1231  *offsetp += 4;
1232  proto_tree_add_item(t, hf_x11_glx_render_EvalMesh2_i1, tvb, *offsetp, 4, byte_order);
1233  *offsetp += 4;
1234  proto_tree_add_item(t, hf_x11_glx_render_EvalMesh2_i2, tvb, *offsetp, 4, byte_order);
1235  *offsetp += 4;
1236  proto_tree_add_item(t, hf_x11_glx_render_EvalMesh2_j1, tvb, *offsetp, 4, byte_order);
1237  *offsetp += 4;
1238  proto_tree_add_item(t, hf_x11_glx_render_EvalMesh2_j2, tvb, *offsetp, 4, byte_order);
1239  *offsetp += 4;
1240 }
1241 
1242 static void mesa_EvalPoint2(tvbuff_t *tvb, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
1243 {
1244  proto_tree_add_item(t, hf_x11_glx_render_EvalPoint2_i, tvb, *offsetp, 4, byte_order);
1245  *offsetp += 4;
1246  proto_tree_add_item(t, hf_x11_glx_render_EvalPoint2_j, tvb, *offsetp, 4, byte_order);
1247  *offsetp += 4;
1248 }
1249 
1250 static void mesa_AlphaFunc(tvbuff_t *tvb, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
1251 {
1252  proto_tree_add_item(t, hf_x11_glx_render_AlphaFunc_func, tvb, *offsetp, 4, byte_order);
1253  *offsetp += 4;
1254  proto_tree_add_item(t, hf_x11_glx_render_AlphaFunc_ref, tvb, *offsetp, 4, byte_order);
1255  *offsetp += 4;
1256 }
1257 
1258 static void mesa_BlendFunc(tvbuff_t *tvb, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
1259 {
1260  proto_tree_add_item(t, hf_x11_glx_render_BlendFunc_sfactor, tvb, *offsetp, 4, byte_order);
1261  *offsetp += 4;
1262  proto_tree_add_item(t, hf_x11_glx_render_BlendFunc_dfactor, tvb, *offsetp, 4, byte_order);
1263  *offsetp += 4;
1264 }
1265 
1266 static void mesa_LogicOp(tvbuff_t *tvb, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
1267 {
1268  proto_tree_add_item(t, hf_x11_glx_render_LogicOp_opcode, tvb, *offsetp, 4, byte_order);
1269  *offsetp += 4;
1270 }
1271 
1272 static void mesa_StencilFunc(tvbuff_t *tvb, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
1273 {
1274  proto_tree_add_item(t, hf_x11_glx_render_StencilFunc_func, tvb, *offsetp, 4, byte_order);
1275  *offsetp += 4;
1276  proto_tree_add_item(t, hf_x11_glx_render_StencilFunc_ref, tvb, *offsetp, 4, byte_order);
1277  *offsetp += 4;
1278  proto_tree_add_item(t, hf_x11_glx_render_StencilFunc_mask, tvb, *offsetp, 4, byte_order);
1279  *offsetp += 4;
1280 }
1281 
1282 static void mesa_StencilOp(tvbuff_t *tvb, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
1283 {
1284  proto_tree_add_item(t, hf_x11_glx_render_StencilOp_fail, tvb, *offsetp, 4, byte_order);
1285  *offsetp += 4;
1286  proto_tree_add_item(t, hf_x11_glx_render_StencilOp_zfail, tvb, *offsetp, 4, byte_order);
1287  *offsetp += 4;
1288  proto_tree_add_item(t, hf_x11_glx_render_StencilOp_zpass, tvb, *offsetp, 4, byte_order);
1289  *offsetp += 4;
1290 }
1291 
1292 static void mesa_DepthFunc(tvbuff_t *tvb, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
1293 {
1294  proto_tree_add_item(t, hf_x11_glx_render_DepthFunc_func, tvb, *offsetp, 4, byte_order);
1295  *offsetp += 4;
1296 }
1297 
1298 static void mesa_PixelZoom(tvbuff_t *tvb, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
1299 {
1300  proto_tree_add_item(t, hf_x11_glx_render_PixelZoom_xfactor, tvb, *offsetp, 4, byte_order);
1301  *offsetp += 4;
1302  proto_tree_add_item(t, hf_x11_glx_render_PixelZoom_yfactor, tvb, *offsetp, 4, byte_order);
1303  *offsetp += 4;
1304 }
1305 
1306 static void mesa_PixelTransferf(tvbuff_t *tvb, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
1307 {
1308  proto_tree_add_item(t, hf_x11_glx_render_PixelTransferf_pname, tvb, *offsetp, 4, byte_order);
1309  *offsetp += 4;
1310  proto_tree_add_item(t, hf_x11_glx_render_PixelTransferf_param, tvb, *offsetp, 4, byte_order);
1311  *offsetp += 4;
1312 }
1313 
1314 static void mesa_PixelTransferi(tvbuff_t *tvb, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
1315 {
1316  proto_tree_add_item(t, hf_x11_glx_render_PixelTransferi_pname, tvb, *offsetp, 4, byte_order);
1317  *offsetp += 4;
1318  proto_tree_add_item(t, hf_x11_glx_render_PixelTransferi_param, tvb, *offsetp, 4, byte_order);
1319  *offsetp += 4;
1320 }
1321 
1322 static void mesa_PixelMapfv(tvbuff_t *tvb, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
1323 {
1324  int mapsize;
1325  proto_tree_add_item(t, hf_x11_glx_render_PixelMapfv_map, tvb, *offsetp, 4, byte_order);
1326  *offsetp += 4;
1327  mapsize = tvb_get_guint32(tvb, *offsetp, byte_order);
1328  proto_tree_add_item(t, hf_x11_glx_render_PixelMapfv_mapsize, tvb, *offsetp, 4, byte_order);
1329  *offsetp += 4;
1330  listOfFloat(tvb, offsetp, t, hf_x11_glx_render_PixelMapfv_values, hf_x11_glx_render_PixelMapfv_values_item, mapsize, byte_order);
1331 }
1332 
1333 static void mesa_PixelMapuiv(tvbuff_t *tvb, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
1334 {
1335  int mapsize;
1336  proto_tree_add_item(t, hf_x11_glx_render_PixelMapuiv_map, tvb, *offsetp, 4, byte_order);
1337  *offsetp += 4;
1338  mapsize = tvb_get_guint32(tvb, *offsetp, byte_order);
1339  proto_tree_add_item(t, hf_x11_glx_render_PixelMapuiv_mapsize, tvb, *offsetp, 4, byte_order);
1340  *offsetp += 4;
1341  listOfCard32(tvb, offsetp, t, hf_x11_glx_render_PixelMapuiv_values, hf_x11_glx_render_PixelMapuiv_values_item, mapsize, byte_order);
1342 }
1343 
1344 static void mesa_PixelMapusv(tvbuff_t *tvb, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
1345 {
1346  int mapsize;
1347  proto_tree_add_item(t, hf_x11_glx_render_PixelMapusv_map, tvb, *offsetp, 4, byte_order);
1348  *offsetp += 4;
1349  mapsize = tvb_get_guint32(tvb, *offsetp, byte_order);
1350  proto_tree_add_item(t, hf_x11_glx_render_PixelMapusv_mapsize, tvb, *offsetp, 4, byte_order);
1351  *offsetp += 4;
1352  listOfCard16(tvb, offsetp, t, hf_x11_glx_render_PixelMapusv_values, hf_x11_glx_render_PixelMapusv_values_item, mapsize, byte_order);
1353 }
1354 
1355 static void mesa_ReadBuffer(tvbuff_t *tvb, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
1356 {
1357  proto_tree_add_item(t, hf_x11_glx_render_ReadBuffer_mode, tvb, *offsetp, 4, byte_order);
1358  *offsetp += 4;
1359 }
1360 
1361 static void mesa_CopyPixels(tvbuff_t *tvb, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
1362 {
1363  proto_tree_add_item(t, hf_x11_glx_render_CopyPixels_x, tvb, *offsetp, 4, byte_order);
1364  *offsetp += 4;
1365  proto_tree_add_item(t, hf_x11_glx_render_CopyPixels_y, tvb, *offsetp, 4, byte_order);
1366  *offsetp += 4;
1367  proto_tree_add_item(t, hf_x11_glx_render_CopyPixels_width, tvb, *offsetp, 4, byte_order);
1368  *offsetp += 4;
1369  proto_tree_add_item(t, hf_x11_glx_render_CopyPixels_height, tvb, *offsetp, 4, byte_order);
1370  *offsetp += 4;
1371  proto_tree_add_item(t, hf_x11_glx_render_CopyPixels_type, tvb, *offsetp, 4, byte_order);
1372  *offsetp += 4;
1373 }
1374 
1375 static void mesa_DrawPixels(tvbuff_t *tvb, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
1376 {
1377  proto_tree_add_item(t, hf_x11_glx_render_DrawPixels_swapbytes, tvb, *offsetp, 1, byte_order);
1378  *offsetp += 1;
1379  proto_tree_add_item(t, hf_x11_glx_render_DrawPixels_lsbfirst, tvb, *offsetp, 1, byte_order);
1380  *offsetp += 1;
1381  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 2, ENC_NA);
1382  *offsetp += 2;
1383  proto_tree_add_item(t, hf_x11_glx_render_DrawPixels_rowlength, tvb, *offsetp, 4, byte_order);
1384  *offsetp += 4;
1385  proto_tree_add_item(t, hf_x11_glx_render_DrawPixels_skiprows, tvb, *offsetp, 4, byte_order);
1386  *offsetp += 4;
1387  proto_tree_add_item(t, hf_x11_glx_render_DrawPixels_skippixels, tvb, *offsetp, 4, byte_order);
1388  *offsetp += 4;
1389  proto_tree_add_item(t, hf_x11_glx_render_DrawPixels_alignment, tvb, *offsetp, 4, byte_order);
1390  *offsetp += 4;
1391  proto_tree_add_item(t, hf_x11_glx_render_DrawPixels_width, tvb, *offsetp, 4, byte_order);
1392  *offsetp += 4;
1393  proto_tree_add_item(t, hf_x11_glx_render_DrawPixels_height, tvb, *offsetp, 4, byte_order);
1394  *offsetp += 4;
1395  proto_tree_add_item(t, hf_x11_glx_render_DrawPixels_format, tvb, *offsetp, 4, byte_order);
1396  *offsetp += 4;
1397  proto_tree_add_item(t, hf_x11_glx_render_DrawPixels_type, tvb, *offsetp, 4, byte_order);
1398  *offsetp += 4;
1399  listOfByte(tvb, offsetp, t, hf_x11_glx_render_DrawPixels_pixels, (length - 36) / 1, byte_order);
1400 }
1401 
1402 static void mesa_DepthRange(tvbuff_t *tvb, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
1403 {
1404  proto_tree_add_item(t, hf_x11_glx_render_DepthRange_zNear, tvb, *offsetp, 8, byte_order);
1405  *offsetp += 8;
1406  proto_tree_add_item(t, hf_x11_glx_render_DepthRange_zFar, tvb, *offsetp, 8, byte_order);
1407  *offsetp += 8;
1408 }
1409 
1410 static void mesa_Frustum(tvbuff_t *tvb, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
1411 {
1412  proto_tree_add_item(t, hf_x11_glx_render_Frustum_left, tvb, *offsetp, 8, byte_order);
1413  *offsetp += 8;
1414  proto_tree_add_item(t, hf_x11_glx_render_Frustum_right, tvb, *offsetp, 8, byte_order);
1415  *offsetp += 8;
1416  proto_tree_add_item(t, hf_x11_glx_render_Frustum_bottom, tvb, *offsetp, 8, byte_order);
1417  *offsetp += 8;
1418  proto_tree_add_item(t, hf_x11_glx_render_Frustum_top, tvb, *offsetp, 8, byte_order);
1419  *offsetp += 8;
1420  proto_tree_add_item(t, hf_x11_glx_render_Frustum_zNear, tvb, *offsetp, 8, byte_order);
1421  *offsetp += 8;
1422  proto_tree_add_item(t, hf_x11_glx_render_Frustum_zFar, tvb, *offsetp, 8, byte_order);
1423  *offsetp += 8;
1424 }
1425 
1426 static void mesa_LoadIdentity(tvbuff_t *tvb _U_, int *offsetp _U_, proto_tree *t _U_, guint byte_order _U_, int length _U_)
1427 {
1428 }
1429 
1430 static void mesa_LoadMatrixf(tvbuff_t *tvb, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
1431 {
1432  listOfFloat(tvb, offsetp, t, hf_x11_glx_render_LoadMatrixf_m, hf_x11_glx_render_LoadMatrixf_m_item, 16, byte_order);
1433 }
1434 
1435 static void mesa_LoadMatrixd(tvbuff_t *tvb, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
1436 {
1437  listOfDouble(tvb, offsetp, t, hf_x11_glx_render_LoadMatrixd_m, hf_x11_glx_render_LoadMatrixd_m_item, 16, byte_order);
1438 }
1439 
1440 static void mesa_MatrixMode(tvbuff_t *tvb, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
1441 {
1442  proto_tree_add_item(t, hf_x11_glx_render_MatrixMode_mode, tvb, *offsetp, 4, byte_order);
1443  *offsetp += 4;
1444 }
1445 
1446 static void mesa_MultMatrixf(tvbuff_t *tvb, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
1447 {
1448  listOfFloat(tvb, offsetp, t, hf_x11_glx_render_MultMatrixf_m, hf_x11_glx_render_MultMatrixf_m_item, 16, byte_order);
1449 }
1450 
1451 static void mesa_MultMatrixd(tvbuff_t *tvb, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
1452 {
1453  listOfDouble(tvb, offsetp, t, hf_x11_glx_render_MultMatrixd_m, hf_x11_glx_render_MultMatrixd_m_item, 16, byte_order);
1454 }
1455 
1456 static void mesa_Ortho(tvbuff_t *tvb, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
1457 {
1458  proto_tree_add_item(t, hf_x11_glx_render_Ortho_left, tvb, *offsetp, 8, byte_order);
1459  *offsetp += 8;
1460  proto_tree_add_item(t, hf_x11_glx_render_Ortho_right, tvb, *offsetp, 8, byte_order);
1461  *offsetp += 8;
1462  proto_tree_add_item(t, hf_x11_glx_render_Ortho_bottom, tvb, *offsetp, 8, byte_order);
1463  *offsetp += 8;
1464  proto_tree_add_item(t, hf_x11_glx_render_Ortho_top, tvb, *offsetp, 8, byte_order);
1465  *offsetp += 8;
1466  proto_tree_add_item(t, hf_x11_glx_render_Ortho_zNear, tvb, *offsetp, 8, byte_order);
1467  *offsetp += 8;
1468  proto_tree_add_item(t, hf_x11_glx_render_Ortho_zFar, tvb, *offsetp, 8, byte_order);
1469  *offsetp += 8;
1470 }
1471 
1472 static void mesa_PopMatrix(tvbuff_t *tvb _U_, int *offsetp _U_, proto_tree *t _U_, guint byte_order _U_, int length _U_)
1473 {
1474 }
1475 
1476 static void mesa_PushMatrix(tvbuff_t *tvb _U_, int *offsetp _U_, proto_tree *t _U_, guint byte_order _U_, int length _U_)
1477 {
1478 }
1479 
1480 static void mesa_Rotated(tvbuff_t *tvb, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
1481 {
1482  proto_tree_add_item(t, hf_x11_glx_render_Rotated_angle, tvb, *offsetp, 8, byte_order);
1483  *offsetp += 8;
1484  proto_tree_add_item(t, hf_x11_glx_render_Rotated_x, tvb, *offsetp, 8, byte_order);
1485  *offsetp += 8;
1486  proto_tree_add_item(t, hf_x11_glx_render_Rotated_y, tvb, *offsetp, 8, byte_order);
1487  *offsetp += 8;
1488  proto_tree_add_item(t, hf_x11_glx_render_Rotated_z, tvb, *offsetp, 8, byte_order);
1489  *offsetp += 8;
1490 }
1491 
1492 static void mesa_Rotatef(tvbuff_t *tvb, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
1493 {
1494  proto_tree_add_item(t, hf_x11_glx_render_Rotatef_angle, tvb, *offsetp, 4, byte_order);
1495  *offsetp += 4;
1496  proto_tree_add_item(t, hf_x11_glx_render_Rotatef_x, tvb, *offsetp, 4, byte_order);
1497  *offsetp += 4;
1498  proto_tree_add_item(t, hf_x11_glx_render_Rotatef_y, tvb, *offsetp, 4, byte_order);
1499  *offsetp += 4;
1500  proto_tree_add_item(t, hf_x11_glx_render_Rotatef_z, tvb, *offsetp, 4, byte_order);
1501  *offsetp += 4;
1502 }
1503 
1504 static void mesa_Scaled(tvbuff_t *tvb, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
1505 {
1506  proto_tree_add_item(t, hf_x11_glx_render_Scaled_x, tvb, *offsetp, 8, byte_order);
1507  *offsetp += 8;
1508  proto_tree_add_item(t, hf_x11_glx_render_Scaled_y, tvb, *offsetp, 8, byte_order);
1509  *offsetp += 8;
1510  proto_tree_add_item(t, hf_x11_glx_render_Scaled_z, tvb, *offsetp, 8, byte_order);
1511  *offsetp += 8;
1512 }
1513 
1514 static void mesa_Scalef(tvbuff_t *tvb, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
1515 {
1516  proto_tree_add_item(t, hf_x11_glx_render_Scalef_x, tvb, *offsetp, 4, byte_order);
1517  *offsetp += 4;
1518  proto_tree_add_item(t, hf_x11_glx_render_Scalef_y, tvb, *offsetp, 4, byte_order);
1519  *offsetp += 4;
1520  proto_tree_add_item(t, hf_x11_glx_render_Scalef_z, tvb, *offsetp, 4, byte_order);
1521  *offsetp += 4;
1522 }
1523 
1524 static void mesa_Translated(tvbuff_t *tvb, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
1525 {
1526  proto_tree_add_item(t, hf_x11_glx_render_Translated_x, tvb, *offsetp, 8, byte_order);
1527  *offsetp += 8;
1528  proto_tree_add_item(t, hf_x11_glx_render_Translated_y, tvb, *offsetp, 8, byte_order);
1529  *offsetp += 8;
1530  proto_tree_add_item(t, hf_x11_glx_render_Translated_z, tvb, *offsetp, 8, byte_order);
1531  *offsetp += 8;
1532 }
1533 
1534 static void mesa_Translatef(tvbuff_t *tvb, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
1535 {
1536  proto_tree_add_item(t, hf_x11_glx_render_Translatef_x, tvb, *offsetp, 4, byte_order);
1537  *offsetp += 4;
1538  proto_tree_add_item(t, hf_x11_glx_render_Translatef_y, tvb, *offsetp, 4, byte_order);
1539  *offsetp += 4;
1540  proto_tree_add_item(t, hf_x11_glx_render_Translatef_z, tvb, *offsetp, 4, byte_order);
1541  *offsetp += 4;
1542 }
1543 
1544 static void mesa_Viewport(tvbuff_t *tvb, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
1545 {
1546  proto_tree_add_item(t, hf_x11_glx_render_Viewport_x, tvb, *offsetp, 4, byte_order);
1547  *offsetp += 4;
1548  proto_tree_add_item(t, hf_x11_glx_render_Viewport_y, tvb, *offsetp, 4, byte_order);
1549  *offsetp += 4;
1550  proto_tree_add_item(t, hf_x11_glx_render_Viewport_width, tvb, *offsetp, 4, byte_order);
1551  *offsetp += 4;
1552  proto_tree_add_item(t, hf_x11_glx_render_Viewport_height, tvb, *offsetp, 4, byte_order);
1553  *offsetp += 4;
1554 }
1555 
1556 static void mesa_DrawArrays(tvbuff_t *tvb, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
1557 {
1558  proto_tree_add_item(t, hf_x11_glx_render_DrawArrays_mode, tvb, *offsetp, 4, byte_order);
1559  *offsetp += 4;
1560  proto_tree_add_item(t, hf_x11_glx_render_DrawArrays_first, tvb, *offsetp, 4, byte_order);
1561  *offsetp += 4;
1562  proto_tree_add_item(t, hf_x11_glx_render_DrawArrays_count, tvb, *offsetp, 4, byte_order);
1563  *offsetp += 4;
1564 }
1565 
1566 static void mesa_PolygonOffset(tvbuff_t *tvb, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
1567 {
1568  proto_tree_add_item(t, hf_x11_glx_render_PolygonOffset_factor, tvb, *offsetp, 4, byte_order);
1569  *offsetp += 4;
1570  proto_tree_add_item(t, hf_x11_glx_render_PolygonOffset_units, tvb, *offsetp, 4, byte_order);
1571  *offsetp += 4;
1572 }
1573 
1574 static void mesa_CopyTexImage1D(tvbuff_t *tvb, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
1575 {
1576  proto_tree_add_item(t, hf_x11_glx_render_CopyTexImage1D_target, tvb, *offsetp, 4, byte_order);
1577  *offsetp += 4;
1578  proto_tree_add_item(t, hf_x11_glx_render_CopyTexImage1D_level, tvb, *offsetp, 4, byte_order);
1579  *offsetp += 4;
1580  proto_tree_add_item(t, hf_x11_glx_render_CopyTexImage1D_internalformat, tvb, *offsetp, 4, byte_order);
1581  *offsetp += 4;
1582  proto_tree_add_item(t, hf_x11_glx_render_CopyTexImage1D_x, tvb, *offsetp, 4, byte_order);
1583  *offsetp += 4;
1584  proto_tree_add_item(t, hf_x11_glx_render_CopyTexImage1D_y, tvb, *offsetp, 4, byte_order);
1585  *offsetp += 4;
1586  proto_tree_add_item(t, hf_x11_glx_render_CopyTexImage1D_width, tvb, *offsetp, 4, byte_order);
1587  *offsetp += 4;
1588  proto_tree_add_item(t, hf_x11_glx_render_CopyTexImage1D_border, tvb, *offsetp, 4, byte_order);
1589  *offsetp += 4;
1590 }
1591 
1592 static void mesa_CopyTexImage2D(tvbuff_t *tvb, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
1593 {
1594  proto_tree_add_item(t, hf_x11_glx_render_CopyTexImage2D_target, tvb, *offsetp, 4, byte_order);
1595  *offsetp += 4;
1596  proto_tree_add_item(t, hf_x11_glx_render_CopyTexImage2D_level, tvb, *offsetp, 4, byte_order);
1597  *offsetp += 4;
1598  proto_tree_add_item(t, hf_x11_glx_render_CopyTexImage2D_internalformat, tvb, *offsetp, 4, byte_order);
1599  *offsetp += 4;
1600  proto_tree_add_item(t, hf_x11_glx_render_CopyTexImage2D_x, tvb, *offsetp, 4, byte_order);
1601  *offsetp += 4;
1602  proto_tree_add_item(t, hf_x11_glx_render_CopyTexImage2D_y, tvb, *offsetp, 4, byte_order);
1603  *offsetp += 4;
1604  proto_tree_add_item(t, hf_x11_glx_render_CopyTexImage2D_width, tvb, *offsetp, 4, byte_order);
1605  *offsetp += 4;
1606  proto_tree_add_item(t, hf_x11_glx_render_CopyTexImage2D_height, tvb, *offsetp, 4, byte_order);
1607  *offsetp += 4;
1608  proto_tree_add_item(t, hf_x11_glx_render_CopyTexImage2D_border, tvb, *offsetp, 4, byte_order);
1609  *offsetp += 4;
1610 }
1611 
1612 static void mesa_CopyTexSubImage1D(tvbuff_t *tvb, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
1613 {
1614  proto_tree_add_item(t, hf_x11_glx_render_CopyTexSubImage1D_target, tvb, *offsetp, 4, byte_order);
1615  *offsetp += 4;
1616  proto_tree_add_item(t, hf_x11_glx_render_CopyTexSubImage1D_level, tvb, *offsetp, 4, byte_order);
1617  *offsetp += 4;
1618  proto_tree_add_item(t, hf_x11_glx_render_CopyTexSubImage1D_xoffset, tvb, *offsetp, 4, byte_order);
1619  *offsetp += 4;
1620  proto_tree_add_item(t, hf_x11_glx_render_CopyTexSubImage1D_x, tvb, *offsetp, 4, byte_order);
1621  *offsetp += 4;
1622  proto_tree_add_item(t, hf_x11_glx_render_CopyTexSubImage1D_y, tvb, *offsetp, 4, byte_order);
1623  *offsetp += 4;
1624  proto_tree_add_item(t, hf_x11_glx_render_CopyTexSubImage1D_width, tvb, *offsetp, 4, byte_order);
1625  *offsetp += 4;
1626 }
1627 
1628 static void mesa_CopyTexSubImage2D(tvbuff_t *tvb, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
1629 {
1630  proto_tree_add_item(t, hf_x11_glx_render_CopyTexSubImage2D_target, tvb, *offsetp, 4, byte_order);
1631  *offsetp += 4;
1632  proto_tree_add_item(t, hf_x11_glx_render_CopyTexSubImage2D_level, tvb, *offsetp, 4, byte_order);
1633  *offsetp += 4;
1634  proto_tree_add_item(t, hf_x11_glx_render_CopyTexSubImage2D_xoffset, tvb, *offsetp, 4, byte_order);
1635  *offsetp += 4;
1636  proto_tree_add_item(t, hf_x11_glx_render_CopyTexSubImage2D_yoffset, tvb, *offsetp, 4, byte_order);
1637  *offsetp += 4;
1638  proto_tree_add_item(t, hf_x11_glx_render_CopyTexSubImage2D_x, tvb, *offsetp, 4, byte_order);
1639  *offsetp += 4;
1640  proto_tree_add_item(t, hf_x11_glx_render_CopyTexSubImage2D_y, tvb, *offsetp, 4, byte_order);
1641  *offsetp += 4;
1642  proto_tree_add_item(t, hf_x11_glx_render_CopyTexSubImage2D_width, tvb, *offsetp, 4, byte_order);
1643  *offsetp += 4;
1644  proto_tree_add_item(t, hf_x11_glx_render_CopyTexSubImage2D_height, tvb, *offsetp, 4, byte_order);
1645  *offsetp += 4;
1646 }
1647 
1648 static void mesa_TexSubImage1D(tvbuff_t *tvb, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
1649 {
1650  proto_tree_add_item(t, hf_x11_glx_render_TexSubImage1D_swapbytes, tvb, *offsetp, 1, byte_order);
1651  *offsetp += 1;
1652  proto_tree_add_item(t, hf_x11_glx_render_TexSubImage1D_lsbfirst, tvb, *offsetp, 1, byte_order);
1653  *offsetp += 1;
1654  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 2, ENC_NA);
1655  *offsetp += 2;
1656  proto_tree_add_item(t, hf_x11_glx_render_TexSubImage1D_rowlength, tvb, *offsetp, 4, byte_order);
1657  *offsetp += 4;
1658  proto_tree_add_item(t, hf_x11_glx_render_TexSubImage1D_skiprows, tvb, *offsetp, 4, byte_order);
1659  *offsetp += 4;
1660  proto_tree_add_item(t, hf_x11_glx_render_TexSubImage1D_skippixels, tvb, *offsetp, 4, byte_order);
1661  *offsetp += 4;
1662  proto_tree_add_item(t, hf_x11_glx_render_TexSubImage1D_alignment, tvb, *offsetp, 4, byte_order);
1663  *offsetp += 4;
1664  proto_tree_add_item(t, hf_x11_glx_render_TexSubImage1D_target, tvb, *offsetp, 4, byte_order);
1665  *offsetp += 4;
1666  proto_tree_add_item(t, hf_x11_glx_render_TexSubImage1D_level, tvb, *offsetp, 4, byte_order);
1667  *offsetp += 4;
1668  proto_tree_add_item(t, hf_x11_glx_render_TexSubImage1D_xoffset, tvb, *offsetp, 4, byte_order);
1669  *offsetp += 4;
1670  proto_tree_add_item(t, hf_x11_glx_render_TexSubImage1D_width, tvb, *offsetp, 4, byte_order);
1671  *offsetp += 4;
1672  proto_tree_add_item(t, hf_x11_glx_render_TexSubImage1D_format, tvb, *offsetp, 4, byte_order);
1673  *offsetp += 4;
1674  proto_tree_add_item(t, hf_x11_glx_render_TexSubImage1D_type, tvb, *offsetp, 4, byte_order);
1675  *offsetp += 4;
1676  proto_tree_add_item(t, hf_x11_glx_render_TexSubImage1D_UNUSED, tvb, *offsetp, 4, byte_order);
1677  *offsetp += 4;
1678  listOfByte(tvb, offsetp, t, hf_x11_glx_render_TexSubImage1D_pixels, (length - 48) / 1, byte_order);
1679 }
1680 
1681 static void mesa_TexSubImage2D(tvbuff_t *tvb, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
1682 {
1683  proto_tree_add_item(t, hf_x11_glx_render_TexSubImage2D_swapbytes, tvb, *offsetp, 1, byte_order);
1684  *offsetp += 1;
1685  proto_tree_add_item(t, hf_x11_glx_render_TexSubImage2D_lsbfirst, tvb, *offsetp, 1, byte_order);
1686  *offsetp += 1;
1687  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 2, ENC_NA);
1688  *offsetp += 2;
1689  proto_tree_add_item(t, hf_x11_glx_render_TexSubImage2D_rowlength, tvb, *offsetp, 4, byte_order);
1690  *offsetp += 4;
1691  proto_tree_add_item(t, hf_x11_glx_render_TexSubImage2D_skiprows, tvb, *offsetp, 4, byte_order);
1692  *offsetp += 4;
1693  proto_tree_add_item(t, hf_x11_glx_render_TexSubImage2D_skippixels, tvb, *offsetp, 4, byte_order);
1694  *offsetp += 4;
1695  proto_tree_add_item(t, hf_x11_glx_render_TexSubImage2D_alignment, tvb, *offsetp, 4, byte_order);
1696  *offsetp += 4;
1697  proto_tree_add_item(t, hf_x11_glx_render_TexSubImage2D_target, tvb, *offsetp, 4, byte_order);
1698  *offsetp += 4;
1699  proto_tree_add_item(t, hf_x11_glx_render_TexSubImage2D_level, tvb, *offsetp, 4, byte_order);
1700  *offsetp += 4;
1701  proto_tree_add_item(t, hf_x11_glx_render_TexSubImage2D_xoffset, tvb, *offsetp, 4, byte_order);
1702  *offsetp += 4;
1703  proto_tree_add_item(t, hf_x11_glx_render_TexSubImage2D_yoffset, tvb, *offsetp, 4, byte_order);
1704  *offsetp += 4;
1705  proto_tree_add_item(t, hf_x11_glx_render_TexSubImage2D_width, tvb, *offsetp, 4, byte_order);
1706  *offsetp += 4;
1707  proto_tree_add_item(t, hf_x11_glx_render_TexSubImage2D_height, tvb, *offsetp, 4, byte_order);
1708  *offsetp += 4;
1709  proto_tree_add_item(t, hf_x11_glx_render_TexSubImage2D_format, tvb, *offsetp, 4, byte_order);
1710  *offsetp += 4;
1711  proto_tree_add_item(t, hf_x11_glx_render_TexSubImage2D_type, tvb, *offsetp, 4, byte_order);
1712  *offsetp += 4;
1713  proto_tree_add_item(t, hf_x11_glx_render_TexSubImage2D_UNUSED, tvb, *offsetp, 4, byte_order);
1714  *offsetp += 4;
1715  listOfByte(tvb, offsetp, t, hf_x11_glx_render_TexSubImage2D_pixels, (length - 56) / 1, byte_order);
1716 }
1717 
1718 static void mesa_BindTexture(tvbuff_t *tvb, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
1719 {
1720  proto_tree_add_item(t, hf_x11_glx_render_BindTexture_target, tvb, *offsetp, 4, byte_order);
1721  *offsetp += 4;
1722  proto_tree_add_item(t, hf_x11_glx_render_BindTexture_texture, tvb, *offsetp, 4, byte_order);
1723  *offsetp += 4;
1724 }
1725 
1726 static void mesa_PrioritizeTextures(tvbuff_t *tvb, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
1727 {
1728  int n;
1729  n = tvb_get_guint32(tvb, *offsetp, byte_order);
1730  proto_tree_add_item(t, hf_x11_glx_render_PrioritizeTextures_n, tvb, *offsetp, 4, byte_order);
1731  *offsetp += 4;
1732  listOfCard32(tvb, offsetp, t, hf_x11_glx_render_PrioritizeTextures_textures, hf_x11_glx_render_PrioritizeTextures_textures_item, n, byte_order);
1733  listOfFloat(tvb, offsetp, t, hf_x11_glx_render_PrioritizeTextures_priorities, hf_x11_glx_render_PrioritizeTextures_priorities_item, n, byte_order);
1734 }
1735 
1736 static void mesa_Indexubv(tvbuff_t *tvb, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
1737 {
1738  listOfByte(tvb, offsetp, t, hf_x11_glx_render_Indexubv_c, 1, byte_order);
1739 }
1740 
1741 static void mesa_BlendColor(tvbuff_t *tvb, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
1742 {
1743  proto_tree_add_item(t, hf_x11_glx_render_BlendColor_red, tvb, *offsetp, 4, byte_order);
1744  *offsetp += 4;
1745  proto_tree_add_item(t, hf_x11_glx_render_BlendColor_green, tvb, *offsetp, 4, byte_order);
1746  *offsetp += 4;
1747  proto_tree_add_item(t, hf_x11_glx_render_BlendColor_blue, tvb, *offsetp, 4, byte_order);
1748  *offsetp += 4;
1749  proto_tree_add_item(t, hf_x11_glx_render_BlendColor_alpha, tvb, *offsetp, 4, byte_order);
1750  *offsetp += 4;
1751 }
1752 
1753 static void mesa_BlendEquation(tvbuff_t *tvb, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
1754 {
1755  proto_tree_add_item(t, hf_x11_glx_render_BlendEquation_mode, tvb, *offsetp, 4, byte_order);
1756  *offsetp += 4;
1757 }
1758 
1759 static void mesa_ColorTable(tvbuff_t *tvb, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
1760 {
1761  proto_tree_add_item(t, hf_x11_glx_render_ColorTable_swapbytes, tvb, *offsetp, 1, byte_order);
1762  *offsetp += 1;
1763  proto_tree_add_item(t, hf_x11_glx_render_ColorTable_lsbfirst, tvb, *offsetp, 1, byte_order);
1764  *offsetp += 1;
1765  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 2, ENC_NA);
1766  *offsetp += 2;
1767  proto_tree_add_item(t, hf_x11_glx_render_ColorTable_rowlength, tvb, *offsetp, 4, byte_order);
1768  *offsetp += 4;
1769  proto_tree_add_item(t, hf_x11_glx_render_ColorTable_skiprows, tvb, *offsetp, 4, byte_order);
1770  *offsetp += 4;
1771  proto_tree_add_item(t, hf_x11_glx_render_ColorTable_skippixels, tvb, *offsetp, 4, byte_order);
1772  *offsetp += 4;
1773  proto_tree_add_item(t, hf_x11_glx_render_ColorTable_alignment, tvb, *offsetp, 4, byte_order);
1774  *offsetp += 4;
1775  proto_tree_add_item(t, hf_x11_glx_render_ColorTable_target, tvb, *offsetp, 4, byte_order);
1776  *offsetp += 4;
1777  proto_tree_add_item(t, hf_x11_glx_render_ColorTable_internalformat, tvb, *offsetp, 4, byte_order);
1778  *offsetp += 4;
1779  proto_tree_add_item(t, hf_x11_glx_render_ColorTable_width, tvb, *offsetp, 4, byte_order);
1780  *offsetp += 4;
1781  proto_tree_add_item(t, hf_x11_glx_render_ColorTable_format, tvb, *offsetp, 4, byte_order);
1782  *offsetp += 4;
1783  proto_tree_add_item(t, hf_x11_glx_render_ColorTable_type, tvb, *offsetp, 4, byte_order);
1784  *offsetp += 4;
1785  listOfByte(tvb, offsetp, t, hf_x11_glx_render_ColorTable_table, (length - 40) / 1, byte_order);
1786 }
1787 
1788 static void mesa_ColorTableParameterfv(tvbuff_t *tvb, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
1789 {
1790  proto_tree_add_item(t, hf_x11_glx_render_ColorTableParameterfv_target, tvb, *offsetp, 4, byte_order);
1791  *offsetp += 4;
1792  proto_tree_add_item(t, hf_x11_glx_render_ColorTableParameterfv_pname, tvb, *offsetp, 4, byte_order);
1793  *offsetp += 4;
1794  listOfFloat(tvb, offsetp, t, hf_x11_glx_render_ColorTableParameterfv_params, hf_x11_glx_render_ColorTableParameterfv_params_item, (length - 8) / 4, byte_order);
1795 }
1796 
1797 static void mesa_ColorTableParameteriv(tvbuff_t *tvb, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
1798 {
1799  proto_tree_add_item(t, hf_x11_glx_render_ColorTableParameteriv_target, tvb, *offsetp, 4, byte_order);
1800  *offsetp += 4;
1801  proto_tree_add_item(t, hf_x11_glx_render_ColorTableParameteriv_pname, tvb, *offsetp, 4, byte_order);
1802  *offsetp += 4;
1803  listOfInt32(tvb, offsetp, t, hf_x11_glx_render_ColorTableParameteriv_params, hf_x11_glx_render_ColorTableParameteriv_params_item, (length - 8) / 4, byte_order);
1804 }
1805 
1806 static void mesa_CopyColorTable(tvbuff_t *tvb, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
1807 {
1808  proto_tree_add_item(t, hf_x11_glx_render_CopyColorTable_target, tvb, *offsetp, 4, byte_order);
1809  *offsetp += 4;
1810  proto_tree_add_item(t, hf_x11_glx_render_CopyColorTable_internalformat, tvb, *offsetp, 4, byte_order);
1811  *offsetp += 4;
1812  proto_tree_add_item(t, hf_x11_glx_render_CopyColorTable_x, tvb, *offsetp, 4, byte_order);
1813  *offsetp += 4;
1814  proto_tree_add_item(t, hf_x11_glx_render_CopyColorTable_y, tvb, *offsetp, 4, byte_order);
1815  *offsetp += 4;
1816  proto_tree_add_item(t, hf_x11_glx_render_CopyColorTable_width, tvb, *offsetp, 4, byte_order);
1817  *offsetp += 4;
1818 }
1819 
1820 static void mesa_ColorSubTable(tvbuff_t *tvb, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
1821 {
1822  proto_tree_add_item(t, hf_x11_glx_render_ColorSubTable_swapbytes, tvb, *offsetp, 1, byte_order);
1823  *offsetp += 1;
1824  proto_tree_add_item(t, hf_x11_glx_render_ColorSubTable_lsbfirst, tvb, *offsetp, 1, byte_order);
1825  *offsetp += 1;
1826  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 2, ENC_NA);
1827  *offsetp += 2;
1828  proto_tree_add_item(t, hf_x11_glx_render_ColorSubTable_rowlength, tvb, *offsetp, 4, byte_order);
1829  *offsetp += 4;
1830  proto_tree_add_item(t, hf_x11_glx_render_ColorSubTable_skiprows, tvb, *offsetp, 4, byte_order);
1831  *offsetp += 4;
1832  proto_tree_add_item(t, hf_x11_glx_render_ColorSubTable_skippixels, tvb, *offsetp, 4, byte_order);
1833  *offsetp += 4;
1834  proto_tree_add_item(t, hf_x11_glx_render_ColorSubTable_alignment, tvb, *offsetp, 4, byte_order);
1835  *offsetp += 4;
1836  proto_tree_add_item(t, hf_x11_glx_render_ColorSubTable_target, tvb, *offsetp, 4, byte_order);
1837  *offsetp += 4;
1838  proto_tree_add_item(t, hf_x11_glx_render_ColorSubTable_start, tvb, *offsetp, 4, byte_order);
1839  *offsetp += 4;
1840  proto_tree_add_item(t, hf_x11_glx_render_ColorSubTable_count, tvb, *offsetp, 4, byte_order);
1841  *offsetp += 4;
1842  proto_tree_add_item(t, hf_x11_glx_render_ColorSubTable_format, tvb, *offsetp, 4, byte_order);
1843  *offsetp += 4;
1844  proto_tree_add_item(t, hf_x11_glx_render_ColorSubTable_type, tvb, *offsetp, 4, byte_order);
1845  *offsetp += 4;
1846  listOfByte(tvb, offsetp, t, hf_x11_glx_render_ColorSubTable_data, (length - 40) / 1, byte_order);
1847 }
1848 
1849 static void mesa_CopyColorSubTable(tvbuff_t *tvb, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
1850 {
1851  proto_tree_add_item(t, hf_x11_glx_render_CopyColorSubTable_target, tvb, *offsetp, 4, byte_order);
1852  *offsetp += 4;
1853  proto_tree_add_item(t, hf_x11_glx_render_CopyColorSubTable_start, tvb, *offsetp, 4, byte_order);
1854  *offsetp += 4;
1855  proto_tree_add_item(t, hf_x11_glx_render_CopyColorSubTable_x, tvb, *offsetp, 4, byte_order);
1856  *offsetp += 4;
1857  proto_tree_add_item(t, hf_x11_glx_render_CopyColorSubTable_y, tvb, *offsetp, 4, byte_order);
1858  *offsetp += 4;
1859  proto_tree_add_item(t, hf_x11_glx_render_CopyColorSubTable_width, tvb, *offsetp, 4, byte_order);
1860  *offsetp += 4;
1861 }
1862 
1863 static void mesa_ConvolutionFilter1D(tvbuff_t *tvb, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
1864 {
1865  proto_tree_add_item(t, hf_x11_glx_render_ConvolutionFilter1D_swapbytes, tvb, *offsetp, 1, byte_order);
1866  *offsetp += 1;
1867  proto_tree_add_item(t, hf_x11_glx_render_ConvolutionFilter1D_lsbfirst, tvb, *offsetp, 1, byte_order);
1868  *offsetp += 1;
1869  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 2, ENC_NA);
1870  *offsetp += 2;
1871  proto_tree_add_item(t, hf_x11_glx_render_ConvolutionFilter1D_rowlength, tvb, *offsetp, 4, byte_order);
1872  *offsetp += 4;
1873  proto_tree_add_item(t, hf_x11_glx_render_ConvolutionFilter1D_skiprows, tvb, *offsetp, 4, byte_order);
1874  *offsetp += 4;
1875  proto_tree_add_item(t, hf_x11_glx_render_ConvolutionFilter1D_skippixels, tvb, *offsetp, 4, byte_order);
1876  *offsetp += 4;
1877  proto_tree_add_item(t, hf_x11_glx_render_ConvolutionFilter1D_alignment, tvb, *offsetp, 4, byte_order);
1878  *offsetp += 4;
1879  proto_tree_add_item(t, hf_x11_glx_render_ConvolutionFilter1D_target, tvb, *offsetp, 4, byte_order);
1880  *offsetp += 4;
1881  proto_tree_add_item(t, hf_x11_glx_render_ConvolutionFilter1D_internalformat, tvb, *offsetp, 4, byte_order);
1882  *offsetp += 4;
1883  proto_tree_add_item(t, hf_x11_glx_render_ConvolutionFilter1D_width, tvb, *offsetp, 4, byte_order);
1884  *offsetp += 4;
1885  proto_tree_add_item(t, hf_x11_glx_render_ConvolutionFilter1D_format, tvb, *offsetp, 4, byte_order);
1886  *offsetp += 4;
1887  proto_tree_add_item(t, hf_x11_glx_render_ConvolutionFilter1D_type, tvb, *offsetp, 4, byte_order);
1888  *offsetp += 4;
1889  listOfByte(tvb, offsetp, t, hf_x11_glx_render_ConvolutionFilter1D_image, (length - 40) / 1, byte_order);
1890 }
1891 
1892 static void mesa_ConvolutionFilter2D(tvbuff_t *tvb, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
1893 {
1894  proto_tree_add_item(t, hf_x11_glx_render_ConvolutionFilter2D_swapbytes, tvb, *offsetp, 1, byte_order);
1895  *offsetp += 1;
1896  proto_tree_add_item(t, hf_x11_glx_render_ConvolutionFilter2D_lsbfirst, tvb, *offsetp, 1, byte_order);
1897  *offsetp += 1;
1898  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 2, ENC_NA);
1899  *offsetp += 2;
1900  proto_tree_add_item(t, hf_x11_glx_render_ConvolutionFilter2D_rowlength, tvb, *offsetp, 4, byte_order);
1901  *offsetp += 4;
1902  proto_tree_add_item(t, hf_x11_glx_render_ConvolutionFilter2D_skiprows, tvb, *offsetp, 4, byte_order);
1903  *offsetp += 4;
1904  proto_tree_add_item(t, hf_x11_glx_render_ConvolutionFilter2D_skippixels, tvb, *offsetp, 4, byte_order);
1905  *offsetp += 4;
1906  proto_tree_add_item(t, hf_x11_glx_render_ConvolutionFilter2D_alignment, tvb, *offsetp, 4, byte_order);
1907  *offsetp += 4;
1908  proto_tree_add_item(t, hf_x11_glx_render_ConvolutionFilter2D_target, tvb, *offsetp, 4, byte_order);
1909  *offsetp += 4;
1910  proto_tree_add_item(t, hf_x11_glx_render_ConvolutionFilter2D_internalformat, tvb, *offsetp, 4, byte_order);
1911  *offsetp += 4;
1912  proto_tree_add_item(t, hf_x11_glx_render_ConvolutionFilter2D_width, tvb, *offsetp, 4, byte_order);
1913  *offsetp += 4;
1914  proto_tree_add_item(t, hf_x11_glx_render_ConvolutionFilter2D_height, tvb, *offsetp, 4, byte_order);
1915  *offsetp += 4;
1916  proto_tree_add_item(t, hf_x11_glx_render_ConvolutionFilter2D_format, tvb, *offsetp, 4, byte_order);
1917  *offsetp += 4;
1918  proto_tree_add_item(t, hf_x11_glx_render_ConvolutionFilter2D_type, tvb, *offsetp, 4, byte_order);
1919  *offsetp += 4;
1920  listOfByte(tvb, offsetp, t, hf_x11_glx_render_ConvolutionFilter2D_image, (length - 44) / 1, byte_order);
1921 }
1922 
1923 static void mesa_ConvolutionParameterf(tvbuff_t *tvb, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
1924 {
1925  proto_tree_add_item(t, hf_x11_glx_render_ConvolutionParameterf_target, tvb, *offsetp, 4, byte_order);
1926  *offsetp += 4;
1927  proto_tree_add_item(t, hf_x11_glx_render_ConvolutionParameterf_pname, tvb, *offsetp, 4, byte_order);
1928  *offsetp += 4;
1929  proto_tree_add_item(t, hf_x11_glx_render_ConvolutionParameterf_params, tvb, *offsetp, 4, byte_order);
1930  *offsetp += 4;
1931 }
1932 
1933 static void mesa_ConvolutionParameterfv(tvbuff_t *tvb, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
1934 {
1935  proto_tree_add_item(t, hf_x11_glx_render_ConvolutionParameterfv_target, tvb, *offsetp, 4, byte_order);
1936  *offsetp += 4;
1937  proto_tree_add_item(t, hf_x11_glx_render_ConvolutionParameterfv_pname, tvb, *offsetp, 4, byte_order);
1938  *offsetp += 4;
1939  listOfFloat(tvb, offsetp, t, hf_x11_glx_render_ConvolutionParameterfv_params, hf_x11_glx_render_ConvolutionParameterfv_params_item, (length - 8) / 4, byte_order);
1940 }
1941 
1942 static void mesa_ConvolutionParameteri(tvbuff_t *tvb, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
1943 {
1944  proto_tree_add_item(t, hf_x11_glx_render_ConvolutionParameteri_target, tvb, *offsetp, 4, byte_order);
1945  *offsetp += 4;
1946  proto_tree_add_item(t, hf_x11_glx_render_ConvolutionParameteri_pname, tvb, *offsetp, 4, byte_order);
1947  *offsetp += 4;
1948  proto_tree_add_item(t, hf_x11_glx_render_ConvolutionParameteri_params, tvb, *offsetp, 4, byte_order);
1949  *offsetp += 4;
1950 }
1951 
1952 static void mesa_ConvolutionParameteriv(tvbuff_t *tvb, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
1953 {
1954  proto_tree_add_item(t, hf_x11_glx_render_ConvolutionParameteriv_target, tvb, *offsetp, 4, byte_order);
1955  *offsetp += 4;
1956  proto_tree_add_item(t, hf_x11_glx_render_ConvolutionParameteriv_pname, tvb, *offsetp, 4, byte_order);
1957  *offsetp += 4;
1958  listOfInt32(tvb, offsetp, t, hf_x11_glx_render_ConvolutionParameteriv_params, hf_x11_glx_render_ConvolutionParameteriv_params_item, (length - 8) / 4, byte_order);
1959 }
1960 
1961 static void mesa_CopyConvolutionFilter1D(tvbuff_t *tvb, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
1962 {
1963  proto_tree_add_item(t, hf_x11_glx_render_CopyConvolutionFilter1D_target, tvb, *offsetp, 4, byte_order);
1964  *offsetp += 4;
1965  proto_tree_add_item(t, hf_x11_glx_render_CopyConvolutionFilter1D_internalformat, tvb, *offsetp, 4, byte_order);
1966  *offsetp += 4;
1967  proto_tree_add_item(t, hf_x11_glx_render_CopyConvolutionFilter1D_x, tvb, *offsetp, 4, byte_order);
1968  *offsetp += 4;
1969  proto_tree_add_item(t, hf_x11_glx_render_CopyConvolutionFilter1D_y, tvb, *offsetp, 4, byte_order);
1970  *offsetp += 4;
1971  proto_tree_add_item(t, hf_x11_glx_render_CopyConvolutionFilter1D_width, tvb, *offsetp, 4, byte_order);
1972  *offsetp += 4;
1973 }
1974 
1975 static void mesa_CopyConvolutionFilter2D(tvbuff_t *tvb, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
1976 {
1977  proto_tree_add_item(t, hf_x11_glx_render_CopyConvolutionFilter2D_target, tvb, *offsetp, 4, byte_order);
1978  *offsetp += 4;
1979  proto_tree_add_item(t, hf_x11_glx_render_CopyConvolutionFilter2D_internalformat, tvb, *offsetp, 4, byte_order);
1980  *offsetp += 4;
1981  proto_tree_add_item(t, hf_x11_glx_render_CopyConvolutionFilter2D_x, tvb, *offsetp, 4, byte_order);
1982  *offsetp += 4;
1983  proto_tree_add_item(t, hf_x11_glx_render_CopyConvolutionFilter2D_y, tvb, *offsetp, 4, byte_order);
1984  *offsetp += 4;
1985  proto_tree_add_item(t, hf_x11_glx_render_CopyConvolutionFilter2D_width, tvb, *offsetp, 4, byte_order);
1986  *offsetp += 4;
1987  proto_tree_add_item(t, hf_x11_glx_render_CopyConvolutionFilter2D_height, tvb, *offsetp, 4, byte_order);
1988  *offsetp += 4;
1989 }
1990 
1991 static void mesa_SeparableFilter2D(tvbuff_t *tvb, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
1992 {
1993  proto_tree_add_item(t, hf_x11_glx_render_SeparableFilter2D_target, tvb, *offsetp, 4, byte_order);
1994  *offsetp += 4;
1995  proto_tree_add_item(t, hf_x11_glx_render_SeparableFilter2D_internalformat, tvb, *offsetp, 4, byte_order);
1996  *offsetp += 4;
1997  proto_tree_add_item(t, hf_x11_glx_render_SeparableFilter2D_width, tvb, *offsetp, 4, byte_order);
1998  *offsetp += 4;
1999  proto_tree_add_item(t, hf_x11_glx_render_SeparableFilter2D_height, tvb, *offsetp, 4, byte_order);
2000  *offsetp += 4;
2001  proto_tree_add_item(t, hf_x11_glx_render_SeparableFilter2D_format, tvb, *offsetp, 4, byte_order);
2002  *offsetp += 4;
2003  proto_tree_add_item(t, hf_x11_glx_render_SeparableFilter2D_type, tvb, *offsetp, 4, byte_order);
2004  *offsetp += 4;
2005  listOfByte(tvb, offsetp, t, hf_x11_glx_render_SeparableFilter2D_row, (length - 24) / 1, byte_order);
2006  listOfByte(tvb, offsetp, t, hf_x11_glx_render_SeparableFilter2D_column, (length - 24) / 1, byte_order);
2007 }
2008 
2009 static void mesa_Histogram(tvbuff_t *tvb, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
2010 {
2011  proto_tree_add_item(t, hf_x11_glx_render_Histogram_target, tvb, *offsetp, 4, byte_order);
2012  *offsetp += 4;
2013  proto_tree_add_item(t, hf_x11_glx_render_Histogram_width, tvb, *offsetp, 4, byte_order);
2014  *offsetp += 4;
2015  proto_tree_add_item(t, hf_x11_glx_render_Histogram_internalformat, tvb, *offsetp, 4, byte_order);
2016  *offsetp += 4;
2017  proto_tree_add_item(t, hf_x11_glx_render_Histogram_sink, tvb, *offsetp, 1, byte_order);
2018  *offsetp += 1;
2019 }
2020 
2021 static void mesa_Minmax(tvbuff_t *tvb, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
2022 {
2023  proto_tree_add_item(t, hf_x11_glx_render_Minmax_target, tvb, *offsetp, 4, byte_order);
2024  *offsetp += 4;
2025  proto_tree_add_item(t, hf_x11_glx_render_Minmax_internalformat, tvb, *offsetp, 4, byte_order);
2026  *offsetp += 4;
2027  proto_tree_add_item(t, hf_x11_glx_render_Minmax_sink, tvb, *offsetp, 1, byte_order);
2028  *offsetp += 1;
2029 }
2030 
2031 static void mesa_ResetHistogram(tvbuff_t *tvb, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
2032 {
2033  proto_tree_add_item(t, hf_x11_glx_render_ResetHistogram_target, tvb, *offsetp, 4, byte_order);
2034  *offsetp += 4;
2035 }
2036 
2037 static void mesa_ResetMinmax(tvbuff_t *tvb, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
2038 {
2039  proto_tree_add_item(t, hf_x11_glx_render_ResetMinmax_target, tvb, *offsetp, 4, byte_order);
2040  *offsetp += 4;
2041 }
2042 
2043 static void mesa_TexImage3D(tvbuff_t *tvb, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
2044 {
2045  proto_tree_add_item(t, hf_x11_glx_render_TexImage3D_swapbytes, tvb, *offsetp, 1, byte_order);
2046  *offsetp += 1;
2047  proto_tree_add_item(t, hf_x11_glx_render_TexImage3D_lsbfirst, tvb, *offsetp, 1, byte_order);
2048  *offsetp += 1;
2049  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 2, ENC_NA);
2050  *offsetp += 2;
2051  proto_tree_add_item(t, hf_x11_glx_render_TexImage3D_rowlength, tvb, *offsetp, 4, byte_order);
2052  *offsetp += 4;
2053  proto_tree_add_item(t, hf_x11_glx_render_TexImage3D_skiprows, tvb, *offsetp, 4, byte_order);
2054  *offsetp += 4;
2055  proto_tree_add_item(t, hf_x11_glx_render_TexImage3D_skippixels, tvb, *offsetp, 4, byte_order);
2056  *offsetp += 4;
2057  proto_tree_add_item(t, hf_x11_glx_render_TexImage3D_alignment, tvb, *offsetp, 4, byte_order);
2058  *offsetp += 4;
2059  proto_tree_add_item(t, hf_x11_glx_render_TexImage3D_target, tvb, *offsetp, 4, byte_order);
2060  *offsetp += 4;
2061  proto_tree_add_item(t, hf_x11_glx_render_TexImage3D_level, tvb, *offsetp, 4, byte_order);
2062  *offsetp += 4;
2063  proto_tree_add_item(t, hf_x11_glx_render_TexImage3D_internalformat, tvb, *offsetp, 4, byte_order);
2064  *offsetp += 4;
2065  proto_tree_add_item(t, hf_x11_glx_render_TexImage3D_width, tvb, *offsetp, 4, byte_order);
2066  *offsetp += 4;
2067  proto_tree_add_item(t, hf_x11_glx_render_TexImage3D_height, tvb, *offsetp, 4, byte_order);
2068  *offsetp += 4;
2069  proto_tree_add_item(t, hf_x11_glx_render_TexImage3D_depth, tvb, *offsetp, 4, byte_order);
2070  *offsetp += 4;
2071  proto_tree_add_item(t, hf_x11_glx_render_TexImage3D_border, tvb, *offsetp, 4, byte_order);
2072  *offsetp += 4;
2073  proto_tree_add_item(t, hf_x11_glx_render_TexImage3D_format, tvb, *offsetp, 4, byte_order);
2074  *offsetp += 4;
2075  proto_tree_add_item(t, hf_x11_glx_render_TexImage3D_type, tvb, *offsetp, 4, byte_order);
2076  *offsetp += 4;
2077  listOfByte(tvb, offsetp, t, hf_x11_glx_render_TexImage3D_pixels, (length - 56) / 1, byte_order);
2078 }
2079 
2080 static void mesa_TexSubImage3D(tvbuff_t *tvb, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
2081 {
2082  proto_tree_add_item(t, hf_x11_glx_render_TexSubImage3D_swapbytes, tvb, *offsetp, 1, byte_order);
2083  *offsetp += 1;
2084  proto_tree_add_item(t, hf_x11_glx_render_TexSubImage3D_lsbfirst, tvb, *offsetp, 1, byte_order);
2085  *offsetp += 1;
2086  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 2, ENC_NA);
2087  *offsetp += 2;
2088  proto_tree_add_item(t, hf_x11_glx_render_TexSubImage3D_rowlength, tvb, *offsetp, 4, byte_order);
2089  *offsetp += 4;
2090  proto_tree_add_item(t, hf_x11_glx_render_TexSubImage3D_skiprows, tvb, *offsetp, 4, byte_order);
2091  *offsetp += 4;
2092  proto_tree_add_item(t, hf_x11_glx_render_TexSubImage3D_skippixels, tvb, *offsetp, 4, byte_order);
2093  *offsetp += 4;
2094  proto_tree_add_item(t, hf_x11_glx_render_TexSubImage3D_alignment, tvb, *offsetp, 4, byte_order);
2095  *offsetp += 4;
2096  proto_tree_add_item(t, hf_x11_glx_render_TexSubImage3D_target, tvb, *offsetp, 4, byte_order);
2097  *offsetp += 4;
2098  proto_tree_add_item(t, hf_x11_glx_render_TexSubImage3D_level, tvb, *offsetp, 4, byte_order);
2099  *offsetp += 4;
2100  proto_tree_add_item(t, hf_x11_glx_render_TexSubImage3D_xoffset, tvb, *offsetp, 4, byte_order);
2101  *offsetp += 4;
2102  proto_tree_add_item(t, hf_x11_glx_render_TexSubImage3D_yoffset, tvb, *offsetp, 4, byte_order);
2103  *offsetp += 4;
2104  proto_tree_add_item(t, hf_x11_glx_render_TexSubImage3D_zoffset, tvb, *offsetp, 4, byte_order);
2105  *offsetp += 4;
2106  proto_tree_add_item(t, hf_x11_glx_render_TexSubImage3D_width, tvb, *offsetp, 4, byte_order);
2107  *offsetp += 4;
2108  proto_tree_add_item(t, hf_x11_glx_render_TexSubImage3D_height, tvb, *offsetp, 4, byte_order);
2109  *offsetp += 4;
2110  proto_tree_add_item(t, hf_x11_glx_render_TexSubImage3D_depth, tvb, *offsetp, 4, byte_order);
2111  *offsetp += 4;
2112  proto_tree_add_item(t, hf_x11_glx_render_TexSubImage3D_format, tvb, *offsetp, 4, byte_order);
2113  *offsetp += 4;
2114  proto_tree_add_item(t, hf_x11_glx_render_TexSubImage3D_type, tvb, *offsetp, 4, byte_order);
2115  *offsetp += 4;
2116  proto_tree_add_item(t, hf_x11_glx_render_TexSubImage3D_UNUSED, tvb, *offsetp, 4, byte_order);
2117  *offsetp += 4;
2118  listOfByte(tvb, offsetp, t, hf_x11_glx_render_TexSubImage3D_pixels, (length - 64) / 1, byte_order);
2119 }
2120 
2121 static void mesa_CopyTexSubImage3D(tvbuff_t *tvb, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
2122 {
2123  proto_tree_add_item(t, hf_x11_glx_render_CopyTexSubImage3D_target, tvb, *offsetp, 4, byte_order);
2124  *offsetp += 4;
2125  proto_tree_add_item(t, hf_x11_glx_render_CopyTexSubImage3D_level, tvb, *offsetp, 4, byte_order);
2126  *offsetp += 4;
2127  proto_tree_add_item(t, hf_x11_glx_render_CopyTexSubImage3D_xoffset, tvb, *offsetp, 4, byte_order);
2128  *offsetp += 4;
2129  proto_tree_add_item(t, hf_x11_glx_render_CopyTexSubImage3D_yoffset, tvb, *offsetp, 4, byte_order);
2130  *offsetp += 4;
2131  proto_tree_add_item(t, hf_x11_glx_render_CopyTexSubImage3D_zoffset, tvb, *offsetp, 4, byte_order);
2132  *offsetp += 4;
2133  proto_tree_add_item(t, hf_x11_glx_render_CopyTexSubImage3D_x, tvb, *offsetp, 4, byte_order);
2134  *offsetp += 4;
2135  proto_tree_add_item(t, hf_x11_glx_render_CopyTexSubImage3D_y, tvb, *offsetp, 4, byte_order);
2136  *offsetp += 4;
2137  proto_tree_add_item(t, hf_x11_glx_render_CopyTexSubImage3D_width, tvb, *offsetp, 4, byte_order);
2138  *offsetp += 4;
2139  proto_tree_add_item(t, hf_x11_glx_render_CopyTexSubImage3D_height, tvb, *offsetp, 4, byte_order);
2140  *offsetp += 4;
2141 }
2142 
2143 static void mesa_ActiveTexture(tvbuff_t *tvb, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
2144 {
2145  proto_tree_add_item(t, hf_x11_glx_render_ActiveTexture_texture, tvb, *offsetp, 4, byte_order);
2146  *offsetp += 4;
2147 }
2148 
2149 static void mesa_MultiTexCoord1dv(tvbuff_t *tvb, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
2150 {
2151  proto_tree_add_item(t, hf_x11_glx_render_MultiTexCoord1dv_target, tvb, *offsetp, 4, byte_order);
2152  *offsetp += 4;
2153  listOfDouble(tvb, offsetp, t, hf_x11_glx_render_MultiTexCoord1dv_v, hf_x11_glx_render_MultiTexCoord1dv_v_item, 1, byte_order);
2154 }
2155 
2156 static void mesa_MultiTexCoord1iv(tvbuff_t *tvb, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
2157 {
2158  proto_tree_add_item(t, hf_x11_glx_render_MultiTexCoord1iv_target, tvb, *offsetp, 4, byte_order);
2159  *offsetp += 4;
2160  listOfInt32(tvb, offsetp, t, hf_x11_glx_render_MultiTexCoord1iv_v, hf_x11_glx_render_MultiTexCoord1iv_v_item, 1, byte_order);
2161 }
2162 
2163 static void mesa_MultiTexCoord1sv(tvbuff_t *tvb, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
2164 {
2165  proto_tree_add_item(t, hf_x11_glx_render_MultiTexCoord1sv_target, tvb, *offsetp, 4, byte_order);
2166  *offsetp += 4;
2167  listOfInt16(tvb, offsetp, t, hf_x11_glx_render_MultiTexCoord1sv_v, hf_x11_glx_render_MultiTexCoord1sv_v_item, 1, byte_order);
2168 }
2169 
2170 static void mesa_MultiTexCoord2dv(tvbuff_t *tvb, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
2171 {
2172  proto_tree_add_item(t, hf_x11_glx_render_MultiTexCoord2dv_target, tvb, *offsetp, 4, byte_order);
2173  *offsetp += 4;
2174  listOfDouble(tvb, offsetp, t, hf_x11_glx_render_MultiTexCoord2dv_v, hf_x11_glx_render_MultiTexCoord2dv_v_item, 2, byte_order);
2175 }
2176 
2177 static void mesa_MultiTexCoord2iv(tvbuff_t *tvb, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
2178 {
2179  proto_tree_add_item(t, hf_x11_glx_render_MultiTexCoord2iv_target, tvb, *offsetp, 4, byte_order);
2180  *offsetp += 4;
2181  listOfInt32(tvb, offsetp, t, hf_x11_glx_render_MultiTexCoord2iv_v, hf_x11_glx_render_MultiTexCoord2iv_v_item, 2, byte_order);
2182 }
2183 
2184 static void mesa_MultiTexCoord2sv(tvbuff_t *tvb, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
2185 {
2186  proto_tree_add_item(t, hf_x11_glx_render_MultiTexCoord2sv_target, tvb, *offsetp, 4, byte_order);
2187  *offsetp += 4;
2188  listOfInt16(tvb, offsetp, t, hf_x11_glx_render_MultiTexCoord2sv_v, hf_x11_glx_render_MultiTexCoord2sv_v_item, 2, byte_order);
2189 }
2190 
2191 static void mesa_MultiTexCoord3dv(tvbuff_t *tvb, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
2192 {
2193  proto_tree_add_item(t, hf_x11_glx_render_MultiTexCoord3dv_target, tvb, *offsetp, 4, byte_order);
2194  *offsetp += 4;
2195  listOfDouble(tvb, offsetp, t, hf_x11_glx_render_MultiTexCoord3dv_v, hf_x11_glx_render_MultiTexCoord3dv_v_item, 3, byte_order);
2196 }
2197 
2198 static void mesa_MultiTexCoord3iv(tvbuff_t *tvb, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
2199 {
2200  proto_tree_add_item(t, hf_x11_glx_render_MultiTexCoord3iv_target, tvb, *offsetp, 4, byte_order);
2201  *offsetp += 4;
2202  listOfInt32(tvb, offsetp, t, hf_x11_glx_render_MultiTexCoord3iv_v, hf_x11_glx_render_MultiTexCoord3iv_v_item, 3, byte_order);
2203 }
2204 
2205 static void mesa_MultiTexCoord3sv(tvbuff_t *tvb, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
2206 {
2207  proto_tree_add_item(t, hf_x11_glx_render_MultiTexCoord3sv_target, tvb, *offsetp, 4, byte_order);
2208  *offsetp += 4;
2209  listOfInt16(tvb, offsetp, t, hf_x11_glx_render_MultiTexCoord3sv_v, hf_x11_glx_render_MultiTexCoord3sv_v_item, 3, byte_order);
2210 }
2211 
2212 static void mesa_MultiTexCoord4dv(tvbuff_t *tvb, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
2213 {
2214  proto_tree_add_item(t, hf_x11_glx_render_MultiTexCoord4dv_target, tvb, *offsetp, 4, byte_order);
2215  *offsetp += 4;
2216  listOfDouble(tvb, offsetp, t, hf_x11_glx_render_MultiTexCoord4dv_v, hf_x11_glx_render_MultiTexCoord4dv_v_item, 4, byte_order);
2217 }
2218 
2219 static void mesa_MultiTexCoord4iv(tvbuff_t *tvb, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
2220 {
2221  proto_tree_add_item(t, hf_x11_glx_render_MultiTexCoord4iv_target, tvb, *offsetp, 4, byte_order);
2222  *offsetp += 4;
2223  listOfInt32(tvb, offsetp, t, hf_x11_glx_render_MultiTexCoord4iv_v, hf_x11_glx_render_MultiTexCoord4iv_v_item, 4, byte_order);
2224 }
2225 
2226 static void mesa_MultiTexCoord4sv(tvbuff_t *tvb, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
2227 {
2228  proto_tree_add_item(t, hf_x11_glx_render_MultiTexCoord4sv_target, tvb, *offsetp, 4, byte_order);
2229  *offsetp += 4;
2230  listOfInt16(tvb, offsetp, t, hf_x11_glx_render_MultiTexCoord4sv_v, hf_x11_glx_render_MultiTexCoord4sv_v_item, 4, byte_order);
2231 }
2232 
2233 static void mesa_SampleCoverage(tvbuff_t *tvb, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
2234 {
2235  proto_tree_add_item(t, hf_x11_glx_render_SampleCoverage_value, tvb, *offsetp, 4, byte_order);
2236  *offsetp += 4;
2237  proto_tree_add_item(t, hf_x11_glx_render_SampleCoverage_invert, tvb, *offsetp, 1, byte_order);
2238  *offsetp += 1;
2239 }
2240 
2241 static void mesa_CompressedTexImage3D(tvbuff_t *tvb, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
2242 {
2243  int imageSize;
2244  proto_tree_add_item(t, hf_x11_glx_render_CompressedTexImage3D_target, tvb, *offsetp, 4, byte_order);
2245  *offsetp += 4;
2246  proto_tree_add_item(t, hf_x11_glx_render_CompressedTexImage3D_level, tvb, *offsetp, 4, byte_order);
2247  *offsetp += 4;
2248  proto_tree_add_item(t, hf_x11_glx_render_CompressedTexImage3D_internalformat, tvb, *offsetp, 4, byte_order);
2249  *offsetp += 4;
2250  proto_tree_add_item(t, hf_x11_glx_render_CompressedTexImage3D_width, tvb, *offsetp, 4, byte_order);
2251  *offsetp += 4;
2252  proto_tree_add_item(t, hf_x11_glx_render_CompressedTexImage3D_height, tvb, *offsetp, 4, byte_order);
2253  *offsetp += 4;
2254  proto_tree_add_item(t, hf_x11_glx_render_CompressedTexImage3D_depth, tvb, *offsetp, 4, byte_order);
2255  *offsetp += 4;
2256  proto_tree_add_item(t, hf_x11_glx_render_CompressedTexImage3D_border, tvb, *offsetp, 4, byte_order);
2257  *offsetp += 4;
2258  imageSize = tvb_get_guint32(tvb, *offsetp, byte_order);
2259  proto_tree_add_item(t, hf_x11_glx_render_CompressedTexImage3D_imageSize, tvb, *offsetp, 4, byte_order);
2260  *offsetp += 4;
2261  listOfByte(tvb, offsetp, t, hf_x11_glx_render_CompressedTexImage3D_data, imageSize, byte_order);
2262 }
2263 
2264 static void mesa_CompressedTexImage2D(tvbuff_t *tvb, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
2265 {
2266  int imageSize;
2267  proto_tree_add_item(t, hf_x11_glx_render_CompressedTexImage2D_target, tvb, *offsetp, 4, byte_order);
2268  *offsetp += 4;
2269  proto_tree_add_item(t, hf_x11_glx_render_CompressedTexImage2D_level, tvb, *offsetp, 4, byte_order);
2270  *offsetp += 4;
2271  proto_tree_add_item(t, hf_x11_glx_render_CompressedTexImage2D_internalformat, tvb, *offsetp, 4, byte_order);
2272  *offsetp += 4;
2273  proto_tree_add_item(t, hf_x11_glx_render_CompressedTexImage2D_width, tvb, *offsetp, 4, byte_order);
2274  *offsetp += 4;
2275  proto_tree_add_item(t, hf_x11_glx_render_CompressedTexImage2D_height, tvb, *offsetp, 4, byte_order);
2276  *offsetp += 4;
2277  proto_tree_add_item(t, hf_x11_glx_render_CompressedTexImage2D_border, tvb, *offsetp, 4, byte_order);
2278  *offsetp += 4;
2279  imageSize = tvb_get_guint32(tvb, *offsetp, byte_order);
2280  proto_tree_add_item(t, hf_x11_glx_render_CompressedTexImage2D_imageSize, tvb, *offsetp, 4, byte_order);
2281  *offsetp += 4;
2282  listOfByte(tvb, offsetp, t, hf_x11_glx_render_CompressedTexImage2D_data, imageSize, byte_order);
2283 }
2284 
2285 static void mesa_CompressedTexImage1D(tvbuff_t *tvb, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
2286 {
2287  int imageSize;
2288  proto_tree_add_item(t, hf_x11_glx_render_CompressedTexImage1D_target, tvb, *offsetp, 4, byte_order);
2289  *offsetp += 4;
2290  proto_tree_add_item(t, hf_x11_glx_render_CompressedTexImage1D_level, tvb, *offsetp, 4, byte_order);
2291  *offsetp += 4;
2292  proto_tree_add_item(t, hf_x11_glx_render_CompressedTexImage1D_internalformat, tvb, *offsetp, 4, byte_order);
2293  *offsetp += 4;
2294  proto_tree_add_item(t, hf_x11_glx_render_CompressedTexImage1D_width, tvb, *offsetp, 4, byte_order);
2295  *offsetp += 4;
2296  proto_tree_add_item(t, hf_x11_glx_render_CompressedTexImage1D_border, tvb, *offsetp, 4, byte_order);
2297  *offsetp += 4;
2298  imageSize = tvb_get_guint32(tvb, *offsetp, byte_order);
2299  proto_tree_add_item(t, hf_x11_glx_render_CompressedTexImage1D_imageSize, tvb, *offsetp, 4, byte_order);
2300  *offsetp += 4;
2301  listOfByte(tvb, offsetp, t, hf_x11_glx_render_CompressedTexImage1D_data, imageSize, byte_order);
2302 }
2303 
2304 static void mesa_CompressedTexSubImage3D(tvbuff_t *tvb, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
2305 {
2306  int imageSize;
2307  proto_tree_add_item(t, hf_x11_glx_render_CompressedTexSubImage3D_target, tvb, *offsetp, 4, byte_order);
2308  *offsetp += 4;
2309  proto_tree_add_item(t, hf_x11_glx_render_CompressedTexSubImage3D_level, tvb, *offsetp, 4, byte_order);
2310  *offsetp += 4;
2311  proto_tree_add_item(t, hf_x11_glx_render_CompressedTexSubImage3D_xoffset, tvb, *offsetp, 4, byte_order);
2312  *offsetp += 4;
2313  proto_tree_add_item(t, hf_x11_glx_render_CompressedTexSubImage3D_yoffset, tvb, *offsetp, 4, byte_order);
2314  *offsetp += 4;
2315  proto_tree_add_item(t, hf_x11_glx_render_CompressedTexSubImage3D_zoffset, tvb, *offsetp, 4, byte_order);
2316  *offsetp += 4;
2317  proto_tree_add_item(t, hf_x11_glx_render_CompressedTexSubImage3D_width, tvb, *offsetp, 4, byte_order);
2318  *offsetp += 4;
2319  proto_tree_add_item(t, hf_x11_glx_render_CompressedTexSubImage3D_height, tvb, *offsetp, 4, byte_order);
2320  *offsetp += 4;
2321  proto_tree_add_item(t, hf_x11_glx_render_CompressedTexSubImage3D_depth, tvb, *offsetp, 4, byte_order);
2322  *offsetp += 4;
2323  proto_tree_add_item(t, hf_x11_glx_render_CompressedTexSubImage3D_format, tvb, *offsetp, 4, byte_order);
2324  *offsetp += 4;
2325  imageSize = tvb_get_guint32(tvb, *offsetp, byte_order);
2326  proto_tree_add_item(t, hf_x11_glx_render_CompressedTexSubImage3D_imageSize, tvb, *offsetp, 4, byte_order);
2327  *offsetp += 4;
2328  listOfByte(tvb, offsetp, t, hf_x11_glx_render_CompressedTexSubImage3D_data, imageSize, byte_order);
2329 }
2330 
2331 static void mesa_CompressedTexSubImage2D(tvbuff_t *tvb, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
2332 {
2333  int imageSize;
2334  proto_tree_add_item(t, hf_x11_glx_render_CompressedTexSubImage2D_target, tvb, *offsetp, 4, byte_order);
2335  *offsetp += 4;
2336  proto_tree_add_item(t, hf_x11_glx_render_CompressedTexSubImage2D_level, tvb, *offsetp, 4, byte_order);
2337  *offsetp += 4;
2338  proto_tree_add_item(t, hf_x11_glx_render_CompressedTexSubImage2D_xoffset, tvb, *offsetp, 4, byte_order);
2339  *offsetp += 4;
2340  proto_tree_add_item(t, hf_x11_glx_render_CompressedTexSubImage2D_yoffset, tvb, *offsetp, 4, byte_order);
2341  *offsetp += 4;
2342  proto_tree_add_item(t, hf_x11_glx_render_CompressedTexSubImage2D_width, tvb, *offsetp, 4, byte_order);
2343  *offsetp += 4;
2344  proto_tree_add_item(t, hf_x11_glx_render_CompressedTexSubImage2D_height, tvb, *offsetp, 4, byte_order);
2345  *offsetp += 4;
2346  proto_tree_add_item(t, hf_x11_glx_render_CompressedTexSubImage2D_format, tvb, *offsetp, 4, byte_order);
2347  *offsetp += 4;
2348  imageSize = tvb_get_guint32(tvb, *offsetp, byte_order);
2349  proto_tree_add_item(t, hf_x11_glx_render_CompressedTexSubImage2D_imageSize, tvb, *offsetp, 4, byte_order);
2350  *offsetp += 4;
2351  listOfByte(tvb, offsetp, t, hf_x11_glx_render_CompressedTexSubImage2D_data, imageSize, byte_order);
2352 }
2353 
2354 static void mesa_CompressedTexSubImage1D(tvbuff_t *tvb, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
2355 {
2356  int imageSize;
2357  proto_tree_add_item(t, hf_x11_glx_render_CompressedTexSubImage1D_target, tvb, *offsetp, 4, byte_order);
2358  *offsetp += 4;
2359  proto_tree_add_item(t, hf_x11_glx_render_CompressedTexSubImage1D_level, tvb, *offsetp, 4, byte_order);
2360  *offsetp += 4;
2361  proto_tree_add_item(t, hf_x11_glx_render_CompressedTexSubImage1D_xoffset, tvb, *offsetp, 4, byte_order);
2362  *offsetp += 4;
2363  proto_tree_add_item(t, hf_x11_glx_render_CompressedTexSubImage1D_width, tvb, *offsetp, 4, byte_order);
2364  *offsetp += 4;
2365  proto_tree_add_item(t, hf_x11_glx_render_CompressedTexSubImage1D_format, tvb, *offsetp, 4, byte_order);
2366  *offsetp += 4;
2367  imageSize = tvb_get_guint32(tvb, *offsetp, byte_order);
2368  proto_tree_add_item(t, hf_x11_glx_render_CompressedTexSubImage1D_imageSize, tvb, *offsetp, 4, byte_order);
2369  *offsetp += 4;
2370  listOfByte(tvb, offsetp, t, hf_x11_glx_render_CompressedTexSubImage1D_data, imageSize, byte_order);
2371 }
2372 
2373 static void mesa_BlendFuncSeparate(tvbuff_t *tvb, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
2374 {
2375  proto_tree_add_item(t, hf_x11_glx_render_BlendFuncSeparate_sfactorRGB, tvb, *offsetp, 4, byte_order);
2376  *offsetp += 4;
2377  proto_tree_add_item(t, hf_x11_glx_render_BlendFuncSeparate_dfactorRGB, tvb, *offsetp, 4, byte_order);
2378  *offsetp += 4;
2379  proto_tree_add_item(t, hf_x11_glx_render_BlendFuncSeparate_sfactorAlpha, tvb, *offsetp, 4, byte_order);
2380  *offsetp += 4;
2381  proto_tree_add_item(t, hf_x11_glx_render_BlendFuncSeparate_dfactorAlpha, tvb, *offsetp, 4, byte_order);
2382  *offsetp += 4;
2383 }
2384 
2385 static void mesa_FogCoorddv(tvbuff_t *tvb, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
2386 {
2387  listOfDouble(tvb, offsetp, t, hf_x11_glx_render_FogCoorddv_coord, hf_x11_glx_render_FogCoorddv_coord_item, 1, byte_order);
2388 }
2389 
2390 static void mesa_PointParameterf(tvbuff_t *tvb, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
2391 {
2392  proto_tree_add_item(t, hf_x11_glx_render_PointParameterf_pname, tvb, *offsetp, 4, byte_order);
2393  *offsetp += 4;
2394  proto_tree_add_item(t, hf_x11_glx_render_PointParameterf_param, tvb, *offsetp, 4, byte_order);
2395  *offsetp += 4;
2396 }
2397 
2398 static void mesa_PointParameterfv(tvbuff_t *tvb, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
2399 {
2400  proto_tree_add_item(t, hf_x11_glx_render_PointParameterfv_pname, tvb, *offsetp, 4, byte_order);
2401  *offsetp += 4;
2402  listOfFloat(tvb, offsetp, t, hf_x11_glx_render_PointParameterfv_params, hf_x11_glx_render_PointParameterfv_params_item, (length - 4) / 4, byte_order);
2403 }
2404 
2405 static void mesa_PointParameteri(tvbuff_t *tvb, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
2406 {
2407  proto_tree_add_item(t, hf_x11_glx_render_PointParameteri_pname, tvb, *offsetp, 4, byte_order);
2408  *offsetp += 4;
2409  proto_tree_add_item(t, hf_x11_glx_render_PointParameteri_param, tvb, *offsetp, 4, byte_order);
2410  *offsetp += 4;
2411 }
2412 
2413 static void mesa_PointParameteriv(tvbuff_t *tvb, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
2414 {
2415  proto_tree_add_item(t, hf_x11_glx_render_PointParameteriv_pname, tvb, *offsetp, 4, byte_order);
2416  *offsetp += 4;
2417  listOfInt32(tvb, offsetp, t, hf_x11_glx_render_PointParameteriv_params, hf_x11_glx_render_PointParameteriv_params_item, (length - 4) / 4, byte_order);
2418 }
2419 
2420 static void mesa_SecondaryColor3bv(tvbuff_t *tvb, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
2421 {
2422  listOfByte(tvb, offsetp, t, hf_x11_glx_render_SecondaryColor3bv_v, 3, byte_order);
2423 }
2424 
2425 static void mesa_SecondaryColor3dv(tvbuff_t *tvb, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
2426 {
2427  listOfDouble(tvb, offsetp, t, hf_x11_glx_render_SecondaryColor3dv_v, hf_x11_glx_render_SecondaryColor3dv_v_item, 3, byte_order);
2428 }
2429 
2430 static void mesa_SecondaryColor3iv(tvbuff_t *tvb, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
2431 {
2432  listOfInt32(tvb, offsetp, t, hf_x11_glx_render_SecondaryColor3iv_v, hf_x11_glx_render_SecondaryColor3iv_v_item, 3, byte_order);
2433 }
2434 
2435 static void mesa_SecondaryColor3sv(tvbuff_t *tvb, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
2436 {
2437  listOfInt16(tvb, offsetp, t, hf_x11_glx_render_SecondaryColor3sv_v, hf_x11_glx_render_SecondaryColor3sv_v_item, 3, byte_order);
2438 }
2439 
2440 static void mesa_SecondaryColor3ubv(tvbuff_t *tvb, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
2441 {
2442  listOfByte(tvb, offsetp, t, hf_x11_glx_render_SecondaryColor3ubv_v, 3, byte_order);
2443 }
2444 
2445 static void mesa_SecondaryColor3uiv(tvbuff_t *tvb, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
2446 {
2447  listOfCard32(tvb, offsetp, t, hf_x11_glx_render_SecondaryColor3uiv_v, hf_x11_glx_render_SecondaryColor3uiv_v_item, 3, byte_order);
2448 }
2449 
2450 static void mesa_SecondaryColor3usv(tvbuff_t *tvb, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
2451 {
2452  listOfCard16(tvb, offsetp, t, hf_x11_glx_render_SecondaryColor3usv_v, hf_x11_glx_render_SecondaryColor3usv_v_item, 3, byte_order);
2453 }
2454 
2455 static void mesa_WindowPos3fv(tvbuff_t *tvb, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
2456 {
2457  listOfFloat(tvb, offsetp, t, hf_x11_glx_render_WindowPos3fv_v, hf_x11_glx_render_WindowPos3fv_v_item, 3, byte_order);
2458 }
2459 
2460 static void mesa_BeginQuery(tvbuff_t *tvb, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
2461 {
2462  proto_tree_add_item(t, hf_x11_glx_render_BeginQuery_target, tvb, *offsetp, 4, byte_order);
2463  *offsetp += 4;
2464  proto_tree_add_item(t, hf_x11_glx_render_BeginQuery_id, tvb, *offsetp, 4, byte_order);
2465  *offsetp += 4;
2466 }
2467 
2468 static void mesa_EndQuery(tvbuff_t *tvb, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
2469 {
2470  proto_tree_add_item(t, hf_x11_glx_render_EndQuery_target, tvb, *offsetp, 4, byte_order);
2471  *offsetp += 4;
2472 }
2473 
2474 static void mesa_BlendEquationSeparate(tvbuff_t *tvb, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
2475 {
2476  proto_tree_add_item(t, hf_x11_glx_render_BlendEquationSeparate_modeRGB, tvb, *offsetp, 4, byte_order);
2477  *offsetp += 4;
2478  proto_tree_add_item(t, hf_x11_glx_render_BlendEquationSeparate_modeA, tvb, *offsetp, 4, byte_order);
2479  *offsetp += 4;
2480 }
2481 
2482 static void mesa_DrawBuffers(tvbuff_t *tvb, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
2483 {
2484  int n;
2485  n = tvb_get_guint32(tvb, *offsetp, byte_order);
2486  proto_tree_add_item(t, hf_x11_glx_render_DrawBuffers_n, tvb, *offsetp, 4, byte_order);
2487  *offsetp += 4;
2488  listOfCard32(tvb, offsetp, t, hf_x11_glx_render_DrawBuffers_bufs, hf_x11_glx_render_DrawBuffers_bufs_item, n, byte_order);
2489 }
2490 
2491 static void mesa_VertexAttrib1dv(tvbuff_t *tvb, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
2492 {
2493  proto_tree_add_item(t, hf_x11_glx_render_VertexAttrib1dv_index, tvb, *offsetp, 4, byte_order);
2494  *offsetp += 4;
2495  listOfDouble(tvb, offsetp, t, hf_x11_glx_render_VertexAttrib1dv_v, hf_x11_glx_render_VertexAttrib1dv_v_item, 1, byte_order);
2496 }
2497 
2498 static void mesa_VertexAttrib1sv(tvbuff_t *tvb, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
2499 {
2500  proto_tree_add_item(t, hf_x11_glx_render_VertexAttrib1sv_index, tvb, *offsetp, 4, byte_order);
2501  *offsetp += 4;
2502  listOfInt16(tvb, offsetp, t, hf_x11_glx_render_VertexAttrib1sv_v, hf_x11_glx_render_VertexAttrib1sv_v_item, 1, byte_order);
2503 }
2504 
2505 static void mesa_VertexAttrib2dv(tvbuff_t *tvb, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
2506 {
2507  proto_tree_add_item(t, hf_x11_glx_render_VertexAttrib2dv_index, tvb, *offsetp, 4, byte_order);
2508  *offsetp += 4;
2509  listOfDouble(tvb, offsetp, t, hf_x11_glx_render_VertexAttrib2dv_v, hf_x11_glx_render_VertexAttrib2dv_v_item, 2, byte_order);
2510 }
2511 
2512 static void mesa_VertexAttrib2sv(tvbuff_t *tvb, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
2513 {
2514  proto_tree_add_item(t, hf_x11_glx_render_VertexAttrib2sv_index, tvb, *offsetp, 4, byte_order);
2515  *offsetp += 4;
2516  listOfInt16(tvb, offsetp, t, hf_x11_glx_render_VertexAttrib2sv_v, hf_x11_glx_render_VertexAttrib2sv_v_item, 2, byte_order);
2517 }
2518 
2519 static void mesa_VertexAttrib3dv(tvbuff_t *tvb, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
2520 {
2521  proto_tree_add_item(t, hf_x11_glx_render_VertexAttrib3dv_index, tvb, *offsetp, 4, byte_order);
2522  *offsetp += 4;
2523  listOfDouble(tvb, offsetp, t, hf_x11_glx_render_VertexAttrib3dv_v, hf_x11_glx_render_VertexAttrib3dv_v_item, 3, byte_order);
2524 }
2525 
2526 static void mesa_VertexAttrib3sv(tvbuff_t *tvb, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
2527 {
2528  proto_tree_add_item(t, hf_x11_glx_render_VertexAttrib3sv_index, tvb, *offsetp, 4, byte_order);
2529  *offsetp += 4;
2530  listOfInt16(tvb, offsetp, t, hf_x11_glx_render_VertexAttrib3sv_v, hf_x11_glx_render_VertexAttrib3sv_v_item, 3, byte_order);
2531 }
2532 
2533 static void mesa_VertexAttrib4Nbv(tvbuff_t *tvb, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
2534 {
2535  proto_tree_add_item(t, hf_x11_glx_render_VertexAttrib4Nbv_index, tvb, *offsetp, 4, byte_order);
2536  *offsetp += 4;
2537  listOfByte(tvb, offsetp, t, hf_x11_glx_render_VertexAttrib4Nbv_v, 4, byte_order);
2538 }
2539 
2540 static void mesa_VertexAttrib4Niv(tvbuff_t *tvb, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
2541 {
2542  proto_tree_add_item(t, hf_x11_glx_render_VertexAttrib4Niv_index, tvb, *offsetp, 4, byte_order);
2543  *offsetp += 4;
2544  listOfInt32(tvb, offsetp, t, hf_x11_glx_render_VertexAttrib4Niv_v, hf_x11_glx_render_VertexAttrib4Niv_v_item, 4, byte_order);
2545 }
2546 
2547 static void mesa_VertexAttrib4Nsv(tvbuff_t *tvb, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
2548 {
2549  proto_tree_add_item(t, hf_x11_glx_render_VertexAttrib4Nsv_index, tvb, *offsetp, 4, byte_order);
2550  *offsetp += 4;
2551  listOfInt16(tvb, offsetp, t, hf_x11_glx_render_VertexAttrib4Nsv_v, hf_x11_glx_render_VertexAttrib4Nsv_v_item, 4, byte_order);
2552 }
2553 
2554 static void mesa_VertexAttrib4Nubv(tvbuff_t *tvb, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
2555 {
2556  proto_tree_add_item(t, hf_x11_glx_render_VertexAttrib4Nubv_index, tvb, *offsetp, 4, byte_order);
2557  *offsetp += 4;
2558  listOfByte(tvb, offsetp, t, hf_x11_glx_render_VertexAttrib4Nubv_v, 4, byte_order);
2559 }
2560 
2561 static void mesa_VertexAttrib4Nuiv(tvbuff_t *tvb, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
2562 {
2563  proto_tree_add_item(t, hf_x11_glx_render_VertexAttrib4Nuiv_index, tvb, *offsetp, 4, byte_order);
2564  *offsetp += 4;
2565  listOfCard32(tvb, offsetp, t, hf_x11_glx_render_VertexAttrib4Nuiv_v, hf_x11_glx_render_VertexAttrib4Nuiv_v_item, 4, byte_order);
2566 }
2567 
2568 static void mesa_VertexAttrib4Nusv(tvbuff_t *tvb, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
2569 {
2570  proto_tree_add_item(t, hf_x11_glx_render_VertexAttrib4Nusv_index, tvb, *offsetp, 4, byte_order);
2571  *offsetp += 4;
2572  listOfCard16(tvb, offsetp, t, hf_x11_glx_render_VertexAttrib4Nusv_v, hf_x11_glx_render_VertexAttrib4Nusv_v_item, 4, byte_order);
2573 }
2574 
2575 static void mesa_VertexAttrib4bv(tvbuff_t *tvb, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
2576 {
2577  proto_tree_add_item(t, hf_x11_glx_render_VertexAttrib4bv_index, tvb, *offsetp, 4, byte_order);
2578  *offsetp += 4;
2579  listOfByte(tvb, offsetp, t, hf_x11_glx_render_VertexAttrib4bv_v, 4, byte_order);
2580 }
2581 
2582 static void mesa_VertexAttrib4dv(tvbuff_t *tvb, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
2583 {
2584  proto_tree_add_item(t, hf_x11_glx_render_VertexAttrib4dv_index, tvb, *offsetp, 4, byte_order);
2585  *offsetp += 4;
2586  listOfDouble(tvb, offsetp, t, hf_x11_glx_render_VertexAttrib4dv_v, hf_x11_glx_render_VertexAttrib4dv_v_item, 4, byte_order);
2587 }
2588 
2589 static void mesa_VertexAttrib4iv(tvbuff_t *tvb, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
2590 {
2591  proto_tree_add_item(t, hf_x11_glx_render_VertexAttrib4iv_index, tvb, *offsetp, 4, byte_order);
2592  *offsetp += 4;
2593  listOfInt32(tvb, offsetp, t, hf_x11_glx_render_VertexAttrib4iv_v, hf_x11_glx_render_VertexAttrib4iv_v_item, 4, byte_order);
2594 }
2595 
2596 static void mesa_VertexAttrib4sv(tvbuff_t *tvb, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
2597 {
2598  proto_tree_add_item(t, hf_x11_glx_render_VertexAttrib4sv_index, tvb, *offsetp, 4, byte_order);
2599  *offsetp += 4;
2600  listOfInt16(tvb, offsetp, t, hf_x11_glx_render_VertexAttrib4sv_v, hf_x11_glx_render_VertexAttrib4sv_v_item, 4, byte_order);
2601 }
2602 
2603 static void mesa_VertexAttrib4ubv(tvbuff_t *tvb, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
2604 {
2605  proto_tree_add_item(t, hf_x11_glx_render_VertexAttrib4ubv_index, tvb, *offsetp, 4, byte_order);
2606  *offsetp += 4;
2607  listOfByte(tvb, offsetp, t, hf_x11_glx_render_VertexAttrib4ubv_v, 4, byte_order);
2608 }
2609 
2610 static void mesa_VertexAttrib4uiv(tvbuff_t *tvb, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
2611 {
2612  proto_tree_add_item(t, hf_x11_glx_render_VertexAttrib4uiv_index, tvb, *offsetp, 4, byte_order);
2613  *offsetp += 4;
2614  listOfCard32(tvb, offsetp, t, hf_x11_glx_render_VertexAttrib4uiv_v, hf_x11_glx_render_VertexAttrib4uiv_v_item, 4, byte_order);
2615 }
2616 
2617 static void mesa_VertexAttrib4usv(tvbuff_t *tvb, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
2618 {
2619  proto_tree_add_item(t, hf_x11_glx_render_VertexAttrib4usv_index, tvb, *offsetp, 4, byte_order);
2620  *offsetp += 4;
2621  listOfCard16(tvb, offsetp, t, hf_x11_glx_render_VertexAttrib4usv_v, hf_x11_glx_render_VertexAttrib4usv_v_item, 4, byte_order);
2622 }
2623 
2624 static void mesa_MultiTexCoord1fvARB(tvbuff_t *tvb, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
2625 {
2626  proto_tree_add_item(t, hf_x11_glx_render_MultiTexCoord1fvARB_target, tvb, *offsetp, 4, byte_order);
2627  *offsetp += 4;
2628  listOfFloat(tvb, offsetp, t, hf_x11_glx_render_MultiTexCoord1fvARB_v, hf_x11_glx_render_MultiTexCoord1fvARB_v_item, 1, byte_order);
2629 }
2630 
2631 static void mesa_MultiTexCoord2fvARB(tvbuff_t *tvb, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
2632 {
2633  proto_tree_add_item(t, hf_x11_glx_render_MultiTexCoord2fvARB_target, tvb, *offsetp, 4, byte_order);
2634  *offsetp += 4;
2635  listOfFloat(tvb, offsetp, t, hf_x11_glx_render_MultiTexCoord2fvARB_v, hf_x11_glx_render_MultiTexCoord2fvARB_v_item, 2, byte_order);
2636 }
2637 
2638 static void mesa_MultiTexCoord3fvARB(tvbuff_t *tvb, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
2639 {
2640  proto_tree_add_item(t, hf_x11_glx_render_MultiTexCoord3fvARB_target, tvb, *offsetp, 4, byte_order);
2641  *offsetp += 4;
2642  listOfFloat(tvb, offsetp, t, hf_x11_glx_render_MultiTexCoord3fvARB_v, hf_x11_glx_render_MultiTexCoord3fvARB_v_item, 3, byte_order);
2643 }
2644 
2645 static void mesa_MultiTexCoord4fvARB(tvbuff_t *tvb, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
2646 {
2647  proto_tree_add_item(t, hf_x11_glx_render_MultiTexCoord4fvARB_target, tvb, *offsetp, 4, byte_order);
2648  *offsetp += 4;
2649  listOfFloat(tvb, offsetp, t, hf_x11_glx_render_MultiTexCoord4fvARB_v, hf_x11_glx_render_MultiTexCoord4fvARB_v_item, 4, byte_order);
2650 }
2651 
2652 static void mesa_CurrentPaletteMatrixARB(tvbuff_t *tvb, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
2653 {
2654  proto_tree_add_item(t, hf_x11_glx_render_CurrentPaletteMatrixARB_index, tvb, *offsetp, 4, byte_order);
2655  *offsetp += 4;
2656 }
2657 
2658 static void mesa_MatrixIndexubvARB(tvbuff_t *tvb, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
2659 {
2660  int size;
2661  size = tvb_get_guint32(tvb, *offsetp, byte_order);
2662  proto_tree_add_item(t, hf_x11_glx_render_MatrixIndexubvARB_size, tvb, *offsetp, 4, byte_order);
2663  *offsetp += 4;
2664  listOfByte(tvb, offsetp, t, hf_x11_glx_render_MatrixIndexubvARB_indices, size, byte_order);
2665 }
2666 
2667 static void mesa_MatrixIndexusvARB(tvbuff_t *tvb, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
2668 {
2669  int size;
2670  size = tvb_get_guint32(tvb, *offsetp, byte_order);
2671  proto_tree_add_item(t, hf_x11_glx_render_MatrixIndexusvARB_size, tvb, *offsetp, 4, byte_order);
2672  *offsetp += 4;
2673  listOfCard16(tvb, offsetp, t, hf_x11_glx_render_MatrixIndexusvARB_indices, hf_x11_glx_render_MatrixIndexusvARB_indices_item, size, byte_order);
2674 }
2675 
2676 static void mesa_MatrixIndexuivARB(tvbuff_t *tvb, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
2677 {
2678  int size;
2679  size = tvb_get_guint32(tvb, *offsetp, byte_order);
2680  proto_tree_add_item(t, hf_x11_glx_render_MatrixIndexuivARB_size, tvb, *offsetp, 4, byte_order);
2681  *offsetp += 4;
2682  listOfCard32(tvb, offsetp, t, hf_x11_glx_render_MatrixIndexuivARB_indices, hf_x11_glx_render_MatrixIndexuivARB_indices_item, size, byte_order);
2683 }
2684 
2685 static void mesa_VertexAttrib1fvARB(tvbuff_t *tvb, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
2686 {
2687  proto_tree_add_item(t, hf_x11_glx_render_VertexAttrib1fvARB_index, tvb, *offsetp, 4, byte_order);
2688  *offsetp += 4;
2689  listOfFloat(tvb, offsetp, t, hf_x11_glx_render_VertexAttrib1fvARB_v, hf_x11_glx_render_VertexAttrib1fvARB_v_item, 1, byte_order);
2690 }
2691 
2692 static void mesa_VertexAttrib2fvARB(tvbuff_t *tvb, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
2693 {
2694  proto_tree_add_item(t, hf_x11_glx_render_VertexAttrib2fvARB_index, tvb, *offsetp, 4, byte_order);
2695  *offsetp += 4;
2696  listOfFloat(tvb, offsetp, t, hf_x11_glx_render_VertexAttrib2fvARB_v, hf_x11_glx_render_VertexAttrib2fvARB_v_item, 2, byte_order);
2697 }
2698 
2699 static void mesa_VertexAttrib3fvARB(tvbuff_t *tvb, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
2700 {
2701  proto_tree_add_item(t, hf_x11_glx_render_VertexAttrib3fvARB_index, tvb, *offsetp, 4, byte_order);
2702  *offsetp += 4;
2703  listOfFloat(tvb, offsetp, t, hf_x11_glx_render_VertexAttrib3fvARB_v, hf_x11_glx_render_VertexAttrib3fvARB_v_item, 3, byte_order);
2704 }
2705 
2706 static void mesa_VertexAttrib4fvARB(tvbuff_t *tvb, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
2707 {
2708  proto_tree_add_item(t, hf_x11_glx_render_VertexAttrib4fvARB_index, tvb, *offsetp, 4, byte_order);
2709  *offsetp += 4;
2710  listOfFloat(tvb, offsetp, t, hf_x11_glx_render_VertexAttrib4fvARB_v, hf_x11_glx_render_VertexAttrib4fvARB_v_item, 4, byte_order);
2711 }
2712 
2713 static void mesa_ProgramStringARB(tvbuff_t *tvb, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
2714 {
2715  int len;
2716  proto_tree_add_item(t, hf_x11_glx_render_ProgramStringARB_target, tvb, *offsetp, 4, byte_order);
2717  *offsetp += 4;
2718  proto_tree_add_item(t, hf_x11_glx_render_ProgramStringARB_format, tvb, *offsetp, 4, byte_order);
2719  *offsetp += 4;
2720  len = tvb_get_guint32(tvb, *offsetp, byte_order);
2721  proto_tree_add_item(t, hf_x11_glx_render_ProgramStringARB_len, tvb, *offsetp, 4, byte_order);
2722  *offsetp += 4;
2723  listOfByte(tvb, offsetp, t, hf_x11_glx_render_ProgramStringARB_string, len, byte_order);
2724 }
2725 
2726 static void mesa_BindProgramARB(tvbuff_t *tvb, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
2727 {
2728  proto_tree_add_item(t, hf_x11_glx_render_BindProgramARB_target, tvb, *offsetp, 4, byte_order);
2729  *offsetp += 4;
2730  proto_tree_add_item(t, hf_x11_glx_render_BindProgramARB_program, tvb, *offsetp, 4, byte_order);
2731  *offsetp += 4;
2732 }
2733 
2734 static void mesa_ProgramEnvParameter4dvARB(tvbuff_t *tvb, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
2735 {
2736  proto_tree_add_item(t, hf_x11_glx_render_ProgramEnvParameter4dvARB_target, tvb, *offsetp, 4, byte_order);
2737  *offsetp += 4;
2738  proto_tree_add_item(t, hf_x11_glx_render_ProgramEnvParameter4dvARB_index, tvb, *offsetp, 4, byte_order);
2739  *offsetp += 4;
2740  listOfDouble(tvb, offsetp, t, hf_x11_glx_render_ProgramEnvParameter4dvARB_params, hf_x11_glx_render_ProgramEnvParameter4dvARB_params_item, 4, byte_order);
2741 }
2742 
2743 static void mesa_ProgramEnvParameter4fvARB(tvbuff_t *tvb, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
2744 {
2745  proto_tree_add_item(t, hf_x11_glx_render_ProgramEnvParameter4fvARB_target, tvb, *offsetp, 4, byte_order);
2746  *offsetp += 4;
2747  proto_tree_add_item(t, hf_x11_glx_render_ProgramEnvParameter4fvARB_index, tvb, *offsetp, 4, byte_order);
2748  *offsetp += 4;
2749  listOfFloat(tvb, offsetp, t, hf_x11_glx_render_ProgramEnvParameter4fvARB_params, hf_x11_glx_render_ProgramEnvParameter4fvARB_params_item, 4, byte_order);
2750 }
2751 
2752 static void mesa_ProgramLocalParameter4dvARB(tvbuff_t *tvb, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
2753 {
2754  proto_tree_add_item(t, hf_x11_glx_render_ProgramLocalParameter4dvARB_target, tvb, *offsetp, 4, byte_order);
2755  *offsetp += 4;
2756  proto_tree_add_item(t, hf_x11_glx_render_ProgramLocalParameter4dvARB_index, tvb, *offsetp, 4, byte_order);
2757  *offsetp += 4;
2758  listOfDouble(tvb, offsetp, t, hf_x11_glx_render_ProgramLocalParameter4dvARB_params, hf_x11_glx_render_ProgramLocalParameter4dvARB_params_item, 4, byte_order);
2759 }
2760 
2761 static void mesa_ProgramLocalParameter4fvARB(tvbuff_t *tvb, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
2762 {
2763  proto_tree_add_item(t, hf_x11_glx_render_ProgramLocalParameter4fvARB_target, tvb, *offsetp, 4, byte_order);
2764  *offsetp += 4;
2765  proto_tree_add_item(t, hf_x11_glx_render_ProgramLocalParameter4fvARB_index, tvb, *offsetp, 4, byte_order);
2766  *offsetp += 4;
2767  listOfFloat(tvb, offsetp, t, hf_x11_glx_render_ProgramLocalParameter4fvARB_params, hf_x11_glx_render_ProgramLocalParameter4fvARB_params_item, 4, byte_order);
2768 }
2769 
2770 static void mesa_TexFilterFuncSGIS(tvbuff_t *tvb, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
2771 {
2772  int n;
2773  proto_tree_add_item(t, hf_x11_glx_render_TexFilterFuncSGIS_target, tvb, *offsetp, 4, byte_order);
2774  *offsetp += 4;
2775  proto_tree_add_item(t, hf_x11_glx_render_TexFilterFuncSGIS_filter, tvb, *offsetp, 4, byte_order);
2776  *offsetp += 4;
2777  n = tvb_get_guint32(tvb, *offsetp, byte_order);
2778  proto_tree_add_item(t, hf_x11_glx_render_TexFilterFuncSGIS_n, tvb, *offsetp, 4, byte_order);
2779  *offsetp += 4;
2780  listOfFloat(tvb, offsetp, t, hf_x11_glx_render_TexFilterFuncSGIS_weights, hf_x11_glx_render_TexFilterFuncSGIS_weights_item, n, byte_order);
2781 }
2782 
2783 static void mesa_TexImage4DSGIS(tvbuff_t *tvb, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
2784 {
2785  proto_tree_add_item(t, hf_x11_glx_render_TexImage4DSGIS_swapbytes, tvb, *offsetp, 1, byte_order);
2786  *offsetp += 1;
2787  proto_tree_add_item(t, hf_x11_glx_render_TexImage4DSGIS_lsbfirst, tvb, *offsetp, 1, byte_order);
2788  *offsetp += 1;
2789  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 2, ENC_NA);
2790  *offsetp += 2;
2791  proto_tree_add_item(t, hf_x11_glx_render_TexImage4DSGIS_rowlength, tvb, *offsetp, 4, byte_order);
2792  *offsetp += 4;
2793  proto_tree_add_item(t, hf_x11_glx_render_TexImage4DSGIS_skiprows, tvb, *offsetp, 4, byte_order);
2794  *offsetp += 4;
2795  proto_tree_add_item(t, hf_x11_glx_render_TexImage4DSGIS_skippixels, tvb, *offsetp, 4, byte_order);
2796  *offsetp += 4;
2797  proto_tree_add_item(t, hf_x11_glx_render_TexImage4DSGIS_alignment, tvb, *offsetp, 4, byte_order);
2798  *offsetp += 4;
2799  proto_tree_add_item(t, hf_x11_glx_render_TexImage4DSGIS_target, tvb, *offsetp, 4, byte_order);
2800  *offsetp += 4;
2801  proto_tree_add_item(t, hf_x11_glx_render_TexImage4DSGIS_level, tvb, *offsetp, 4, byte_order);
2802  *offsetp += 4;
2803  proto_tree_add_item(t, hf_x11_glx_render_TexImage4DSGIS_internalformat, tvb, *offsetp, 4, byte_order);
2804  *offsetp += 4;
2805  proto_tree_add_item(t, hf_x11_glx_render_TexImage4DSGIS_width, tvb, *offsetp, 4, byte_order);
2806  *offsetp += 4;
2807  proto_tree_add_item(t, hf_x11_glx_render_TexImage4DSGIS_height, tvb, *offsetp, 4, byte_order);
2808  *offsetp += 4;
2809  proto_tree_add_item(t, hf_x11_glx_render_TexImage4DSGIS_depth, tvb, *offsetp, 4, byte_order);
2810  *offsetp += 4;
2811  proto_tree_add_item(t, hf_x11_glx_render_TexImage4DSGIS_size4d, tvb, *offsetp, 4, byte_order);
2812  *offsetp += 4;
2813  proto_tree_add_item(t, hf_x11_glx_render_TexImage4DSGIS_border, tvb, *offsetp, 4, byte_order);
2814  *offsetp += 4;
2815  proto_tree_add_item(t, hf_x11_glx_render_TexImage4DSGIS_format, tvb, *offsetp, 4, byte_order);
2816  *offsetp += 4;
2817  proto_tree_add_item(t, hf_x11_glx_render_TexImage4DSGIS_type, tvb, *offsetp, 4, byte_order);
2818  *offsetp += 4;
2819  listOfByte(tvb, offsetp, t, hf_x11_glx_render_TexImage4DSGIS_pixels, (length - 60) / 1, byte_order);
2820 }
2821 
2822 static void mesa_TexSubImage4DSGIS(tvbuff_t *tvb, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
2823 {
2824  proto_tree_add_item(t, hf_x11_glx_render_TexSubImage4DSGIS_swapbytes, tvb, *offsetp, 1, byte_order);
2825  *offsetp += 1;
2826  proto_tree_add_item(t, hf_x11_glx_render_TexSubImage4DSGIS_lsbfirst, tvb, *offsetp, 1, byte_order);
2827  *offsetp += 1;
2828  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 2, ENC_NA);
2829  *offsetp += 2;
2830  proto_tree_add_item(t, hf_x11_glx_render_TexSubImage4DSGIS_rowlength, tvb, *offsetp, 4, byte_order);
2831  *offsetp += 4;
2832  proto_tree_add_item(t, hf_x11_glx_render_TexSubImage4DSGIS_skiprows, tvb, *offsetp, 4, byte_order);
2833  *offsetp += 4;
2834  proto_tree_add_item(t, hf_x11_glx_render_TexSubImage4DSGIS_skippixels, tvb, *offsetp, 4, byte_order);
2835  *offsetp += 4;
2836  proto_tree_add_item(t, hf_x11_glx_render_TexSubImage4DSGIS_alignment, tvb, *offsetp, 4, byte_order);
2837  *offsetp += 4;
2838  proto_tree_add_item(t, hf_x11_glx_render_TexSubImage4DSGIS_target, tvb, *offsetp, 4, byte_order);
2839  *offsetp += 4;
2840  proto_tree_add_item(t, hf_x11_glx_render_TexSubImage4DSGIS_level, tvb, *offsetp, 4, byte_order);
2841  *offsetp += 4;
2842  proto_tree_add_item(t, hf_x11_glx_render_TexSubImage4DSGIS_xoffset, tvb, *offsetp, 4, byte_order);
2843  *offsetp += 4;
2844  proto_tree_add_item(t, hf_x11_glx_render_TexSubImage4DSGIS_yoffset, tvb, *offsetp, 4, byte_order);
2845  *offsetp += 4;
2846  proto_tree_add_item(t, hf_x11_glx_render_TexSubImage4DSGIS_zoffset, tvb, *offsetp, 4, byte_order);
2847  *offsetp += 4;
2848  proto_tree_add_item(t, hf_x11_glx_render_TexSubImage4DSGIS_woffset, tvb, *offsetp, 4, byte_order);
2849  *offsetp += 4;
2850  proto_tree_add_item(t, hf_x11_glx_render_TexSubImage4DSGIS_width, tvb, *offsetp, 4, byte_order);
2851  *offsetp += 4;
2852  proto_tree_add_item(t, hf_x11_glx_render_TexSubImage4DSGIS_height, tvb, *offsetp, 4, byte_order);
2853  *offsetp += 4;
2854  proto_tree_add_item(t, hf_x11_glx_render_TexSubImage4DSGIS_depth, tvb, *offsetp, 4, byte_order);
2855  *offsetp += 4;
2856  proto_tree_add_item(t, hf_x11_glx_render_TexSubImage4DSGIS_size4d, tvb, *offsetp, 4, byte_order);
2857  *offsetp += 4;
2858  proto_tree_add_item(t, hf_x11_glx_render_TexSubImage4DSGIS_format, tvb, *offsetp, 4, byte_order);
2859  *offsetp += 4;
2860  proto_tree_add_item(t, hf_x11_glx_render_TexSubImage4DSGIS_type, tvb, *offsetp, 4, byte_order);
2861  *offsetp += 4;
2862  proto_tree_add_item(t, hf_x11_glx_render_TexSubImage4DSGIS_UNUSED, tvb, *offsetp, 4, byte_order);
2863  *offsetp += 4;
2864  listOfByte(tvb, offsetp, t, hf_x11_glx_render_TexSubImage4DSGIS_pixels, (length - 72) / 1, byte_order);
2865 }
2866 
2867 static void mesa_DetailTexFuncSGIS(tvbuff_t *tvb, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
2868 {
2869  int n;
2870  proto_tree_add_item(t, hf_x11_glx_render_DetailTexFuncSGIS_target, tvb, *offsetp, 4, byte_order);
2871  *offsetp += 4;
2872  n = tvb_get_guint32(tvb, *offsetp, byte_order);
2873  proto_tree_add_item(t, hf_x11_glx_render_DetailTexFuncSGIS_n, tvb, *offsetp, 4, byte_order);
2874  *offsetp += 4;
2875  listOfFloat(tvb, offsetp, t, hf_x11_glx_render_DetailTexFuncSGIS_points, hf_x11_glx_render_DetailTexFuncSGIS_points_item, n, byte_order);
2876 }
2877 
2878 static void mesa_SharpenTexFuncSGIS(tvbuff_t *tvb, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
2879 {
2880  int n;
2881  proto_tree_add_item(t, hf_x11_glx_render_SharpenTexFuncSGIS_target, tvb, *offsetp, 4, byte_order);
2882  *offsetp += 4;
2883  n = tvb_get_guint32(tvb, *offsetp, byte_order);
2884  proto_tree_add_item(t, hf_x11_glx_render_SharpenTexFuncSGIS_n, tvb, *offsetp, 4, byte_order);
2885  *offsetp += 4;
2886  listOfFloat(tvb, offsetp, t, hf_x11_glx_render_SharpenTexFuncSGIS_points, hf_x11_glx_render_SharpenTexFuncSGIS_points_item, n, byte_order);
2887 }
2888 
2889 static void mesa_SampleMaskSGIS(tvbuff_t *tvb, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
2890 {
2891  proto_tree_add_item(t, hf_x11_glx_render_SampleMaskSGIS_value, tvb, *offsetp, 4, byte_order);
2892  *offsetp += 4;
2893  proto_tree_add_item(t, hf_x11_glx_render_SampleMaskSGIS_invert, tvb, *offsetp, 1, byte_order);
2894  *offsetp += 1;
2895 }
2896 
2897 static void mesa_SamplePatternSGIS(tvbuff_t *tvb, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
2898 {
2899  proto_tree_add_item(t, hf_x11_glx_render_SamplePatternSGIS_pattern, tvb, *offsetp, 4, byte_order);
2900  *offsetp += 4;
2901 }
2902 
2903 static void mesa_FrameZoomSGIX(tvbuff_t *tvb, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
2904 {
2905  proto_tree_add_item(t, hf_x11_glx_render_FrameZoomSGIX_factor, tvb, *offsetp, 4, byte_order);
2906  *offsetp += 4;
2907 }
2908 
2909 static void mesa_TagSampleBufferSGIX(tvbuff_t *tvb _U_, int *offsetp _U_, proto_tree *t _U_, guint byte_order _U_, int length _U_)
2910 {
2911 }
2912 
2913 static void mesa_ReferencePlaneSGIX(tvbuff_t *tvb, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
2914 {
2915  listOfDouble(tvb, offsetp, t, hf_x11_glx_render_ReferencePlaneSGIX_equation, hf_x11_glx_render_ReferencePlaneSGIX_equation_item, 4, byte_order);
2916 }
2917 
2918 static void mesa_FogFuncSGIS(tvbuff_t *tvb, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
2919 {
2920  int n;
2921  n = tvb_get_guint32(tvb, *offsetp, byte_order);
2922  proto_tree_add_item(t, hf_x11_glx_render_FogFuncSGIS_n, tvb, *offsetp, 4, byte_order);
2923  *offsetp += 4;
2924  listOfFloat(tvb, offsetp, t, hf_x11_glx_render_FogFuncSGIS_points, hf_x11_glx_render_FogFuncSGIS_points_item, n, byte_order);
2925 }
2926 
2927 static void mesa_SecondaryColor3fvEXT(tvbuff_t *tvb, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
2928 {
2929  listOfFloat(tvb, offsetp, t, hf_x11_glx_render_SecondaryColor3fvEXT_v, hf_x11_glx_render_SecondaryColor3fvEXT_v_item, 3, byte_order);
2930 }
2931 
2932 static void mesa_FogCoordfvEXT(tvbuff_t *tvb, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
2933 {
2934  listOfFloat(tvb, offsetp, t, hf_x11_glx_render_FogCoordfvEXT_coord, hf_x11_glx_render_FogCoordfvEXT_coord_item, 1, byte_order);
2935 }
2936 
2937 static void mesa_PixelTexGenSGIX(tvbuff_t *tvb, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
2938 {
2939  proto_tree_add_item(t, hf_x11_glx_render_PixelTexGenSGIX_mode, tvb, *offsetp, 4, byte_order);
2940  *offsetp += 4;
2941 }
2942 
2943 static void mesa_VertexWeightfvEXT(tvbuff_t *tvb, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
2944 {
2945  listOfFloat(tvb, offsetp, t, hf_x11_glx_render_VertexWeightfvEXT_weight, hf_x11_glx_render_VertexWeightfvEXT_weight_item, 1, byte_order);
2946 }
2947 
2948 static void mesa_CombinerParameterfvNV(tvbuff_t *tvb, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
2949 {
2950  proto_tree_add_item(t, hf_x11_glx_render_CombinerParameterfvNV_pname, tvb, *offsetp, 4, byte_order);
2951  *offsetp += 4;
2952  listOfFloat(tvb, offsetp, t, hf_x11_glx_render_CombinerParameterfvNV_params, hf_x11_glx_render_CombinerParameterfvNV_params_item, (length - 4) / 4, byte_order);
2953 }
2954 
2955 static void mesa_CombinerParameterfNV(tvbuff_t *tvb, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
2956 {
2957  proto_tree_add_item(t, hf_x11_glx_render_CombinerParameterfNV_pname, tvb, *offsetp, 4, byte_order);
2958  *offsetp += 4;
2959  proto_tree_add_item(t, hf_x11_glx_render_CombinerParameterfNV_param, tvb, *offsetp, 4, byte_order);
2960  *offsetp += 4;
2961 }
2962 
2963 static void mesa_CombinerParameterivNV(tvbuff_t *tvb, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
2964 {
2965  proto_tree_add_item(t, hf_x11_glx_render_CombinerParameterivNV_pname, tvb, *offsetp, 4, byte_order);
2966  *offsetp += 4;
2967  listOfInt32(tvb, offsetp, t, hf_x11_glx_render_CombinerParameterivNV_params, hf_x11_glx_render_CombinerParameterivNV_params_item, (length - 4) / 4, byte_order);
2968 }
2969 
2970 static void mesa_CombinerParameteriNV(tvbuff_t *tvb, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
2971 {
2972  proto_tree_add_item(t, hf_x11_glx_render_CombinerParameteriNV_pname, tvb, *offsetp, 4, byte_order);
2973  *offsetp += 4;
2974  proto_tree_add_item(t, hf_x11_glx_render_CombinerParameteriNV_param, tvb, *offsetp, 4, byte_order);
2975  *offsetp += 4;
2976 }
2977 
2978 static void mesa_CombinerInputNV(tvbuff_t *tvb, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
2979 {
2980  proto_tree_add_item(t, hf_x11_glx_render_CombinerInputNV_stage, tvb, *offsetp, 4, byte_order);
2981  *offsetp += 4;
2982  proto_tree_add_item(t, hf_x11_glx_render_CombinerInputNV_portion, tvb, *offsetp, 4, byte_order);
2983  *offsetp += 4;
2984  proto_tree_add_item(t, hf_x11_glx_render_CombinerInputNV_variable, tvb, *offsetp, 4, byte_order);
2985  *offsetp += 4;
2986  proto_tree_add_item(t, hf_x11_glx_render_CombinerInputNV_input, tvb, *offsetp, 4, byte_order);
2987  *offsetp += 4;
2988  proto_tree_add_item(t, hf_x11_glx_render_CombinerInputNV_mapping, tvb, *offsetp, 4, byte_order);
2989  *offsetp += 4;
2990  proto_tree_add_item(t, hf_x11_glx_render_CombinerInputNV_componentUsage, tvb, *offsetp, 4, byte_order);
2991  *offsetp += 4;
2992 }
2993 
2994 static void mesa_CombinerOutputNV(tvbuff_t *tvb, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
2995 {
2996  proto_tree_add_item(t, hf_x11_glx_render_CombinerOutputNV_stage, tvb, *offsetp, 4, byte_order);
2997  *offsetp += 4;
2998  proto_tree_add_item(t, hf_x11_glx_render_CombinerOutputNV_portion, tvb, *offsetp, 4, byte_order);
2999  *offsetp += 4;
3000  proto_tree_add_item(t, hf_x11_glx_render_CombinerOutputNV_abOutput, tvb, *offsetp, 4, byte_order);
3001  *offsetp += 4;
3002  proto_tree_add_item(t, hf_x11_glx_render_CombinerOutputNV_cdOutput, tvb, *offsetp, 4, byte_order);
3003  *offsetp += 4;
3004  proto_tree_add_item(t, hf_x11_glx_render_CombinerOutputNV_sumOutput, tvb, *offsetp, 4, byte_order);
3005  *offsetp += 4;
3006  proto_tree_add_item(t, hf_x11_glx_render_CombinerOutputNV_scale, tvb, *offsetp, 4, byte_order);
3007  *offsetp += 4;
3008  proto_tree_add_item(t, hf_x11_glx_render_CombinerOutputNV_bias, tvb, *offsetp, 4, byte_order);
3009  *offsetp += 4;
3010  proto_tree_add_item(t, hf_x11_glx_render_CombinerOutputNV_abDotProduct, tvb, *offsetp, 1, byte_order);
3011  *offsetp += 1;
3012  proto_tree_add_item(t, hf_x11_glx_render_CombinerOutputNV_cdDotProduct, tvb, *offsetp, 1, byte_order);
3013  *offsetp += 1;
3014  proto_tree_add_item(t, hf_x11_glx_render_CombinerOutputNV_muxSum, tvb, *offsetp, 1, byte_order);
3015  *offsetp += 1;
3016 }
3017 
3018 static void mesa_FinalCombinerInputNV(tvbuff_t *tvb, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
3019 {
3020  proto_tree_add_item(t, hf_x11_glx_render_FinalCombinerInputNV_variable, tvb, *offsetp, 4, byte_order);
3021  *offsetp += 4;
3022  proto_tree_add_item(t, hf_x11_glx_render_FinalCombinerInputNV_input, tvb, *offsetp, 4, byte_order);
3023  *offsetp += 4;
3024  proto_tree_add_item(t, hf_x11_glx_render_FinalCombinerInputNV_mapping, tvb, *offsetp, 4, byte_order);
3025  *offsetp += 4;
3026  proto_tree_add_item(t, hf_x11_glx_render_FinalCombinerInputNV_componentUsage, tvb, *offsetp, 4, byte_order);
3027  *offsetp += 4;
3028 }
3029 
3030 static void mesa_TextureColorMaskSGIS(tvbuff_t *tvb, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
3031 {
3032  proto_tree_add_item(t, hf_x11_glx_render_TextureColorMaskSGIS_red, tvb, *offsetp, 1, byte_order);
3033  *offsetp += 1;
3034  proto_tree_add_item(t, hf_x11_glx_render_TextureColorMaskSGIS_green, tvb, *offsetp, 1, byte_order);
3035  *offsetp += 1;
3036  proto_tree_add_item(t, hf_x11_glx_render_TextureColorMaskSGIS_blue, tvb, *offsetp, 1, byte_order);
3037  *offsetp += 1;
3038  proto_tree_add_item(t, hf_x11_glx_render_TextureColorMaskSGIS_alpha, tvb, *offsetp, 1, byte_order);
3039  *offsetp += 1;
3040 }
3041 
3042 static void mesa_ExecuteProgramNV(tvbuff_t *tvb, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
3043 {
3044  proto_tree_add_item(t, hf_x11_glx_render_ExecuteProgramNV_target, tvb, *offsetp, 4, byte_order);
3045  *offsetp += 4;
3046  proto_tree_add_item(t, hf_x11_glx_render_ExecuteProgramNV_id, tvb, *offsetp, 4, byte_order);
3047  *offsetp += 4;
3048  listOfFloat(tvb, offsetp, t, hf_x11_glx_render_ExecuteProgramNV_params, hf_x11_glx_render_ExecuteProgramNV_params_item, 4, byte_order);
3049 }
3050 
3051 static void mesa_LoadProgramNV(tvbuff_t *tvb, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
3052 {
3053  int len;
3054  proto_tree_add_item(t, hf_x11_glx_render_LoadProgramNV_target, tvb, *offsetp, 4, byte_order);
3055  *offsetp += 4;
3056  proto_tree_add_item(t, hf_x11_glx_render_LoadProgramNV_id, tvb, *offsetp, 4, byte_order);
3057  *offsetp += 4;
3058  len = tvb_get_guint32(tvb, *offsetp, byte_order);
3059  proto_tree_add_item(t, hf_x11_glx_render_LoadProgramNV_len, tvb, *offsetp, 4, byte_order);
3060  *offsetp += 4;
3061  listOfByte(tvb, offsetp, t, hf_x11_glx_render_LoadProgramNV_program, len, byte_order);
3062 }
3063 
3064 static void mesa_ProgramParameters4dvNV(tvbuff_t *tvb, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
3065 {
3066  int num;
3067  proto_tree_add_item(t, hf_x11_glx_render_ProgramParameters4dvNV_target, tvb, *offsetp, 4, byte_order);
3068  *offsetp += 4;
3069  proto_tree_add_item(t, hf_x11_glx_render_ProgramParameters4dvNV_index, tvb, *offsetp, 4, byte_order);
3070  *offsetp += 4;
3071  num = tvb_get_guint32(tvb, *offsetp, byte_order);
3072  proto_tree_add_item(t, hf_x11_glx_render_ProgramParameters4dvNV_num, tvb, *offsetp, 4, byte_order);
3073  *offsetp += 4;
3074  listOfDouble(tvb, offsetp, t, hf_x11_glx_render_ProgramParameters4dvNV_params, hf_x11_glx_render_ProgramParameters4dvNV_params_item, num, byte_order);
3075 }
3076 
3077 static void mesa_ProgramParameters4fvNV(tvbuff_t *tvb, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
3078 {
3079  int num;
3080  proto_tree_add_item(t, hf_x11_glx_render_ProgramParameters4fvNV_target, tvb, *offsetp, 4, byte_order);
3081  *offsetp += 4;
3082  proto_tree_add_item(t, hf_x11_glx_render_ProgramParameters4fvNV_index, tvb, *offsetp, 4, byte_order);
3083  *offsetp += 4;
3084  num = tvb_get_guint32(tvb, *offsetp, byte_order);
3085  proto_tree_add_item(t, hf_x11_glx_render_ProgramParameters4fvNV_num, tvb, *offsetp, 4, byte_order);
3086  *offsetp += 4;
3087  listOfFloat(tvb, offsetp, t, hf_x11_glx_render_ProgramParameters4fvNV_params, hf_x11_glx_render_ProgramParameters4fvNV_params_item, num, byte_order);
3088 }
3089 
3090 static void mesa_RequestResidentProgramsNV(tvbuff_t *tvb, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
3091 {
3092  int n;
3093  n = tvb_get_guint32(tvb, *offsetp, byte_order);
3094  proto_tree_add_item(t, hf_x11_glx_render_RequestResidentProgramsNV_n, tvb, *offsetp, 4, byte_order);
3095  *offsetp += 4;
3096  listOfCard32(tvb, offsetp, t, hf_x11_glx_render_RequestResidentProgramsNV_ids, hf_x11_glx_render_RequestResidentProgramsNV_ids_item, n, byte_order);
3097 }
3098 
3099 static void mesa_TrackMatrixNV(tvbuff_t *tvb, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
3100 {
3101  proto_tree_add_item(t, hf_x11_glx_render_TrackMatrixNV_target, tvb, *offsetp, 4, byte_order);
3102  *offsetp += 4;
3103  proto_tree_add_item(t, hf_x11_glx_render_TrackMatrixNV_address, tvb, *offsetp, 4, byte_order);
3104  *offsetp += 4;
3105  proto_tree_add_item(t, hf_x11_glx_render_TrackMatrixNV_matrix, tvb, *offsetp, 4, byte_order);
3106  *offsetp += 4;
3107  proto_tree_add_item(t, hf_x11_glx_render_TrackMatrixNV_transform, tvb, *offsetp, 4, byte_order);
3108  *offsetp += 4;
3109 }
3110 
3111 static void mesa_VertexAttrib1svNV(tvbuff_t *tvb, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
3112 {
3113  proto_tree_add_item(t, hf_x11_glx_render_VertexAttrib1svNV_index, tvb, *offsetp, 4, byte_order);
3114  *offsetp += 4;
3115  listOfInt16(tvb, offsetp, t, hf_x11_glx_render_VertexAttrib1svNV_v, hf_x11_glx_render_VertexAttrib1svNV_v_item, 1, byte_order);
3116 }
3117 
3118 static void mesa_VertexAttrib2svNV(tvbuff_t *tvb, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
3119 {
3120  proto_tree_add_item(t, hf_x11_glx_render_VertexAttrib2svNV_index, tvb, *offsetp, 4, byte_order);
3121  *offsetp += 4;
3122  listOfInt16(tvb, offsetp, t, hf_x11_glx_render_VertexAttrib2svNV_v, hf_x11_glx_render_VertexAttrib2svNV_v_item, 2, byte_order);
3123 }
3124 
3125 static void mesa_VertexAttrib3svNV(tvbuff_t *tvb, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
3126 {
3127  proto_tree_add_item(t, hf_x11_glx_render_VertexAttrib3svNV_index, tvb, *offsetp, 4, byte_order);
3128  *offsetp += 4;
3129  listOfInt16(tvb, offsetp, t, hf_x11_glx_render_VertexAttrib3svNV_v, hf_x11_glx_render_VertexAttrib3svNV_v_item, 3, byte_order);
3130 }
3131 
3132 static void mesa_VertexAttrib4svNV(tvbuff_t *tvb, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
3133 {
3134  proto_tree_add_item(t, hf_x11_glx_render_VertexAttrib4svNV_index, tvb, *offsetp, 4, byte_order);
3135  *offsetp += 4;
3136  listOfInt16(tvb, offsetp, t, hf_x11_glx_render_VertexAttrib4svNV_v, hf_x11_glx_render_VertexAttrib4svNV_v_item, 4, byte_order);
3137 }
3138 
3139 static void mesa_VertexAttrib1fvNV(tvbuff_t *tvb, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
3140 {
3141  proto_tree_add_item(t, hf_x11_glx_render_VertexAttrib1fvNV_index, tvb, *offsetp, 4, byte_order);
3142  *offsetp += 4;
3143  listOfFloat(tvb, offsetp, t, hf_x11_glx_render_VertexAttrib1fvNV_v, hf_x11_glx_render_VertexAttrib1fvNV_v_item, 1, byte_order);
3144 }
3145 
3146 static void mesa_VertexAttrib2fvNV(tvbuff_t *tvb, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
3147 {
3148  proto_tree_add_item(t, hf_x11_glx_render_VertexAttrib2fvNV_index, tvb, *offsetp, 4, byte_order);
3149  *offsetp += 4;
3150  listOfFloat(tvb, offsetp, t, hf_x11_glx_render_VertexAttrib2fvNV_v, hf_x11_glx_render_VertexAttrib2fvNV_v_item, 2, byte_order);
3151 }
3152 
3153 static void mesa_VertexAttrib3fvNV(tvbuff_t *tvb, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
3154 {
3155  proto_tree_add_item(t, hf_x11_glx_render_VertexAttrib3fvNV_index, tvb, *offsetp, 4, byte_order);
3156  *offsetp += 4;
3157  listOfFloat(tvb, offsetp, t, hf_x11_glx_render_VertexAttrib3fvNV_v, hf_x11_glx_render_VertexAttrib3fvNV_v_item, 3, byte_order);
3158 }
3159 
3160 static void mesa_VertexAttrib4fvNV(tvbuff_t *tvb, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
3161 {
3162  proto_tree_add_item(t, hf_x11_glx_render_VertexAttrib4fvNV_index, tvb, *offsetp, 4, byte_order);
3163  *offsetp += 4;
3164  listOfFloat(tvb, offsetp, t, hf_x11_glx_render_VertexAttrib4fvNV_v, hf_x11_glx_render_VertexAttrib4fvNV_v_item, 4, byte_order);
3165 }
3166 
3167 static void mesa_VertexAttrib1dvNV(tvbuff_t *tvb, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
3168 {
3169  proto_tree_add_item(t, hf_x11_glx_render_VertexAttrib1dvNV_index, tvb, *offsetp, 4, byte_order);
3170  *offsetp += 4;
3171  listOfDouble(tvb, offsetp, t, hf_x11_glx_render_VertexAttrib1dvNV_v, hf_x11_glx_render_VertexAttrib1dvNV_v_item, 1, byte_order);
3172 }
3173 
3174 static void mesa_VertexAttrib2dvNV(tvbuff_t *tvb, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
3175 {
3176  proto_tree_add_item(t, hf_x11_glx_render_VertexAttrib2dvNV_index, tvb, *offsetp, 4, byte_order);
3177  *offsetp += 4;
3178  listOfDouble(tvb, offsetp, t, hf_x11_glx_render_VertexAttrib2dvNV_v, hf_x11_glx_render_VertexAttrib2dvNV_v_item, 2, byte_order);
3179 }
3180 
3181 static void mesa_VertexAttrib3dvNV(tvbuff_t *tvb, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
3182 {
3183  proto_tree_add_item(t, hf_x11_glx_render_VertexAttrib3dvNV_index, tvb, *offsetp, 4, byte_order);
3184  *offsetp += 4;
3185  listOfDouble(tvb, offsetp, t, hf_x11_glx_render_VertexAttrib3dvNV_v, hf_x11_glx_render_VertexAttrib3dvNV_v_item, 3, byte_order);
3186 }
3187 
3188 static void mesa_VertexAttrib4dvNV(tvbuff_t *tvb, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
3189 {
3190  proto_tree_add_item(t, hf_x11_glx_render_VertexAttrib4dvNV_index, tvb, *offsetp, 4, byte_order);
3191  *offsetp += 4;
3192  listOfDouble(tvb, offsetp, t, hf_x11_glx_render_VertexAttrib4dvNV_v, hf_x11_glx_render_VertexAttrib4dvNV_v_item, 4, byte_order);
3193 }
3194 
3195 static void mesa_VertexAttrib4ubvNV(tvbuff_t *tvb, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
3196 {
3197  proto_tree_add_item(t, hf_x11_glx_render_VertexAttrib4ubvNV_index, tvb, *offsetp, 4, byte_order);
3198  *offsetp += 4;
3199  listOfByte(tvb, offsetp, t, hf_x11_glx_render_VertexAttrib4ubvNV_v, 4, byte_order);
3200 }
3201 
3202 static void mesa_VertexAttribs1svNV(tvbuff_t *tvb, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
3203 {
3204  int n;
3205  proto_tree_add_item(t, hf_x11_glx_render_VertexAttribs1svNV_index, tvb, *offsetp, 4, byte_order);
3206  *offsetp += 4;
3207  n = tvb_get_guint32(tvb, *offsetp, byte_order);
3208  proto_tree_add_item(t, hf_x11_glx_render_VertexAttribs1svNV_n, tvb, *offsetp, 4, byte_order);
3209  *offsetp += 4;
3210  listOfInt16(tvb, offsetp, t, hf_x11_glx_render_VertexAttribs1svNV_v, hf_x11_glx_render_VertexAttribs1svNV_v_item, n, byte_order);
3211 }
3212 
3213 static void mesa_VertexAttribs2svNV(tvbuff_t *tvb, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
3214 {
3215  int n;
3216  proto_tree_add_item(t, hf_x11_glx_render_VertexAttribs2svNV_index, tvb, *offsetp, 4, byte_order);
3217  *offsetp += 4;
3218  n = tvb_get_guint32(tvb, *offsetp, byte_order);
3219  proto_tree_add_item(t, hf_x11_glx_render_VertexAttribs2svNV_n, tvb, *offsetp, 4, byte_order);
3220  *offsetp += 4;
3221  listOfInt16(tvb, offsetp, t, hf_x11_glx_render_VertexAttribs2svNV_v, hf_x11_glx_render_VertexAttribs2svNV_v_item, n, byte_order);
3222 }
3223 
3224 static void mesa_VertexAttribs3svNV(tvbuff_t *tvb, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
3225 {
3226  int n;
3227  proto_tree_add_item(t, hf_x11_glx_render_VertexAttribs3svNV_index, tvb, *offsetp, 4, byte_order);
3228  *offsetp += 4;
3229  n = tvb_get_guint32(tvb, *offsetp, byte_order);
3230  proto_tree_add_item(t, hf_x11_glx_render_VertexAttribs3svNV_n, tvb, *offsetp, 4, byte_order);
3231  *offsetp += 4;
3232  listOfInt16(tvb, offsetp, t, hf_x11_glx_render_VertexAttribs3svNV_v, hf_x11_glx_render_VertexAttribs3svNV_v_item, n, byte_order);
3233 }
3234 
3235 static void mesa_VertexAttribs4svNV(tvbuff_t *tvb, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
3236 {
3237  int n;
3238  proto_tree_add_item(t, hf_x11_glx_render_VertexAttribs4svNV_index, tvb, *offsetp, 4, byte_order);
3239  *offsetp += 4;
3240  n = tvb_get_guint32(tvb, *offsetp, byte_order);
3241  proto_tree_add_item(t, hf_x11_glx_render_VertexAttribs4svNV_n, tvb, *offsetp, 4, byte_order);
3242  *offsetp += 4;
3243  listOfInt16(tvb, offsetp, t, hf_x11_glx_render_VertexAttribs4svNV_v, hf_x11_glx_render_VertexAttribs4svNV_v_item, n, byte_order);
3244 }
3245 
3246 static void mesa_VertexAttribs1fvNV(tvbuff_t *tvb, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
3247 {
3248  int n;
3249  proto_tree_add_item(t, hf_x11_glx_render_VertexAttribs1fvNV_index, tvb, *offsetp, 4, byte_order);
3250  *offsetp += 4;
3251  n = tvb_get_guint32(tvb, *offsetp, byte_order);
3252  proto_tree_add_item(t, hf_x11_glx_render_VertexAttribs1fvNV_n, tvb, *offsetp, 4, byte_order);
3253  *offsetp += 4;
3254  listOfFloat(tvb, offsetp, t, hf_x11_glx_render_VertexAttribs1fvNV_v, hf_x11_glx_render_VertexAttribs1fvNV_v_item, n, byte_order);
3255 }
3256 
3257 static void mesa_VertexAttribs2fvNV(tvbuff_t *tvb, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
3258 {
3259  int n;
3260  proto_tree_add_item(t, hf_x11_glx_render_VertexAttribs2fvNV_index, tvb, *offsetp, 4, byte_order);
3261  *offsetp += 4;
3262  n = tvb_get_guint32(tvb, *offsetp, byte_order);
3263  proto_tree_add_item(t, hf_x11_glx_render_VertexAttribs2fvNV_n, tvb, *offsetp, 4, byte_order);
3264  *offsetp += 4;
3265  listOfFloat(tvb, offsetp, t, hf_x11_glx_render_VertexAttribs2fvNV_v, hf_x11_glx_render_VertexAttribs2fvNV_v_item, n, byte_order);
3266 }
3267 
3268 static void mesa_VertexAttribs3fvNV(tvbuff_t *tvb, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
3269 {
3270  int n;
3271  proto_tree_add_item(t, hf_x11_glx_render_VertexAttribs3fvNV_index, tvb, *offsetp, 4, byte_order);
3272  *offsetp += 4;
3273  n = tvb_get_guint32(tvb, *offsetp, byte_order);
3274  proto_tree_add_item(t, hf_x11_glx_render_VertexAttribs3fvNV_n, tvb, *offsetp, 4, byte_order);
3275  *offsetp += 4;
3276  listOfFloat(tvb, offsetp, t, hf_x11_glx_render_VertexAttribs3fvNV_v, hf_x11_glx_render_VertexAttribs3fvNV_v_item, n, byte_order);
3277 }
3278 
3279 static void mesa_VertexAttribs4fvNV(tvbuff_t *tvb, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
3280 {
3281  int n;
3282  proto_tree_add_item(t, hf_x11_glx_render_VertexAttribs4fvNV_index, tvb, *offsetp, 4, byte_order);
3283  *offsetp += 4;
3284  n = tvb_get_guint32(tvb, *offsetp, byte_order);
3285  proto_tree_add_item(t, hf_x11_glx_render_VertexAttribs4fvNV_n, tvb, *offsetp, 4, byte_order);
3286  *offsetp += 4;
3287  listOfFloat(tvb, offsetp, t, hf_x11_glx_render_VertexAttribs4fvNV_v, hf_x11_glx_render_VertexAttribs4fvNV_v_item, n, byte_order);
3288 }
3289 
3290 static void mesa_VertexAttribs1dvNV(tvbuff_t *tvb, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
3291 {
3292  int n;
3293  proto_tree_add_item(t, hf_x11_glx_render_VertexAttribs1dvNV_index, tvb, *offsetp, 4, byte_order);
3294  *offsetp += 4;
3295  n = tvb_get_guint32(tvb, *offsetp, byte_order);
3296  proto_tree_add_item(t, hf_x11_glx_render_VertexAttribs1dvNV_n, tvb, *offsetp, 4, byte_order);
3297  *offsetp += 4;
3298  listOfDouble(tvb, offsetp, t, hf_x11_glx_render_VertexAttribs1dvNV_v, hf_x11_glx_render_VertexAttribs1dvNV_v_item, n, byte_order);
3299 }
3300 
3301 static void mesa_VertexAttribs2dvNV(tvbuff_t *tvb, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
3302 {
3303  int n;
3304  proto_tree_add_item(t, hf_x11_glx_render_VertexAttribs2dvNV_index, tvb, *offsetp, 4, byte_order);
3305  *offsetp += 4;
3306  n = tvb_get_guint32(tvb, *offsetp, byte_order);
3307  proto_tree_add_item(t, hf_x11_glx_render_VertexAttribs2dvNV_n, tvb, *offsetp, 4, byte_order);
3308  *offsetp += 4;
3309  listOfDouble(tvb, offsetp, t, hf_x11_glx_render_VertexAttribs2dvNV_v, hf_x11_glx_render_VertexAttribs2dvNV_v_item, n, byte_order);
3310 }
3311 
3312 static void mesa_VertexAttribs3dvNV(tvbuff_t *tvb, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
3313 {
3314  int n;
3315  proto_tree_add_item(t, hf_x11_glx_render_VertexAttribs3dvNV_index, tvb, *offsetp, 4, byte_order);
3316  *offsetp += 4;
3317  n = tvb_get_guint32(tvb, *offsetp, byte_order);
3318  proto_tree_add_item(t, hf_x11_glx_render_VertexAttribs3dvNV_n, tvb, *offsetp, 4, byte_order);
3319  *offsetp += 4;
3320  listOfDouble(tvb, offsetp, t, hf_x11_glx_render_VertexAttribs3dvNV_v, hf_x11_glx_render_VertexAttribs3dvNV_v_item, n, byte_order);
3321 }
3322 
3323 static void mesa_VertexAttribs4dvNV(tvbuff_t *tvb, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
3324 {
3325  int n;
3326  proto_tree_add_item(t, hf_x11_glx_render_VertexAttribs4dvNV_index, tvb, *offsetp, 4, byte_order);
3327  *offsetp += 4;
3328  n = tvb_get_guint32(tvb, *offsetp, byte_order);
3329  proto_tree_add_item(t, hf_x11_glx_render_VertexAttribs4dvNV_n, tvb, *offsetp, 4, byte_order);
3330  *offsetp += 4;
3331  listOfDouble(tvb, offsetp, t, hf_x11_glx_render_VertexAttribs4dvNV_v, hf_x11_glx_render_VertexAttribs4dvNV_v_item, n, byte_order);
3332 }
3333 
3334 static void mesa_VertexAttribs4ubvNV(tvbuff_t *tvb, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
3335 {
3336  int n;
3337  proto_tree_add_item(t, hf_x11_glx_render_VertexAttribs4ubvNV_index, tvb, *offsetp, 4, byte_order);
3338  *offsetp += 4;
3339  n = tvb_get_guint32(tvb, *offsetp, byte_order);
3340  proto_tree_add_item(t, hf_x11_glx_render_VertexAttribs4ubvNV_n, tvb, *offsetp, 4, byte_order);
3341  *offsetp += 4;
3342  listOfByte(tvb, offsetp, t, hf_x11_glx_render_VertexAttribs4ubvNV_v, n, byte_order);
3343 }
3344 
3345 static void mesa_ActiveStencilFaceEXT(tvbuff_t *tvb, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
3346 {
3347  proto_tree_add_item(t, hf_x11_glx_render_ActiveStencilFaceEXT_face, tvb, *offsetp, 4, byte_order);
3348  *offsetp += 4;
3349 }
3350 
3351 static void mesa_ProgramNamedParameter4fvNV(tvbuff_t *tvb, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
3352 {
3353  int len;
3354  proto_tree_add_item(t, hf_x11_glx_render_ProgramNamedParameter4fvNV_id, tvb, *offsetp, 4, byte_order);
3355  *offsetp += 4;
3356  len = tvb_get_guint32(tvb, *offsetp, byte_order);
3357  proto_tree_add_item(t, hf_x11_glx_render_ProgramNamedParameter4fvNV_len, tvb, *offsetp, 4, byte_order);
3358  *offsetp += 4;
3359  listOfByte(tvb, offsetp, t, hf_x11_glx_render_ProgramNamedParameter4fvNV_name, len, byte_order);
3360  listOfFloat(tvb, offsetp, t, hf_x11_glx_render_ProgramNamedParameter4fvNV_v, hf_x11_glx_render_ProgramNamedParameter4fvNV_v_item, 4, byte_order);
3361 }
3362 
3363 static void mesa_ProgramNamedParameter4dvNV(tvbuff_t *tvb, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
3364 {
3365  int len;
3366  proto_tree_add_item(t, hf_x11_glx_render_ProgramNamedParameter4dvNV_id, tvb, *offsetp, 4, byte_order);
3367  *offsetp += 4;
3368  len = tvb_get_guint32(tvb, *offsetp, byte_order);
3369  proto_tree_add_item(t, hf_x11_glx_render_ProgramNamedParameter4dvNV_len, tvb, *offsetp, 4, byte_order);
3370  *offsetp += 4;
3371  listOfByte(tvb, offsetp, t, hf_x11_glx_render_ProgramNamedParameter4dvNV_name, len, byte_order);
3372  listOfDouble(tvb, offsetp, t, hf_x11_glx_render_ProgramNamedParameter4dvNV_v, hf_x11_glx_render_ProgramNamedParameter4dvNV_v_item, 4, byte_order);
3373 }
3374 
3375 static void mesa_DepthBoundsEXT(tvbuff_t *tvb, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
3376 {
3377  proto_tree_add_item(t, hf_x11_glx_render_DepthBoundsEXT_zmin, tvb, *offsetp, 8, byte_order);
3378  *offsetp += 8;
3379  proto_tree_add_item(t, hf_x11_glx_render_DepthBoundsEXT_zmax, tvb, *offsetp, 8, byte_order);
3380  *offsetp += 8;
3381 }
3382 
3383 static const value_string glx_render_op_name[] = {
3384  { 1, "glCallList" },
3385  { 2, "glCallLists" },
3386  { 3, "glListBase" },
3387  { 4, "glBegin" },
3388  { 5, "glBitmap" },
3389  { 6, "glColor3bv" },
3390  { 7, "glColor3dv" },
3391  { 8, "glColor3fv" },
3392  { 9, "glColor3iv" },
3393  { 10, "glColor3sv" },
3394  { 11, "glColor3ubv" },
3395  { 12, "glColor3uiv" },
3396  { 13, "glColor3usv" },
3397  { 14, "glColor4bv" },
3398  { 15, "glColor4dv" },
3399  { 16, "glColor4fv" },
3400  { 17, "glColor4iv" },
3401  { 18, "glColor4sv" },
3402  { 19, "glColor4ubv" },
3403  { 20, "glColor4uiv" },
3404  { 21, "glColor4usv" },
3405  { 22, "glEdgeFlagv" },
3406  { 23, "glEnd" },
3407  { 24, "glIndexdv" },
3408  { 25, "glIndexfv" },
3409  { 26, "glIndexiv" },
3410  { 27, "glIndexsv" },
3411  { 28, "glNormal3bv" },
3412  { 29, "glNormal3dv" },
3413  { 30, "glNormal3fv" },
3414  { 31, "glNormal3iv" },
3415  { 32, "glNormal3sv" },
3416  { 33, "glRasterPos2dv" },
3417  { 34, "glRasterPos2fv" },
3418  { 35, "glRasterPos2iv" },
3419  { 36, "glRasterPos2sv" },
3420  { 37, "glRasterPos3dv" },
3421  { 38, "glRasterPos3fv" },
3422  { 39, "glRasterPos3iv" },
3423  { 40, "glRasterPos3sv" },
3424  { 41, "glRasterPos4dv" },
3425  { 42, "glRasterPos4fv" },
3426  { 43, "glRasterPos4iv" },
3427  { 44, "glRasterPos4sv" },
3428  { 45, "glRectdv" },
3429  { 46, "glRectfv" },
3430  { 47, "glRectiv" },
3431  { 48, "glRectsv" },
3432  { 49, "glTexCoord1dv" },
3433  { 50, "glTexCoord1fv" },
3434  { 51, "glTexCoord1iv" },
3435  { 52, "glTexCoord1sv" },
3436  { 53, "glTexCoord2dv" },
3437  { 54, "glTexCoord2fv" },
3438  { 55, "glTexCoord2iv" },
3439  { 56, "glTexCoord2sv" },
3440  { 57, "glTexCoord3dv" },
3441  { 58, "glTexCoord3fv" },
3442  { 59, "glTexCoord3iv" },
3443  { 60, "glTexCoord3sv" },
3444  { 61, "glTexCoord4dv" },
3445  { 62, "glTexCoord4fv" },
3446  { 63, "glTexCoord4iv" },
3447  { 64, "glTexCoord4sv" },
3448  { 65, "glVertex2dv" },
3449  { 66, "glVertex2fv" },
3450  { 67, "glVertex2iv" },
3451  { 68, "glVertex2sv" },
3452  { 69, "glVertex3dv" },
3453  { 70, "glVertex3fv" },
3454  { 71, "glVertex3iv" },
3455  { 72, "glVertex3sv" },
3456  { 73, "glVertex4dv" },
3457  { 74, "glVertex4fv" },
3458  { 75, "glVertex4iv" },
3459  { 76, "glVertex4sv" },
3460  { 77, "glClipPlane" },
3461  { 78, "glColorMaterial" },
3462  { 79, "glCullFace" },
3463  { 80, "glFogf" },
3464  { 81, "glFogfv" },
3465  { 82, "glFogi" },
3466  { 83, "glFogiv" },
3467  { 84, "glFrontFace" },
3468  { 85, "glHint" },
3469  { 86, "glLightf" },
3470  { 87, "glLightfv" },
3471  { 88, "glLighti" },
3472  { 89, "glLightiv" },
3473  { 90, "glLightModelf" },
3474  { 91, "glLightModelfv" },
3475  { 92, "glLightModeli" },
3476  { 93, "glLightModeliv" },
3477  { 94, "glLineStipple" },
3478  { 95, "glLineWidth" },
3479  { 96, "glMaterialf" },
3480  { 97, "glMaterialfv" },
3481  { 98, "glMateriali" },
3482  { 99, "glMaterialiv" },
3483  { 100, "glPointSize" },
3484  { 101, "glPolygonMode" },
3485  { 102, "glPolygonStipple" },
3486  { 103, "glScissor" },
3487  { 104, "glShadeModel" },
3488  { 105, "glTexParameterf" },
3489  { 106, "glTexParameterfv" },
3490  { 107, "glTexParameteri" },
3491  { 108, "glTexParameteriv" },
3492  { 109, "glTexImage1D" },
3493  { 110, "glTexImage2D" },
3494  { 111, "glTexEnvf" },
3495  { 112, "glTexEnvfv" },
3496  { 113, "glTexEnvi" },
3497  { 114, "glTexEnviv" },
3498  { 115, "glTexGend" },
3499  { 116, "glTexGendv" },
3500  { 117, "glTexGenf" },
3501  { 118, "glTexGenfv" },
3502  { 119, "glTexGeni" },
3503  { 120, "glTexGeniv" },
3504  { 121, "glInitNames" },
3505  { 122, "glLoadName" },
3506  { 123, "glPassThrough" },
3507  { 124, "glPopName" },
3508  { 125, "glPushName" },
3509  { 126, "glDrawBuffer" },
3510  { 127, "glClear" },
3511  { 128, "glClearAccum" },
3512  { 129, "glClearIndex" },
3513  { 130, "glClearColor" },
3514  { 131, "glClearStencil" },
3515  { 132, "glClearDepth" },
3516  { 133, "glStencilMask" },
3517  { 134, "glColorMask" },
3518  { 135, "glDepthMask" },
3519  { 136, "glIndexMask" },
3520  { 137, "glAccum" },
3521  { 138, "glDisable" },
3522  { 139, "glEnable" },
3523  { 141, "glPopAttrib" },
3524  { 142, "glPushAttrib" },
3525  { 143, "glMap1d" },
3526  { 144, "glMap1f" },
3527  { 145, "glMap2d" },
3528  { 146, "glMap2f" },
3529  { 147, "glMapGrid1d" },
3530  { 148, "glMapGrid1f" },
3531  { 149, "glMapGrid2d" },
3532  { 150, "glMapGrid2f" },
3533  { 151, "glEvalCoord1dv" },
3534  { 152, "glEvalCoord1fv" },
3535  { 153, "glEvalCoord2dv" },
3536  { 154, "glEvalCoord2fv" },
3537  { 155, "glEvalMesh1" },
3538  { 156, "glEvalPoint1" },
3539  { 157, "glEvalMesh2" },
3540  { 158, "glEvalPoint2" },
3541  { 159, "glAlphaFunc" },
3542  { 160, "glBlendFunc" },
3543  { 161, "glLogicOp" },
3544  { 162, "glStencilFunc" },
3545  { 163, "glStencilOp" },
3546  { 164, "glDepthFunc" },
3547  { 165, "glPixelZoom" },
3548  { 166, "glPixelTransferf" },
3549  { 167, "glPixelTransferi" },
3550  { 168, "glPixelMapfv" },
3551  { 169, "glPixelMapuiv" },
3552  { 170, "glPixelMapusv" },
3553  { 171, "glReadBuffer" },
3554  { 172, "glCopyPixels" },
3555  { 173, "glDrawPixels" },
3556  { 174, "glDepthRange" },
3557  { 175, "glFrustum" },
3558  { 176, "glLoadIdentity" },
3559  { 177, "glLoadMatrixf" },
3560  { 178, "glLoadMatrixd" },
3561  { 179, "glMatrixMode" },
3562  { 180, "glMultMatrixf" },
3563  { 181, "glMultMatrixd" },
3564  { 182, "glOrtho" },
3565  { 183, "glPopMatrix" },
3566  { 184, "glPushMatrix" },
3567  { 185, "glRotated" },
3568  { 186, "glRotatef" },
3569  { 187, "glScaled" },
3570  { 188, "glScalef" },
3571  { 189, "glTranslated" },
3572  { 190, "glTranslatef" },
3573  { 191, "glViewport" },
3574  { 192, "glPolygonOffset" },
3575  { 193, "glDrawArrays" },
3576  { 194, "glIndexubv" },
3577  { 195, "glColorSubTable" },
3578  { 196, "glCopyColorSubTable" },
3579  { 197, "glActiveTexture" },
3580  { 198, "glMultiTexCoord1dv" },
3581  { 199, "glMultiTexCoord1fvARB" },
3582  { 200, "glMultiTexCoord1iv" },
3583  { 201, "glMultiTexCoord1sv" },
3584  { 202, "glMultiTexCoord2dv" },
3585  { 203, "glMultiTexCoord2fvARB" },
3586  { 204, "glMultiTexCoord2iv" },
3587  { 205, "glMultiTexCoord2sv" },
3588  { 206, "glMultiTexCoord3dv" },
3589  { 207, "glMultiTexCoord3fvARB" },
3590  { 208, "glMultiTexCoord3iv" },
3591  { 209, "glMultiTexCoord3sv" },
3592  { 210, "glMultiTexCoord4dv" },
3593  { 211, "glMultiTexCoord4fvARB" },
3594  { 212, "glMultiTexCoord4iv" },
3595  { 213, "glMultiTexCoord4sv" },
3596  { 214, "glCompressedTexImage1D" },
3597  { 215, "glCompressedTexImage2D" },
3598  { 216, "glCompressedTexImage3D" },
3599  { 217, "glCompressedTexSubImage1D" },
3600  { 218, "glCompressedTexSubImage2D" },
3601  { 219, "glCompressedTexSubImage3D" },
3602  { 229, "glSampleCoverage" },
3603  { 230, "glWindowPos3fv" },
3604  { 231, "glBeginQuery" },
3605  { 232, "glEndQuery" },
3606  { 233, "glDrawBuffers" },
3607  { 2048, "glSampleMaskSGIS" },
3608  { 2049, "glSamplePatternSGIS" },
3609  { 2050, "glTagSampleBufferSGIX" },
3610  { 2051, "glDetailTexFuncSGIS" },
3611  { 2052, "glSharpenTexFuncSGIS" },
3612  { 2053, "glColorTable" },
3613  { 2054, "glColorTableParameterfv" },
3614  { 2055, "glColorTableParameteriv" },
3615  { 2056, "glCopyColorTable" },
3616  { 2057, "glTexImage4DSGIS" },
3617  { 2058, "glTexSubImage4DSGIS" },
3618  { 2059, "glPixelTexGenSGIX" },
3619  { 2064, "glTexFilterFuncSGIS" },
3620  { 2065, "glPointParameterf" },
3621  { 2066, "glPointParameterfv" },
3622  { 2067, "glFogFuncSGIS" },
3623  { 2071, "glReferencePlaneSGIX" },
3624  { 2072, "glFrameZoomSGIX" },
3625  { 2082, "glTextureColorMaskSGIS" },
3626  { 4096, "glBlendColor" },
3627  { 4097, "glBlendEquation" },
3628  { 4099, "glTexSubImage1D" },
3629  { 4100, "glTexSubImage2D" },
3630  { 4101, "glConvolutionFilter1D" },
3631  { 4102, "glConvolutionFilter2D" },
3632  { 4103, "glConvolutionParameterf" },
3633  { 4104, "glConvolutionParameterfv" },
3634  { 4105, "glConvolutionParameteri" },
3635  { 4106, "glConvolutionParameteriv" },
3636  { 4107, "glCopyConvolutionFilter1D" },
3637  { 4108, "glCopyConvolutionFilter2D" },
3638  { 4109, "glSeparableFilter2D" },
3639  { 4110, "glHistogram" },
3640  { 4111, "glMinmax" },
3641  { 4112, "glResetHistogram" },
3642  { 4113, "glResetMinmax" },
3643  { 4114, "glTexImage3D" },
3644  { 4115, "glTexSubImage3D" },
3645  { 4117, "glBindTexture" },
3646  { 4118, "glPrioritizeTextures" },
3647  { 4119, "glCopyTexImage1D" },
3648  { 4120, "glCopyTexImage2D" },
3649  { 4121, "glCopyTexSubImage1D" },
3650  { 4122, "glCopyTexSubImage2D" },
3651  { 4123, "glCopyTexSubImage3D" },
3652  { 4124, "glFogCoordfvEXT" },
3653  { 4125, "glFogCoorddv" },
3654  { 4126, "glSecondaryColor3bv" },
3655  { 4127, "glSecondaryColor3sv" },
3656  { 4128, "glSecondaryColor3iv" },
3657  { 4129, "glSecondaryColor3fvEXT" },
3658  { 4130, "glSecondaryColor3dv" },
3659  { 4131, "glSecondaryColor3ubv" },
3660  { 4132, "glSecondaryColor3usv" },
3661  { 4133, "glSecondaryColor3uiv" },
3662  { 4134, "glBlendFuncSeparate" },
3663  { 4135, "glVertexWeightfvEXT" },
3664  { 4136, "glCombinerParameterfNV" },
3665  { 4137, "glCombinerParameterfvNV" },
3666  { 4138, "glCombinerParameteriNV" },
3667  { 4139, "glCombinerParameterivNV" },
3668  { 4140, "glCombinerInputNV" },
3669  { 4141, "glCombinerOutputNV" },
3670  { 4142, "glFinalCombinerInputNV" },
3671  { 4180, "glBindProgramARB" },
3672  { 4181, "glExecuteProgramNV" },
3673  { 4182, "glRequestResidentProgramsNV" },
3674  { 4183, "glLoadProgramNV" },
3675  { 4184, "glProgramEnvParameter4fvARB" },
3676  { 4185, "glProgramEnvParameter4dvARB" },
3677  { 4186, "glProgramParameters4fvNV" },
3678  { 4187, "glProgramParameters4dvNV" },
3679  { 4188, "glTrackMatrixNV" },
3680  { 4189, "glVertexAttrib1sv" },
3681  { 4190, "glVertexAttrib2sv" },
3682  { 4191, "glVertexAttrib3sv" },
3683  { 4192, "glVertexAttrib4sv" },
3684  { 4193, "glVertexAttrib1fvARB" },
3685  { 4194, "glVertexAttrib2fvARB" },
3686  { 4195, "glVertexAttrib3fvARB" },
3687  { 4196, "glVertexAttrib4fvARB" },
3688  { 4197, "glVertexAttrib1dv" },
3689  { 4198, "glVertexAttrib2dv" },
3690  { 4199, "glVertexAttrib3dv" },
3691  { 4200, "glVertexAttrib4dv" },
3692  { 4201, "glVertexAttrib4Nubv" },
3693  { 4202, "glVertexAttribs1svNV" },
3694  { 4203, "glVertexAttribs2svNV" },
3695  { 4204, "glVertexAttribs3svNV" },
3696  { 4205, "glVertexAttribs4svNV" },
3697  { 4206, "glVertexAttribs1fvNV" },
3698  { 4207, "glVertexAttribs2fvNV" },
3699  { 4208, "glVertexAttribs3fvNV" },
3700  { 4209, "glVertexAttribs4fvNV" },
3701  { 4210, "glVertexAttribs1dvNV" },
3702  { 4211, "glVertexAttribs2dvNV" },
3703  { 4212, "glVertexAttribs3dvNV" },
3704  { 4213, "glVertexAttribs4dvNV" },
3705  { 4214, "glVertexAttribs4ubvNV" },
3706  { 4215, "glProgramLocalParameter4fvARB" },
3707  { 4216, "glProgramLocalParameter4dvARB" },
3708  { 4217, "glProgramStringARB" },
3709  { 4218, "glProgramNamedParameter4fvNV" },
3710  { 4219, "glProgramNamedParameter4dvNV" },
3711  { 4220, "glActiveStencilFaceEXT" },
3712  { 4221, "glPointParameteri" },
3713  { 4222, "glPointParameteriv" },
3714  { 4228, "glBlendEquationSeparate" },
3715  { 4229, "glDepthBoundsEXT" },
3716  { 4230, "glVertexAttrib4bv" },
3717  { 4231, "glVertexAttrib4iv" },
3718  { 4232, "glVertexAttrib4ubv" },
3719  { 4233, "glVertexAttrib4usv" },
3720  { 4234, "glVertexAttrib4uiv" },
3721  { 4235, "glVertexAttrib4Nbv" },
3722  { 4236, "glVertexAttrib4Nsv" },
3723  { 4237, "glVertexAttrib4Niv" },
3724  { 4238, "glVertexAttrib4Nusv" },
3725  { 4239, "glVertexAttrib4Nuiv" },
3726  { 4265, "glVertexAttrib1svNV" },
3727  { 4266, "glVertexAttrib2svNV" },
3728  { 4267, "glVertexAttrib3svNV" },
3729  { 4268, "glVertexAttrib4svNV" },
3730  { 4269, "glVertexAttrib1fvNV" },
3731  { 4270, "glVertexAttrib2fvNV" },
3732  { 4271, "glVertexAttrib3fvNV" },
3733  { 4272, "glVertexAttrib4fvNV" },
3734  { 4273, "glVertexAttrib1dvNV" },
3735  { 4274, "glVertexAttrib2dvNV" },
3736  { 4275, "glVertexAttrib3dvNV" },
3737  { 4276, "glVertexAttrib4dvNV" },
3738  { 4277, "glVertexAttrib4ubvNV" },
3739  { 4326, "glMatrixIndexubvARB" },
3740  { 4327, "glMatrixIndexusvARB" },
3741  { 4328, "glMatrixIndexuivARB" },
3742  { 4329, "glCurrentPaletteMatrixARB" },
3743  { 0, NULL }
3744 };
3745 static value_string_ext mesa_enum_ext = VALUE_STRING_EXT_INIT(mesa_enum);
3746 
3747 static void dispatch_glx_render(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order, int length)
3748 {
3749  while (length >= 4) {
3750  guint32 op, len;
3751  int next;
3752  proto_item *ti;
3753  proto_tree *tt;
3754 
3755  len = tvb_get_guint16(tvb, *offsetp, byte_order);
3756 
3757  op = tvb_get_guint16(tvb, *offsetp + 2, byte_order);
3758  ti = proto_tree_add_uint(t, hf_x11_glx_render_op_name, tvb, *offsetp, len, op);
3759 
3760  tt = proto_item_add_subtree(ti, ett_x11_list_of_rectangle);
3761 
3762  ti = proto_tree_add_item(tt, hf_x11_request_length, tvb, *offsetp, 2, byte_order);
3763  *offsetp += 2;
3764  proto_tree_add_item(tt, hf_x11_glx_render_op_name, tvb, *offsetp, 2, byte_order);
3765  *offsetp += 2;
3766 
3767  if (len < 4) {
3768  expert_add_info(pinfo, ti, &ei_x11_request_length);
3769  /* Eat the rest of the packet, mark it undecoded */
3770  len = length;
3771  op = -1;
3772  }
3773  len -= 4;
3774 
3775  next = *offsetp + len;
3776 
3777  switch (op) {
3778  case 1:
3779  mesa_CallList(tvb, offsetp, tt, byte_order, len);
3780  break;
3781  case 2:
3782  mesa_CallLists(tvb, offsetp, tt, byte_order, len);
3783  break;
3784  case 3:
3785  mesa_ListBase(tvb, offsetp, tt, byte_order, len);
3786  break;
3787  case 4:
3788  mesa_Begin(tvb, offsetp, tt, byte_order, len);
3789  break;
3790  case 5:
3791  mesa_Bitmap(tvb, offsetp, tt, byte_order, len);
3792  break;
3793  case 6:
3794  mesa_Color3bv(tvb, offsetp, tt, byte_order, len);
3795  break;
3796  case 7:
3797  mesa_Color3dv(tvb, offsetp, tt, byte_order, len);
3798  break;
3799  case 8:
3800  mesa_Color3fv(tvb, offsetp, tt, byte_order, len);
3801  break;
3802  case 9:
3803  mesa_Color3iv(tvb, offsetp, tt, byte_order, len);
3804  break;
3805  case 10:
3806  mesa_Color3sv(tvb, offsetp, tt, byte_order, len);
3807  break;
3808  case 11:
3809  mesa_Color3ubv(tvb, offsetp, tt, byte_order, len);
3810  break;
3811  case 12:
3812  mesa_Color3uiv(tvb, offsetp, tt, byte_order, len);
3813  break;
3814  case 13:
3815  mesa_Color3usv(tvb, offsetp, tt, byte_order, len);
3816  break;
3817  case 14:
3818  mesa_Color4bv(tvb, offsetp, tt, byte_order, len);
3819  break;
3820  case 15:
3821  mesa_Color4dv(tvb, offsetp, tt, byte_order, len);
3822  break;
3823  case 16:
3824  mesa_Color4fv(tvb, offsetp, tt, byte_order, len);
3825  break;
3826  case 17:
3827  mesa_Color4iv(tvb, offsetp, tt, byte_order, len);
3828  break;
3829  case 18:
3830  mesa_Color4sv(tvb, offsetp, tt, byte_order, len);
3831  break;
3832  case 19:
3833  mesa_Color4ubv(tvb, offsetp, tt, byte_order, len);
3834  break;
3835  case 20:
3836  mesa_Color4uiv(tvb, offsetp, tt, byte_order, len);
3837  break;
3838  case 21:
3839  mesa_Color4usv(tvb, offsetp, tt, byte_order, len);
3840  break;
3841  case 22:
3842  mesa_EdgeFlagv(tvb, offsetp, tt, byte_order, len);
3843  break;
3844  case 23:
3845  mesa_End(tvb, offsetp, tt, byte_order, len);
3846  break;
3847  case 24:
3848  mesa_Indexdv(tvb, offsetp, tt, byte_order, len);
3849  break;
3850  case 25:
3851  mesa_Indexfv(tvb, offsetp, tt, byte_order, len);
3852  break;
3853  case 26:
3854  mesa_Indexiv(tvb, offsetp, tt, byte_order, len);
3855  break;
3856  case 27:
3857  mesa_Indexsv(tvb, offsetp, tt, byte_order, len);
3858  break;
3859  case 28:
3860  mesa_Normal3bv(tvb, offsetp, tt, byte_order, len);
3861  break;
3862  case 29:
3863  mesa_Normal3dv(tvb, offsetp, tt, byte_order, len);
3864  break;
3865  case 30:
3866  mesa_Normal3fv(tvb, offsetp, tt, byte_order, len);
3867  break;
3868  case 31:
3869  mesa_Normal3iv(tvb, offsetp, tt, byte_order, len);
3870  break;
3871  case 32:
3872  mesa_Normal3sv(tvb, offsetp, tt, byte_order, len);
3873  break;
3874  case 33:
3875  mesa_RasterPos2dv(tvb, offsetp, tt, byte_order, len);
3876  break;
3877  case 34:
3878  mesa_RasterPos2fv(tvb, offsetp, tt, byte_order, len);
3879  break;
3880  case 35:
3881  mesa_RasterPos2iv(tvb, offsetp, tt, byte_order, len);
3882  break;
3883  case 36:
3884  mesa_RasterPos2sv(tvb, offsetp, tt, byte_order, len);
3885  break;
3886  case 37:
3887  mesa_RasterPos3dv(tvb, offsetp, tt, byte_order, len);
3888  break;
3889  case 38:
3890  mesa_RasterPos3fv(tvb, offsetp, tt, byte_order, len);
3891  break;
3892  case 39:
3893  mesa_RasterPos3iv(tvb, offsetp, tt, byte_order, len);
3894  break;
3895  case 40:
3896  mesa_RasterPos3sv(tvb, offsetp, tt, byte_order, len);
3897  break;
3898  case 41:
3899  mesa_RasterPos4dv(tvb, offsetp, tt, byte_order, len);
3900  break;
3901  case 42:
3902  mesa_RasterPos4fv(tvb, offsetp, tt, byte_order, len);
3903  break;
3904  case 43:
3905  mesa_RasterPos4iv(tvb, offsetp, tt, byte_order, len);
3906  break;
3907  case 44:
3908  mesa_RasterPos4sv(tvb, offsetp, tt, byte_order, len);
3909  break;
3910  case 45:
3911  mesa_Rectdv(tvb, offsetp, tt, byte_order, len);
3912  break;
3913  case 46:
3914  mesa_Rectfv(tvb, offsetp, tt, byte_order, len);
3915  break;
3916  case 47:
3917  mesa_Rectiv(tvb, offsetp, tt, byte_order, len);
3918  break;
3919  case 48:
3920  mesa_Rectsv(tvb, offsetp, tt, byte_order, len);
3921  break;
3922  case 49:
3923  mesa_TexCoord1dv(tvb, offsetp, tt, byte_order, len);
3924  break;
3925  case 50:
3926  mesa_TexCoord1fv(tvb, offsetp, tt, byte_order, len);
3927  break;
3928  case 51:
3929  mesa_TexCoord1iv(tvb, offsetp, tt, byte_order, len);
3930  break;
3931  case 52:
3932  mesa_TexCoord1sv(tvb, offsetp, tt, byte_order, len);
3933  break;
3934  case 53:
3935  mesa_TexCoord2dv(tvb, offsetp, tt, byte_order, len);
3936  break;
3937  case 54:
3938  mesa_TexCoord2fv(tvb, offsetp, tt, byte_order, len);
3939  break;
3940  case 55:
3941  mesa_TexCoord2iv(tvb, offsetp, tt, byte_order, len);
3942  break;
3943  case 56:
3944  mesa_TexCoord2sv(tvb, offsetp, tt, byte_order, len);
3945  break;
3946  case 57:
3947  mesa_TexCoord3dv(tvb, offsetp, tt, byte_order, len);
3948  break;
3949  case 58:
3950  mesa_TexCoord3fv(tvb, offsetp, tt, byte_order, len);
3951  break;
3952  case 59:
3953  mesa_TexCoord3iv(tvb, offsetp, tt, byte_order, len);
3954  break;
3955  case 60:
3956  mesa_TexCoord3sv(tvb, offsetp, tt, byte_order, len);
3957  break;
3958  case 61:
3959  mesa_TexCoord4dv(tvb, offsetp, tt, byte_order, len);
3960  break;
3961  case 62:
3962  mesa_TexCoord4fv(tvb, offsetp, tt, byte_order, len);
3963  break;
3964  case 63:
3965  mesa_TexCoord4iv(tvb, offsetp, tt, byte_order, len);
3966  break;
3967  case 64:
3968  mesa_TexCoord4sv(tvb, offsetp, tt, byte_order, len);
3969  break;
3970  case 65:
3971  mesa_Vertex2dv(tvb, offsetp, tt, byte_order, len);
3972  break;
3973  case 66:
3974  mesa_Vertex2fv(tvb, offsetp, tt, byte_order, len);
3975  break;
3976  case 67:
3977  mesa_Vertex2iv(tvb, offsetp, tt, byte_order, len);
3978  break;
3979  case 68:
3980  mesa_Vertex2sv(tvb, offsetp, tt, byte_order, len);
3981  break;
3982  case 69:
3983  mesa_Vertex3dv(tvb, offsetp, tt, byte_order, len);
3984  break;
3985  case 70:
3986  mesa_Vertex3fv(tvb, offsetp, tt, byte_order, len);
3987  break;
3988  case 71:
3989  mesa_Vertex3iv(tvb, offsetp, tt, byte_order, len);
3990  break;
3991  case 72:
3992  mesa_Vertex3sv(tvb, offsetp, tt, byte_order, len);
3993  break;
3994  case 73:
3995  mesa_Vertex4dv(tvb, offsetp, tt, byte_order, len);
3996  break;
3997  case 74:
3998  mesa_Vertex4fv(tvb, offsetp, tt, byte_order, len);
3999  break;
4000  case 75:
4001  mesa_Vertex4iv(tvb, offsetp, tt, byte_order, len);
4002  break;
4003  case 76:
4004  mesa_Vertex4sv(tvb, offsetp, tt, byte_order, len);
4005  break;
4006  case 77:
4007  mesa_ClipPlane(tvb, offsetp, tt, byte_order, len);
4008  break;
4009  case 78:
4010  mesa_ColorMaterial(tvb, offsetp, tt, byte_order, len);
4011  break;
4012  case 79:
4013  mesa_CullFace(tvb, offsetp, tt, byte_order, len);
4014  break;
4015  case 80:
4016  mesa_Fogf(tvb, offsetp, tt, byte_order, len);
4017  break;
4018  case 81:
4019  mesa_Fogfv(tvb, offsetp, tt, byte_order, len);
4020  break;
4021  case 82:
4022  mesa_Fogi(tvb, offsetp, tt, byte_order, len);
4023  break;
4024  case 83:
4025  mesa_Fogiv(tvb, offsetp, tt, byte_order, len);
4026  break;
4027  case 84:
4028  mesa_FrontFace(tvb, offsetp, tt, byte_order, len);
4029  break;
4030  case 85:
4031  mesa_Hint(tvb, offsetp, tt, byte_order, len);
4032  break;
4033  case 86:
4034  mesa_Lightf(tvb, offsetp, tt, byte_order, len);
4035  break;
4036  case 87:
4037  mesa_Lightfv(tvb, offsetp, tt, byte_order, len);
4038  break;
4039  case 88:
4040  mesa_Lighti(tvb, offsetp, tt, byte_order, len);
4041  break;
4042  case 89:
4043  mesa_Lightiv(tvb, offsetp, tt, byte_order, len);
4044  break;
4045  case 90:
4046  mesa_LightModelf(tvb, offsetp, tt, byte_order, len);
4047  break;
4048  case 91:
4049  mesa_LightModelfv(tvb, offsetp, tt, byte_order, len);
4050  break;
4051  case 92:
4052  mesa_LightModeli(tvb, offsetp, tt, byte_order, len);
4053  break;
4054  case 93:
4055  mesa_LightModeliv(tvb, offsetp, tt, byte_order, len);
4056  break;
4057  case 94:
4058  mesa_LineStipple(tvb, offsetp, tt, byte_order, len);
4059  break;
4060  case 95:
4061  mesa_LineWidth(tvb, offsetp, tt, byte_order, len);
4062  break;
4063  case 96:
4064  mesa_Materialf(tvb, offsetp, tt, byte_order, len);
4065  break;
4066  case 97:
4067  mesa_Materialfv(tvb, offsetp, tt, byte_order, len);
4068  break;
4069  case 98:
4070  mesa_Materiali(tvb, offsetp, tt, byte_order, len);
4071  break;
4072  case 99:
4073  mesa_Materialiv(tvb, offsetp, tt, byte_order, len);
4074  break;
4075  case 100:
4076  mesa_PointSize(tvb, offsetp, tt, byte_order, len);
4077  break;
4078  case 101:
4079  mesa_PolygonMode(tvb, offsetp, tt, byte_order, len);
4080  break;
4081  case 102:
4082  mesa_PolygonStipple(tvb, offsetp, tt, byte_order, len);
4083  break;
4084  case 103:
4085  mesa_Scissor(tvb, offsetp, tt, byte_order, len);
4086  break;
4087  case 104:
4088  mesa_ShadeModel(tvb, offsetp, tt, byte_order, len);
4089  break;
4090  case 105:
4091  mesa_TexParameterf(tvb, offsetp, tt, byte_order, len);
4092  break;
4093  case 106:
4094  mesa_TexParameterfv(tvb, offsetp, tt, byte_order, len);
4095  break;
4096  case 107:
4097  mesa_TexParameteri(tvb, offsetp, tt, byte_order, len);
4098  break;
4099  case 108:
4100  mesa_TexParameteriv(tvb, offsetp, tt, byte_order, len);
4101  break;
4102  case 109:
4103  mesa_TexImage1D(tvb, offsetp, tt, byte_order, len);
4104  break;
4105  case 110:
4106  mesa_TexImage2D(tvb, offsetp, tt, byte_order, len);
4107  break;
4108  case 111:
4109  mesa_TexEnvf(tvb, offsetp, tt, byte_order, len);
4110  break;
4111  case 112:
4112  mesa_TexEnvfv(tvb, offsetp, tt, byte_order, len);
4113  break;
4114  case 113:
4115  mesa_TexEnvi(tvb, offsetp, tt, byte_order, len);
4116  break;
4117  case 114:
4118  mesa_TexEnviv(tvb, offsetp, tt, byte_order, len);
4119  break;
4120  case 115:
4121  mesa_TexGend(tvb, offsetp, tt, byte_order, len);
4122  break;
4123  case 116:
4124  mesa_TexGendv(tvb, offsetp, tt, byte_order, len);
4125  break;
4126  case 117:
4127  mesa_TexGenf(tvb, offsetp, tt, byte_order, len);
4128  break;
4129  case 118:
4130  mesa_TexGenfv(tvb, offsetp, tt, byte_order, len);
4131  break;
4132  case 119:
4133  mesa_TexGeni(tvb, offsetp, tt, byte_order, len);
4134  break;
4135  case 120:
4136  mesa_TexGeniv(tvb, offsetp, tt, byte_order, len);
4137  break;
4138  case 121:
4139  mesa_InitNames(tvb, offsetp, tt, byte_order, len);
4140  break;
4141  case 122:
4142  mesa_LoadName(tvb, offsetp, tt, byte_order, len);
4143  break;
4144  case 123:
4145  mesa_PassThrough(tvb, offsetp, tt, byte_order, len);
4146  break;
4147  case 124:
4148  mesa_PopName(tvb, offsetp, tt, byte_order, len);
4149  break;
4150  case 125:
4151  mesa_PushName(tvb, offsetp, tt, byte_order, len);
4152  break;
4153  case 126:
4154  mesa_DrawBuffer(tvb, offsetp, tt, byte_order, len);
4155  break;
4156  case 127:
4157  mesa_Clear(tvb, offsetp, tt, byte_order, len);
4158  break;
4159  case 128:
4160  mesa_ClearAccum(tvb, offsetp, tt, byte_order, len);
4161  break;
4162  case 129:
4163  mesa_ClearIndex(tvb, offsetp, tt, byte_order, len);
4164  break;
4165  case 130:
4166  mesa_ClearColor(tvb, offsetp, tt, byte_order, len);
4167  break;
4168  case 131:
4169  mesa_ClearStencil(tvb, offsetp, tt, byte_order, len);
4170  break;
4171  case 132:
4172  mesa_ClearDepth(tvb, offsetp, tt, byte_order, len);
4173  break;
4174  case 133:
4175  mesa_StencilMask(tvb, offsetp, tt, byte_order, len);
4176  break;
4177  case 134:
4178  mesa_ColorMask(tvb, offsetp, tt, byte_order, len);
4179  break;
4180  case 135:
4181  mesa_DepthMask(tvb, offsetp, tt, byte_order, len);
4182  break;
4183  case 136:
4184  mesa_IndexMask(tvb, offsetp, tt, byte_order, len);
4185  break;
4186  case 137:
4187  mesa_Accum(tvb, offsetp, tt, byte_order, len);
4188  break;
4189  case 138:
4190  mesa_Disable(tvb, offsetp, tt, byte_order, len);
4191  break;
4192  case 139:
4193  mesa_Enable(tvb, offsetp, tt, byte_order, len);
4194  break;
4195  case 141:
4196  mesa_PopAttrib(tvb, offsetp, tt, byte_order, len);
4197  break;
4198  case 142:
4199  mesa_PushAttrib(tvb, offsetp, tt, byte_order, len);
4200  break;
4201  case 143:
4202  mesa_Map1d(tvb, offsetp, tt, byte_order, len);
4203  break;
4204  case 144:
4205  mesa_Map1f(tvb, offsetp, tt, byte_order, len);
4206  break;
4207  case 145:
4208  mesa_Map2d(tvb, offsetp, tt, byte_order, len);
4209  break;
4210  case 146:
4211  mesa_Map2f(tvb, offsetp, tt, byte_order, len);
4212  break;
4213  case 147:
4214  mesa_MapGrid1d(tvb, offsetp, tt, byte_order, len);
4215  break;
4216  case 148:
4217  mesa_MapGrid1f(tvb, offsetp, tt, byte_order, len);
4218  break;
4219  case 149:
4220  mesa_MapGrid2d(tvb, offsetp, tt, byte_order, len);
4221  break;
4222  case 150:
4223  mesa_MapGrid2f(tvb, offsetp, tt, byte_order, len);
4224  break;
4225  case 151:
4226  mesa_EvalCoord1dv(tvb, offsetp, tt, byte_order, len);
4227  break;
4228  case 152:
4229  mesa_EvalCoord1fv(tvb, offsetp, tt, byte_order, len);
4230  break;
4231  case 153:
4232  mesa_EvalCoord2dv(tvb, offsetp, tt, byte_order, len);
4233  break;
4234  case 154:
4235  mesa_EvalCoord2fv(tvb, offsetp, tt, byte_order, len);
4236  break;
4237  case 155:
4238  mesa_EvalMesh1(tvb, offsetp, tt, byte_order, len);
4239  break;
4240  case 156:
4241  mesa_EvalPoint1(tvb, offsetp, tt, byte_order, len);
4242  break;
4243  case 157:
4244  mesa_EvalMesh2(tvb, offsetp, tt, byte_order, len);
4245  break;
4246  case 158:
4247  mesa_EvalPoint2(tvb, offsetp, tt, byte_order, len);
4248  break;
4249  case 159:
4250  mesa_AlphaFunc(tvb, offsetp, tt, byte_order, len);
4251  break;
4252  case 160:
4253  mesa_BlendFunc(tvb, offsetp, tt, byte_order, len);
4254  break;
4255  case 161:
4256  mesa_LogicOp(tvb, offsetp, tt, byte_order, len);
4257  break;
4258  case 162:
4259  mesa_StencilFunc(tvb, offsetp, tt, byte_order, len);
4260  break;
4261  case 163:
4262  mesa_StencilOp(tvb, offsetp, tt, byte_order, len);
4263  break;
4264  case 164:
4265  mesa_DepthFunc(tvb, offsetp, tt, byte_order, len);
4266  break;
4267  case 165:
4268  mesa_PixelZoom(tvb, offsetp, tt, byte_order, len);
4269  break;
4270  case 166:
4271  mesa_PixelTransferf(tvb, offsetp, tt, byte_order, len);
4272  break;
4273  case 167:
4274  mesa_PixelTransferi(tvb, offsetp, tt, byte_order, len);
4275  break;
4276  case 168:
4277  mesa_PixelMapfv(tvb, offsetp, tt, byte_order, len);
4278  break;
4279  case 169:
4280  mesa_PixelMapuiv(tvb, offsetp, tt, byte_order, len);
4281  break;
4282  case 170:
4283  mesa_PixelMapusv(tvb, offsetp, tt, byte_order, len);
4284  break;
4285  case 171:
4286  mesa_ReadBuffer(tvb, offsetp, tt, byte_order, len);
4287  break;
4288  case 172:
4289  mesa_CopyPixels(tvb, offsetp, tt, byte_order, len);
4290  break;
4291  case 173:
4292  mesa_DrawPixels(tvb, offsetp, tt, byte_order, len);
4293  break;
4294  case 174:
4295  mesa_DepthRange(tvb, offsetp, tt, byte_order, len);
4296  break;
4297  case 175:
4298  mesa_Frustum(tvb, offsetp, tt, byte_order, len);
4299  break;
4300  case 176:
4301  mesa_LoadIdentity(tvb, offsetp, tt, byte_order, len);
4302  break;
4303  case 177:
4304  mesa_LoadMatrixf(tvb, offsetp, tt, byte_order, len);
4305  break;
4306  case 178:
4307  mesa_LoadMatrixd(tvb, offsetp, tt, byte_order, len);
4308  break;
4309  case 179:
4310  mesa_MatrixMode(tvb, offsetp, tt, byte_order, len);
4311  break;
4312  case 180:
4313  mesa_MultMatrixf(tvb, offsetp, tt, byte_order, len);
4314  break;
4315  case 181:
4316  mesa_MultMatrixd(tvb, offsetp, tt, byte_order, len);
4317  break;
4318  case 182:
4319  mesa_Ortho(tvb, offsetp, tt, byte_order, len);
4320  break;
4321  case 183:
4322  mesa_PopMatrix(tvb, offsetp, tt, byte_order, len);
4323  break;
4324  case 184:
4325  mesa_PushMatrix(tvb, offsetp, tt, byte_order, len);
4326  break;
4327  case 185:
4328  mesa_Rotated(tvb, offsetp, tt, byte_order, len);
4329  break;
4330  case 186:
4331  mesa_Rotatef(tvb, offsetp, tt, byte_order, len);
4332  break;
4333  case 187:
4334  mesa_Scaled(tvb, offsetp, tt, byte_order, len);
4335  break;
4336  case 188:
4337  mesa_Scalef(tvb, offsetp, tt, byte_order, len);
4338  break;
4339  case 189:
4340  mesa_Translated(tvb, offsetp, tt, byte_order, len);
4341  break;
4342  case 190:
4343  mesa_Translatef(tvb, offsetp, tt, byte_order, len);
4344  break;
4345  case 191:
4346  mesa_Viewport(tvb, offsetp, tt, byte_order, len);
4347  break;
4348  case 192:
4349  mesa_PolygonOffset(tvb, offsetp, tt, byte_order, len);
4350  break;
4351  case 193:
4352  mesa_DrawArrays(tvb, offsetp, tt, byte_order, len);
4353  break;
4354  case 194:
4355  mesa_Indexubv(tvb, offsetp, tt, byte_order, len);
4356  break;
4357  case 195:
4358  mesa_ColorSubTable(tvb, offsetp, tt, byte_order, len);
4359  break;
4360  case 196:
4361  mesa_CopyColorSubTable(tvb, offsetp, tt, byte_order, len);
4362  break;
4363  case 197:
4364  mesa_ActiveTexture(tvb, offsetp, tt, byte_order, len);
4365  break;
4366  case 198:
4367  mesa_MultiTexCoord1dv(tvb, offsetp, tt, byte_order, len);
4368  break;
4369  case 199:
4370  mesa_MultiTexCoord1fvARB(tvb, offsetp, tt, byte_order, len);
4371  break;
4372  case 200:
4373  mesa_MultiTexCoord1iv(tvb, offsetp, tt, byte_order, len);
4374  break;
4375  case 201:
4376  mesa_MultiTexCoord1sv(tvb, offsetp, tt, byte_order, len);
4377  break;
4378  case 202:
4379  mesa_MultiTexCoord2dv(tvb, offsetp, tt, byte_order, len);
4380  break;
4381  case 203:
4382  mesa_MultiTexCoord2fvARB(tvb, offsetp, tt, byte_order, len);
4383  break;
4384  case 204:
4385  mesa_MultiTexCoord2iv(tvb, offsetp, tt, byte_order, len);
4386  break;
4387  case 205:
4388  mesa_MultiTexCoord2sv(tvb, offsetp, tt, byte_order, len);
4389  break;
4390  case 206:
4391  mesa_MultiTexCoord3dv(tvb, offsetp, tt, byte_order, len);
4392  break;
4393  case 207:
4394  mesa_MultiTexCoord3fvARB(tvb, offsetp, tt, byte_order, len);
4395  break;
4396  case 208:
4397  mesa_MultiTexCoord3iv(tvb, offsetp, tt, byte_order, len);
4398  break;
4399  case 209:
4400  mesa_MultiTexCoord3sv(tvb, offsetp, tt, byte_order, len);
4401  break;
4402  case 210:
4403  mesa_MultiTexCoord4dv(tvb, offsetp, tt, byte_order, len);
4404  break;
4405  case 211:
4406  mesa_MultiTexCoord4fvARB(tvb, offsetp, tt, byte_order, len);
4407  break;
4408  case 212:
4409  mesa_MultiTexCoord4iv(tvb, offsetp, tt, byte_order, len);
4410  break;
4411  case 213:
4412  mesa_MultiTexCoord4sv(tvb, offsetp, tt, byte_order, len);
4413  break;
4414  case 214:
4415  mesa_CompressedTexImage1D(tvb, offsetp, tt, byte_order, len);
4416  break;
4417  case 215:
4418  mesa_CompressedTexImage2D(tvb, offsetp, tt, byte_order, len);
4419  break;
4420  case 216:
4421  mesa_CompressedTexImage3D(tvb, offsetp, tt, byte_order, len);
4422  break;
4423  case 217:
4424  mesa_CompressedTexSubImage1D(tvb, offsetp, tt, byte_order, len);
4425  break;
4426  case 218:
4427  mesa_CompressedTexSubImage2D(tvb, offsetp, tt, byte_order, len);
4428  break;
4429  case 219:
4430  mesa_CompressedTexSubImage3D(tvb, offsetp, tt, byte_order, len);
4431  break;
4432  case 229:
4433  mesa_SampleCoverage(tvb, offsetp, tt, byte_order, len);
4434  break;
4435  case 230:
4436  mesa_WindowPos3fv(tvb, offsetp, tt, byte_order, len);
4437  break;
4438  case 231:
4439  mesa_BeginQuery(tvb, offsetp, tt, byte_order, len);
4440  break;
4441  case 232:
4442  mesa_EndQuery(tvb, offsetp, tt, byte_order, len);
4443  break;
4444  case 233:
4445  mesa_DrawBuffers(tvb, offsetp, tt, byte_order, len);
4446  break;
4447  case 2048:
4448  mesa_SampleMaskSGIS(tvb, offsetp, tt, byte_order, len);
4449  break;
4450  case 2049:
4451  mesa_SamplePatternSGIS(tvb, offsetp, tt, byte_order, len);
4452  break;
4453  case 2050:
4454  mesa_TagSampleBufferSGIX(tvb, offsetp, tt, byte_order, len);
4455  break;
4456  case 2051:
4457  mesa_DetailTexFuncSGIS(tvb, offsetp, tt, byte_order, len);
4458  break;
4459  case 2052:
4460  mesa_SharpenTexFuncSGIS(tvb, offsetp, tt, byte_order, len);
4461  break;
4462  case 2053:
4463  mesa_ColorTable(tvb, offsetp, tt, byte_order, len);
4464  break;
4465  case 2054:
4466  mesa_ColorTableParameterfv(tvb, offsetp, tt, byte_order, len);
4467  break;
4468  case 2055:
4469  mesa_ColorTableParameteriv(tvb, offsetp, tt, byte_order, len);
4470  break;
4471  case 2056:
4472  mesa_CopyColorTable(tvb, offsetp, tt, byte_order, len);
4473  break;
4474  case 2057:
4475  mesa_TexImage4DSGIS(tvb, offsetp, tt, byte_order, len);
4476  break;
4477  case 2058:
4478  mesa_TexSubImage4DSGIS(tvb, offsetp, tt, byte_order, len);
4479  break;
4480  case 2059:
4481  mesa_PixelTexGenSGIX(tvb, offsetp, tt, byte_order, len);
4482  break;
4483  case 2064:
4484  mesa_TexFilterFuncSGIS(tvb, offsetp, tt, byte_order, len);
4485  break;
4486  case 2065:
4487  mesa_PointParameterf(tvb, offsetp, tt, byte_order, len);
4488  break;
4489  case 2066:
4490  mesa_PointParameterfv(tvb, offsetp, tt, byte_order, len);
4491  break;
4492  case 2067:
4493  mesa_FogFuncSGIS(tvb, offsetp, tt, byte_order, len);
4494  break;
4495  case 2071:
4496  mesa_ReferencePlaneSGIX(tvb, offsetp, tt, byte_order, len);
4497  break;
4498  case 2072:
4499  mesa_FrameZoomSGIX(tvb, offsetp, tt, byte_order, len);
4500  break;
4501  case 2082:
4502  mesa_TextureColorMaskSGIS(tvb, offsetp, tt, byte_order, len);
4503  break;
4504  case 4096:
4505  mesa_BlendColor(tvb, offsetp, tt, byte_order, len);
4506  break;
4507  case 4097:
4508  mesa_BlendEquation(tvb, offsetp, tt, byte_order, len);
4509  break;
4510  case 4099:
4511  mesa_TexSubImage1D(tvb, offsetp, tt, byte_order, len);
4512  break;
4513  case 4100:
4514  mesa_TexSubImage2D(tvb, offsetp, tt, byte_order, len);
4515  break;
4516  case 4101:
4517  mesa_ConvolutionFilter1D(tvb, offsetp, tt, byte_order, len);
4518  break;
4519  case 4102:
4520  mesa_ConvolutionFilter2D(tvb, offsetp, tt, byte_order, len);
4521  break;
4522  case 4103:
4523  mesa_ConvolutionParameterf(tvb, offsetp, tt, byte_order, len);
4524  break;
4525  case 4104:
4526  mesa_ConvolutionParameterfv(tvb, offsetp, tt, byte_order, len);
4527  break;
4528  case 4105:
4529  mesa_ConvolutionParameteri(tvb, offsetp, tt, byte_order, len);
4530  break;
4531  case 4106:
4532  mesa_ConvolutionParameteriv(tvb, offsetp, tt, byte_order, len);
4533  break;
4534  case 4107:
4535  mesa_CopyConvolutionFilter1D(tvb, offsetp, tt, byte_order, len);
4536  break;
4537  case 4108:
4538  mesa_CopyConvolutionFilter2D(tvb, offsetp, tt, byte_order, len);
4539  break;
4540  case 4109:
4541  mesa_SeparableFilter2D(tvb, offsetp, tt, byte_order, len);
4542  break;
4543  case 4110:
4544  mesa_Histogram(tvb, offsetp, tt, byte_order, len);
4545  break;
4546  case 4111:
4547  mesa_Minmax(tvb, offsetp, tt, byte_order, len);
4548  break;
4549  case 4112:
4550  mesa_ResetHistogram(tvb, offsetp, tt, byte_order, len);
4551  break;
4552  case 4113:
4553  mesa_ResetMinmax(tvb, offsetp, tt, byte_order, len);
4554  break;
4555  case 4114:
4556  mesa_TexImage3D(tvb, offsetp, tt, byte_order, len);
4557  break;
4558  case 4115:
4559  mesa_TexSubImage3D(tvb, offsetp, tt, byte_order, len);
4560  break;
4561  case 4117:
4562  mesa_BindTexture(tvb, offsetp, tt, byte_order, len);
4563  break;
4564  case 4118:
4565  mesa_PrioritizeTextures(tvb, offsetp, tt, byte_order, len);
4566  break;
4567  case 4119:
4568  mesa_CopyTexImage1D(tvb, offsetp, tt, byte_order, len);
4569  break;
4570  case 4120:
4571  mesa_CopyTexImage2D(tvb, offsetp, tt, byte_order, len);
4572  break;
4573  case 4121:
4574  mesa_CopyTexSubImage1D(tvb, offsetp, tt, byte_order, len);
4575  break;
4576  case 4122:
4577  mesa_CopyTexSubImage2D(tvb, offsetp, tt, byte_order, len);
4578  break;
4579  case 4123:
4580  mesa_CopyTexSubImage3D(tvb, offsetp, tt, byte_order, len);
4581  break;
4582  case 4124:
4583  mesa_FogCoordfvEXT(tvb, offsetp, tt, byte_order, len);
4584  break;
4585  case 4125:
4586  mesa_FogCoorddv(tvb, offsetp, tt, byte_order, len);
4587  break;
4588  case 4126:
4589  mesa_SecondaryColor3bv(tvb, offsetp, tt, byte_order, len);
4590  break;
4591  case 4127:
4592  mesa_SecondaryColor3sv(tvb, offsetp, tt, byte_order, len);
4593  break;
4594  case 4128:
4595  mesa_SecondaryColor3iv(tvb, offsetp, tt, byte_order, len);
4596  break;
4597  case 4129:
4598  mesa_SecondaryColor3fvEXT(tvb, offsetp, tt, byte_order, len);
4599  break;
4600  case 4130:
4601  mesa_SecondaryColor3dv(tvb, offsetp, tt, byte_order, len);
4602  break;
4603  case 4131:
4604  mesa_SecondaryColor3ubv(tvb, offsetp, tt, byte_order, len);
4605  break;
4606  case 4132:
4607  mesa_SecondaryColor3usv(tvb, offsetp, tt, byte_order, len);
4608  break;
4609  case 4133:
4610  mesa_SecondaryColor3uiv(tvb, offsetp, tt, byte_order, len);
4611  break;
4612  case 4134:
4613  mesa_BlendFuncSeparate(tvb, offsetp, tt, byte_order, len);
4614  break;
4615  case 4135:
4616  mesa_VertexWeightfvEXT(tvb, offsetp, tt, byte_order, len);
4617  break;
4618  case 4136:
4619  mesa_CombinerParameterfNV(tvb, offsetp, tt, byte_order, len);
4620  break;
4621  case 4137:
4622  mesa_CombinerParameterfvNV(tvb, offsetp, tt, byte_order, len);
4623  break;
4624  case 4138:
4625  mesa_CombinerParameteriNV(tvb, offsetp, tt, byte_order, len);
4626  break;
4627  case 4139:
4628  mesa_CombinerParameterivNV(tvb, offsetp, tt, byte_order, len);
4629  break;
4630  case 4140:
4631  mesa_CombinerInputNV(tvb, offsetp, tt, byte_order, len);
4632  break;
4633  case 4141:
4634  mesa_CombinerOutputNV(tvb, offsetp, tt, byte_order, len);
4635  break;
4636  case 4142:
4637  mesa_FinalCombinerInputNV(tvb, offsetp, tt, byte_order, len);
4638  break;
4639  case 4180:
4640  mesa_BindProgramARB(tvb, offsetp, tt, byte_order, len);
4641  break;
4642  case 4181:
4643  mesa_ExecuteProgramNV(tvb, offsetp, tt, byte_order, len);
4644  break;
4645  case 4182:
4646  mesa_RequestResidentProgramsNV(tvb, offsetp, tt, byte_order, len);
4647  break;
4648  case 4183:
4649  mesa_LoadProgramNV(tvb, offsetp, tt, byte_order, len);
4650  break;
4651  case 4184:
4652  mesa_ProgramEnvParameter4fvARB(tvb, offsetp, tt, byte_order, len);
4653  break;
4654  case 4185:
4655  mesa_ProgramEnvParameter4dvARB(tvb, offsetp, tt, byte_order, len);
4656  break;
4657  case 4186:
4658  mesa_ProgramParameters4fvNV(tvb, offsetp, tt, byte_order, len);
4659  break;
4660  case 4187:
4661  mesa_ProgramParameters4dvNV(tvb, offsetp, tt, byte_order, len);
4662  break;
4663  case 4188:
4664  mesa_TrackMatrixNV(tvb, offsetp, tt, byte_order, len);
4665  break;
4666  case 4189:
4667  mesa_VertexAttrib1sv(tvb, offsetp, tt, byte_order, len);
4668  break;
4669  case 4190:
4670  mesa_VertexAttrib2sv(tvb, offsetp, tt, byte_order, len);
4671  break;
4672  case 4191:
4673  mesa_VertexAttrib3sv(tvb, offsetp, tt, byte_order, len);
4674  break;
4675  case 4192:
4676  mesa_VertexAttrib4sv(tvb, offsetp, tt, byte_order, len);
4677  break;
4678  case 4193:
4679  mesa_VertexAttrib1fvARB(tvb, offsetp, tt, byte_order, len);
4680  break;
4681  case 4194:
4682  mesa_VertexAttrib2fvARB(tvb, offsetp, tt, byte_order, len);
4683  break;
4684  case 4195:
4685  mesa_VertexAttrib3fvARB(tvb, offsetp, tt, byte_order, len);
4686  break;
4687  case 4196:
4688  mesa_VertexAttrib4fvARB(tvb, offsetp, tt, byte_order, len);
4689  break;
4690  case 4197:
4691  mesa_VertexAttrib1dv(tvb, offsetp, tt, byte_order, len);
4692  break;
4693  case 4198:
4694  mesa_VertexAttrib2dv(tvb, offsetp, tt, byte_order, len);
4695  break;
4696  case 4199:
4697  mesa_VertexAttrib3dv(tvb, offsetp, tt, byte_order, len);
4698  break;
4699  case 4200:
4700  mesa_VertexAttrib4dv(tvb, offsetp, tt, byte_order, len);
4701  break;
4702  case 4201:
4703  mesa_VertexAttrib4Nubv(tvb, offsetp, tt, byte_order, len);
4704  break;
4705  case 4202:
4706  mesa_VertexAttribs1svNV(tvb, offsetp, tt, byte_order, len);
4707  break;
4708  case 4203:
4709  mesa_VertexAttribs2svNV(tvb, offsetp, tt, byte_order, len);
4710  break;
4711  case 4204:
4712  mesa_VertexAttribs3svNV(tvb, offsetp, tt, byte_order, len);
4713  break;
4714  case 4205:
4715  mesa_VertexAttribs4svNV(tvb, offsetp, tt, byte_order, len);
4716  break;
4717  case 4206:
4718  mesa_VertexAttribs1fvNV(tvb, offsetp, tt, byte_order, len);
4719  break;
4720  case 4207:
4721  mesa_VertexAttribs2fvNV(tvb, offsetp, tt, byte_order, len);
4722  break;
4723  case 4208:
4724  mesa_VertexAttribs3fvNV(tvb, offsetp, tt, byte_order, len);
4725  break;
4726  case 4209:
4727  mesa_VertexAttribs4fvNV(tvb, offsetp, tt, byte_order, len);
4728  break;
4729  case 4210:
4730  mesa_VertexAttribs1dvNV(tvb, offsetp, tt, byte_order, len);
4731  break;
4732  case 4211:
4733  mesa_VertexAttribs2dvNV(tvb, offsetp, tt, byte_order, len);
4734  break;
4735  case 4212:
4736  mesa_VertexAttribs3dvNV(tvb, offsetp, tt, byte_order, len);
4737  break;
4738  case 4213:
4739  mesa_VertexAttribs4dvNV(tvb, offsetp, tt, byte_order, len);
4740  break;
4741  case 4214:
4742  mesa_VertexAttribs4ubvNV(tvb, offsetp, tt, byte_order, len);
4743  break;
4744  case 4215:
4745  mesa_ProgramLocalParameter4fvARB(tvb, offsetp, tt, byte_order, len);
4746  break;
4747  case 4216:
4748  mesa_ProgramLocalParameter4dvARB(tvb, offsetp, tt, byte_order, len);
4749  break;
4750  case 4217:
4751  mesa_ProgramStringARB(tvb, offsetp, tt, byte_order, len);
4752  break;
4753  case 4218:
4754  mesa_ProgramNamedParameter4fvNV(tvb, offsetp, tt, byte_order, len);
4755  break;
4756  case 4219:
4757  mesa_ProgramNamedParameter4dvNV(tvb, offsetp, tt, byte_order, len);
4758  break;
4759  case 4220:
4760  mesa_ActiveStencilFaceEXT(tvb, offsetp, tt, byte_order, len);
4761  break;
4762  case 4221:
4763  mesa_PointParameteri(tvb, offsetp, tt, byte_order, len);
4764  break;
4765  case 4222:
4766  mesa_PointParameteriv(tvb, offsetp, tt, byte_order, len);
4767  break;
4768  case 4228:
4769  mesa_BlendEquationSeparate(tvb, offsetp, tt, byte_order, len);
4770  break;
4771  case 4229:
4772  mesa_DepthBoundsEXT(tvb, offsetp, tt, byte_order, len);
4773  break;
4774  case 4230:
4775  mesa_VertexAttrib4bv(tvb, offsetp, tt, byte_order, len);
4776  break;
4777  case 4231:
4778  mesa_VertexAttrib4iv(tvb, offsetp, tt, byte_order, len);
4779  break;
4780  case 4232:
4781  mesa_VertexAttrib4ubv(tvb, offsetp, tt, byte_order, len);
4782  break;
4783  case 4233:
4784  mesa_VertexAttrib4usv(tvb, offsetp, tt, byte_order, len);
4785  break;
4786  case 4234:
4787  mesa_VertexAttrib4uiv(tvb, offsetp, tt, byte_order, len);
4788  break;
4789  case 4235:
4790  mesa_VertexAttrib4Nbv(tvb, offsetp, tt, byte_order, len);
4791  break;
4792  case 4236:
4793  mesa_VertexAttrib4Nsv(tvb, offsetp, tt, byte_order, len);
4794  break;
4795  case 4237:
4796  mesa_VertexAttrib4Niv(tvb, offsetp, tt, byte_order, len);
4797  break;
4798  case 4238:
4799  mesa_VertexAttrib4Nusv(tvb, offsetp, tt, byte_order, len);
4800  break;
4801  case 4239:
4802  mesa_VertexAttrib4Nuiv(tvb, offsetp, tt, byte_order, len);
4803  break;
4804  case 4265:
4805  mesa_VertexAttrib1svNV(tvb, offsetp, tt, byte_order, len);
4806  break;
4807  case 4266:
4808  mesa_VertexAttrib2svNV(tvb, offsetp, tt, byte_order, len);
4809  break;
4810  case 4267:
4811  mesa_VertexAttrib3svNV(tvb, offsetp, tt, byte_order, len);
4812  break;
4813  case 4268:
4814  mesa_VertexAttrib4svNV(tvb, offsetp, tt, byte_order, len);
4815  break;
4816  case 4269:
4817  mesa_VertexAttrib1fvNV(tvb, offsetp, tt, byte_order, len);
4818  break;
4819  case 4270:
4820  mesa_VertexAttrib2fvNV(tvb, offsetp, tt, byte_order, len);
4821  break;
4822  case 4271:
4823  mesa_VertexAttrib3fvNV(tvb, offsetp, tt, byte_order, len);
4824  break;
4825  case 4272:
4826  mesa_VertexAttrib4fvNV(tvb, offsetp, tt, byte_order, len);
4827  break;
4828  case 4273:
4829  mesa_VertexAttrib1dvNV(tvb, offsetp, tt, byte_order, len);
4830  break;
4831  case 4274:
4832  mesa_VertexAttrib2dvNV(tvb, offsetp, tt, byte_order, len);
4833  break;
4834  case 4275:
4835  mesa_VertexAttrib3dvNV(tvb, offsetp, tt, byte_order, len);
4836  break;
4837  case 4276:
4838  mesa_VertexAttrib4dvNV(tvb, offsetp, tt, byte_order, len);
4839  break;
4840  case 4277:
4841  mesa_VertexAttrib4ubvNV(tvb, offsetp, tt, byte_order, len);
4842  break;
4843  case 4326:
4844  mesa_MatrixIndexubvARB(tvb, offsetp, tt, byte_order, len);
4845  break;
4846  case 4327:
4847  mesa_MatrixIndexusvARB(tvb, offsetp, tt, byte_order, len);
4848  break;
4849  case 4328:
4850  mesa_MatrixIndexuivARB(tvb, offsetp, tt, byte_order, len);
4851  break;
4852  case 4329:
4853  mesa_CurrentPaletteMatrixARB(tvb, offsetp, tt, byte_order, len);
4854  break;
4855  default:
4856  proto_tree_add_item(tt, hf_x11_undecoded, tvb, *offsetp, len, ENC_NA);
4857  *offsetp += len;
4858  }
4859  if (*offsetp < next) {
4860  proto_tree_add_item(tt, hf_x11_unused, tvb, *offsetp, next - *offsetp, ENC_NA);
4861  *offsetp = next;
4862  }
4863  length -= (len + 4);
4864  }
4865 }
4866 #include "x11-enum.h"
4867 
4868 
4869 static void bigreqEnable(tvbuff_t *tvb _U_, packet_info *pinfo _U_, int *offsetp _U_, proto_tree *t _U_, guint byte_order _U_, int length _U_)
4870 {
4871 }
4872 static void bigreqEnable_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
4873 {
4874  int sequence_number;
4875 
4876  col_append_fstr(pinfo->cinfo, COL_INFO, "-Enable");
4877 
4878  REPLY(reply);
4879  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
4880  *offsetp += 1;
4881  sequence_number = tvb_get_guint16(tvb, *offsetp, byte_order);
4882  proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
4883  "%d (bigreq-Enable)", sequence_number);
4884  *offsetp += 2;
4885  proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
4886  *offsetp += 4;
4887  proto_tree_add_item(t, hf_x11_bigreq_Enable_reply_maximum_request_length, tvb, *offsetp, 4, byte_order);
4888  *offsetp += 4;
4889 }
4890 static const value_string bigreq_extension_minor[] = {
4891  { 0, "Enable" },
4892  { 0, NULL }
4893 };
4894 const x11_event_info bigreq_events[] = {
4895  { NULL, NULL }
4896 };
4897 static x11_reply_info bigreq_replies[] = {
4898  { 0, bigreqEnable_Reply },
4899  { 0, NULL }
4900 };
4901 
4902 static void dispatch_bigreq(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
4903 {
4904  int minor, length;
4905  minor = CARD8(bigreq_extension_minor);
4906  length = REQUEST_LENGTH();
4907 
4908  col_append_fstr(pinfo->cinfo, COL_INFO, "-%s",
4909  val_to_str(minor, bigreq_extension_minor,
4910  "<Unknown opcode %d>"));
4911  switch (minor) {
4912  case 0:
4913  bigreqEnable(tvb, pinfo, offsetp, t, byte_order, length);
4914  break;
4915  /* No need for a default case here, since Unknown is printed above,
4916  and UNDECODED() is taken care of by dissect_x11_request */
4917  }
4918 }
4919 
4920 static void register_bigreq(void)
4921 {
4922  set_handler("BIG-REQUESTS", dispatch_bigreq, bigreq_errors, bigreq_events, NULL, bigreq_replies);
4923 }
4924 
4925 static void struct_xproto_RECTANGLE(tvbuff_t *tvb, int *offsetp, proto_tree *root, guint byte_order _U_, int count)
4926 {
4927  int i;
4928  for (i = 0; i < count; i++) {
4929  proto_item *item;
4930  proto_tree *t;
4931 
4932  item = proto_tree_add_item(root, hf_x11_struct_xproto_RECTANGLE, tvb, *offsetp, 8, ENC_NA);
4933  t = proto_item_add_subtree(item, ett_x11_rectangle);
4934  proto_tree_add_item(t, hf_x11_struct_xproto_RECTANGLE_x, tvb, *offsetp, 2, byte_order);
4935  *offsetp += 2;
4936  proto_tree_add_item(t, hf_x11_struct_xproto_RECTANGLE_y, tvb, *offsetp, 2, byte_order);
4937  *offsetp += 2;
4938  proto_tree_add_item(t, hf_x11_struct_xproto_RECTANGLE_width, tvb, *offsetp, 2, byte_order);
4939  *offsetp += 2;
4940  proto_tree_add_item(t, hf_x11_struct_xproto_RECTANGLE_height, tvb, *offsetp, 2, byte_order);
4941  *offsetp += 2;
4942  }
4943 }
4944 
4945 static int struct_size_xproto_STR(tvbuff_t *tvb _U_, int *offsetp _U_, guint byte_order _U_)
4946 {
4947  int size = 0;
4948  int f_name_len;
4949  f_name_len = tvb_get_guint8(tvb, *offsetp + size + 0);
4950  size += f_name_len * 1;
4951  return size + 1;
4952 }
4953 
4954 static void struct_xproto_STR(tvbuff_t *tvb, int *offsetp, proto_tree *root, guint byte_order _U_, int count)
4955 {
4956  int i;
4957  for (i = 0; i < count; i++) {
4958  proto_item *item;
4959  proto_tree *t;
4960  int f_name_len;
4961 
4962  item = proto_tree_add_item(root, hf_x11_struct_xproto_STR, tvb, *offsetp, struct_size_xproto_STR(tvb, offsetp, byte_order), ENC_NA);
4963  t = proto_item_add_subtree(item, ett_x11_rectangle);
4964  f_name_len = tvb_get_guint8(tvb, *offsetp);
4965  proto_tree_add_item(t, hf_x11_struct_xproto_STR_name_len, tvb, *offsetp, 1, byte_order);
4966  *offsetp += 1;
4967  listOfByte(tvb, offsetp, t, hf_x11_struct_xproto_STR_name, f_name_len, byte_order);
4968  }
4969 }
4970 
4971 static void struct_render_DIRECTFORMAT(tvbuff_t *tvb, int *offsetp, proto_tree *root, guint byte_order _U_, int count)
4972 {
4973  int i;
4974  for (i = 0; i < count; i++) {
4975  proto_item *item;
4976  proto_tree *t;
4977 
4978  item = proto_tree_add_item(root, hf_x11_struct_render_DIRECTFORMAT, tvb, *offsetp, 16, ENC_NA);
4979  t = proto_item_add_subtree(item, ett_x11_rectangle);
4980  proto_tree_add_item(t, hf_x11_struct_render_DIRECTFORMAT_red_shift, tvb, *offsetp, 2, byte_order);
4981  *offsetp += 2;
4982  proto_tree_add_item(t, hf_x11_struct_render_DIRECTFORMAT_red_mask, tvb, *offsetp, 2, byte_order);
4983  *offsetp += 2;
4984  proto_tree_add_item(t, hf_x11_struct_render_DIRECTFORMAT_green_shift, tvb, *offsetp, 2, byte_order);
4985  *offsetp += 2;
4986  proto_tree_add_item(t, hf_x11_struct_render_DIRECTFORMAT_green_mask, tvb, *offsetp, 2, byte_order);
4987  *offsetp += 2;
4988  proto_tree_add_item(t, hf_x11_struct_render_DIRECTFORMAT_blue_shift, tvb, *offsetp, 2, byte_order);
4989  *offsetp += 2;
4990  proto_tree_add_item(t, hf_x11_struct_render_DIRECTFORMAT_blue_mask, tvb, *offsetp, 2, byte_order);
4991  *offsetp += 2;
4992  proto_tree_add_item(t, hf_x11_struct_render_DIRECTFORMAT_alpha_shift, tvb, *offsetp, 2, byte_order);
4993  *offsetp += 2;
4994  proto_tree_add_item(t, hf_x11_struct_render_DIRECTFORMAT_alpha_mask, tvb, *offsetp, 2, byte_order);
4995  *offsetp += 2;
4996  }
4997 }
4998 
4999 static void struct_render_PICTFORMINFO(tvbuff_t *tvb, int *offsetp, proto_tree *root, guint byte_order _U_, int count)
5000 {
5001  int i;
5002  for (i = 0; i < count; i++) {
5003  proto_item *item;
5004  proto_tree *t;
5005 
5006  item = proto_tree_add_item(root, hf_x11_struct_render_PICTFORMINFO, tvb, *offsetp, 28, ENC_NA);
5007  t = proto_item_add_subtree(item, ett_x11_rectangle);
5008  proto_tree_add_item(t, hf_x11_struct_render_PICTFORMINFO_id, tvb, *offsetp, 4, byte_order);
5009  *offsetp += 4;
5010  field8(tvb, offsetp, t, hf_x11_struct_render_PICTFORMINFO_type, byte_order);
5011  proto_tree_add_item(t, hf_x11_struct_render_PICTFORMINFO_depth, tvb, *offsetp, 1, byte_order);
5012  *offsetp += 1;
5013  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 2, ENC_NA);
5014  *offsetp += 2;
5015  struct_render_DIRECTFORMAT(tvb, offsetp, t, byte_order, 1);
5016  proto_tree_add_item(t, hf_x11_struct_render_PICTFORMINFO_colormap, tvb, *offsetp, 4, byte_order);
5017  *offsetp += 4;
5018  }
5019 }
5020 
5021 static void struct_render_PICTVISUAL(tvbuff_t *tvb, int *offsetp, proto_tree *root, guint byte_order _U_, int count)
5022 {
5023  int i;
5024  for (i = 0; i < count; i++) {
5025  proto_item *item;
5026  proto_tree *t;
5027 
5028  item = proto_tree_add_item(root, hf_x11_struct_render_PICTVISUAL, tvb, *offsetp, 8, ENC_NA);
5029  t = proto_item_add_subtree(item, ett_x11_rectangle);
5030  proto_tree_add_item(t, hf_x11_struct_render_PICTVISUAL_visual, tvb, *offsetp, 4, byte_order);
5031  *offsetp += 4;
5032  proto_tree_add_item(t, hf_x11_struct_render_PICTVISUAL_format, tvb, *offsetp, 4, byte_order);
5033  *offsetp += 4;
5034  }
5035 }
5036 
5037 static int struct_size_render_PICTDEPTH(tvbuff_t *tvb _U_, int *offsetp _U_, guint byte_order _U_)
5038 {
5039  int size = 0;
5040  int f_num_visuals;
5041  f_num_visuals = tvb_get_guint16(tvb, *offsetp + size + 2, byte_order);
5042  size += f_num_visuals * 8;
5043  return size + 8;
5044 }
5045 
5046 static void struct_render_PICTDEPTH(tvbuff_t *tvb, int *offsetp, proto_tree *root, guint byte_order _U_, int count)
5047 {
5048  int i;
5049  for (i = 0; i < count; i++) {
5050  proto_item *item;
5051  proto_tree *t;
5052  int f_num_visuals;
5053 
5054  item = proto_tree_add_item(root, hf_x11_struct_render_PICTDEPTH, tvb, *offsetp, struct_size_render_PICTDEPTH(tvb, offsetp, byte_order), ENC_NA);
5055  t = proto_item_add_subtree(item, ett_x11_rectangle);
5056  proto_tree_add_item(t, hf_x11_struct_render_PICTDEPTH_depth, tvb, *offsetp, 1, byte_order);
5057  *offsetp += 1;
5058  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
5059  *offsetp += 1;
5060  f_num_visuals = tvb_get_guint16(tvb, *offsetp, byte_order);
5061  proto_tree_add_item(t, hf_x11_struct_render_PICTDEPTH_num_visuals, tvb, *offsetp, 2, byte_order);
5062  *offsetp += 2;
5063  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 4, ENC_NA);
5064  *offsetp += 4;
5065  struct_render_PICTVISUAL(tvb, offsetp, t, byte_order, f_num_visuals);
5066  }
5067 }
5068 
5069 static int struct_size_render_PICTSCREEN(tvbuff_t *tvb _U_, int *offsetp _U_, guint byte_order _U_)
5070 {
5071  int size = 0;
5072  int i, off;
5073  int f_num_depths;
5074  f_num_depths = tvb_get_guint32(tvb, *offsetp + size + 0, byte_order);
5075  for (i = 0; i < f_num_depths; i++) {
5076  off = (*offsetp) + size + 8;
5077  size += struct_size_render_PICTDEPTH(tvb, &off, byte_order);
5078  }
5079  return size + 8;
5080 }
5081 
5082 static void struct_render_PICTSCREEN(tvbuff_t *tvb, int *offsetp, proto_tree *root, guint byte_order _U_, int count)
5083 {
5084  int i;
5085  for (i = 0; i < count; i++) {
5086  proto_item *item;
5087  proto_tree *t;
5088  int f_num_depths;
5089 
5090  item = proto_tree_add_item(root, hf_x11_struct_render_PICTSCREEN, tvb, *offsetp, struct_size_render_PICTSCREEN(tvb, offsetp, byte_order), ENC_NA);
5091  t = proto_item_add_subtree(item, ett_x11_rectangle);
5092  f_num_depths = tvb_get_guint32(tvb, *offsetp, byte_order);
5093  proto_tree_add_item(t, hf_x11_struct_render_PICTSCREEN_num_depths, tvb, *offsetp, 4, byte_order);
5094  *offsetp += 4;
5095  proto_tree_add_item(t, hf_x11_struct_render_PICTSCREEN_fallback, tvb, *offsetp, 4, byte_order);
5096  *offsetp += 4;
5097  struct_render_PICTDEPTH(tvb, offsetp, t, byte_order, f_num_depths);
5098  }
5099 }
5100 
5101 static void struct_render_INDEXVALUE(tvbuff_t *tvb, int *offsetp, proto_tree *root, guint byte_order _U_, int count)
5102 {
5103  int i;
5104  for (i = 0; i < count; i++) {
5105  proto_item *item;
5106  proto_tree *t;
5107 
5108  item = proto_tree_add_item(root, hf_x11_struct_render_INDEXVALUE, tvb, *offsetp, 12, ENC_NA);
5109  t = proto_item_add_subtree(item, ett_x11_rectangle);
5110  proto_tree_add_item(t, hf_x11_struct_render_INDEXVALUE_pixel, tvb, *offsetp, 4, byte_order);
5111  *offsetp += 4;
5112  proto_tree_add_item(t, hf_x11_struct_render_INDEXVALUE_red, tvb, *offsetp, 2, byte_order);
5113  *offsetp += 2;
5114  proto_tree_add_item(t, hf_x11_struct_render_INDEXVALUE_green, tvb, *offsetp, 2, byte_order);
5115  *offsetp += 2;
5116  proto_tree_add_item(t, hf_x11_struct_render_INDEXVALUE_blue, tvb, *offsetp, 2, byte_order);
5117  *offsetp += 2;
5118  proto_tree_add_item(t, hf_x11_struct_render_INDEXVALUE_alpha, tvb, *offsetp, 2, byte_order);
5119  *offsetp += 2;
5120  }
5121 }
5122 
5123 static void struct_render_COLOR(tvbuff_t *tvb, int *offsetp, proto_tree *root, guint byte_order _U_, int count)
5124 {
5125  int i;
5126  for (i = 0; i < count; i++) {
5127  proto_item *item;
5128  proto_tree *t;
5129 
5130  item = proto_tree_add_item(root, hf_x11_struct_render_COLOR, tvb, *offsetp, 8, ENC_NA);
5131  t = proto_item_add_subtree(item, ett_x11_rectangle);
5132  proto_tree_add_item(t, hf_x11_struct_render_COLOR_red, tvb, *offsetp, 2, byte_order);
5133  *offsetp += 2;
5134  proto_tree_add_item(t, hf_x11_struct_render_COLOR_green, tvb, *offsetp, 2, byte_order);
5135  *offsetp += 2;
5136  proto_tree_add_item(t, hf_x11_struct_render_COLOR_blue, tvb, *offsetp, 2, byte_order);
5137  *offsetp += 2;
5138  proto_tree_add_item(t, hf_x11_struct_render_COLOR_alpha, tvb, *offsetp, 2, byte_order);
5139  *offsetp += 2;
5140  }
5141 }
5142 
5143 static void struct_render_POINTFIX(tvbuff_t *tvb, int *offsetp, proto_tree *root, guint byte_order _U_, int count)
5144 {
5145  int i;
5146  for (i = 0; i < count; i++) {
5147  proto_item *item;
5148  proto_tree *t;
5149 
5150  item = proto_tree_add_item(root, hf_x11_struct_render_POINTFIX, tvb, *offsetp, 8, ENC_NA);
5151  t = proto_item_add_subtree(item, ett_x11_rectangle);
5152  proto_tree_add_item(t, hf_x11_struct_render_POINTFIX_x, tvb, *offsetp, 4, byte_order);
5153  *offsetp += 4;
5154  proto_tree_add_item(t, hf_x11_struct_render_POINTFIX_y, tvb, *offsetp, 4, byte_order);
5155  *offsetp += 4;
5156  }
5157 }
5158 
5159 static void struct_render_LINEFIX(tvbuff_t *tvb, int *offsetp, proto_tree *root, guint byte_order _U_, int count)
5160 {
5161  int i;
5162  for (i = 0; i < count; i++) {
5163  proto_item *item;
5164  proto_tree *t;
5165 
5166  item = proto_tree_add_item(root, hf_x11_struct_render_LINEFIX, tvb, *offsetp, 16, ENC_NA);
5167  t = proto_item_add_subtree(item, ett_x11_rectangle);
5168  struct_render_POINTFIX(tvb, offsetp, t, byte_order, 1);
5169  struct_render_POINTFIX(tvb, offsetp, t, byte_order, 1);
5170  }
5171 }
5172 
5173 static void struct_render_TRIANGLE(tvbuff_t *tvb, int *offsetp, proto_tree *root, guint byte_order _U_, int count)
5174 {
5175  int i;
5176  for (i = 0; i < count; i++) {
5177  proto_item *item;
5178  proto_tree *t;
5179 
5180  item = proto_tree_add_item(root, hf_x11_struct_render_TRIANGLE, tvb, *offsetp, 24, ENC_NA);
5181  t = proto_item_add_subtree(item, ett_x11_rectangle);
5182  struct_render_POINTFIX(tvb, offsetp, t, byte_order, 1);
5183  struct_render_POINTFIX(tvb, offsetp, t, byte_order, 1);
5184  struct_render_POINTFIX(tvb, offsetp, t, byte_order, 1);
5185  }
5186 }
5187 
5188 static void struct_render_TRAPEZOID(tvbuff_t *tvb, int *offsetp, proto_tree *root, guint byte_order _U_, int count)
5189 {
5190  int i;
5191  for (i = 0; i < count; i++) {
5192  proto_item *item;
5193  proto_tree *t;
5194 
5195  item = proto_tree_add_item(root, hf_x11_struct_render_TRAPEZOID, tvb, *offsetp, 40, ENC_NA);
5196  t = proto_item_add_subtree(item, ett_x11_rectangle);
5197  proto_tree_add_item(t, hf_x11_struct_render_TRAPEZOID_top, tvb, *offsetp, 4, byte_order);
5198  *offsetp += 4;
5199  proto_tree_add_item(t, hf_x11_struct_render_TRAPEZOID_bottom, tvb, *offsetp, 4, byte_order);
5200  *offsetp += 4;
5201  struct_render_LINEFIX(tvb, offsetp, t, byte_order, 1);
5202  struct_render_LINEFIX(tvb, offsetp, t, byte_order, 1);
5203  }
5204 }
5205 
5206 static void struct_render_GLYPHINFO(tvbuff_t *tvb, int *offsetp, proto_tree *root, guint byte_order _U_, int count)
5207 {
5208  int i;
5209  for (i = 0; i < count; i++) {
5210  proto_item *item;
5211  proto_tree *t;
5212 
5213  item = proto_tree_add_item(root, hf_x11_struct_render_GLYPHINFO, tvb, *offsetp, 12, ENC_NA);
5214  t = proto_item_add_subtree(item, ett_x11_rectangle);
5215  proto_tree_add_item(t, hf_x11_struct_render_GLYPHINFO_width, tvb, *offsetp, 2, byte_order);
5216  *offsetp += 2;
5217  proto_tree_add_item(t, hf_x11_struct_render_GLYPHINFO_height, tvb, *offsetp, 2, byte_order);
5218  *offsetp += 2;
5219  proto_tree_add_item(t, hf_x11_struct_render_GLYPHINFO_x, tvb, *offsetp, 2, byte_order);
5220  *offsetp += 2;
5221  proto_tree_add_item(t, hf_x11_struct_render_GLYPHINFO_y, tvb, *offsetp, 2, byte_order);
5222  *offsetp += 2;
5223  proto_tree_add_item(t, hf_x11_struct_render_GLYPHINFO_x_off, tvb, *offsetp, 2, byte_order);
5224  *offsetp += 2;
5225  proto_tree_add_item(t, hf_x11_struct_render_GLYPHINFO_y_off, tvb, *offsetp, 2, byte_order);
5226  *offsetp += 2;
5227  }
5228 }
5229 
5230 static void struct_render_TRANSFORM(tvbuff_t *tvb, int *offsetp, proto_tree *root, guint byte_order _U_, int count)
5231 {
5232  int i;
5233  for (i = 0; i < count; i++) {
5234  proto_item *item;
5235  proto_tree *t;
5236 
5237  item = proto_tree_add_item(root, hf_x11_struct_render_TRANSFORM, tvb, *offsetp, 36, ENC_NA);
5238  t = proto_item_add_subtree(item, ett_x11_rectangle);
5239  proto_tree_add_item(t, hf_x11_struct_render_TRANSFORM_matrix11, tvb, *offsetp, 4, byte_order);
5240  *offsetp += 4;
5241  proto_tree_add_item(t, hf_x11_struct_render_TRANSFORM_matrix12, tvb, *offsetp, 4, byte_order);
5242  *offsetp += 4;
5243  proto_tree_add_item(t, hf_x11_struct_render_TRANSFORM_matrix13, tvb, *offsetp, 4, byte_order);
5244  *offsetp += 4;
5245  proto_tree_add_item(t, hf_x11_struct_render_TRANSFORM_matrix21, tvb, *offsetp, 4, byte_order);
5246  *offsetp += 4;
5247  proto_tree_add_item(t, hf_x11_struct_render_TRANSFORM_matrix22, tvb, *offsetp, 4, byte_order);
5248  *offsetp += 4;
5249  proto_tree_add_item(t, hf_x11_struct_render_TRANSFORM_matrix23, tvb, *offsetp, 4, byte_order);
5250  *offsetp += 4;
5251  proto_tree_add_item(t, hf_x11_struct_render_TRANSFORM_matrix31, tvb, *offsetp, 4, byte_order);
5252  *offsetp += 4;
5253  proto_tree_add_item(t, hf_x11_struct_render_TRANSFORM_matrix32, tvb, *offsetp, 4, byte_order);
5254  *offsetp += 4;
5255  proto_tree_add_item(t, hf_x11_struct_render_TRANSFORM_matrix33, tvb, *offsetp, 4, byte_order);
5256  *offsetp += 4;
5257  }
5258 }
5259 
5260 static void struct_render_ANIMCURSORELT(tvbuff_t *tvb, int *offsetp, proto_tree *root, guint byte_order _U_, int count)
5261 {
5262  int i;
5263  for (i = 0; i < count; i++) {
5264  proto_item *item;
5265  proto_tree *t;
5266 
5267  item = proto_tree_add_item(root, hf_x11_struct_render_ANIMCURSORELT, tvb, *offsetp, 8, ENC_NA);
5268  t = proto_item_add_subtree(item, ett_x11_rectangle);
5269  proto_tree_add_item(t, hf_x11_struct_render_ANIMCURSORELT_cursor, tvb, *offsetp, 4, byte_order);
5270  *offsetp += 4;
5271  proto_tree_add_item(t, hf_x11_struct_render_ANIMCURSORELT_delay, tvb, *offsetp, 4, byte_order);
5272  *offsetp += 4;
5273  }
5274 }
5275 
5276 static void struct_render_SPANFIX(tvbuff_t *tvb, int *offsetp, proto_tree *root, guint byte_order _U_, int count)
5277 {
5278  int i;
5279  for (i = 0; i < count; i++) {
5280  proto_item *item;
5281  proto_tree *t;
5282 
5283  item = proto_tree_add_item(root, hf_x11_struct_render_SPANFIX, tvb, *offsetp, 12, ENC_NA);
5284  t = proto_item_add_subtree(item, ett_x11_rectangle);
5285  proto_tree_add_item(t, hf_x11_struct_render_SPANFIX_l, tvb, *offsetp, 4, byte_order);
5286  *offsetp += 4;
5287  proto_tree_add_item(t, hf_x11_struct_render_SPANFIX_r, tvb, *offsetp, 4, byte_order);
5288  *offsetp += 4;
5289  proto_tree_add_item(t, hf_x11_struct_render_SPANFIX_y, tvb, *offsetp, 4, byte_order);
5290  *offsetp += 4;
5291  }
5292 }
5293 
5294 static void struct_render_TRAP(tvbuff_t *tvb, int *offsetp, proto_tree *root, guint byte_order _U_, int count)
5295 {
5296  int i;
5297  for (i = 0; i < count; i++) {
5298  proto_item *item;
5299  proto_tree *t;
5300 
5301  item = proto_tree_add_item(root, hf_x11_struct_render_TRAP, tvb, *offsetp, 24, ENC_NA);
5302  t = proto_item_add_subtree(item, ett_x11_rectangle);
5303  struct_render_SPANFIX(tvb, offsetp, t, byte_order, 1);
5304  struct_render_SPANFIX(tvb, offsetp, t, byte_order, 1);
5305  }
5306 }
5307 
5308 static void compositeQueryVersion(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
5309 {
5310  proto_tree_add_item(t, hf_x11_composite_QueryVersion_client_major_version, tvb, *offsetp, 4, byte_order);
5311  *offsetp += 4;
5312  proto_tree_add_item(t, hf_x11_composite_QueryVersion_client_minor_version, tvb, *offsetp, 4, byte_order);
5313  *offsetp += 4;
5314 }
5315 static void compositeQueryVersion_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
5316 {
5317  int sequence_number;
5318 
5319  col_append_fstr(pinfo->cinfo, COL_INFO, "-QueryVersion");
5320 
5321  REPLY(reply);
5322  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
5323  *offsetp += 1;
5324  sequence_number = tvb_get_guint16(tvb, *offsetp, byte_order);
5325  proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
5326  "%d (composite-QueryVersion)", sequence_number);
5327  *offsetp += 2;
5328  proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
5329  *offsetp += 4;
5330  proto_tree_add_item(t, hf_x11_composite_QueryVersion_reply_major_version, tvb, *offsetp, 4, byte_order);
5331  *offsetp += 4;
5332  proto_tree_add_item(t, hf_x11_composite_QueryVersion_reply_minor_version, tvb, *offsetp, 4, byte_order);
5333  *offsetp += 4;
5334  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 16, ENC_NA);
5335  *offsetp += 16;
5336 }
5337 
5338 static void compositeRedirectWindow(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
5339 {
5340  proto_tree_add_item(t, hf_x11_composite_RedirectWindow_window, tvb, *offsetp, 4, byte_order);
5341  *offsetp += 4;
5342  field8(tvb, offsetp, t, hf_x11_composite_RedirectWindow_update, byte_order);
5343  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 3, ENC_NA);
5344  *offsetp += 3;
5345 }
5346 
5347 static void compositeRedirectSubwindows(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
5348 {
5349  proto_tree_add_item(t, hf_x11_composite_RedirectSubwindows_window, tvb, *offsetp, 4, byte_order);
5350  *offsetp += 4;
5351  field8(tvb, offsetp, t, hf_x11_composite_RedirectSubwindows_update, byte_order);
5352  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 3, ENC_NA);
5353  *offsetp += 3;
5354 }
5355 
5356 static void compositeUnredirectWindow(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
5357 {
5358  proto_tree_add_item(t, hf_x11_composite_UnredirectWindow_window, tvb, *offsetp, 4, byte_order);
5359  *offsetp += 4;
5360  field8(tvb, offsetp, t, hf_x11_composite_UnredirectWindow_update, byte_order);
5361  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 3, ENC_NA);
5362  *offsetp += 3;
5363 }
5364 
5365 static void compositeUnredirectSubwindows(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
5366 {
5367  proto_tree_add_item(t, hf_x11_composite_UnredirectSubwindows_window, tvb, *offsetp, 4, byte_order);
5368  *offsetp += 4;
5369  field8(tvb, offsetp, t, hf_x11_composite_UnredirectSubwindows_update, byte_order);
5370  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 3, ENC_NA);
5371  *offsetp += 3;
5372 }
5373 
5374 static void compositeCreateRegionFromBorderClip(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
5375 {
5376  proto_tree_add_item(t, hf_x11_composite_CreateRegionFromBorderClip_region, tvb, *offsetp, 4, byte_order);
5377  *offsetp += 4;
5378  proto_tree_add_item(t, hf_x11_composite_CreateRegionFromBorderClip_window, tvb, *offsetp, 4, byte_order);
5379  *offsetp += 4;
5380 }
5381 
5382 static void compositeNameWindowPixmap(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
5383 {
5384  proto_tree_add_item(t, hf_x11_composite_NameWindowPixmap_window, tvb, *offsetp, 4, byte_order);
5385  *offsetp += 4;
5386  proto_tree_add_item(t, hf_x11_composite_NameWindowPixmap_pixmap, tvb, *offsetp, 4, byte_order);
5387  *offsetp += 4;
5388 }
5389 
5390 static void compositeGetOverlayWindow(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
5391 {
5392  proto_tree_add_item(t, hf_x11_composite_GetOverlayWindow_window, tvb, *offsetp, 4, byte_order);
5393  *offsetp += 4;
5394 }
5395 static void compositeGetOverlayWindow_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
5396 {
5397  int sequence_number;
5398 
5399  col_append_fstr(pinfo->cinfo, COL_INFO, "-GetOverlayWindow");
5400 
5401  REPLY(reply);
5402  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
5403  *offsetp += 1;
5404  sequence_number = tvb_get_guint16(tvb, *offsetp, byte_order);
5405  proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
5406  "%d (composite-GetOverlayWindow)", sequence_number);
5407  *offsetp += 2;
5408  proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
5409  *offsetp += 4;
5410  proto_tree_add_item(t, hf_x11_composite_GetOverlayWindow_reply_overlay_win, tvb, *offsetp, 4, byte_order);
5411  *offsetp += 4;
5412  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 20, ENC_NA);
5413  *offsetp += 20;
5414 }
5415 
5416 static void compositeReleaseOverlayWindow(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
5417 {
5418  proto_tree_add_item(t, hf_x11_composite_ReleaseOverlayWindow_window, tvb, *offsetp, 4, byte_order);
5419  *offsetp += 4;
5420 }
5421 static const value_string composite_extension_minor[] = {
5422  { 0, "QueryVersion" },
5423  { 1, "RedirectWindow" },
5424  { 2, "RedirectSubwindows" },
5425  { 3, "UnredirectWindow" },
5426  { 4, "UnredirectSubwindows" },
5427  { 5, "CreateRegionFromBorderClip" },
5428  { 6, "NameWindowPixmap" },
5429  { 7, "GetOverlayWindow" },
5430  { 8, "ReleaseOverlayWindow" },
5431  { 0, NULL }
5432 };
5433 const x11_event_info composite_events[] = {
5434  { NULL, NULL }
5435 };
5436 static x11_reply_info composite_replies[] = {
5437  { 0, compositeQueryVersion_Reply },
5438  { 7, compositeGetOverlayWindow_Reply },
5439  { 0, NULL }
5440 };
5441 
5442 static void dispatch_composite(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
5443 {
5444  int minor, length;
5445  minor = CARD8(composite_extension_minor);
5446  length = REQUEST_LENGTH();
5447 
5448  col_append_fstr(pinfo->cinfo, COL_INFO, "-%s",
5449  val_to_str(minor, composite_extension_minor,
5450  "<Unknown opcode %d>"));
5451  switch (minor) {
5452  case 0:
5453  compositeQueryVersion(tvb, pinfo, offsetp, t, byte_order, length);
5454  break;
5455  case 1:
5456  compositeRedirectWindow(tvb, pinfo, offsetp, t, byte_order, length);
5457  break;
5458  case 2:
5459  compositeRedirectSubwindows(tvb, pinfo, offsetp, t, byte_order, length);
5460  break;
5461  case 3:
5462  compositeUnredirectWindow(tvb, pinfo, offsetp, t, byte_order, length);
5463  break;
5464  case 4:
5465  compositeUnredirectSubwindows(tvb, pinfo, offsetp, t, byte_order, length);
5466  break;
5467  case 5:
5468  compositeCreateRegionFromBorderClip(tvb, pinfo, offsetp, t, byte_order, length);
5469  break;
5470  case 6:
5471  compositeNameWindowPixmap(tvb, pinfo, offsetp, t, byte_order, length);
5472  break;
5473  case 7:
5474  compositeGetOverlayWindow(tvb, pinfo, offsetp, t, byte_order, length);
5475  break;
5476  case 8:
5477  compositeReleaseOverlayWindow(tvb, pinfo, offsetp, t, byte_order, length);
5478  break;
5479  /* No need for a default case here, since Unknown is printed above,
5480  and UNDECODED() is taken care of by dissect_x11_request */
5481  }
5482 }
5483 
5484 static void register_composite(void)
5485 {
5486  set_handler("Composite", dispatch_composite, composite_errors, composite_events, NULL, composite_replies);
5487 }
5488 
5489 static void damageQueryVersion(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
5490 {
5491  proto_tree_add_item(t, hf_x11_damage_QueryVersion_client_major_version, tvb, *offsetp, 4, byte_order);
5492  *offsetp += 4;
5493  proto_tree_add_item(t, hf_x11_damage_QueryVersion_client_minor_version, tvb, *offsetp, 4, byte_order);
5494  *offsetp += 4;
5495 }
5496 static void damageQueryVersion_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
5497 {
5498  int sequence_number;
5499 
5500  col_append_fstr(pinfo->cinfo, COL_INFO, "-QueryVersion");
5501 
5502  REPLY(reply);
5503  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
5504  *offsetp += 1;
5505  sequence_number = tvb_get_guint16(tvb, *offsetp, byte_order);
5506  proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
5507  "%d (damage-QueryVersion)", sequence_number);
5508  *offsetp += 2;
5509  proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
5510  *offsetp += 4;
5511  proto_tree_add_item(t, hf_x11_damage_QueryVersion_reply_major_version, tvb, *offsetp, 4, byte_order);
5512  *offsetp += 4;
5513  proto_tree_add_item(t, hf_x11_damage_QueryVersion_reply_minor_version, tvb, *offsetp, 4, byte_order);
5514  *offsetp += 4;
5515  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 16, ENC_NA);
5516  *offsetp += 16;
5517 }
5518 
5519 static void damageCreate(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
5520 {
5521  proto_tree_add_item(t, hf_x11_damage_Create_damage, tvb, *offsetp, 4, byte_order);
5522  *offsetp += 4;
5523  proto_tree_add_item(t, hf_x11_damage_Create_drawable, tvb, *offsetp, 4, byte_order);
5524  *offsetp += 4;
5525  field8(tvb, offsetp, t, hf_x11_damage_Create_level, byte_order);
5526  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 3, ENC_NA);
5527  *offsetp += 3;
5528 }
5529 
5530 static void damageDestroy(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
5531 {
5532  proto_tree_add_item(t, hf_x11_damage_Destroy_damage, tvb, *offsetp, 4, byte_order);
5533  *offsetp += 4;
5534 }
5535 
5536 static void damageSubtract(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
5537 {
5538  proto_tree_add_item(t, hf_x11_damage_Subtract_damage, tvb, *offsetp, 4, byte_order);
5539  *offsetp += 4;
5540  field32(tvb, offsetp, t, hf_x11_damage_Subtract_repair, byte_order);
5541  field32(tvb, offsetp, t, hf_x11_damage_Subtract_parts, byte_order);
5542 }
5543 
5544 static void damageAdd(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
5545 {
5546  proto_tree_add_item(t, hf_x11_damage_Add_drawable, tvb, *offsetp, 4, byte_order);
5547  *offsetp += 4;
5548  proto_tree_add_item(t, hf_x11_damage_Add_region, tvb, *offsetp, 4, byte_order);
5549  *offsetp += 4;
5550 }
5551 static const value_string damage_extension_minor[] = {
5552  { 0, "QueryVersion" },
5553  { 1, "Create" },
5554  { 2, "Destroy" },
5555  { 3, "Subtract" },
5556  { 4, "Add" },
5557  { 0, NULL }
5558 };
5559 const x11_event_info damage_events[] = {
5560  { NULL, NULL }
5561 };
5562 static x11_reply_info damage_replies[] = {
5563  { 0, damageQueryVersion_Reply },
5564  { 0, NULL }
5565 };
5566 
5567 static void dispatch_damage(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
5568 {
5569  int minor, length;
5570  minor = CARD8(damage_extension_minor);
5571  length = REQUEST_LENGTH();
5572 
5573  col_append_fstr(pinfo->cinfo, COL_INFO, "-%s",
5574  val_to_str(minor, damage_extension_minor,
5575  "<Unknown opcode %d>"));
5576  switch (minor) {
5577  case 0:
5578  damageQueryVersion(tvb, pinfo, offsetp, t, byte_order, length);
5579  break;
5580  case 1:
5581  damageCreate(tvb, pinfo, offsetp, t, byte_order, length);
5582  break;
5583  case 2:
5584  damageDestroy(tvb, pinfo, offsetp, t, byte_order, length);
5585  break;
5586  case 3:
5587  damageSubtract(tvb, pinfo, offsetp, t, byte_order, length);
5588  break;
5589  case 4:
5590  damageAdd(tvb, pinfo, offsetp, t, byte_order, length);
5591  break;
5592  /* No need for a default case here, since Unknown is printed above,
5593  and UNDECODED() is taken care of by dissect_x11_request */
5594  }
5595 }
5596 
5597 static void register_damage(void)
5598 {
5599  set_handler("DAMAGE", dispatch_damage, damage_errors, damage_events, NULL, damage_replies);
5600 }
5601 
5602 static void dpmsGetVersion(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
5603 {
5604  proto_tree_add_item(t, hf_x11_dpms_GetVersion_client_major_version, tvb, *offsetp, 2, byte_order);
5605  *offsetp += 2;
5606  proto_tree_add_item(t, hf_x11_dpms_GetVersion_client_minor_version, tvb, *offsetp, 2, byte_order);
5607  *offsetp += 2;
5608 }
5609 static void dpmsGetVersion_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
5610 {
5611  int sequence_number;
5612 
5613  col_append_fstr(pinfo->cinfo, COL_INFO, "-GetVersion");
5614 
5615  REPLY(reply);
5616  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
5617  *offsetp += 1;
5618  sequence_number = tvb_get_guint16(tvb, *offsetp, byte_order);
5619  proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
5620  "%d (dpms-GetVersion)", sequence_number);
5621  *offsetp += 2;
5622  proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
5623  *offsetp += 4;
5624  proto_tree_add_item(t, hf_x11_dpms_GetVersion_reply_server_major_version, tvb, *offsetp, 2, byte_order);
5625  *offsetp += 2;
5626  proto_tree_add_item(t, hf_x11_dpms_GetVersion_reply_server_minor_version, tvb, *offsetp, 2, byte_order);
5627  *offsetp += 2;
5628 }
5629 
5630 static void dpmsCapable(tvbuff_t *tvb _U_, packet_info *pinfo _U_, int *offsetp _U_, proto_tree *t _U_, guint byte_order _U_, int length _U_)
5631 {
5632 }
5633 static void dpmsCapable_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
5634 {
5635  int sequence_number;
5636 
5637  col_append_fstr(pinfo->cinfo, COL_INFO, "-Capable");
5638 
5639  REPLY(reply);
5640  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
5641  *offsetp += 1;
5642  sequence_number = tvb_get_guint16(tvb, *offsetp, byte_order);
5643  proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
5644  "%d (dpms-Capable)", sequence_number);
5645  *offsetp += 2;
5646  proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
5647  *offsetp += 4;
5648  proto_tree_add_item(t, hf_x11_dpms_Capable_reply_capable, tvb, *offsetp, 1, byte_order);
5649  *offsetp += 1;
5650  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 23, ENC_NA);
5651  *offsetp += 23;
5652 }
5653 
5654 static void dpmsGetTimeouts(tvbuff_t *tvb _U_, packet_info *pinfo _U_, int *offsetp _U_, proto_tree *t _U_, guint byte_order _U_, int length _U_)
5655 {
5656 }
5657 static void dpmsGetTimeouts_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
5658 {
5659  int sequence_number;
5660 
5661  col_append_fstr(pinfo->cinfo, COL_INFO, "-GetTimeouts");
5662 
5663  REPLY(reply);
5664  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
5665  *offsetp += 1;
5666  sequence_number = tvb_get_guint16(tvb, *offsetp, byte_order);
5667  proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
5668  "%d (dpms-GetTimeouts)", sequence_number);
5669  *offsetp += 2;
5670  proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
5671  *offsetp += 4;
5672  proto_tree_add_item(t, hf_x11_dpms_GetTimeouts_reply_standby_timeout, tvb, *offsetp, 2, byte_order);
5673  *offsetp += 2;
5674  proto_tree_add_item(t, hf_x11_dpms_GetTimeouts_reply_suspend_timeout, tvb, *offsetp, 2, byte_order);
5675  *offsetp += 2;
5676  proto_tree_add_item(t, hf_x11_dpms_GetTimeouts_reply_off_timeout, tvb, *offsetp, 2, byte_order);
5677  *offsetp += 2;
5678  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 18, ENC_NA);
5679  *offsetp += 18;
5680 }
5681 
5682 static void dpmsSetTimeouts(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
5683 {
5684  proto_tree_add_item(t, hf_x11_dpms_SetTimeouts_standby_timeout, tvb, *offsetp, 2, byte_order);
5685  *offsetp += 2;
5686  proto_tree_add_item(t, hf_x11_dpms_SetTimeouts_suspend_timeout, tvb, *offsetp, 2, byte_order);
5687  *offsetp += 2;
5688  proto_tree_add_item(t, hf_x11_dpms_SetTimeouts_off_timeout, tvb, *offsetp, 2, byte_order);
5689  *offsetp += 2;
5690 }
5691 
5692 static void dpmsEnable(tvbuff_t *tvb _U_, packet_info *pinfo _U_, int *offsetp _U_, proto_tree *t _U_, guint byte_order _U_, int length _U_)
5693 {
5694 }
5695 
5696 static void dpmsDisable(tvbuff_t *tvb _U_, packet_info *pinfo _U_, int *offsetp _U_, proto_tree *t _U_, guint byte_order _U_, int length _U_)
5697 {
5698 }
5699 
5700 static void dpmsForceLevel(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
5701 {
5702  field16(tvb, offsetp, t, hf_x11_dpms_ForceLevel_power_level, byte_order);
5703 }
5704 
5705 static void dpmsInfo(tvbuff_t *tvb _U_, packet_info *pinfo _U_, int *offsetp _U_, proto_tree *t _U_, guint byte_order _U_, int length _U_)
5706 {
5707 }
5708 static void dpmsInfo_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
5709 {
5710  int sequence_number;
5711 
5712  col_append_fstr(pinfo->cinfo, COL_INFO, "-Info");
5713 
5714  REPLY(reply);
5715  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
5716  *offsetp += 1;
5717  sequence_number = tvb_get_guint16(tvb, *offsetp, byte_order);
5718  proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
5719  "%d (dpms-Info)", sequence_number);
5720  *offsetp += 2;
5721  proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
5722  *offsetp += 4;
5723  field16(tvb, offsetp, t, hf_x11_dpms_Info_reply_power_level, byte_order);
5724  proto_tree_add_item(t, hf_x11_dpms_Info_reply_state, tvb, *offsetp, 1, byte_order);
5725  *offsetp += 1;
5726  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 21, ENC_NA);
5727  *offsetp += 21;
5728 }
5729 static const value_string dpms_extension_minor[] = {
5730  { 0, "GetVersion" },
5731  { 1, "Capable" },
5732  { 2, "GetTimeouts" },
5733  { 3, "SetTimeouts" },
5734  { 4, "Enable" },
5735  { 5, "Disable" },
5736  { 6, "ForceLevel" },
5737  { 7, "Info" },
5738  { 0, NULL }
5739 };
5740 const x11_event_info dpms_events[] = {
5741  { NULL, NULL }
5742 };
5743 static x11_reply_info dpms_replies[] = {
5744  { 0, dpmsGetVersion_Reply },
5745  { 1, dpmsCapable_Reply },
5746  { 2, dpmsGetTimeouts_Reply },
5747  { 7, dpmsInfo_Reply },
5748  { 0, NULL }
5749 };
5750 
5751 static void dispatch_dpms(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
5752 {
5753  int minor, length;
5754  minor = CARD8(dpms_extension_minor);
5755  length = REQUEST_LENGTH();
5756 
5757  col_append_fstr(pinfo->cinfo, COL_INFO, "-%s",
5758  val_to_str(minor, dpms_extension_minor,
5759  "<Unknown opcode %d>"));
5760  switch (minor) {
5761  case 0:
5762  dpmsGetVersion(tvb, pinfo, offsetp, t, byte_order, length);
5763  break;
5764  case 1:
5765  dpmsCapable(tvb, pinfo, offsetp, t, byte_order, length);
5766  break;
5767  case 2:
5768  dpmsGetTimeouts(tvb, pinfo, offsetp, t, byte_order, length);
5769  break;
5770  case 3:
5771  dpmsSetTimeouts(tvb, pinfo, offsetp, t, byte_order, length);
5772  break;
5773  case 4:
5774  dpmsEnable(tvb, pinfo, offsetp, t, byte_order, length);
5775  break;
5776  case 5:
5777  dpmsDisable(tvb, pinfo, offsetp, t, byte_order, length);
5778  break;
5779  case 6:
5780  dpmsForceLevel(tvb, pinfo, offsetp, t, byte_order, length);
5781  break;
5782  case 7:
5783  dpmsInfo(tvb, pinfo, offsetp, t, byte_order, length);
5784  break;
5785  /* No need for a default case here, since Unknown is printed above,
5786  and UNDECODED() is taken care of by dissect_x11_request */
5787  }
5788 }
5789 
5790 static void register_dpms(void)
5791 {
5792  set_handler("DPMS", dispatch_dpms, dpms_errors, dpms_events, NULL, dpms_replies);
5793 }
5794 
5795 static void struct_dri2_DRI2Buffer(tvbuff_t *tvb, int *offsetp, proto_tree *root, guint byte_order _U_, int count)
5796 {
5797  int i;
5798  for (i = 0; i < count; i++) {
5799  proto_item *item;
5800  proto_tree *t;
5801 
5802  item = proto_tree_add_item(root, hf_x11_struct_dri2_DRI2Buffer, tvb, *offsetp, 20, ENC_NA);
5803  t = proto_item_add_subtree(item, ett_x11_rectangle);
5804  field32(tvb, offsetp, t, hf_x11_struct_dri2_DRI2Buffer_attachment, byte_order);
5805  proto_tree_add_item(t, hf_x11_struct_dri2_DRI2Buffer_name, tvb, *offsetp, 4, byte_order);
5806  *offsetp += 4;
5807  proto_tree_add_item(t, hf_x11_struct_dri2_DRI2Buffer_pitch, tvb, *offsetp, 4, byte_order);
5808  *offsetp += 4;
5809  proto_tree_add_item(t, hf_x11_struct_dri2_DRI2Buffer_cpp, tvb, *offsetp, 4, byte_order);
5810  *offsetp += 4;
5811  proto_tree_add_item(t, hf_x11_struct_dri2_DRI2Buffer_flags, tvb, *offsetp, 4, byte_order);
5812  *offsetp += 4;
5813  }
5814 }
5815 
5816 static void struct_dri2_AttachFormat(tvbuff_t *tvb, int *offsetp, proto_tree *root, guint byte_order _U_, int count)
5817 {
5818  int i;
5819  for (i = 0; i < count; i++) {
5820  proto_item *item;
5821  proto_tree *t;
5822 
5823  item = proto_tree_add_item(root, hf_x11_struct_dri2_AttachFormat, tvb, *offsetp, 8, ENC_NA);
5824  t = proto_item_add_subtree(item, ett_x11_rectangle);
5825  field32(tvb, offsetp, t, hf_x11_struct_dri2_AttachFormat_attachment, byte_order);
5826  proto_tree_add_item(t, hf_x11_struct_dri2_AttachFormat_format, tvb, *offsetp, 4, byte_order);
5827  *offsetp += 4;
5828  }
5829 }
5830 
5831 static void dri2QueryVersion(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
5832 {
5833  proto_tree_add_item(t, hf_x11_dri2_QueryVersion_major_version, tvb, *offsetp, 4, byte_order);
5834  *offsetp += 4;
5835  proto_tree_add_item(t, hf_x11_dri2_QueryVersion_minor_version, tvb, *offsetp, 4, byte_order);
5836  *offsetp += 4;
5837 }
5838 static void dri2QueryVersion_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
5839 {
5840  int sequence_number;
5841 
5842  col_append_fstr(pinfo->cinfo, COL_INFO, "-QueryVersion");
5843 
5844  REPLY(reply);
5845  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
5846  *offsetp += 1;
5847  sequence_number = tvb_get_guint16(tvb, *offsetp, byte_order);
5848  proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
5849  "%d (dri2-QueryVersion)", sequence_number);
5850  *offsetp += 2;
5851  proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
5852  *offsetp += 4;
5853  proto_tree_add_item(t, hf_x11_dri2_QueryVersion_reply_major_version, tvb, *offsetp, 4, byte_order);
5854  *offsetp += 4;
5855  proto_tree_add_item(t, hf_x11_dri2_QueryVersion_reply_minor_version, tvb, *offsetp, 4, byte_order);
5856  *offsetp += 4;
5857 }
5858 
5859 static void dri2Connect(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
5860 {
5861  proto_tree_add_item(t, hf_x11_dri2_Connect_window, tvb, *offsetp, 4, byte_order);
5862  *offsetp += 4;
5863  field32(tvb, offsetp, t, hf_x11_dri2_Connect_driver_type, byte_order);
5864 }
5865 static void dri2Connect_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
5866 {
5867  int sequence_number;
5868  int f_driver_name_length;
5869  int f_device_name_length;
5870 
5871  col_append_fstr(pinfo->cinfo, COL_INFO, "-Connect");
5872 
5873  REPLY(reply);
5874  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
5875  *offsetp += 1;
5876  sequence_number = tvb_get_guint16(tvb, *offsetp, byte_order);
5877  proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
5878  "%d (dri2-Connect)", sequence_number);
5879  *offsetp += 2;
5880  proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
5881  *offsetp += 4;
5882  f_driver_name_length = tvb_get_guint32(tvb, *offsetp, byte_order);
5883  proto_tree_add_item(t, hf_x11_dri2_Connect_reply_driver_name_length, tvb, *offsetp, 4, byte_order);
5884  *offsetp += 4;
5885  f_device_name_length = tvb_get_guint32(tvb, *offsetp, byte_order);
5886  proto_tree_add_item(t, hf_x11_dri2_Connect_reply_device_name_length, tvb, *offsetp, 4, byte_order);
5887  *offsetp += 4;
5888  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 16, ENC_NA);
5889  *offsetp += 16;
5890  listOfByte(tvb, offsetp, t, hf_x11_dri2_Connect_reply_driver_name, f_driver_name_length, byte_order);
5891  listOfByte(tvb, offsetp, t, hf_x11_dri2_Connect_reply_alignment_pad, (((f_driver_name_length + 3) & (~3)) - f_driver_name_length), byte_order);
5892  listOfByte(tvb, offsetp, t, hf_x11_dri2_Connect_reply_device_name, f_device_name_length, byte_order);
5893 }
5894 
5895 static void dri2Authenticate(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
5896 {
5897  proto_tree_add_item(t, hf_x11_dri2_Authenticate_window, tvb, *offsetp, 4, byte_order);
5898  *offsetp += 4;
5899  proto_tree_add_item(t, hf_x11_dri2_Authenticate_magic, tvb, *offsetp, 4, byte_order);
5900  *offsetp += 4;
5901 }
5902 static void dri2Authenticate_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
5903 {
5904  int sequence_number;
5905 
5906  col_append_fstr(pinfo->cinfo, COL_INFO, "-Authenticate");
5907 
5908  REPLY(reply);
5909  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
5910  *offsetp += 1;
5911  sequence_number = tvb_get_guint16(tvb, *offsetp, byte_order);
5912  proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
5913  "%d (dri2-Authenticate)", sequence_number);
5914  *offsetp += 2;
5915  proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
5916  *offsetp += 4;
5917  proto_tree_add_item(t, hf_x11_dri2_Authenticate_reply_authenticated, tvb, *offsetp, 4, byte_order);
5918  *offsetp += 4;
5919 }
5920 
5921 static void dri2CreateDrawable(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
5922 {
5923  proto_tree_add_item(t, hf_x11_dri2_CreateDrawable_drawable, tvb, *offsetp, 4, byte_order);
5924  *offsetp += 4;
5925 }
5926 
5927 static void dri2DestroyDrawable(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
5928 {
5929  proto_tree_add_item(t, hf_x11_dri2_DestroyDrawable_drawable, tvb, *offsetp, 4, byte_order);
5930  *offsetp += 4;
5931 }
5932 
5933 static void dri2GetBuffers(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
5934 {
5935  proto_tree_add_item(t, hf_x11_dri2_GetBuffers_drawable, tvb, *offsetp, 4, byte_order);
5936  *offsetp += 4;
5937  proto_tree_add_item(t, hf_x11_dri2_GetBuffers_count, tvb, *offsetp, 4, byte_order);
5938  *offsetp += 4;
5939  listOfCard32(tvb, offsetp, t, hf_x11_dri2_GetBuffers_attachments, hf_x11_dri2_GetBuffers_attachments_item, (length - 12) / 4, byte_order);
5940 }
5941 static void dri2GetBuffers_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
5942 {
5943  int sequence_number;
5944  int f_count;
5945 
5946  col_append_fstr(pinfo->cinfo, COL_INFO, "-GetBuffers");
5947 
5948  REPLY(reply);
5949  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
5950  *offsetp += 1;
5951  sequence_number = tvb_get_guint16(tvb, *offsetp, byte_order);
5952  proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
5953  "%d (dri2-GetBuffers)", sequence_number);
5954  *offsetp += 2;
5955  proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
5956  *offsetp += 4;
5957  proto_tree_add_item(t, hf_x11_dri2_GetBuffers_reply_width, tvb, *offsetp, 4, byte_order);
5958  *offsetp += 4;
5959  proto_tree_add_item(t, hf_x11_dri2_GetBuffers_reply_height, tvb, *offsetp, 4, byte_order);
5960  *offsetp += 4;
5961  f_count = tvb_get_guint32(tvb, *offsetp, byte_order);
5962  proto_tree_add_item(t, hf_x11_dri2_GetBuffers_reply_count, tvb, *offsetp, 4, byte_order);
5963  *offsetp += 4;
5964  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 12, ENC_NA);
5965  *offsetp += 12;
5966  struct_dri2_DRI2Buffer(tvb, offsetp, t, byte_order, f_count);
5967 }
5968 
5969 static void dri2CopyRegion(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
5970 {
5971  proto_tree_add_item(t, hf_x11_dri2_CopyRegion_drawable, tvb, *offsetp, 4, byte_order);
5972  *offsetp += 4;
5973  proto_tree_add_item(t, hf_x11_dri2_CopyRegion_region, tvb, *offsetp, 4, byte_order);
5974  *offsetp += 4;
5975  proto_tree_add_item(t, hf_x11_dri2_CopyRegion_dest, tvb, *offsetp, 4, byte_order);
5976  *offsetp += 4;
5977  proto_tree_add_item(t, hf_x11_dri2_CopyRegion_src, tvb, *offsetp, 4, byte_order);
5978  *offsetp += 4;
5979 }
5980 static void dri2CopyRegion_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
5981 {
5982  int sequence_number;
5983 
5984  col_append_fstr(pinfo->cinfo, COL_INFO, "-CopyRegion");
5985 
5986  REPLY(reply);
5987  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
5988  *offsetp += 1;
5989  sequence_number = tvb_get_guint16(tvb, *offsetp, byte_order);
5990  proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
5991  "%d (dri2-CopyRegion)", sequence_number);
5992  *offsetp += 2;
5993  proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
5994  *offsetp += 4;
5995 }
5996 
5997 static void dri2GetBuffersWithFormat(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
5998 {
5999  proto_tree_add_item(t, hf_x11_dri2_GetBuffersWithFormat_drawable, tvb, *offsetp, 4, byte_order);
6000  *offsetp += 4;
6001  proto_tree_add_item(t, hf_x11_dri2_GetBuffersWithFormat_count, tvb, *offsetp, 4, byte_order);
6002  *offsetp += 4;
6003  struct_dri2_AttachFormat(tvb, offsetp, t, byte_order, (length - 12) / 8);
6004 }
6005 static void dri2GetBuffersWithFormat_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
6006 {
6007  int sequence_number;
6008  int f_count;
6009 
6010  col_append_fstr(pinfo->cinfo, COL_INFO, "-GetBuffersWithFormat");
6011 
6012  REPLY(reply);
6013  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
6014  *offsetp += 1;
6015  sequence_number = tvb_get_guint16(tvb, *offsetp, byte_order);
6016  proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
6017  "%d (dri2-GetBuffersWithFormat)", sequence_number);
6018  *offsetp += 2;
6019  proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
6020  *offsetp += 4;
6021  proto_tree_add_item(t, hf_x11_dri2_GetBuffersWithFormat_reply_width, tvb, *offsetp, 4, byte_order);
6022  *offsetp += 4;
6023  proto_tree_add_item(t, hf_x11_dri2_GetBuffersWithFormat_reply_height, tvb, *offsetp, 4, byte_order);
6024  *offsetp += 4;
6025  f_count = tvb_get_guint32(tvb, *offsetp, byte_order);
6026  proto_tree_add_item(t, hf_x11_dri2_GetBuffersWithFormat_reply_count, tvb, *offsetp, 4, byte_order);
6027  *offsetp += 4;
6028  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 12, ENC_NA);
6029  *offsetp += 12;
6030  struct_dri2_DRI2Buffer(tvb, offsetp, t, byte_order, f_count);
6031 }
6032 
6033 static void dri2SwapBuffers(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
6034 {
6035  proto_tree_add_item(t, hf_x11_dri2_SwapBuffers_drawable, tvb, *offsetp, 4, byte_order);
6036  *offsetp += 4;
6037  proto_tree_add_item(t, hf_x11_dri2_SwapBuffers_target_msc_hi, tvb, *offsetp, 4, byte_order);
6038  *offsetp += 4;
6039  proto_tree_add_item(t, hf_x11_dri2_SwapBuffers_target_msc_lo, tvb, *offsetp, 4, byte_order);
6040  *offsetp += 4;
6041  proto_tree_add_item(t, hf_x11_dri2_SwapBuffers_divisor_hi, tvb, *offsetp, 4, byte_order);
6042  *offsetp += 4;
6043  proto_tree_add_item(t, hf_x11_dri2_SwapBuffers_divisor_lo, tvb, *offsetp, 4, byte_order);
6044  *offsetp += 4;
6045  proto_tree_add_item(t, hf_x11_dri2_SwapBuffers_remainder_hi, tvb, *offsetp, 4, byte_order);
6046  *offsetp += 4;
6047  proto_tree_add_item(t, hf_x11_dri2_SwapBuffers_remainder_lo, tvb, *offsetp, 4, byte_order);
6048  *offsetp += 4;
6049 }
6050 static void dri2SwapBuffers_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
6051 {
6052  int sequence_number;
6053 
6054  col_append_fstr(pinfo->cinfo, COL_INFO, "-SwapBuffers");
6055 
6056  REPLY(reply);
6057  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
6058  *offsetp += 1;
6059  sequence_number = tvb_get_guint16(tvb, *offsetp, byte_order);
6060  proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
6061  "%d (dri2-SwapBuffers)", sequence_number);
6062  *offsetp += 2;
6063  proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
6064  *offsetp += 4;
6065  proto_tree_add_item(t, hf_x11_dri2_SwapBuffers_reply_swap_hi, tvb, *offsetp, 4, byte_order);
6066  *offsetp += 4;
6067  proto_tree_add_item(t, hf_x11_dri2_SwapBuffers_reply_swap_lo, tvb, *offsetp, 4, byte_order);
6068  *offsetp += 4;
6069 }
6070 
6071 static void dri2GetMSC(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
6072 {
6073  proto_tree_add_item(t, hf_x11_dri2_GetMSC_drawable, tvb, *offsetp, 4, byte_order);
6074  *offsetp += 4;
6075 }
6076 static void dri2GetMSC_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
6077 {
6078  int sequence_number;
6079 
6080  col_append_fstr(pinfo->cinfo, COL_INFO, "-GetMSC");
6081 
6082  REPLY(reply);
6083  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
6084  *offsetp += 1;
6085  sequence_number = tvb_get_guint16(tvb, *offsetp, byte_order);
6086  proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
6087  "%d (dri2-GetMSC)", sequence_number);
6088  *offsetp += 2;
6089  proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
6090  *offsetp += 4;
6091  proto_tree_add_item(t, hf_x11_dri2_GetMSC_reply_ust_hi, tvb, *offsetp, 4, byte_order);
6092  *offsetp += 4;
6093  proto_tree_add_item(t, hf_x11_dri2_GetMSC_reply_ust_lo, tvb, *offsetp, 4, byte_order);
6094  *offsetp += 4;
6095  proto_tree_add_item(t, hf_x11_dri2_GetMSC_reply_msc_hi, tvb, *offsetp, 4, byte_order);
6096  *offsetp += 4;
6097  proto_tree_add_item(t, hf_x11_dri2_GetMSC_reply_msc_lo, tvb, *offsetp, 4, byte_order);
6098  *offsetp += 4;
6099  proto_tree_add_item(t, hf_x11_dri2_GetMSC_reply_sbc_hi, tvb, *offsetp, 4, byte_order);
6100  *offsetp += 4;
6101  proto_tree_add_item(t, hf_x11_dri2_GetMSC_reply_sbc_lo, tvb, *offsetp, 4, byte_order);
6102  *offsetp += 4;
6103 }
6104 
6105 static void dri2WaitMSC(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
6106 {
6107  proto_tree_add_item(t, hf_x11_dri2_WaitMSC_drawable, tvb, *offsetp, 4, byte_order);
6108  *offsetp += 4;
6109  proto_tree_add_item(t, hf_x11_dri2_WaitMSC_target_msc_hi, tvb, *offsetp, 4, byte_order);
6110  *offsetp += 4;
6111  proto_tree_add_item(t, hf_x11_dri2_WaitMSC_target_msc_lo, tvb, *offsetp, 4, byte_order);
6112  *offsetp += 4;
6113  proto_tree_add_item(t, hf_x11_dri2_WaitMSC_divisor_hi, tvb, *offsetp, 4, byte_order);
6114  *offsetp += 4;
6115  proto_tree_add_item(t, hf_x11_dri2_WaitMSC_divisor_lo, tvb, *offsetp, 4, byte_order);
6116  *offsetp += 4;
6117  proto_tree_add_item(t, hf_x11_dri2_WaitMSC_remainder_hi, tvb, *offsetp, 4, byte_order);
6118  *offsetp += 4;
6119  proto_tree_add_item(t, hf_x11_dri2_WaitMSC_remainder_lo, tvb, *offsetp, 4, byte_order);
6120  *offsetp += 4;
6121 }
6122 static void dri2WaitMSC_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
6123 {
6124  int sequence_number;
6125 
6126  col_append_fstr(pinfo->cinfo, COL_INFO, "-WaitMSC");
6127 
6128  REPLY(reply);
6129  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
6130  *offsetp += 1;
6131  sequence_number = tvb_get_guint16(tvb, *offsetp, byte_order);
6132  proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
6133  "%d (dri2-WaitMSC)", sequence_number);
6134  *offsetp += 2;
6135  proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
6136  *offsetp += 4;
6137  proto_tree_add_item(t, hf_x11_dri2_WaitMSC_reply_ust_hi, tvb, *offsetp, 4, byte_order);
6138  *offsetp += 4;
6139  proto_tree_add_item(t, hf_x11_dri2_WaitMSC_reply_ust_lo, tvb, *offsetp, 4, byte_order);
6140  *offsetp += 4;
6141  proto_tree_add_item(t, hf_x11_dri2_WaitMSC_reply_msc_hi, tvb, *offsetp, 4, byte_order);
6142  *offsetp += 4;
6143  proto_tree_add_item(t, hf_x11_dri2_WaitMSC_reply_msc_lo, tvb, *offsetp, 4, byte_order);
6144  *offsetp += 4;
6145  proto_tree_add_item(t, hf_x11_dri2_WaitMSC_reply_sbc_hi, tvb, *offsetp, 4, byte_order);
6146  *offsetp += 4;
6147  proto_tree_add_item(t, hf_x11_dri2_WaitMSC_reply_sbc_lo, tvb, *offsetp, 4, byte_order);
6148  *offsetp += 4;
6149 }
6150 
6151 static void dri2WaitSBC(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
6152 {
6153  proto_tree_add_item(t, hf_x11_dri2_WaitSBC_drawable, tvb, *offsetp, 4, byte_order);
6154  *offsetp += 4;
6155  proto_tree_add_item(t, hf_x11_dri2_WaitSBC_target_sbc_hi, tvb, *offsetp, 4, byte_order);
6156  *offsetp += 4;
6157  proto_tree_add_item(t, hf_x11_dri2_WaitSBC_target_sbc_lo, tvb, *offsetp, 4, byte_order);
6158  *offsetp += 4;
6159 }
6160 static void dri2WaitSBC_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
6161 {
6162  int sequence_number;
6163 
6164  col_append_fstr(pinfo->cinfo, COL_INFO, "-WaitSBC");
6165 
6166  REPLY(reply);
6167  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
6168  *offsetp += 1;
6169  sequence_number = tvb_get_guint16(tvb, *offsetp, byte_order);
6170  proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
6171  "%d (dri2-WaitSBC)", sequence_number);
6172  *offsetp += 2;
6173  proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
6174  *offsetp += 4;
6175  proto_tree_add_item(t, hf_x11_dri2_WaitSBC_reply_ust_hi, tvb, *offsetp, 4, byte_order);
6176  *offsetp += 4;
6177  proto_tree_add_item(t, hf_x11_dri2_WaitSBC_reply_ust_lo, tvb, *offsetp, 4, byte_order);
6178  *offsetp += 4;
6179  proto_tree_add_item(t, hf_x11_dri2_WaitSBC_reply_msc_hi, tvb, *offsetp, 4, byte_order);
6180  *offsetp += 4;
6181  proto_tree_add_item(t, hf_x11_dri2_WaitSBC_reply_msc_lo, tvb, *offsetp, 4, byte_order);
6182  *offsetp += 4;
6183  proto_tree_add_item(t, hf_x11_dri2_WaitSBC_reply_sbc_hi, tvb, *offsetp, 4, byte_order);
6184  *offsetp += 4;
6185  proto_tree_add_item(t, hf_x11_dri2_WaitSBC_reply_sbc_lo, tvb, *offsetp, 4, byte_order);
6186  *offsetp += 4;
6187 }
6188 
6189 static void dri2SwapInterval(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
6190 {
6191  proto_tree_add_item(t, hf_x11_dri2_SwapInterval_drawable, tvb, *offsetp, 4, byte_order);
6192  *offsetp += 4;
6193  proto_tree_add_item(t, hf_x11_dri2_SwapInterval_interval, tvb, *offsetp, 4, byte_order);
6194  *offsetp += 4;
6195 }
6196 
6197 static void dri2GetParam(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
6198 {
6199  proto_tree_add_item(t, hf_x11_dri2_GetParam_drawable, tvb, *offsetp, 4, byte_order);
6200  *offsetp += 4;
6201  proto_tree_add_item(t, hf_x11_dri2_GetParam_param, tvb, *offsetp, 4, byte_order);
6202  *offsetp += 4;
6203 }
6204 static void dri2GetParam_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
6205 {
6206  int sequence_number;
6207 
6208  col_append_fstr(pinfo->cinfo, COL_INFO, "-GetParam");
6209 
6210  REPLY(reply);
6211  proto_tree_add_item(t, hf_x11_dri2_GetParam_reply_is_param_recognized, tvb, *offsetp, 1, byte_order);
6212  *offsetp += 1;
6213  sequence_number = tvb_get_guint16(tvb, *offsetp, byte_order);
6214  proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
6215  "%d (dri2-GetParam)", sequence_number);
6216  *offsetp += 2;
6217  proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
6218  *offsetp += 4;
6219  proto_tree_add_item(t, hf_x11_dri2_GetParam_reply_value_hi, tvb, *offsetp, 4, byte_order);
6220  *offsetp += 4;
6221  proto_tree_add_item(t, hf_x11_dri2_GetParam_reply_value_lo, tvb, *offsetp, 4, byte_order);
6222  *offsetp += 4;
6223 }
6224 
6225 static void dri2InvalidateBuffers(tvbuff_t *tvb, int *offsetp, proto_tree *t, guint byte_order)
6226 {
6227  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
6228  *offsetp += 1;
6229  CARD16(event_sequencenumber);
6230  proto_tree_add_item(t, hf_x11_dri2_InvalidateBuffers_drawable, tvb, *offsetp, 4, byte_order);
6231  *offsetp += 4;
6232 }
6233 
6234 static const value_string dri2_extension_minor[] = {
6235  { 0, "QueryVersion" },
6236  { 1, "Connect" },
6237  { 2, "Authenticate" },
6238  { 3, "CreateDrawable" },
6239  { 4, "DestroyDrawable" },
6240  { 5, "GetBuffers" },
6241  { 6, "CopyRegion" },
6242  { 7, "GetBuffersWithFormat" },
6243  { 8, "SwapBuffers" },
6244  { 9, "GetMSC" },
6245  { 10, "WaitMSC" },
6246  { 11, "WaitSBC" },
6247  { 12, "SwapInterval" },
6248  { 13, "GetParam" },
6249  { 0, NULL }
6250 };
6251 static const x11_event_info dri2_events[] = {
6252  { "dri2-InvalidateBuffers", dri2InvalidateBuffers },
6253  { NULL, NULL }
6254 };
6255 static x11_reply_info dri2_replies[] = {
6256  { 0, dri2QueryVersion_Reply },
6257  { 1, dri2Connect_Reply },
6258  { 2, dri2Authenticate_Reply },
6259  { 5, dri2GetBuffers_Reply },
6260  { 6, dri2CopyRegion_Reply },
6261  { 7, dri2GetBuffersWithFormat_Reply },
6262  { 8, dri2SwapBuffers_Reply },
6263  { 9, dri2GetMSC_Reply },
6264  { 10, dri2WaitMSC_Reply },
6265  { 11, dri2WaitSBC_Reply },
6266  { 13, dri2GetParam_Reply },
6267  { 0, NULL }
6268 };
6269 
6270 static void dispatch_dri2(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
6271 {
6272  int minor, length;
6273  minor = CARD8(dri2_extension_minor);
6274  length = REQUEST_LENGTH();
6275 
6276  col_append_fstr(pinfo->cinfo, COL_INFO, "-%s",
6277  val_to_str(minor, dri2_extension_minor,
6278  "<Unknown opcode %d>"));
6279  switch (minor) {
6280  case 0:
6281  dri2QueryVersion(tvb, pinfo, offsetp, t, byte_order, length);
6282  break;
6283  case 1:
6284  dri2Connect(tvb, pinfo, offsetp, t, byte_order, length);
6285  break;
6286  case 2:
6287  dri2Authenticate(tvb, pinfo, offsetp, t, byte_order, length);
6288  break;
6289  case 3:
6290  dri2CreateDrawable(tvb, pinfo, offsetp, t, byte_order, length);
6291  break;
6292  case 4:
6293  dri2DestroyDrawable(tvb, pinfo, offsetp, t, byte_order, length);
6294  break;
6295  case 5:
6296  dri2GetBuffers(tvb, pinfo, offsetp, t, byte_order, length);
6297  break;
6298  case 6:
6299  dri2CopyRegion(tvb, pinfo, offsetp, t, byte_order, length);
6300  break;
6301  case 7:
6302  dri2GetBuffersWithFormat(tvb, pinfo, offsetp, t, byte_order, length);
6303  break;
6304  case 8:
6305  dri2SwapBuffers(tvb, pinfo, offsetp, t, byte_order, length);
6306  break;
6307  case 9:
6308  dri2GetMSC(tvb, pinfo, offsetp, t, byte_order, length);
6309  break;
6310  case 10:
6311  dri2WaitMSC(tvb, pinfo, offsetp, t, byte_order, length);
6312  break;
6313  case 11:
6314  dri2WaitSBC(tvb, pinfo, offsetp, t, byte_order, length);
6315  break;
6316  case 12:
6317  dri2SwapInterval(tvb, pinfo, offsetp, t, byte_order, length);
6318  break;
6319  case 13:
6320  dri2GetParam(tvb, pinfo, offsetp, t, byte_order, length);
6321  break;
6322  /* No need for a default case here, since Unknown is printed above,
6323  and UNDECODED() is taken care of by dissect_x11_request */
6324  }
6325 }
6326 
6327 static void register_dri2(void)
6328 {
6329  set_handler("DRI2", dispatch_dri2, dri2_errors, dri2_events, NULL, dri2_replies);
6330 }
6331 
6332 static void dri3QueryVersion(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
6333 {
6334  proto_tree_add_item(t, hf_x11_dri3_QueryVersion_major_version, tvb, *offsetp, 4, byte_order);
6335  *offsetp += 4;
6336  proto_tree_add_item(t, hf_x11_dri3_QueryVersion_minor_version, tvb, *offsetp, 4, byte_order);
6337  *offsetp += 4;
6338 }
6339 static void dri3QueryVersion_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
6340 {
6341  int sequence_number;
6342 
6343  col_append_fstr(pinfo->cinfo, COL_INFO, "-QueryVersion");
6344 
6345  REPLY(reply);
6346  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
6347  *offsetp += 1;
6348  sequence_number = tvb_get_guint16(tvb, *offsetp, byte_order);
6349  proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
6350  "%d (dri3-QueryVersion)", sequence_number);
6351  *offsetp += 2;
6352  proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
6353  *offsetp += 4;
6354  proto_tree_add_item(t, hf_x11_dri3_QueryVersion_reply_major_version, tvb, *offsetp, 4, byte_order);
6355  *offsetp += 4;
6356  proto_tree_add_item(t, hf_x11_dri3_QueryVersion_reply_minor_version, tvb, *offsetp, 4, byte_order);
6357  *offsetp += 4;
6358 }
6359 
6360 static void dri3Open(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
6361 {
6362  proto_tree_add_item(t, hf_x11_dri3_Open_drawable, tvb, *offsetp, 4, byte_order);
6363  *offsetp += 4;
6364  proto_tree_add_item(t, hf_x11_dri3_Open_provider, tvb, *offsetp, 4, byte_order);
6365  *offsetp += 4;
6366 }
6367 static void dri3Open_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
6368 {
6369  int sequence_number;
6370 
6371  col_append_fstr(pinfo->cinfo, COL_INFO, "-Open");
6372 
6373  REPLY(reply);
6374  proto_tree_add_item(t, hf_x11_dri3_Open_reply_nfd, tvb, *offsetp, 1, byte_order);
6375  *offsetp += 1;
6376  sequence_number = tvb_get_guint16(tvb, *offsetp, byte_order);
6377  proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
6378  "%d (dri3-Open)", sequence_number);
6379  *offsetp += 2;
6380  proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
6381  *offsetp += 4;
6382  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 24, ENC_NA);
6383  *offsetp += 24;
6384 }
6385 
6386 static void dri3PixmapFromBuffer(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
6387 {
6388  proto_tree_add_item(t, hf_x11_dri3_PixmapFromBuffer_pixmap, tvb, *offsetp, 4, byte_order);
6389  *offsetp += 4;
6390  proto_tree_add_item(t, hf_x11_dri3_PixmapFromBuffer_drawable, tvb, *offsetp, 4, byte_order);
6391  *offsetp += 4;
6392  proto_tree_add_item(t, hf_x11_dri3_PixmapFromBuffer_size, tvb, *offsetp, 4, byte_order);
6393  *offsetp += 4;
6394  proto_tree_add_item(t, hf_x11_dri3_PixmapFromBuffer_width, tvb, *offsetp, 2, byte_order);
6395  *offsetp += 2;
6396  proto_tree_add_item(t, hf_x11_dri3_PixmapFromBuffer_height, tvb, *offsetp, 2, byte_order);
6397  *offsetp += 2;
6398  proto_tree_add_item(t, hf_x11_dri3_PixmapFromBuffer_stride, tvb, *offsetp, 2, byte_order);
6399  *offsetp += 2;
6400  proto_tree_add_item(t, hf_x11_dri3_PixmapFromBuffer_depth, tvb, *offsetp, 1, byte_order);
6401  *offsetp += 1;
6402  proto_tree_add_item(t, hf_x11_dri3_PixmapFromBuffer_bpp, tvb, *offsetp, 1, byte_order);
6403  *offsetp += 1;
6404 }
6405 
6406 static void dri3BufferFromPixmap(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
6407 {
6408  proto_tree_add_item(t, hf_x11_dri3_BufferFromPixmap_pixmap, tvb, *offsetp, 4, byte_order);
6409  *offsetp += 4;
6410 }
6411 static void dri3BufferFromPixmap_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
6412 {
6413  int sequence_number;
6414 
6415  col_append_fstr(pinfo->cinfo, COL_INFO, "-BufferFromPixmap");
6416 
6417  REPLY(reply);
6418  proto_tree_add_item(t, hf_x11_dri3_BufferFromPixmap_reply_nfd, tvb, *offsetp, 1, byte_order);
6419  *offsetp += 1;
6420  sequence_number = tvb_get_guint16(tvb, *offsetp, byte_order);
6421  proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
6422  "%d (dri3-BufferFromPixmap)", sequence_number);
6423  *offsetp += 2;
6424  proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
6425  *offsetp += 4;
6426  proto_tree_add_item(t, hf_x11_dri3_BufferFromPixmap_reply_size, tvb, *offsetp, 4, byte_order);
6427  *offsetp += 4;
6428  proto_tree_add_item(t, hf_x11_dri3_BufferFromPixmap_reply_width, tvb, *offsetp, 2, byte_order);
6429  *offsetp += 2;
6430  proto_tree_add_item(t, hf_x11_dri3_BufferFromPixmap_reply_height, tvb, *offsetp, 2, byte_order);
6431  *offsetp += 2;
6432  proto_tree_add_item(t, hf_x11_dri3_BufferFromPixmap_reply_stride, tvb, *offsetp, 2, byte_order);
6433  *offsetp += 2;
6434  proto_tree_add_item(t, hf_x11_dri3_BufferFromPixmap_reply_depth, tvb, *offsetp, 1, byte_order);
6435  *offsetp += 1;
6436  proto_tree_add_item(t, hf_x11_dri3_BufferFromPixmap_reply_bpp, tvb, *offsetp, 1, byte_order);
6437  *offsetp += 1;
6438  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 12, ENC_NA);
6439  *offsetp += 12;
6440 }
6441 
6442 static void dri3FenceFromFD(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
6443 {
6444  proto_tree_add_item(t, hf_x11_dri3_FenceFromFD_drawable, tvb, *offsetp, 4, byte_order);
6445  *offsetp += 4;
6446  proto_tree_add_item(t, hf_x11_dri3_FenceFromFD_fence, tvb, *offsetp, 4, byte_order);
6447  *offsetp += 4;
6448  proto_tree_add_item(t, hf_x11_dri3_FenceFromFD_initially_triggered, tvb, *offsetp, 1, byte_order);
6449  *offsetp += 1;
6450  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 3, ENC_NA);
6451  *offsetp += 3;
6452 }
6453 
6454 static void dri3FDFromFence(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
6455 {
6456  proto_tree_add_item(t, hf_x11_dri3_FDFromFence_drawable, tvb, *offsetp, 4, byte_order);
6457  *offsetp += 4;
6458  proto_tree_add_item(t, hf_x11_dri3_FDFromFence_fence, tvb, *offsetp, 4, byte_order);
6459  *offsetp += 4;
6460 }
6461 static void dri3FDFromFence_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
6462 {
6463  int sequence_number;
6464 
6465  col_append_fstr(pinfo->cinfo, COL_INFO, "-FDFromFence");
6466 
6467  REPLY(reply);
6468  proto_tree_add_item(t, hf_x11_dri3_FDFromFence_reply_nfd, tvb, *offsetp, 1, byte_order);
6469  *offsetp += 1;
6470  sequence_number = tvb_get_guint16(tvb, *offsetp, byte_order);
6471  proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
6472  "%d (dri3-FDFromFence)", sequence_number);
6473  *offsetp += 2;
6474  proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
6475  *offsetp += 4;
6476  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 24, ENC_NA);
6477  *offsetp += 24;
6478 }
6479 
6480 static void dri3GetSupportedModifiers(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
6481 {
6482  proto_tree_add_item(t, hf_x11_dri3_GetSupportedModifiers_window, tvb, *offsetp, 4, byte_order);
6483  *offsetp += 4;
6484  proto_tree_add_item(t, hf_x11_dri3_GetSupportedModifiers_depth, tvb, *offsetp, 1, byte_order);
6485  *offsetp += 1;
6486  proto_tree_add_item(t, hf_x11_dri3_GetSupportedModifiers_bpp, tvb, *offsetp, 1, byte_order);
6487  *offsetp += 1;
6488  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 2, ENC_NA);
6489  *offsetp += 2;
6490 }
6491 static void dri3GetSupportedModifiers_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
6492 {
6493  int sequence_number;
6494  int f_num_window_modifiers;
6495  int f_num_screen_modifiers;
6496 
6497  col_append_fstr(pinfo->cinfo, COL_INFO, "-GetSupportedModifiers");
6498 
6499  REPLY(reply);
6500  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
6501  *offsetp += 1;
6502  sequence_number = tvb_get_guint16(tvb, *offsetp, byte_order);
6503  proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
6504  "%d (dri3-GetSupportedModifiers)", sequence_number);
6505  *offsetp += 2;
6506  proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
6507  *offsetp += 4;
6508  f_num_window_modifiers = tvb_get_guint32(tvb, *offsetp, byte_order);
6509  proto_tree_add_item(t, hf_x11_dri3_GetSupportedModifiers_reply_num_window_modifiers, tvb, *offsetp, 4, byte_order);
6510  *offsetp += 4;
6511  f_num_screen_modifiers = tvb_get_guint32(tvb, *offsetp, byte_order);
6512  proto_tree_add_item(t, hf_x11_dri3_GetSupportedModifiers_reply_num_screen_modifiers, tvb, *offsetp, 4, byte_order);
6513  *offsetp += 4;
6514  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 16, ENC_NA);
6515  *offsetp += 16;
6516  listOfCard64(tvb, offsetp, t, hf_x11_dri3_GetSupportedModifiers_reply_window_modifiers, hf_x11_dri3_GetSupportedModifiers_reply_window_modifiers_item, f_num_window_modifiers, byte_order);
6517  listOfCard64(tvb, offsetp, t, hf_x11_dri3_GetSupportedModifiers_reply_screen_modifiers, hf_x11_dri3_GetSupportedModifiers_reply_screen_modifiers_item, f_num_screen_modifiers, byte_order);
6518 }
6519 
6520 static void dri3PixmapFromBuffers(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
6521 {
6522  int f_num_buffers;
6523  proto_tree_add_item(t, hf_x11_dri3_PixmapFromBuffers_pixmap, tvb, *offsetp, 4, byte_order);
6524  *offsetp += 4;
6525  proto_tree_add_item(t, hf_x11_dri3_PixmapFromBuffers_window, tvb, *offsetp, 4, byte_order);
6526  *offsetp += 4;
6527  f_num_buffers = tvb_get_guint8(tvb, *offsetp);
6528  proto_tree_add_item(t, hf_x11_dri3_PixmapFromBuffers_num_buffers, tvb, *offsetp, 1, byte_order);
6529  *offsetp += 1;
6530  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 3, ENC_NA);
6531  *offsetp += 3;
6532  proto_tree_add_item(t, hf_x11_dri3_PixmapFromBuffers_width, tvb, *offsetp, 2, byte_order);
6533  *offsetp += 2;
6534  proto_tree_add_item(t, hf_x11_dri3_PixmapFromBuffers_height, tvb, *offsetp, 2, byte_order);
6535  *offsetp += 2;
6536  proto_tree_add_item(t, hf_x11_dri3_PixmapFromBuffers_stride0, tvb, *offsetp, 4, byte_order);
6537  *offsetp += 4;
6538  proto_tree_add_item(t, hf_x11_dri3_PixmapFromBuffers_offset0, tvb, *offsetp, 4, byte_order);
6539  *offsetp += 4;
6540  proto_tree_add_item(t, hf_x11_dri3_PixmapFromBuffers_stride1, tvb, *offsetp, 4, byte_order);
6541  *offsetp += 4;
6542  proto_tree_add_item(t, hf_x11_dri3_PixmapFromBuffers_offset1, tvb, *offsetp, 4, byte_order);
6543  *offsetp += 4;
6544  proto_tree_add_item(t, hf_x11_dri3_PixmapFromBuffers_stride2, tvb, *offsetp, 4, byte_order);
6545  *offsetp += 4;
6546  proto_tree_add_item(t, hf_x11_dri3_PixmapFromBuffers_offset2, tvb, *offsetp, 4, byte_order);
6547  *offsetp += 4;
6548  proto_tree_add_item(t, hf_x11_dri3_PixmapFromBuffers_stride3, tvb, *offsetp, 4, byte_order);
6549  *offsetp += 4;
6550  proto_tree_add_item(t, hf_x11_dri3_PixmapFromBuffers_offset3, tvb, *offsetp, 4, byte_order);
6551  *offsetp += 4;
6552  proto_tree_add_item(t, hf_x11_dri3_PixmapFromBuffers_depth, tvb, *offsetp, 1, byte_order);
6553  *offsetp += 1;
6554  proto_tree_add_item(t, hf_x11_dri3_PixmapFromBuffers_bpp, tvb, *offsetp, 1, byte_order);
6555  *offsetp += 1;
6556  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 2, ENC_NA);
6557  *offsetp += 2;
6558  proto_tree_add_item(t, hf_x11_dri3_PixmapFromBuffers_modifier, tvb, *offsetp, 8, byte_order);
6559  *offsetp += 8;
6560  length -= f_num_buffers * 1;
6561 }
6562 
6563 static void dri3BuffersFromPixmap(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
6564 {
6565  proto_tree_add_item(t, hf_x11_dri3_BuffersFromPixmap_pixmap, tvb, *offsetp, 4, byte_order);
6566  *offsetp += 4;
6567 }
6568 static void dri3BuffersFromPixmap_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
6569 {
6570  int sequence_number;
6571  int f_nfd;
6572 
6573  col_append_fstr(pinfo->cinfo, COL_INFO, "-BuffersFromPixmap");
6574 
6575  REPLY(reply);
6576  f_nfd = tvb_get_guint8(tvb, *offsetp);
6577  proto_tree_add_item(t, hf_x11_dri3_BuffersFromPixmap_reply_nfd, tvb, *offsetp, 1, byte_order);
6578  *offsetp += 1;
6579  sequence_number = tvb_get_guint16(tvb, *offsetp, byte_order);
6580  proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
6581  "%d (dri3-BuffersFromPixmap)", sequence_number);
6582  *offsetp += 2;
6583  proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
6584  *offsetp += 4;
6585  proto_tree_add_item(t, hf_x11_dri3_BuffersFromPixmap_reply_width, tvb, *offsetp, 2, byte_order);
6586  *offsetp += 2;
6587  proto_tree_add_item(t, hf_x11_dri3_BuffersFromPixmap_reply_height, tvb, *offsetp, 2, byte_order);
6588  *offsetp += 2;
6589  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 4, ENC_NA);
6590  *offsetp += 4;
6591  proto_tree_add_item(t, hf_x11_dri3_BuffersFromPixmap_reply_modifier, tvb, *offsetp, 8, byte_order);
6592  *offsetp += 8;
6593  proto_tree_add_item(t, hf_x11_dri3_BuffersFromPixmap_reply_depth, tvb, *offsetp, 1, byte_order);
6594  *offsetp += 1;
6595  proto_tree_add_item(t, hf_x11_dri3_BuffersFromPixmap_reply_bpp, tvb, *offsetp, 1, byte_order);
6596  *offsetp += 1;
6597  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 6, ENC_NA);
6598  *offsetp += 6;
6599  listOfCard32(tvb, offsetp, t, hf_x11_dri3_BuffersFromPixmap_reply_strides, hf_x11_dri3_BuffersFromPixmap_reply_strides_item, f_nfd, byte_order);
6600  listOfCard32(tvb, offsetp, t, hf_x11_dri3_BuffersFromPixmap_reply_offsets, hf_x11_dri3_BuffersFromPixmap_reply_offsets_item, f_nfd, byte_order);
6601 }
6602 static const value_string dri3_extension_minor[] = {
6603  { 0, "QueryVersion" },
6604  { 1, "Open" },
6605  { 2, "PixmapFromBuffer" },
6606  { 3, "BufferFromPixmap" },
6607  { 4, "FenceFromFD" },
6608  { 5, "FDFromFence" },
6609  { 6, "GetSupportedModifiers" },
6610  { 7, "PixmapFromBuffers" },
6611  { 8, "BuffersFromPixmap" },
6612  { 0, NULL }
6613 };
6614 const x11_event_info dri3_events[] = {
6615  { NULL, NULL }
6616 };
6617 static x11_reply_info dri3_replies[] = {
6618  { 0, dri3QueryVersion_Reply },
6619  { 1, dri3Open_Reply },
6620  { 3, dri3BufferFromPixmap_Reply },
6621  { 5, dri3FDFromFence_Reply },
6622  { 6, dri3GetSupportedModifiers_Reply },
6623  { 8, dri3BuffersFromPixmap_Reply },
6624  { 0, NULL }
6625 };
6626 
6627 static void dispatch_dri3(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
6628 {
6629  int minor, length;
6630  minor = CARD8(dri3_extension_minor);
6631  length = REQUEST_LENGTH();
6632 
6633  col_append_fstr(pinfo->cinfo, COL_INFO, "-%s",
6634  val_to_str(minor, dri3_extension_minor,
6635  "<Unknown opcode %d>"));
6636  switch (minor) {
6637  case 0:
6638  dri3QueryVersion(tvb, pinfo, offsetp, t, byte_order, length);
6639  break;
6640  case 1:
6641  dri3Open(tvb, pinfo, offsetp, t, byte_order, length);
6642  break;
6643  case 2:
6644  dri3PixmapFromBuffer(tvb, pinfo, offsetp, t, byte_order, length);
6645  break;
6646  case 3:
6647  dri3BufferFromPixmap(tvb, pinfo, offsetp, t, byte_order, length);
6648  break;
6649  case 4:
6650  dri3FenceFromFD(tvb, pinfo, offsetp, t, byte_order, length);
6651  break;
6652  case 5:
6653  dri3FDFromFence(tvb, pinfo, offsetp, t, byte_order, length);
6654  break;
6655  case 6:
6656  dri3GetSupportedModifiers(tvb, pinfo, offsetp, t, byte_order, length);
6657  break;
6658  case 7:
6659  dri3PixmapFromBuffers(tvb, pinfo, offsetp, t, byte_order, length);
6660  break;
6661  case 8:
6662  dri3BuffersFromPixmap(tvb, pinfo, offsetp, t, byte_order, length);
6663  break;
6664  /* No need for a default case here, since Unknown is printed above,
6665  and UNDECODED() is taken care of by dissect_x11_request */
6666  }
6667 }
6668 
6669 static void register_dri3(void)
6670 {
6671  set_handler("DRI3", dispatch_dri3, dri3_errors, dri3_events, NULL, dri3_replies);
6672 }
6673 
6674 static void geQueryVersion(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
6675 {
6676  proto_tree_add_item(t, hf_x11_ge_QueryVersion_client_major_version, tvb, *offsetp, 2, byte_order);
6677  *offsetp += 2;
6678  proto_tree_add_item(t, hf_x11_ge_QueryVersion_client_minor_version, tvb, *offsetp, 2, byte_order);
6679  *offsetp += 2;
6680 }
6681 static void geQueryVersion_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
6682 {
6683  int sequence_number;
6684 
6685  col_append_fstr(pinfo->cinfo, COL_INFO, "-QueryVersion");
6686 
6687  REPLY(reply);
6688  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
6689  *offsetp += 1;
6690  sequence_number = tvb_get_guint16(tvb, *offsetp, byte_order);
6691  proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
6692  "%d (ge-QueryVersion)", sequence_number);
6693  *offsetp += 2;
6694  proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
6695  *offsetp += 4;
6696  proto_tree_add_item(t, hf_x11_ge_QueryVersion_reply_major_version, tvb, *offsetp, 2, byte_order);
6697  *offsetp += 2;
6698  proto_tree_add_item(t, hf_x11_ge_QueryVersion_reply_minor_version, tvb, *offsetp, 2, byte_order);
6699  *offsetp += 2;
6700  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 20, ENC_NA);
6701  *offsetp += 20;
6702 }
6703 static const value_string ge_extension_minor[] = {
6704  { 0, "QueryVersion" },
6705  { 0, NULL }
6706 };
6707 const x11_event_info ge_events[] = {
6708  { NULL, NULL }
6709 };
6710 static x11_reply_info ge_replies[] = {
6711  { 0, geQueryVersion_Reply },
6712  { 0, NULL }
6713 };
6714 
6715 static void dispatch_ge(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
6716 {
6717  int minor, length;
6718  minor = CARD8(ge_extension_minor);
6719  length = REQUEST_LENGTH();
6720 
6721  col_append_fstr(pinfo->cinfo, COL_INFO, "-%s",
6722  val_to_str(minor, ge_extension_minor,
6723  "<Unknown opcode %d>"));
6724  switch (minor) {
6725  case 0:
6726  geQueryVersion(tvb, pinfo, offsetp, t, byte_order, length);
6727  break;
6728  /* No need for a default case here, since Unknown is printed above,
6729  and UNDECODED() is taken care of by dissect_x11_request */
6730  }
6731 }
6732 
6733 static void register_ge(void)
6734 {
6735  set_handler("Generic Event Extension", dispatch_ge, ge_errors, ge_events, NULL, ge_replies);
6736 }
6737 
6738 static void glxBufferSwapComplete(tvbuff_t *tvb, int *offsetp, proto_tree *t, guint byte_order)
6739 {
6740  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
6741  *offsetp += 1;
6742  CARD16(event_sequencenumber);
6743  proto_tree_add_item(t, hf_x11_glx_BufferSwapComplete_event_type, tvb, *offsetp, 2, byte_order);
6744  *offsetp += 2;
6745  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 2, ENC_NA);
6746  *offsetp += 2;
6747  proto_tree_add_item(t, hf_x11_glx_BufferSwapComplete_drawable, tvb, *offsetp, 4, byte_order);
6748  *offsetp += 4;
6749  proto_tree_add_item(t, hf_x11_glx_BufferSwapComplete_ust_hi, tvb, *offsetp, 4, byte_order);
6750  *offsetp += 4;
6751  proto_tree_add_item(t, hf_x11_glx_BufferSwapComplete_ust_lo, tvb, *offsetp, 4, byte_order);
6752  *offsetp += 4;
6753  proto_tree_add_item(t, hf_x11_glx_BufferSwapComplete_msc_hi, tvb, *offsetp, 4, byte_order);
6754  *offsetp += 4;
6755  proto_tree_add_item(t, hf_x11_glx_BufferSwapComplete_msc_lo, tvb, *offsetp, 4, byte_order);
6756  *offsetp += 4;
6757  proto_tree_add_item(t, hf_x11_glx_BufferSwapComplete_sbc, tvb, *offsetp, 4, byte_order);
6758  *offsetp += 4;
6759 }
6760 
6761 
6762 static void glxRender(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
6763 {
6764  proto_tree_add_item(t, hf_x11_glx_Render_context_tag, tvb, *offsetp, 4, byte_order);
6765  *offsetp += 4;
6766  dispatch_glx_render(tvb, pinfo, offsetp, t, byte_order, (length - 8));
6767 }
6768 
6769 static void glxRenderLarge(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
6770 {
6771  int f_data_len;
6772  proto_tree_add_item(t, hf_x11_glx_RenderLarge_context_tag, tvb, *offsetp, 4, byte_order);
6773  *offsetp += 4;
6774  proto_tree_add_item(t, hf_x11_glx_RenderLarge_request_num, tvb, *offsetp, 2, byte_order);
6775  *offsetp += 2;
6776  proto_tree_add_item(t, hf_x11_glx_RenderLarge_request_total, tvb, *offsetp, 2, byte_order);
6777  *offsetp += 2;
6778  f_data_len = tvb_get_guint32(tvb, *offsetp, byte_order);
6779  proto_tree_add_item(t, hf_x11_glx_RenderLarge_data_len, tvb, *offsetp, 4, byte_order);
6780  *offsetp += 4;
6781  listOfByte(tvb, offsetp, t, hf_x11_glx_RenderLarge_data, f_data_len, byte_order);
6782  length -= f_data_len * 1;
6783 }
6784 
6785 static void glxCreateContext(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
6786 {
6787  proto_tree_add_item(t, hf_x11_glx_CreateContext_context, tvb, *offsetp, 4, byte_order);
6788  *offsetp += 4;
6789  proto_tree_add_item(t, hf_x11_glx_CreateContext_visual, tvb, *offsetp, 4, byte_order);
6790  *offsetp += 4;
6791  proto_tree_add_item(t, hf_x11_glx_CreateContext_screen, tvb, *offsetp, 4, byte_order);
6792  *offsetp += 4;
6793  proto_tree_add_item(t, hf_x11_glx_CreateContext_share_list, tvb, *offsetp, 4, byte_order);
6794  *offsetp += 4;
6795  proto_tree_add_item(t, hf_x11_glx_CreateContext_is_direct, tvb, *offsetp, 1, byte_order);
6796  *offsetp += 1;
6797  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 3, ENC_NA);
6798  *offsetp += 3;
6799 }
6800 
6801 static void glxDestroyContext(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
6802 {
6803  proto_tree_add_item(t, hf_x11_glx_DestroyContext_context, tvb, *offsetp, 4, byte_order);
6804  *offsetp += 4;
6805 }
6806 
6807 static void glxMakeCurrent(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
6808 {
6809  proto_tree_add_item(t, hf_x11_glx_MakeCurrent_drawable, tvb, *offsetp, 4, byte_order);
6810  *offsetp += 4;
6811  proto_tree_add_item(t, hf_x11_glx_MakeCurrent_context, tvb, *offsetp, 4, byte_order);
6812  *offsetp += 4;
6813  proto_tree_add_item(t, hf_x11_glx_MakeCurrent_old_context_tag, tvb, *offsetp, 4, byte_order);
6814  *offsetp += 4;
6815 }
6816 static void glxMakeCurrent_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
6817 {
6818  int sequence_number;
6819 
6820  col_append_fstr(pinfo->cinfo, COL_INFO, "-MakeCurrent");
6821 
6822  REPLY(reply);
6823  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
6824  *offsetp += 1;
6825  sequence_number = tvb_get_guint16(tvb, *offsetp, byte_order);
6826  proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
6827  "%d (glx-MakeCurrent)", sequence_number);
6828  *offsetp += 2;
6829  proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
6830  *offsetp += 4;
6831  proto_tree_add_item(t, hf_x11_glx_MakeCurrent_reply_context_tag, tvb, *offsetp, 4, byte_order);
6832  *offsetp += 4;
6833  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 20, ENC_NA);
6834  *offsetp += 20;
6835 }
6836 
6837 static void glxIsDirect(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
6838 {
6839  proto_tree_add_item(t, hf_x11_glx_IsDirect_context, tvb, *offsetp, 4, byte_order);
6840  *offsetp += 4;
6841 }
6842 static void glxIsDirect_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
6843 {
6844  int sequence_number;
6845 
6846  col_append_fstr(pinfo->cinfo, COL_INFO, "-IsDirect");
6847 
6848  REPLY(reply);
6849  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
6850  *offsetp += 1;
6851  sequence_number = tvb_get_guint16(tvb, *offsetp, byte_order);
6852  proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
6853  "%d (glx-IsDirect)", sequence_number);
6854  *offsetp += 2;
6855  proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
6856  *offsetp += 4;
6857  proto_tree_add_item(t, hf_x11_glx_IsDirect_reply_is_direct, tvb, *offsetp, 1, byte_order);
6858  *offsetp += 1;
6859  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 23, ENC_NA);
6860  *offsetp += 23;
6861 }
6862 
6863 static void glxQueryVersion(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
6864 {
6865  proto_tree_add_item(t, hf_x11_glx_QueryVersion_major_version, tvb, *offsetp, 4, byte_order);
6866  *offsetp += 4;
6867  proto_tree_add_item(t, hf_x11_glx_QueryVersion_minor_version, tvb, *offsetp, 4, byte_order);
6868  *offsetp += 4;
6869 }
6870 static void glxQueryVersion_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
6871 {
6872  int sequence_number;
6873 
6874  col_append_fstr(pinfo->cinfo, COL_INFO, "-QueryVersion");
6875 
6876  REPLY(reply);
6877  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
6878  *offsetp += 1;
6879  sequence_number = tvb_get_guint16(tvb, *offsetp, byte_order);
6880  proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
6881  "%d (glx-QueryVersion)", sequence_number);
6882  *offsetp += 2;
6883  proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
6884  *offsetp += 4;
6885  proto_tree_add_item(t, hf_x11_glx_QueryVersion_reply_major_version, tvb, *offsetp, 4, byte_order);
6886  *offsetp += 4;
6887  proto_tree_add_item(t, hf_x11_glx_QueryVersion_reply_minor_version, tvb, *offsetp, 4, byte_order);
6888  *offsetp += 4;
6889  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 16, ENC_NA);
6890  *offsetp += 16;
6891 }
6892 
6893 static void glxWaitGL(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
6894 {
6895  proto_tree_add_item(t, hf_x11_glx_WaitGL_context_tag, tvb, *offsetp, 4, byte_order);
6896  *offsetp += 4;
6897 }
6898 
6899 static void glxWaitX(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
6900 {
6901  proto_tree_add_item(t, hf_x11_glx_WaitX_context_tag, tvb, *offsetp, 4, byte_order);
6902  *offsetp += 4;
6903 }
6904 
6905 static void glxCopyContext(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
6906 {
6907  proto_tree_add_item(t, hf_x11_glx_CopyContext_src, tvb, *offsetp, 4, byte_order);
6908  *offsetp += 4;
6909  proto_tree_add_item(t, hf_x11_glx_CopyContext_dest, tvb, *offsetp, 4, byte_order);
6910  *offsetp += 4;
6911  proto_tree_add_item(t, hf_x11_glx_CopyContext_mask, tvb, *offsetp, 4, byte_order);
6912  *offsetp += 4;
6913  proto_tree_add_item(t, hf_x11_glx_CopyContext_src_context_tag, tvb, *offsetp, 4, byte_order);
6914  *offsetp += 4;
6915 }
6916 
6917 static void glxSwapBuffers(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
6918 {
6919  proto_tree_add_item(t, hf_x11_glx_SwapBuffers_context_tag, tvb, *offsetp, 4, byte_order);
6920  *offsetp += 4;
6921  proto_tree_add_item(t, hf_x11_glx_SwapBuffers_drawable, tvb, *offsetp, 4, byte_order);
6922  *offsetp += 4;
6923 }
6924 
6925 static void glxUseXFont(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
6926 {
6927  proto_tree_add_item(t, hf_x11_glx_UseXFont_context_tag, tvb, *offsetp, 4, byte_order);
6928  *offsetp += 4;
6929  proto_tree_add_item(t, hf_x11_glx_UseXFont_font, tvb, *offsetp, 4, byte_order);
6930  *offsetp += 4;
6931  proto_tree_add_item(t, hf_x11_glx_UseXFont_first, tvb, *offsetp, 4, byte_order);
6932  *offsetp += 4;
6933  proto_tree_add_item(t, hf_x11_glx_UseXFont_count, tvb, *offsetp, 4, byte_order);
6934  *offsetp += 4;
6935  proto_tree_add_item(t, hf_x11_glx_UseXFont_list_base, tvb, *offsetp, 4, byte_order);
6936  *offsetp += 4;
6937 }
6938 
6939 static void glxCreateGLXPixmap(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
6940 {
6941  proto_tree_add_item(t, hf_x11_glx_CreateGLXPixmap_screen, tvb, *offsetp, 4, byte_order);
6942  *offsetp += 4;
6943  proto_tree_add_item(t, hf_x11_glx_CreateGLXPixmap_visual, tvb, *offsetp, 4, byte_order);
6944  *offsetp += 4;
6945  proto_tree_add_item(t, hf_x11_glx_CreateGLXPixmap_pixmap, tvb, *offsetp, 4, byte_order);
6946  *offsetp += 4;
6947  proto_tree_add_item(t, hf_x11_glx_CreateGLXPixmap_glx_pixmap, tvb, *offsetp, 4, byte_order);
6948  *offsetp += 4;
6949 }
6950 
6951 static void glxGetVisualConfigs(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
6952 {
6953  proto_tree_add_item(t, hf_x11_glx_GetVisualConfigs_screen, tvb, *offsetp, 4, byte_order);
6954  *offsetp += 4;
6955 }
6956 static void glxGetVisualConfigs_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
6957 {
6958  int sequence_number;
6959  int f_length;
6960 
6961  col_append_fstr(pinfo->cinfo, COL_INFO, "-GetVisualConfigs");
6962 
6963  REPLY(reply);
6964  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
6965  *offsetp += 1;
6966  sequence_number = tvb_get_guint16(tvb, *offsetp, byte_order);
6967  proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
6968  "%d (glx-GetVisualConfigs)", sequence_number);
6969  *offsetp += 2;
6970  f_length = tvb_get_guint32(tvb, *offsetp, byte_order);
6971  proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
6972  *offsetp += 4;
6973  proto_tree_add_item(t, hf_x11_glx_GetVisualConfigs_reply_num_visuals, tvb, *offsetp, 4, byte_order);
6974  *offsetp += 4;
6975  proto_tree_add_item(t, hf_x11_glx_GetVisualConfigs_reply_num_properties, tvb, *offsetp, 4, byte_order);
6976  *offsetp += 4;
6977  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 16, ENC_NA);
6978  *offsetp += 16;
6979  listOfCard32(tvb, offsetp, t, hf_x11_glx_GetVisualConfigs_reply_property_list, hf_x11_glx_GetVisualConfigs_reply_property_list_item, f_length, byte_order);
6980 }
6981 
6982 static void glxDestroyGLXPixmap(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
6983 {
6984  proto_tree_add_item(t, hf_x11_glx_DestroyGLXPixmap_glx_pixmap, tvb, *offsetp, 4, byte_order);
6985  *offsetp += 4;
6986 }
6987 
6988 static void glxVendorPrivate(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
6989 {
6990  proto_tree_add_item(t, hf_x11_glx_VendorPrivate_vendor_code, tvb, *offsetp, 4, byte_order);
6991  *offsetp += 4;
6992  proto_tree_add_item(t, hf_x11_glx_VendorPrivate_context_tag, tvb, *offsetp, 4, byte_order);
6993  *offsetp += 4;
6994  listOfByte(tvb, offsetp, t, hf_x11_glx_VendorPrivate_data, (length - 12) / 1, byte_order);
6995 }
6996 
6997 static void glxVendorPrivateWithReply(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
6998 {
6999  proto_tree_add_item(t, hf_x11_glx_VendorPrivateWithReply_vendor_code, tvb, *offsetp, 4, byte_order);
7000  *offsetp += 4;
7001  proto_tree_add_item(t, hf_x11_glx_VendorPrivateWithReply_context_tag, tvb, *offsetp, 4, byte_order);
7002  *offsetp += 4;
7003  listOfByte(tvb, offsetp, t, hf_x11_glx_VendorPrivateWithReply_data, (length - 12) / 1, byte_order);
7004 }
7005 static void glxVendorPrivateWithReply_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
7006 {
7007  int sequence_number;
7008  int f_length;
7009 
7010  col_append_fstr(pinfo->cinfo, COL_INFO, "-VendorPrivateWithReply");
7011 
7012  REPLY(reply);
7013  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
7014  *offsetp += 1;
7015  sequence_number = tvb_get_guint16(tvb, *offsetp, byte_order);
7016  proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
7017  "%d (glx-VendorPrivateWithReply)", sequence_number);
7018  *offsetp += 2;
7019  f_length = tvb_get_guint32(tvb, *offsetp, byte_order);
7020  proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
7021  *offsetp += 4;
7022  proto_tree_add_item(t, hf_x11_glx_VendorPrivateWithReply_reply_retval, tvb, *offsetp, 4, byte_order);
7023  *offsetp += 4;
7024  listOfByte(tvb, offsetp, t, hf_x11_glx_VendorPrivateWithReply_reply_data1, 24, byte_order);
7025  listOfByte(tvb, offsetp, t, hf_x11_glx_VendorPrivateWithReply_reply_data2, (f_length * 4), byte_order);
7026 }
7027 
7028 static void glxQueryExtensionsString(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
7029 {
7030  proto_tree_add_item(t, hf_x11_glx_QueryExtensionsString_screen, tvb, *offsetp, 4, byte_order);
7031  *offsetp += 4;
7032 }
7033 static void glxQueryExtensionsString_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
7034 {
7035  int sequence_number;
7036 
7037  col_append_fstr(pinfo->cinfo, COL_INFO, "-QueryExtensionsString");
7038 
7039  REPLY(reply);
7040  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
7041  *offsetp += 1;
7042  sequence_number = tvb_get_guint16(tvb, *offsetp, byte_order);
7043  proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
7044  "%d (glx-QueryExtensionsString)", sequence_number);
7045  *offsetp += 2;
7046  proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
7047  *offsetp += 4;
7048  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 4, ENC_NA);
7049  *offsetp += 4;
7050  proto_tree_add_item(t, hf_x11_glx_QueryExtensionsString_reply_n, tvb, *offsetp, 4, byte_order);
7051  *offsetp += 4;
7052  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 16, ENC_NA);
7053  *offsetp += 16;
7054 }
7055 
7056 static void glxQueryServerString(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
7057 {
7058  proto_tree_add_item(t, hf_x11_glx_QueryServerString_screen, tvb, *offsetp, 4, byte_order);
7059  *offsetp += 4;
7060  proto_tree_add_item(t, hf_x11_glx_QueryServerString_name, tvb, *offsetp, 4, byte_order);
7061  *offsetp += 4;
7062 }
7063 static void glxQueryServerString_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
7064 {
7065  int sequence_number;
7066  int f_str_len;
7067 
7068  col_append_fstr(pinfo->cinfo, COL_INFO, "-QueryServerString");
7069 
7070  REPLY(reply);
7071  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
7072  *offsetp += 1;
7073  sequence_number = tvb_get_guint16(tvb, *offsetp, byte_order);
7074  proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
7075  "%d (glx-QueryServerString)", sequence_number);
7076  *offsetp += 2;
7077  proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
7078  *offsetp += 4;
7079  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 4, ENC_NA);
7080  *offsetp += 4;
7081  f_str_len = tvb_get_guint32(tvb, *offsetp, byte_order);
7082  proto_tree_add_item(t, hf_x11_glx_QueryServerString_reply_str_len, tvb, *offsetp, 4, byte_order);
7083  *offsetp += 4;
7084  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 16, ENC_NA);
7085  *offsetp += 16;
7086  listOfByte(tvb, offsetp, t, hf_x11_glx_QueryServerString_reply_string, f_str_len, byte_order);
7087 }
7088 
7089 static void glxClientInfo(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
7090 {
7091  int f_str_len;
7092  proto_tree_add_item(t, hf_x11_glx_ClientInfo_major_version, tvb, *offsetp, 4, byte_order);
7093  *offsetp += 4;
7094  proto_tree_add_item(t, hf_x11_glx_ClientInfo_minor_version, tvb, *offsetp, 4, byte_order);
7095  *offsetp += 4;
7096  f_str_len = tvb_get_guint32(tvb, *offsetp, byte_order);
7097  proto_tree_add_item(t, hf_x11_glx_ClientInfo_str_len, tvb, *offsetp, 4, byte_order);
7098  *offsetp += 4;
7099  listOfByte(tvb, offsetp, t, hf_x11_glx_ClientInfo_string, f_str_len, byte_order);
7100  length -= f_str_len * 1;
7101 }
7102 
7103 static void glxGetFBConfigs(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
7104 {
7105  proto_tree_add_item(t, hf_x11_glx_GetFBConfigs_screen, tvb, *offsetp, 4, byte_order);
7106  *offsetp += 4;
7107 }
7108 static void glxGetFBConfigs_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
7109 {
7110  int sequence_number;
7111  int f_length;
7112 
7113  col_append_fstr(pinfo->cinfo, COL_INFO, "-GetFBConfigs");
7114 
7115  REPLY(reply);
7116  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
7117  *offsetp += 1;
7118  sequence_number = tvb_get_guint16(tvb, *offsetp, byte_order);
7119  proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
7120  "%d (glx-GetFBConfigs)", sequence_number);
7121  *offsetp += 2;
7122  f_length = tvb_get_guint32(tvb, *offsetp, byte_order);
7123  proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
7124  *offsetp += 4;
7125  proto_tree_add_item(t, hf_x11_glx_GetFBConfigs_reply_num_FB_configs, tvb, *offsetp, 4, byte_order);
7126  *offsetp += 4;
7127  proto_tree_add_item(t, hf_x11_glx_GetFBConfigs_reply_num_properties, tvb, *offsetp, 4, byte_order);
7128  *offsetp += 4;
7129  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 16, ENC_NA);
7130  *offsetp += 16;
7131  listOfCard32(tvb, offsetp, t, hf_x11_glx_GetFBConfigs_reply_property_list, hf_x11_glx_GetFBConfigs_reply_property_list_item, f_length, byte_order);
7132 }
7133 
7134 static void glxCreatePixmap(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
7135 {
7136  int f_num_attribs;
7137  proto_tree_add_item(t, hf_x11_glx_CreatePixmap_screen, tvb, *offsetp, 4, byte_order);
7138  *offsetp += 4;
7139  proto_tree_add_item(t, hf_x11_glx_CreatePixmap_fbconfig, tvb, *offsetp, 4, byte_order);
7140  *offsetp += 4;
7141  proto_tree_add_item(t, hf_x11_glx_CreatePixmap_pixmap, tvb, *offsetp, 4, byte_order);
7142  *offsetp += 4;
7143  proto_tree_add_item(t, hf_x11_glx_CreatePixmap_glx_pixmap, tvb, *offsetp, 4, byte_order);
7144  *offsetp += 4;
7145  f_num_attribs = tvb_get_guint32(tvb, *offsetp, byte_order);
7146  proto_tree_add_item(t, hf_x11_glx_CreatePixmap_num_attribs, tvb, *offsetp, 4, byte_order);
7147  *offsetp += 4;
7148  listOfCard32(tvb, offsetp, t, hf_x11_glx_CreatePixmap_attribs, hf_x11_glx_CreatePixmap_attribs_item, (f_num_attribs * 2), byte_order);
7149  length -= (f_num_attribs * 2) * 4;
7150 }
7151 
7152 static void glxDestroyPixmap(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
7153 {
7154  proto_tree_add_item(t, hf_x11_glx_DestroyPixmap_glx_pixmap, tvb, *offsetp, 4, byte_order);
7155  *offsetp += 4;
7156 }
7157 
7158 static void glxCreateNewContext(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
7159 {
7160  proto_tree_add_item(t, hf_x11_glx_CreateNewContext_context, tvb, *offsetp, 4, byte_order);
7161  *offsetp += 4;
7162  proto_tree_add_item(t, hf_x11_glx_CreateNewContext_fbconfig, tvb, *offsetp, 4, byte_order);
7163  *offsetp += 4;
7164  proto_tree_add_item(t, hf_x11_glx_CreateNewContext_screen, tvb, *offsetp, 4, byte_order);
7165  *offsetp += 4;
7166  proto_tree_add_item(t, hf_x11_glx_CreateNewContext_render_type, tvb, *offsetp, 4, byte_order);
7167  *offsetp += 4;
7168  proto_tree_add_item(t, hf_x11_glx_CreateNewContext_share_list, tvb, *offsetp, 4, byte_order);
7169  *offsetp += 4;
7170  proto_tree_add_item(t, hf_x11_glx_CreateNewContext_is_direct, tvb, *offsetp, 1, byte_order);
7171  *offsetp += 1;
7172  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 3, ENC_NA);
7173  *offsetp += 3;
7174 }
7175 
7176 static void glxQueryContext(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
7177 {
7178  proto_tree_add_item(t, hf_x11_glx_QueryContext_context, tvb, *offsetp, 4, byte_order);
7179  *offsetp += 4;
7180 }
7181 static void glxQueryContext_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
7182 {
7183  int sequence_number;
7184  int f_num_attribs;
7185 
7186  col_append_fstr(pinfo->cinfo, COL_INFO, "-QueryContext");
7187 
7188  REPLY(reply);
7189  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
7190  *offsetp += 1;
7191  sequence_number = tvb_get_guint16(tvb, *offsetp, byte_order);
7192  proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
7193  "%d (glx-QueryContext)", sequence_number);
7194  *offsetp += 2;
7195  proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
7196  *offsetp += 4;
7197  f_num_attribs = tvb_get_guint32(tvb, *offsetp, byte_order);
7198  proto_tree_add_item(t, hf_x11_glx_QueryContext_reply_num_attribs, tvb, *offsetp, 4, byte_order);
7199  *offsetp += 4;
7200  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 20, ENC_NA);
7201  *offsetp += 20;
7202  listOfCard32(tvb, offsetp, t, hf_x11_glx_QueryContext_reply_attribs, hf_x11_glx_QueryContext_reply_attribs_item, (f_num_attribs * 2), byte_order);
7203 }
7204 
7205 static void glxMakeContextCurrent(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
7206 {
7207  proto_tree_add_item(t, hf_x11_glx_MakeContextCurrent_old_context_tag, tvb, *offsetp, 4, byte_order);
7208  *offsetp += 4;
7209  proto_tree_add_item(t, hf_x11_glx_MakeContextCurrent_drawable, tvb, *offsetp, 4, byte_order);
7210  *offsetp += 4;
7211  proto_tree_add_item(t, hf_x11_glx_MakeContextCurrent_read_drawable, tvb, *offsetp, 4, byte_order);
7212  *offsetp += 4;
7213  proto_tree_add_item(t, hf_x11_glx_MakeContextCurrent_context, tvb, *offsetp, 4, byte_order);
7214  *offsetp += 4;
7215 }
7216 static void glxMakeContextCurrent_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
7217 {
7218  int sequence_number;
7219 
7220  col_append_fstr(pinfo->cinfo, COL_INFO, "-MakeContextCurrent");
7221 
7222  REPLY(reply);
7223  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
7224  *offsetp += 1;
7225  sequence_number = tvb_get_guint16(tvb, *offsetp, byte_order);
7226  proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
7227  "%d (glx-MakeContextCurrent)", sequence_number);
7228  *offsetp += 2;
7229  proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
7230  *offsetp += 4;
7231  proto_tree_add_item(t, hf_x11_glx_MakeContextCurrent_reply_context_tag, tvb, *offsetp, 4, byte_order);
7232  *offsetp += 4;
7233  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 20, ENC_NA);
7234  *offsetp += 20;
7235 }
7236 
7237 static void glxCreatePbuffer(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
7238 {
7239  int f_num_attribs;
7240  proto_tree_add_item(t, hf_x11_glx_CreatePbuffer_screen, tvb, *offsetp, 4, byte_order);
7241  *offsetp += 4;
7242  proto_tree_add_item(t, hf_x11_glx_CreatePbuffer_fbconfig, tvb, *offsetp, 4, byte_order);
7243  *offsetp += 4;
7244  proto_tree_add_item(t, hf_x11_glx_CreatePbuffer_pbuffer, tvb, *offsetp, 4, byte_order);
7245  *offsetp += 4;
7246  f_num_attribs = tvb_get_guint32(tvb, *offsetp, byte_order);
7247  proto_tree_add_item(t, hf_x11_glx_CreatePbuffer_num_attribs, tvb, *offsetp, 4, byte_order);
7248  *offsetp += 4;
7249  listOfCard32(tvb, offsetp, t, hf_x11_glx_CreatePbuffer_attribs, hf_x11_glx_CreatePbuffer_attribs_item, (f_num_attribs * 2), byte_order);
7250  length -= (f_num_attribs * 2) * 4;
7251 }
7252 
7253 static void glxDestroyPbuffer(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
7254 {
7255  proto_tree_add_item(t, hf_x11_glx_DestroyPbuffer_pbuffer, tvb, *offsetp, 4, byte_order);
7256  *offsetp += 4;
7257 }
7258 
7259 static void glxGetDrawableAttributes(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
7260 {
7261  proto_tree_add_item(t, hf_x11_glx_GetDrawableAttributes_drawable, tvb, *offsetp, 4, byte_order);
7262  *offsetp += 4;
7263 }
7264 static void glxGetDrawableAttributes_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
7265 {
7266  int sequence_number;
7267  int f_num_attribs;
7268 
7269  col_append_fstr(pinfo->cinfo, COL_INFO, "-GetDrawableAttributes");
7270 
7271  REPLY(reply);
7272  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
7273  *offsetp += 1;
7274  sequence_number = tvb_get_guint16(tvb, *offsetp, byte_order);
7275  proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
7276  "%d (glx-GetDrawableAttributes)", sequence_number);
7277  *offsetp += 2;
7278  proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
7279  *offsetp += 4;
7280  f_num_attribs = tvb_get_guint32(tvb, *offsetp, byte_order);
7281  proto_tree_add_item(t, hf_x11_glx_GetDrawableAttributes_reply_num_attribs, tvb, *offsetp, 4, byte_order);
7282  *offsetp += 4;
7283  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 20, ENC_NA);
7284  *offsetp += 20;
7285  listOfCard32(tvb, offsetp, t, hf_x11_glx_GetDrawableAttributes_reply_attribs, hf_x11_glx_GetDrawableAttributes_reply_attribs_item, (f_num_attribs * 2), byte_order);
7286 }
7287 
7288 static void glxChangeDrawableAttributes(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
7289 {
7290  int f_num_attribs;
7291  proto_tree_add_item(t, hf_x11_glx_ChangeDrawableAttributes_drawable, tvb, *offsetp, 4, byte_order);
7292  *offsetp += 4;
7293  f_num_attribs = tvb_get_guint32(tvb, *offsetp, byte_order);
7294  proto_tree_add_item(t, hf_x11_glx_ChangeDrawableAttributes_num_attribs, tvb, *offsetp, 4, byte_order);
7295  *offsetp += 4;
7296  listOfCard32(tvb, offsetp, t, hf_x11_glx_ChangeDrawableAttributes_attribs, hf_x11_glx_ChangeDrawableAttributes_attribs_item, (f_num_attribs * 2), byte_order);
7297  length -= (f_num_attribs * 2) * 4;
7298 }
7299 
7300 static void glxCreateWindow(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
7301 {
7302  int f_num_attribs;
7303  proto_tree_add_item(t, hf_x11_glx_CreateWindow_screen, tvb, *offsetp, 4, byte_order);
7304  *offsetp += 4;
7305  proto_tree_add_item(t, hf_x11_glx_CreateWindow_fbconfig, tvb, *offsetp, 4, byte_order);
7306  *offsetp += 4;
7307  proto_tree_add_item(t, hf_x11_glx_CreateWindow_window, tvb, *offsetp, 4, byte_order);
7308  *offsetp += 4;
7309  proto_tree_add_item(t, hf_x11_glx_CreateWindow_glx_window, tvb, *offsetp, 4, byte_order);
7310  *offsetp += 4;
7311  f_num_attribs = tvb_get_guint32(tvb, *offsetp, byte_order);
7312  proto_tree_add_item(t, hf_x11_glx_CreateWindow_num_attribs, tvb, *offsetp, 4, byte_order);
7313  *offsetp += 4;
7314  listOfCard32(tvb, offsetp, t, hf_x11_glx_CreateWindow_attribs, hf_x11_glx_CreateWindow_attribs_item, (f_num_attribs * 2), byte_order);
7315  length -= (f_num_attribs * 2) * 4;
7316 }
7317 
7318 static void glxDeleteWindow(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
7319 {
7320  proto_tree_add_item(t, hf_x11_glx_DeleteWindow_glxwindow, tvb, *offsetp, 4, byte_order);
7321  *offsetp += 4;
7322 }
7323 
7324 static void glxSetClientInfoARB(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
7325 {
7326  int f_num_versions;
7327  int f_gl_str_len;
7328  int f_glx_str_len;
7329  proto_tree_add_item(t, hf_x11_glx_SetClientInfoARB_major_version, tvb, *offsetp, 4, byte_order);
7330  *offsetp += 4;
7331  proto_tree_add_item(t, hf_x11_glx_SetClientInfoARB_minor_version, tvb, *offsetp, 4, byte_order);
7332  *offsetp += 4;
7333  f_num_versions = tvb_get_guint32(tvb, *offsetp, byte_order);
7334  proto_tree_add_item(t, hf_x11_glx_SetClientInfoARB_num_versions, tvb, *offsetp, 4, byte_order);
7335  *offsetp += 4;
7336  f_gl_str_len = tvb_get_guint32(tvb, *offsetp, byte_order);
7337  proto_tree_add_item(t, hf_x11_glx_SetClientInfoARB_gl_str_len, tvb, *offsetp, 4, byte_order);
7338  *offsetp += 4;
7339  f_glx_str_len = tvb_get_guint32(tvb, *offsetp, byte_order);
7340  proto_tree_add_item(t, hf_x11_glx_SetClientInfoARB_glx_str_len, tvb, *offsetp, 4, byte_order);
7341  *offsetp += 4;
7342  listOfCard32(tvb, offsetp, t, hf_x11_glx_SetClientInfoARB_gl_versions, hf_x11_glx_SetClientInfoARB_gl_versions_item, (f_num_versions * 2), byte_order);
7343  length -= (f_num_versions * 2) * 4;
7344  listOfByte(tvb, offsetp, t, hf_x11_glx_SetClientInfoARB_gl_extension_string, f_gl_str_len, byte_order);
7345  length -= f_gl_str_len * 1;
7346  listOfByte(tvb, offsetp, t, hf_x11_glx_SetClientInfoARB_glx_extension_string, f_glx_str_len, byte_order);
7347  length -= f_glx_str_len * 1;
7348 }
7349 
7350 static void glxCreateContextAttribsARB(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
7351 {
7352  int f_num_attribs;
7353  proto_tree_add_item(t, hf_x11_glx_CreateContextAttribsARB_context, tvb, *offsetp, 4, byte_order);
7354  *offsetp += 4;
7355  proto_tree_add_item(t, hf_x11_glx_CreateContextAttribsARB_fbconfig, tvb, *offsetp, 4, byte_order);
7356  *offsetp += 4;
7357  proto_tree_add_item(t, hf_x11_glx_CreateContextAttribsARB_screen, tvb, *offsetp, 4, byte_order);
7358  *offsetp += 4;
7359  proto_tree_add_item(t, hf_x11_glx_CreateContextAttribsARB_share_list, tvb, *offsetp, 4, byte_order);
7360  *offsetp += 4;
7361  proto_tree_add_item(t, hf_x11_glx_CreateContextAttribsARB_is_direct, tvb, *offsetp, 1, byte_order);
7362  *offsetp += 1;
7363  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 3, ENC_NA);
7364  *offsetp += 3;
7365  f_num_attribs = tvb_get_guint32(tvb, *offsetp, byte_order);
7366  proto_tree_add_item(t, hf_x11_glx_CreateContextAttribsARB_num_attribs, tvb, *offsetp, 4, byte_order);
7367  *offsetp += 4;
7368  listOfCard32(tvb, offsetp, t, hf_x11_glx_CreateContextAttribsARB_attribs, hf_x11_glx_CreateContextAttribsARB_attribs_item, (f_num_attribs * 2), byte_order);
7369  length -= (f_num_attribs * 2) * 4;
7370 }
7371 
7372 static void glxSetClientInfo2ARB(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
7373 {
7374  int f_num_versions;
7375  int f_gl_str_len;
7376  int f_glx_str_len;
7377  proto_tree_add_item(t, hf_x11_glx_SetClientInfo2ARB_major_version, tvb, *offsetp, 4, byte_order);
7378  *offsetp += 4;
7379  proto_tree_add_item(t, hf_x11_glx_SetClientInfo2ARB_minor_version, tvb, *offsetp, 4, byte_order);
7380  *offsetp += 4;
7381  f_num_versions = tvb_get_guint32(tvb, *offsetp, byte_order);
7382  proto_tree_add_item(t, hf_x11_glx_SetClientInfo2ARB_num_versions, tvb, *offsetp, 4, byte_order);
7383  *offsetp += 4;
7384  f_gl_str_len = tvb_get_guint32(tvb, *offsetp, byte_order);
7385  proto_tree_add_item(t, hf_x11_glx_SetClientInfo2ARB_gl_str_len, tvb, *offsetp, 4, byte_order);
7386  *offsetp += 4;
7387  f_glx_str_len = tvb_get_guint32(tvb, *offsetp, byte_order);
7388  proto_tree_add_item(t, hf_x11_glx_SetClientInfo2ARB_glx_str_len, tvb, *offsetp, 4, byte_order);
7389  *offsetp += 4;
7390  listOfCard32(tvb, offsetp, t, hf_x11_glx_SetClientInfo2ARB_gl_versions, hf_x11_glx_SetClientInfo2ARB_gl_versions_item, (f_num_versions * 3), byte_order);
7391  length -= (f_num_versions * 3) * 4;
7392  listOfByte(tvb, offsetp, t, hf_x11_glx_SetClientInfo2ARB_gl_extension_string, f_gl_str_len, byte_order);
7393  length -= f_gl_str_len * 1;
7394  listOfByte(tvb, offsetp, t, hf_x11_glx_SetClientInfo2ARB_glx_extension_string, f_glx_str_len, byte_order);
7395  length -= f_glx_str_len * 1;
7396 }
7397 
7398 static void glxNewList(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
7399 {
7400  proto_tree_add_item(t, hf_x11_glx_NewList_context_tag, tvb, *offsetp, 4, byte_order);
7401  *offsetp += 4;
7402  proto_tree_add_item(t, hf_x11_glx_NewList_list, tvb, *offsetp, 4, byte_order);
7403  *offsetp += 4;
7404  proto_tree_add_item(t, hf_x11_glx_NewList_mode, tvb, *offsetp, 4, byte_order);
7405  *offsetp += 4;
7406 }
7407 
7408 static void glxEndList(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
7409 {
7410  proto_tree_add_item(t, hf_x11_glx_EndList_context_tag, tvb, *offsetp, 4, byte_order);
7411  *offsetp += 4;
7412 }
7413 
7414 static void glxDeleteLists(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
7415 {
7416  proto_tree_add_item(t, hf_x11_glx_DeleteLists_context_tag, tvb, *offsetp, 4, byte_order);
7417  *offsetp += 4;
7418  proto_tree_add_item(t, hf_x11_glx_DeleteLists_list, tvb, *offsetp, 4, byte_order);
7419  *offsetp += 4;
7420  proto_tree_add_item(t, hf_x11_glx_DeleteLists_range, tvb, *offsetp, 4, byte_order);
7421  *offsetp += 4;
7422 }
7423 
7424 static void glxGenLists(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
7425 {
7426  proto_tree_add_item(t, hf_x11_glx_GenLists_context_tag, tvb, *offsetp, 4, byte_order);
7427  *offsetp += 4;
7428  proto_tree_add_item(t, hf_x11_glx_GenLists_range, tvb, *offsetp, 4, byte_order);
7429  *offsetp += 4;
7430 }
7431 static void glxGenLists_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
7432 {
7433  int sequence_number;
7434 
7435  col_append_fstr(pinfo->cinfo, COL_INFO, "-GenLists");
7436 
7437  REPLY(reply);
7438  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
7439  *offsetp += 1;
7440  sequence_number = tvb_get_guint16(tvb, *offsetp, byte_order);
7441  proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
7442  "%d (glx-GenLists)", sequence_number);
7443  *offsetp += 2;
7444  proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
7445  *offsetp += 4;
7446  proto_tree_add_item(t, hf_x11_glx_GenLists_reply_ret_val, tvb, *offsetp, 4, byte_order);
7447  *offsetp += 4;
7448 }
7449 
7450 static void glxFeedbackBuffer(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
7451 {
7452  proto_tree_add_item(t, hf_x11_glx_FeedbackBuffer_context_tag, tvb, *offsetp, 4, byte_order);
7453  *offsetp += 4;
7454  proto_tree_add_item(t, hf_x11_glx_FeedbackBuffer_size, tvb, *offsetp, 4, byte_order);
7455  *offsetp += 4;
7456  proto_tree_add_item(t, hf_x11_glx_FeedbackBuffer_type, tvb, *offsetp, 4, byte_order);
7457  *offsetp += 4;
7458 }
7459 
7460 static void glxSelectBuffer(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
7461 {
7462  proto_tree_add_item(t, hf_x11_glx_SelectBuffer_context_tag, tvb, *offsetp, 4, byte_order);
7463  *offsetp += 4;
7464  proto_tree_add_item(t, hf_x11_glx_SelectBuffer_size, tvb, *offsetp, 4, byte_order);
7465  *offsetp += 4;
7466 }
7467 
7468 static void glxRenderMode(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
7469 {
7470  proto_tree_add_item(t, hf_x11_glx_RenderMode_context_tag, tvb, *offsetp, 4, byte_order);
7471  *offsetp += 4;
7472  proto_tree_add_item(t, hf_x11_glx_RenderMode_mode, tvb, *offsetp, 4, byte_order);
7473  *offsetp += 4;
7474 }
7475 static void glxRenderMode_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
7476 {
7477  int sequence_number;
7478  int f_n;
7479 
7480  col_append_fstr(pinfo->cinfo, COL_INFO, "-RenderMode");
7481 
7482  REPLY(reply);
7483  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
7484  *offsetp += 1;
7485  sequence_number = tvb_get_guint16(tvb, *offsetp, byte_order);
7486  proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
7487  "%d (glx-RenderMode)", sequence_number);
7488  *offsetp += 2;
7489  proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
7490  *offsetp += 4;
7491  proto_tree_add_item(t, hf_x11_glx_RenderMode_reply_ret_val, tvb, *offsetp, 4, byte_order);
7492  *offsetp += 4;
7493  f_n = tvb_get_guint32(tvb, *offsetp, byte_order);
7494  proto_tree_add_item(t, hf_x11_glx_RenderMode_reply_n, tvb, *offsetp, 4, byte_order);
7495  *offsetp += 4;
7496  proto_tree_add_item(t, hf_x11_glx_RenderMode_reply_new_mode, tvb, *offsetp, 4, byte_order);
7497  *offsetp += 4;
7498  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 12, ENC_NA);
7499  *offsetp += 12;
7500  listOfCard32(tvb, offsetp, t, hf_x11_glx_RenderMode_reply_data, hf_x11_glx_RenderMode_reply_data_item, f_n, byte_order);
7501 }
7502 
7503 static void glxFinish(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
7504 {
7505  proto_tree_add_item(t, hf_x11_glx_Finish_context_tag, tvb, *offsetp, 4, byte_order);
7506  *offsetp += 4;
7507 }
7508 static void glxFinish_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
7509 {
7510  int sequence_number;
7511 
7512  col_append_fstr(pinfo->cinfo, COL_INFO, "-Finish");
7513 
7514  REPLY(reply);
7515  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
7516  *offsetp += 1;
7517  sequence_number = tvb_get_guint16(tvb, *offsetp, byte_order);
7518  proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
7519  "%d (glx-Finish)", sequence_number);
7520  *offsetp += 2;
7521  proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
7522  *offsetp += 4;
7523 }
7524 
7525 static void glxPixelStoref(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
7526 {
7527  proto_tree_add_item(t, hf_x11_glx_PixelStoref_context_tag, tvb, *offsetp, 4, byte_order);
7528  *offsetp += 4;
7529  proto_tree_add_item(t, hf_x11_glx_PixelStoref_pname, tvb, *offsetp, 4, byte_order);
7530  *offsetp += 4;
7531  proto_tree_add_item(t, hf_x11_glx_PixelStoref_datum, tvb, *offsetp, 4, byte_order);
7532  *offsetp += 4;
7533 }
7534 
7535 static void glxPixelStorei(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
7536 {
7537  proto_tree_add_item(t, hf_x11_glx_PixelStorei_context_tag, tvb, *offsetp, 4, byte_order);
7538  *offsetp += 4;
7539  proto_tree_add_item(t, hf_x11_glx_PixelStorei_pname, tvb, *offsetp, 4, byte_order);
7540  *offsetp += 4;
7541  proto_tree_add_item(t, hf_x11_glx_PixelStorei_datum, tvb, *offsetp, 4, byte_order);
7542  *offsetp += 4;
7543 }
7544 
7545 static void glxReadPixels(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
7546 {
7547  proto_tree_add_item(t, hf_x11_glx_ReadPixels_context_tag, tvb, *offsetp, 4, byte_order);
7548  *offsetp += 4;
7549  proto_tree_add_item(t, hf_x11_glx_ReadPixels_x, tvb, *offsetp, 4, byte_order);
7550  *offsetp += 4;
7551  proto_tree_add_item(t, hf_x11_glx_ReadPixels_y, tvb, *offsetp, 4, byte_order);
7552  *offsetp += 4;
7553  proto_tree_add_item(t, hf_x11_glx_ReadPixels_width, tvb, *offsetp, 4, byte_order);
7554  *offsetp += 4;
7555  proto_tree_add_item(t, hf_x11_glx_ReadPixels_height, tvb, *offsetp, 4, byte_order);
7556  *offsetp += 4;
7557  proto_tree_add_item(t, hf_x11_glx_ReadPixels_format, tvb, *offsetp, 4, byte_order);
7558  *offsetp += 4;
7559  proto_tree_add_item(t, hf_x11_glx_ReadPixels_type, tvb, *offsetp, 4, byte_order);
7560  *offsetp += 4;
7561  proto_tree_add_item(t, hf_x11_glx_ReadPixels_swap_bytes, tvb, *offsetp, 1, byte_order);
7562  *offsetp += 1;
7563  proto_tree_add_item(t, hf_x11_glx_ReadPixels_lsb_first, tvb, *offsetp, 1, byte_order);
7564  *offsetp += 1;
7565 }
7566 static void glxReadPixels_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
7567 {
7568  int sequence_number;
7569  int f_length;
7570 
7571  col_append_fstr(pinfo->cinfo, COL_INFO, "-ReadPixels");
7572 
7573  REPLY(reply);
7574  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
7575  *offsetp += 1;
7576  sequence_number = tvb_get_guint16(tvb, *offsetp, byte_order);
7577  proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
7578  "%d (glx-ReadPixels)", sequence_number);
7579  *offsetp += 2;
7580  f_length = tvb_get_guint32(tvb, *offsetp, byte_order);
7581  proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
7582  *offsetp += 4;
7583  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 24, ENC_NA);
7584  *offsetp += 24;
7585  listOfByte(tvb, offsetp, t, hf_x11_glx_ReadPixels_reply_data, (f_length * 4), byte_order);
7586 }
7587 
7588 static void glxGetBooleanv(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
7589 {
7590  proto_tree_add_item(t, hf_x11_glx_GetBooleanv_context_tag, tvb, *offsetp, 4, byte_order);
7591  *offsetp += 4;
7592  proto_tree_add_item(t, hf_x11_glx_GetBooleanv_pname, tvb, *offsetp, 4, byte_order);
7593  *offsetp += 4;
7594 }
7595 static void glxGetBooleanv_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
7596 {
7597  int sequence_number;
7598  int f_n;
7599 
7600  col_append_fstr(pinfo->cinfo, COL_INFO, "-GetBooleanv");
7601 
7602  REPLY(reply);
7603  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
7604  *offsetp += 1;
7605  sequence_number = tvb_get_guint16(tvb, *offsetp, byte_order);
7606  proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
7607  "%d (glx-GetBooleanv)", sequence_number);
7608  *offsetp += 2;
7609  proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
7610  *offsetp += 4;
7611  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 4, ENC_NA);
7612  *offsetp += 4;
7613  f_n = tvb_get_guint32(tvb, *offsetp, byte_order);
7614  proto_tree_add_item(t, hf_x11_glx_GetBooleanv_reply_n, tvb, *offsetp, 4, byte_order);
7615  *offsetp += 4;
7616  proto_tree_add_item(t, hf_x11_glx_GetBooleanv_reply_datum, tvb, *offsetp, 1, byte_order);
7617  *offsetp += 1;
7618  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 15, ENC_NA);
7619  *offsetp += 15;
7620  listOfByte(tvb, offsetp, t, hf_x11_glx_GetBooleanv_reply_data, f_n, byte_order);
7621 }
7622 
7623 static void glxGetClipPlane(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
7624 {
7625  proto_tree_add_item(t, hf_x11_glx_GetClipPlane_context_tag, tvb, *offsetp, 4, byte_order);
7626  *offsetp += 4;
7627  proto_tree_add_item(t, hf_x11_glx_GetClipPlane_plane, tvb, *offsetp, 4, byte_order);
7628  *offsetp += 4;
7629 }
7630 static void glxGetClipPlane_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
7631 {
7632  int sequence_number;
7633  int f_length;
7634 
7635  col_append_fstr(pinfo->cinfo, COL_INFO, "-GetClipPlane");
7636 
7637  REPLY(reply);
7638  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
7639  *offsetp += 1;
7640  sequence_number = tvb_get_guint16(tvb, *offsetp, byte_order);
7641  proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
7642  "%d (glx-GetClipPlane)", sequence_number);
7643  *offsetp += 2;
7644  f_length = tvb_get_guint32(tvb, *offsetp, byte_order);
7645  proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
7646  *offsetp += 4;
7647  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 24, ENC_NA);
7648  *offsetp += 24;
7649  listOfDouble(tvb, offsetp, t, hf_x11_glx_GetClipPlane_reply_data, hf_x11_glx_GetClipPlane_reply_data_item, (f_length / 2), byte_order);
7650 }
7651 
7652 static void glxGetDoublev(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
7653 {
7654  proto_tree_add_item(t, hf_x11_glx_GetDoublev_context_tag, tvb, *offsetp, 4, byte_order);
7655  *offsetp += 4;
7656  proto_tree_add_item(t, hf_x11_glx_GetDoublev_pname, tvb, *offsetp, 4, byte_order);
7657  *offsetp += 4;
7658 }
7659 static void glxGetDoublev_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
7660 {
7661  int sequence_number;
7662  int f_n;
7663 
7664  col_append_fstr(pinfo->cinfo, COL_INFO, "-GetDoublev");
7665 
7666  REPLY(reply);
7667  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
7668  *offsetp += 1;
7669  sequence_number = tvb_get_guint16(tvb, *offsetp, byte_order);
7670  proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
7671  "%d (glx-GetDoublev)", sequence_number);
7672  *offsetp += 2;
7673  proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
7674  *offsetp += 4;
7675  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 4, ENC_NA);
7676  *offsetp += 4;
7677  f_n = tvb_get_guint32(tvb, *offsetp, byte_order);
7678  proto_tree_add_item(t, hf_x11_glx_GetDoublev_reply_n, tvb, *offsetp, 4, byte_order);
7679  *offsetp += 4;
7680  proto_tree_add_item(t, hf_x11_glx_GetDoublev_reply_datum, tvb, *offsetp, 8, byte_order);
7681  *offsetp += 8;
7682  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 8, ENC_NA);
7683  *offsetp += 8;
7684  listOfDouble(tvb, offsetp, t, hf_x11_glx_GetDoublev_reply_data, hf_x11_glx_GetDoublev_reply_data_item, f_n, byte_order);
7685 }
7686 
7687 static void glxGetError(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
7688 {
7689  proto_tree_add_item(t, hf_x11_glx_GetError_context_tag, tvb, *offsetp, 4, byte_order);
7690  *offsetp += 4;
7691 }
7692 static void glxGetError_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
7693 {
7694  int sequence_number;
7695 
7696  col_append_fstr(pinfo->cinfo, COL_INFO, "-GetError");
7697 
7698  REPLY(reply);
7699  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
7700  *offsetp += 1;
7701  sequence_number = tvb_get_guint16(tvb, *offsetp, byte_order);
7702  proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
7703  "%d (glx-GetError)", sequence_number);
7704  *offsetp += 2;
7705  proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
7706  *offsetp += 4;
7707  proto_tree_add_item(t, hf_x11_glx_GetError_reply_error, tvb, *offsetp, 4, byte_order);
7708  *offsetp += 4;
7709 }
7710 
7711 static void glxGetFloatv(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
7712 {
7713  proto_tree_add_item(t, hf_x11_glx_GetFloatv_context_tag, tvb, *offsetp, 4, byte_order);
7714  *offsetp += 4;
7715  proto_tree_add_item(t, hf_x11_glx_GetFloatv_pname, tvb, *offsetp, 4, byte_order);
7716  *offsetp += 4;
7717 }
7718 static void glxGetFloatv_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
7719 {
7720  int sequence_number;
7721  int f_n;
7722 
7723  col_append_fstr(pinfo->cinfo, COL_INFO, "-GetFloatv");
7724 
7725  REPLY(reply);
7726  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
7727  *offsetp += 1;
7728  sequence_number = tvb_get_guint16(tvb, *offsetp, byte_order);
7729  proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
7730  "%d (glx-GetFloatv)", sequence_number);
7731  *offsetp += 2;
7732  proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
7733  *offsetp += 4;
7734  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 4, ENC_NA);
7735  *offsetp += 4;
7736  f_n = tvb_get_guint32(tvb, *offsetp, byte_order);
7737  proto_tree_add_item(t, hf_x11_glx_GetFloatv_reply_n, tvb, *offsetp, 4, byte_order);
7738  *offsetp += 4;
7739  proto_tree_add_item(t, hf_x11_glx_GetFloatv_reply_datum, tvb, *offsetp, 4, byte_order);
7740  *offsetp += 4;
7741  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 12, ENC_NA);
7742  *offsetp += 12;
7743  listOfFloat(tvb, offsetp, t, hf_x11_glx_GetFloatv_reply_data, hf_x11_glx_GetFloatv_reply_data_item, f_n, byte_order);
7744 }
7745 
7746 static void glxGetIntegerv(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
7747 {
7748  proto_tree_add_item(t, hf_x11_glx_GetIntegerv_context_tag, tvb, *offsetp, 4, byte_order);
7749  *offsetp += 4;
7750  proto_tree_add_item(t, hf_x11_glx_GetIntegerv_pname, tvb, *offsetp, 4, byte_order);
7751  *offsetp += 4;
7752 }
7753 static void glxGetIntegerv_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
7754 {
7755  int sequence_number;
7756  int f_n;
7757 
7758  col_append_fstr(pinfo->cinfo, COL_INFO, "-GetIntegerv");
7759 
7760  REPLY(reply);
7761  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
7762  *offsetp += 1;
7763  sequence_number = tvb_get_guint16(tvb, *offsetp, byte_order);
7764  proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
7765  "%d (glx-GetIntegerv)", sequence_number);
7766  *offsetp += 2;
7767  proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
7768  *offsetp += 4;
7769  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 4, ENC_NA);
7770  *offsetp += 4;
7771  f_n = tvb_get_guint32(tvb, *offsetp, byte_order);
7772  proto_tree_add_item(t, hf_x11_glx_GetIntegerv_reply_n, tvb, *offsetp, 4, byte_order);
7773  *offsetp += 4;
7774  proto_tree_add_item(t, hf_x11_glx_GetIntegerv_reply_datum, tvb, *offsetp, 4, byte_order);
7775  *offsetp += 4;
7776  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 12, ENC_NA);
7777  *offsetp += 12;
7778  listOfInt32(tvb, offsetp, t, hf_x11_glx_GetIntegerv_reply_data, hf_x11_glx_GetIntegerv_reply_data_item, f_n, byte_order);
7779 }
7780 
7781 static void glxGetLightfv(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
7782 {
7783  proto_tree_add_item(t, hf_x11_glx_GetLightfv_context_tag, tvb, *offsetp, 4, byte_order);
7784  *offsetp += 4;
7785  proto_tree_add_item(t, hf_x11_glx_GetLightfv_light, tvb, *offsetp, 4, byte_order);
7786  *offsetp += 4;
7787  proto_tree_add_item(t, hf_x11_glx_GetLightfv_pname, tvb, *offsetp, 4, byte_order);
7788  *offsetp += 4;
7789 }
7790 static void glxGetLightfv_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
7791 {
7792  int sequence_number;
7793  int f_n;
7794 
7795  col_append_fstr(pinfo->cinfo, COL_INFO, "-GetLightfv");
7796 
7797  REPLY(reply);
7798  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
7799  *offsetp += 1;
7800  sequence_number = tvb_get_guint16(tvb, *offsetp, byte_order);
7801  proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
7802  "%d (glx-GetLightfv)", sequence_number);
7803  *offsetp += 2;
7804  proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
7805  *offsetp += 4;
7806  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 4, ENC_NA);
7807  *offsetp += 4;
7808  f_n = tvb_get_guint32(tvb, *offsetp, byte_order);
7809  proto_tree_add_item(t, hf_x11_glx_GetLightfv_reply_n, tvb, *offsetp, 4, byte_order);
7810  *offsetp += 4;
7811  proto_tree_add_item(t, hf_x11_glx_GetLightfv_reply_datum, tvb, *offsetp, 4, byte_order);
7812  *offsetp += 4;
7813  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 12, ENC_NA);
7814  *offsetp += 12;
7815  listOfFloat(tvb, offsetp, t, hf_x11_glx_GetLightfv_reply_data, hf_x11_glx_GetLightfv_reply_data_item, f_n, byte_order);
7816 }
7817 
7818 static void glxGetLightiv(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
7819 {
7820  proto_tree_add_item(t, hf_x11_glx_GetLightiv_context_tag, tvb, *offsetp, 4, byte_order);
7821  *offsetp += 4;
7822  proto_tree_add_item(t, hf_x11_glx_GetLightiv_light, tvb, *offsetp, 4, byte_order);
7823  *offsetp += 4;
7824  proto_tree_add_item(t, hf_x11_glx_GetLightiv_pname, tvb, *offsetp, 4, byte_order);
7825  *offsetp += 4;
7826 }
7827 static void glxGetLightiv_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
7828 {
7829  int sequence_number;
7830  int f_n;
7831 
7832  col_append_fstr(pinfo->cinfo, COL_INFO, "-GetLightiv");
7833 
7834  REPLY(reply);
7835  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
7836  *offsetp += 1;
7837  sequence_number = tvb_get_guint16(tvb, *offsetp, byte_order);
7838  proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
7839  "%d (glx-GetLightiv)", sequence_number);
7840  *offsetp += 2;
7841  proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
7842  *offsetp += 4;
7843  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 4, ENC_NA);
7844  *offsetp += 4;
7845  f_n = tvb_get_guint32(tvb, *offsetp, byte_order);
7846  proto_tree_add_item(t, hf_x11_glx_GetLightiv_reply_n, tvb, *offsetp, 4, byte_order);
7847  *offsetp += 4;
7848  proto_tree_add_item(t, hf_x11_glx_GetLightiv_reply_datum, tvb, *offsetp, 4, byte_order);
7849  *offsetp += 4;
7850  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 12, ENC_NA);
7851  *offsetp += 12;
7852  listOfInt32(tvb, offsetp, t, hf_x11_glx_GetLightiv_reply_data, hf_x11_glx_GetLightiv_reply_data_item, f_n, byte_order);
7853 }
7854 
7855 static void glxGetMapdv(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
7856 {
7857  proto_tree_add_item(t, hf_x11_glx_GetMapdv_context_tag, tvb, *offsetp, 4, byte_order);
7858  *offsetp += 4;
7859  proto_tree_add_item(t, hf_x11_glx_GetMapdv_target, tvb, *offsetp, 4, byte_order);
7860  *offsetp += 4;
7861  proto_tree_add_item(t, hf_x11_glx_GetMapdv_query, tvb, *offsetp, 4, byte_order);
7862  *offsetp += 4;
7863 }
7864 static void glxGetMapdv_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
7865 {
7866  int sequence_number;
7867  int f_n;
7868 
7869  col_append_fstr(pinfo->cinfo, COL_INFO, "-GetMapdv");
7870 
7871  REPLY(reply);
7872  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
7873  *offsetp += 1;
7874  sequence_number = tvb_get_guint16(tvb, *offsetp, byte_order);
7875  proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
7876  "%d (glx-GetMapdv)", sequence_number);
7877  *offsetp += 2;
7878  proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
7879  *offsetp += 4;
7880  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 4, ENC_NA);
7881  *offsetp += 4;
7882  f_n = tvb_get_guint32(tvb, *offsetp, byte_order);
7883  proto_tree_add_item(t, hf_x11_glx_GetMapdv_reply_n, tvb, *offsetp, 4, byte_order);
7884  *offsetp += 4;
7885  proto_tree_add_item(t, hf_x11_glx_GetMapdv_reply_datum, tvb, *offsetp, 8, byte_order);
7886  *offsetp += 8;
7887  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 8, ENC_NA);
7888  *offsetp += 8;
7889  listOfDouble(tvb, offsetp, t, hf_x11_glx_GetMapdv_reply_data, hf_x11_glx_GetMapdv_reply_data_item, f_n, byte_order);
7890 }
7891 
7892 static void glxGetMapfv(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
7893 {
7894  proto_tree_add_item(t, hf_x11_glx_GetMapfv_context_tag, tvb, *offsetp, 4, byte_order);
7895  *offsetp += 4;
7896  proto_tree_add_item(t, hf_x11_glx_GetMapfv_target, tvb, *offsetp, 4, byte_order);
7897  *offsetp += 4;
7898  proto_tree_add_item(t, hf_x11_glx_GetMapfv_query, tvb, *offsetp, 4, byte_order);
7899  *offsetp += 4;
7900 }
7901 static void glxGetMapfv_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
7902 {
7903  int sequence_number;
7904  int f_n;
7905 
7906  col_append_fstr(pinfo->cinfo, COL_INFO, "-GetMapfv");
7907 
7908  REPLY(reply);
7909  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
7910  *offsetp += 1;
7911  sequence_number = tvb_get_guint16(tvb, *offsetp, byte_order);
7912  proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
7913  "%d (glx-GetMapfv)", sequence_number);
7914  *offsetp += 2;
7915  proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
7916  *offsetp += 4;
7917  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 4, ENC_NA);
7918  *offsetp += 4;
7919  f_n = tvb_get_guint32(tvb, *offsetp, byte_order);
7920  proto_tree_add_item(t, hf_x11_glx_GetMapfv_reply_n, tvb, *offsetp, 4, byte_order);
7921  *offsetp += 4;
7922  proto_tree_add_item(t, hf_x11_glx_GetMapfv_reply_datum, tvb, *offsetp, 4, byte_order);
7923  *offsetp += 4;
7924  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 12, ENC_NA);
7925  *offsetp += 12;
7926  listOfFloat(tvb, offsetp, t, hf_x11_glx_GetMapfv_reply_data, hf_x11_glx_GetMapfv_reply_data_item, f_n, byte_order);
7927 }
7928 
7929 static void glxGetMapiv(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
7930 {
7931  proto_tree_add_item(t, hf_x11_glx_GetMapiv_context_tag, tvb, *offsetp, 4, byte_order);
7932  *offsetp += 4;
7933  proto_tree_add_item(t, hf_x11_glx_GetMapiv_target, tvb, *offsetp, 4, byte_order);
7934  *offsetp += 4;
7935  proto_tree_add_item(t, hf_x11_glx_GetMapiv_query, tvb, *offsetp, 4, byte_order);
7936  *offsetp += 4;
7937 }
7938 static void glxGetMapiv_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
7939 {
7940  int sequence_number;
7941  int f_n;
7942 
7943  col_append_fstr(pinfo->cinfo, COL_INFO, "-GetMapiv");
7944 
7945  REPLY(reply);
7946  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
7947  *offsetp += 1;
7948  sequence_number = tvb_get_guint16(tvb, *offsetp, byte_order);
7949  proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
7950  "%d (glx-GetMapiv)", sequence_number);
7951  *offsetp += 2;
7952  proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
7953  *offsetp += 4;
7954  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 4, ENC_NA);
7955  *offsetp += 4;
7956  f_n = tvb_get_guint32(tvb, *offsetp, byte_order);
7957  proto_tree_add_item(t, hf_x11_glx_GetMapiv_reply_n, tvb, *offsetp, 4, byte_order);
7958  *offsetp += 4;
7959  proto_tree_add_item(t, hf_x11_glx_GetMapiv_reply_datum, tvb, *offsetp, 4, byte_order);
7960  *offsetp += 4;
7961  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 12, ENC_NA);
7962  *offsetp += 12;
7963  listOfInt32(tvb, offsetp, t, hf_x11_glx_GetMapiv_reply_data, hf_x11_glx_GetMapiv_reply_data_item, f_n, byte_order);
7964 }
7965 
7966 static void glxGetMaterialfv(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
7967 {
7968  proto_tree_add_item(t, hf_x11_glx_GetMaterialfv_context_tag, tvb, *offsetp, 4, byte_order);
7969  *offsetp += 4;
7970  proto_tree_add_item(t, hf_x11_glx_GetMaterialfv_face, tvb, *offsetp, 4, byte_order);
7971  *offsetp += 4;
7972  proto_tree_add_item(t, hf_x11_glx_GetMaterialfv_pname, tvb, *offsetp, 4, byte_order);
7973  *offsetp += 4;
7974 }
7975 static void glxGetMaterialfv_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
7976 {
7977  int sequence_number;
7978  int f_n;
7979 
7980  col_append_fstr(pinfo->cinfo, COL_INFO, "-GetMaterialfv");
7981 
7982  REPLY(reply);
7983  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
7984  *offsetp += 1;
7985  sequence_number = tvb_get_guint16(tvb, *offsetp, byte_order);
7986  proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
7987  "%d (glx-GetMaterialfv)", sequence_number);
7988  *offsetp += 2;
7989  proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
7990  *offsetp += 4;
7991  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 4, ENC_NA);
7992  *offsetp += 4;
7993  f_n = tvb_get_guint32(tvb, *offsetp, byte_order);
7994  proto_tree_add_item(t, hf_x11_glx_GetMaterialfv_reply_n, tvb, *offsetp, 4, byte_order);
7995  *offsetp += 4;
7996  proto_tree_add_item(t, hf_x11_glx_GetMaterialfv_reply_datum, tvb, *offsetp, 4, byte_order);
7997  *offsetp += 4;
7998  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 12, ENC_NA);
7999  *offsetp += 12;
8000  listOfFloat(tvb, offsetp, t, hf_x11_glx_GetMaterialfv_reply_data, hf_x11_glx_GetMaterialfv_reply_data_item, f_n, byte_order);
8001 }
8002 
8003 static void glxGetMaterialiv(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
8004 {
8005  proto_tree_add_item(t, hf_x11_glx_GetMaterialiv_context_tag, tvb, *offsetp, 4, byte_order);
8006  *offsetp += 4;
8007  proto_tree_add_item(t, hf_x11_glx_GetMaterialiv_face, tvb, *offsetp, 4, byte_order);
8008  *offsetp += 4;
8009  proto_tree_add_item(t, hf_x11_glx_GetMaterialiv_pname, tvb, *offsetp, 4, byte_order);
8010  *offsetp += 4;
8011 }
8012 static void glxGetMaterialiv_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
8013 {
8014  int sequence_number;
8015  int f_n;
8016 
8017  col_append_fstr(pinfo->cinfo, COL_INFO, "-GetMaterialiv");
8018 
8019  REPLY(reply);
8020  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
8021  *offsetp += 1;
8022  sequence_number = tvb_get_guint16(tvb, *offsetp, byte_order);
8023  proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
8024  "%d (glx-GetMaterialiv)", sequence_number);
8025  *offsetp += 2;
8026  proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
8027  *offsetp += 4;
8028  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 4, ENC_NA);
8029  *offsetp += 4;
8030  f_n = tvb_get_guint32(tvb, *offsetp, byte_order);
8031  proto_tree_add_item(t, hf_x11_glx_GetMaterialiv_reply_n, tvb, *offsetp, 4, byte_order);
8032  *offsetp += 4;
8033  proto_tree_add_item(t, hf_x11_glx_GetMaterialiv_reply_datum, tvb, *offsetp, 4, byte_order);
8034  *offsetp += 4;
8035  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 12, ENC_NA);
8036  *offsetp += 12;
8037  listOfInt32(tvb, offsetp, t, hf_x11_glx_GetMaterialiv_reply_data, hf_x11_glx_GetMaterialiv_reply_data_item, f_n, byte_order);
8038 }
8039 
8040 static void glxGetPixelMapfv(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
8041 {
8042  proto_tree_add_item(t, hf_x11_glx_GetPixelMapfv_context_tag, tvb, *offsetp, 4, byte_order);
8043  *offsetp += 4;
8044  proto_tree_add_item(t, hf_x11_glx_GetPixelMapfv_map, tvb, *offsetp, 4, byte_order);
8045  *offsetp += 4;
8046 }
8047 static void glxGetPixelMapfv_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
8048 {
8049  int sequence_number;
8050  int f_n;
8051 
8052  col_append_fstr(pinfo->cinfo, COL_INFO, "-GetPixelMapfv");
8053 
8054  REPLY(reply);
8055  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
8056  *offsetp += 1;
8057  sequence_number = tvb_get_guint16(tvb, *offsetp, byte_order);
8058  proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
8059  "%d (glx-GetPixelMapfv)", sequence_number);
8060  *offsetp += 2;
8061  proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
8062  *offsetp += 4;
8063  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 4, ENC_NA);
8064  *offsetp += 4;
8065  f_n = tvb_get_guint32(tvb, *offsetp, byte_order);
8066  proto_tree_add_item(t, hf_x11_glx_GetPixelMapfv_reply_n, tvb, *offsetp, 4, byte_order);
8067  *offsetp += 4;
8068  proto_tree_add_item(t, hf_x11_glx_GetPixelMapfv_reply_datum, tvb, *offsetp, 4, byte_order);
8069  *offsetp += 4;
8070  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 12, ENC_NA);
8071  *offsetp += 12;
8072  listOfFloat(tvb, offsetp, t, hf_x11_glx_GetPixelMapfv_reply_data, hf_x11_glx_GetPixelMapfv_reply_data_item, f_n, byte_order);
8073 }
8074 
8075 static void glxGetPixelMapuiv(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
8076 {
8077  proto_tree_add_item(t, hf_x11_glx_GetPixelMapuiv_context_tag, tvb, *offsetp, 4, byte_order);
8078  *offsetp += 4;
8079  proto_tree_add_item(t, hf_x11_glx_GetPixelMapuiv_map, tvb, *offsetp, 4, byte_order);
8080  *offsetp += 4;
8081 }
8082 static void glxGetPixelMapuiv_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
8083 {
8084  int sequence_number;
8085  int f_n;
8086 
8087  col_append_fstr(pinfo->cinfo, COL_INFO, "-GetPixelMapuiv");
8088 
8089  REPLY(reply);
8090  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
8091  *offsetp += 1;
8092  sequence_number = tvb_get_guint16(tvb, *offsetp, byte_order);
8093  proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
8094  "%d (glx-GetPixelMapuiv)", sequence_number);
8095  *offsetp += 2;
8096  proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
8097  *offsetp += 4;
8098  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 4, ENC_NA);
8099  *offsetp += 4;
8100  f_n = tvb_get_guint32(tvb, *offsetp, byte_order);
8101  proto_tree_add_item(t, hf_x11_glx_GetPixelMapuiv_reply_n, tvb, *offsetp, 4, byte_order);
8102  *offsetp += 4;
8103  proto_tree_add_item(t, hf_x11_glx_GetPixelMapuiv_reply_datum, tvb, *offsetp, 4, byte_order);
8104  *offsetp += 4;
8105  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 12, ENC_NA);
8106  *offsetp += 12;
8107  listOfCard32(tvb, offsetp, t, hf_x11_glx_GetPixelMapuiv_reply_data, hf_x11_glx_GetPixelMapuiv_reply_data_item, f_n, byte_order);
8108 }
8109 
8110 static void glxGetPixelMapusv(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
8111 {
8112  proto_tree_add_item(t, hf_x11_glx_GetPixelMapusv_context_tag, tvb, *offsetp, 4, byte_order);
8113  *offsetp += 4;
8114  proto_tree_add_item(t, hf_x11_glx_GetPixelMapusv_map, tvb, *offsetp, 4, byte_order);
8115  *offsetp += 4;
8116 }
8117 static void glxGetPixelMapusv_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
8118 {
8119  int sequence_number;
8120  int f_n;
8121 
8122  col_append_fstr(pinfo->cinfo, COL_INFO, "-GetPixelMapusv");
8123 
8124  REPLY(reply);
8125  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
8126  *offsetp += 1;
8127  sequence_number = tvb_get_guint16(tvb, *offsetp, byte_order);
8128  proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
8129  "%d (glx-GetPixelMapusv)", sequence_number);
8130  *offsetp += 2;
8131  proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
8132  *offsetp += 4;
8133  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 4, ENC_NA);
8134  *offsetp += 4;
8135  f_n = tvb_get_guint32(tvb, *offsetp, byte_order);
8136  proto_tree_add_item(t, hf_x11_glx_GetPixelMapusv_reply_n, tvb, *offsetp, 4, byte_order);
8137  *offsetp += 4;
8138  proto_tree_add_item(t, hf_x11_glx_GetPixelMapusv_reply_datum, tvb, *offsetp, 2, byte_order);
8139  *offsetp += 2;
8140  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 16, ENC_NA);
8141  *offsetp += 16;
8142  listOfCard16(tvb, offsetp, t, hf_x11_glx_GetPixelMapusv_reply_data, hf_x11_glx_GetPixelMapusv_reply_data_item, f_n, byte_order);
8143 }
8144 
8145 static void glxGetPolygonStipple(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
8146 {
8147  proto_tree_add_item(t, hf_x11_glx_GetPolygonStipple_context_tag, tvb, *offsetp, 4, byte_order);
8148  *offsetp += 4;
8149  proto_tree_add_item(t, hf_x11_glx_GetPolygonStipple_lsb_first, tvb, *offsetp, 1, byte_order);
8150  *offsetp += 1;
8151 }
8152 static void glxGetPolygonStipple_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
8153 {
8154  int sequence_number;
8155  int f_length;
8156 
8157  col_append_fstr(pinfo->cinfo, COL_INFO, "-GetPolygonStipple");
8158 
8159  REPLY(reply);
8160  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
8161  *offsetp += 1;
8162  sequence_number = tvb_get_guint16(tvb, *offsetp, byte_order);
8163  proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
8164  "%d (glx-GetPolygonStipple)", sequence_number);
8165  *offsetp += 2;
8166  f_length = tvb_get_guint32(tvb, *offsetp, byte_order);
8167  proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
8168  *offsetp += 4;
8169  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 24, ENC_NA);
8170  *offsetp += 24;
8171  listOfByte(tvb, offsetp, t, hf_x11_glx_GetPolygonStipple_reply_data, (f_length * 4), byte_order);
8172 }
8173 
8174 static void glxGetString(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
8175 {
8176  proto_tree_add_item(t, hf_x11_glx_GetString_context_tag, tvb, *offsetp, 4, byte_order);
8177  *offsetp += 4;
8178  proto_tree_add_item(t, hf_x11_glx_GetString_name, tvb, *offsetp, 4, byte_order);
8179  *offsetp += 4;
8180 }
8181 static void glxGetString_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
8182 {
8183  int sequence_number;
8184  int f_n;
8185 
8186  col_append_fstr(pinfo->cinfo, COL_INFO, "-GetString");
8187 
8188  REPLY(reply);
8189  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
8190  *offsetp += 1;
8191  sequence_number = tvb_get_guint16(tvb, *offsetp, byte_order);
8192  proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
8193  "%d (glx-GetString)", sequence_number);
8194  *offsetp += 2;
8195  proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
8196  *offsetp += 4;
8197  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 4, ENC_NA);
8198  *offsetp += 4;
8199  f_n = tvb_get_guint32(tvb, *offsetp, byte_order);
8200  proto_tree_add_item(t, hf_x11_glx_GetString_reply_n, tvb, *offsetp, 4, byte_order);
8201  *offsetp += 4;
8202  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 16, ENC_NA);
8203  *offsetp += 16;
8204  listOfByte(tvb, offsetp, t, hf_x11_glx_GetString_reply_string, f_n, byte_order);
8205 }
8206 
8207 static void glxGetTexEnvfv(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
8208 {
8209  proto_tree_add_item(t, hf_x11_glx_GetTexEnvfv_context_tag, tvb, *offsetp, 4, byte_order);
8210  *offsetp += 4;
8211  proto_tree_add_item(t, hf_x11_glx_GetTexEnvfv_target, tvb, *offsetp, 4, byte_order);
8212  *offsetp += 4;
8213  proto_tree_add_item(t, hf_x11_glx_GetTexEnvfv_pname, tvb, *offsetp, 4, byte_order);
8214  *offsetp += 4;
8215 }
8216 static void glxGetTexEnvfv_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
8217 {
8218  int sequence_number;
8219  int f_n;
8220 
8221  col_append_fstr(pinfo->cinfo, COL_INFO, "-GetTexEnvfv");
8222 
8223  REPLY(reply);
8224  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
8225  *offsetp += 1;
8226  sequence_number = tvb_get_guint16(tvb, *offsetp, byte_order);
8227  proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
8228  "%d (glx-GetTexEnvfv)", sequence_number);
8229  *offsetp += 2;
8230  proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
8231  *offsetp += 4;
8232  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 4, ENC_NA);
8233  *offsetp += 4;
8234  f_n = tvb_get_guint32(tvb, *offsetp, byte_order);
8235  proto_tree_add_item(t, hf_x11_glx_GetTexEnvfv_reply_n, tvb, *offsetp, 4, byte_order);
8236  *offsetp += 4;
8237  proto_tree_add_item(t, hf_x11_glx_GetTexEnvfv_reply_datum, tvb, *offsetp, 4, byte_order);
8238  *offsetp += 4;
8239  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 12, ENC_NA);
8240  *offsetp += 12;
8241  listOfFloat(tvb, offsetp, t, hf_x11_glx_GetTexEnvfv_reply_data, hf_x11_glx_GetTexEnvfv_reply_data_item, f_n, byte_order);
8242 }
8243 
8244 static void glxGetTexEnviv(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
8245 {
8246  proto_tree_add_item(t, hf_x11_glx_GetTexEnviv_context_tag, tvb, *offsetp, 4, byte_order);
8247  *offsetp += 4;
8248  proto_tree_add_item(t, hf_x11_glx_GetTexEnviv_target, tvb, *offsetp, 4, byte_order);
8249  *offsetp += 4;
8250  proto_tree_add_item(t, hf_x11_glx_GetTexEnviv_pname, tvb, *offsetp, 4, byte_order);
8251  *offsetp += 4;
8252 }
8253 static void glxGetTexEnviv_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
8254 {
8255  int sequence_number;
8256  int f_n;
8257 
8258  col_append_fstr(pinfo->cinfo, COL_INFO, "-GetTexEnviv");
8259 
8260  REPLY(reply);
8261  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
8262  *offsetp += 1;
8263  sequence_number = tvb_get_guint16(tvb, *offsetp, byte_order);
8264  proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
8265  "%d (glx-GetTexEnviv)", sequence_number);
8266  *offsetp += 2;
8267  proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
8268  *offsetp += 4;
8269  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 4, ENC_NA);
8270  *offsetp += 4;
8271  f_n = tvb_get_guint32(tvb, *offsetp, byte_order);
8272  proto_tree_add_item(t, hf_x11_glx_GetTexEnviv_reply_n, tvb, *offsetp, 4, byte_order);
8273  *offsetp += 4;
8274  proto_tree_add_item(t, hf_x11_glx_GetTexEnviv_reply_datum, tvb, *offsetp, 4, byte_order);
8275  *offsetp += 4;
8276  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 12, ENC_NA);
8277  *offsetp += 12;
8278  listOfInt32(tvb, offsetp, t, hf_x11_glx_GetTexEnviv_reply_data, hf_x11_glx_GetTexEnviv_reply_data_item, f_n, byte_order);
8279 }
8280 
8281 static void glxGetTexGendv(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
8282 {
8283  proto_tree_add_item(t, hf_x11_glx_GetTexGendv_context_tag, tvb, *offsetp, 4, byte_order);
8284  *offsetp += 4;
8285  proto_tree_add_item(t, hf_x11_glx_GetTexGendv_coord, tvb, *offsetp, 4, byte_order);
8286  *offsetp += 4;
8287  proto_tree_add_item(t, hf_x11_glx_GetTexGendv_pname, tvb, *offsetp, 4, byte_order);
8288  *offsetp += 4;
8289 }
8290 static void glxGetTexGendv_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
8291 {
8292  int sequence_number;
8293  int f_n;
8294 
8295  col_append_fstr(pinfo->cinfo, COL_INFO, "-GetTexGendv");
8296 
8297  REPLY(reply);
8298  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
8299  *offsetp += 1;
8300  sequence_number = tvb_get_guint16(tvb, *offsetp, byte_order);
8301  proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
8302  "%d (glx-GetTexGendv)", sequence_number);
8303  *offsetp += 2;
8304  proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
8305  *offsetp += 4;
8306  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 4, ENC_NA);
8307  *offsetp += 4;
8308  f_n = tvb_get_guint32(tvb, *offsetp, byte_order);
8309  proto_tree_add_item(t, hf_x11_glx_GetTexGendv_reply_n, tvb, *offsetp, 4, byte_order);
8310  *offsetp += 4;
8311  proto_tree_add_item(t, hf_x11_glx_GetTexGendv_reply_datum, tvb, *offsetp, 8, byte_order);
8312  *offsetp += 8;
8313  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 8, ENC_NA);
8314  *offsetp += 8;
8315  listOfDouble(tvb, offsetp, t, hf_x11_glx_GetTexGendv_reply_data, hf_x11_glx_GetTexGendv_reply_data_item, f_n, byte_order);
8316 }
8317 
8318 static void glxGetTexGenfv(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
8319 {
8320  proto_tree_add_item(t, hf_x11_glx_GetTexGenfv_context_tag, tvb, *offsetp, 4, byte_order);
8321  *offsetp += 4;
8322  proto_tree_add_item(t, hf_x11_glx_GetTexGenfv_coord, tvb, *offsetp, 4, byte_order);
8323  *offsetp += 4;
8324  proto_tree_add_item(t, hf_x11_glx_GetTexGenfv_pname, tvb, *offsetp, 4, byte_order);
8325  *offsetp += 4;
8326 }
8327 static void glxGetTexGenfv_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
8328 {
8329  int sequence_number;
8330  int f_n;
8331 
8332  col_append_fstr(pinfo->cinfo, COL_INFO, "-GetTexGenfv");
8333 
8334  REPLY(reply);
8335  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
8336  *offsetp += 1;
8337  sequence_number = tvb_get_guint16(tvb, *offsetp, byte_order);
8338  proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
8339  "%d (glx-GetTexGenfv)", sequence_number);
8340  *offsetp += 2;
8341  proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
8342  *offsetp += 4;
8343  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 4, ENC_NA);
8344  *offsetp += 4;
8345  f_n = tvb_get_guint32(tvb, *offsetp, byte_order);
8346  proto_tree_add_item(t, hf_x11_glx_GetTexGenfv_reply_n, tvb, *offsetp, 4, byte_order);
8347  *offsetp += 4;
8348  proto_tree_add_item(t, hf_x11_glx_GetTexGenfv_reply_datum, tvb, *offsetp, 4, byte_order);
8349  *offsetp += 4;
8350  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 12, ENC_NA);
8351  *offsetp += 12;
8352  listOfFloat(tvb, offsetp, t, hf_x11_glx_GetTexGenfv_reply_data, hf_x11_glx_GetTexGenfv_reply_data_item, f_n, byte_order);
8353 }
8354 
8355 static void glxGetTexGeniv(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
8356 {
8357  proto_tree_add_item(t, hf_x11_glx_GetTexGeniv_context_tag, tvb, *offsetp, 4, byte_order);
8358  *offsetp += 4;
8359  proto_tree_add_item(t, hf_x11_glx_GetTexGeniv_coord, tvb, *offsetp, 4, byte_order);
8360  *offsetp += 4;
8361  proto_tree_add_item(t, hf_x11_glx_GetTexGeniv_pname, tvb, *offsetp, 4, byte_order);
8362  *offsetp += 4;
8363 }
8364 static void glxGetTexGeniv_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
8365 {
8366  int sequence_number;
8367  int f_n;
8368 
8369  col_append_fstr(pinfo->cinfo, COL_INFO, "-GetTexGeniv");
8370 
8371  REPLY(reply);
8372  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
8373  *offsetp += 1;
8374  sequence_number = tvb_get_guint16(tvb, *offsetp, byte_order);
8375  proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
8376  "%d (glx-GetTexGeniv)", sequence_number);
8377  *offsetp += 2;
8378  proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
8379  *offsetp += 4;
8380  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 4, ENC_NA);
8381  *offsetp += 4;
8382  f_n = tvb_get_guint32(tvb, *offsetp, byte_order);
8383  proto_tree_add_item(t, hf_x11_glx_GetTexGeniv_reply_n, tvb, *offsetp, 4, byte_order);
8384  *offsetp += 4;
8385  proto_tree_add_item(t, hf_x11_glx_GetTexGeniv_reply_datum, tvb, *offsetp, 4, byte_order);
8386  *offsetp += 4;
8387  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 12, ENC_NA);
8388  *offsetp += 12;
8389  listOfInt32(tvb, offsetp, t, hf_x11_glx_GetTexGeniv_reply_data, hf_x11_glx_GetTexGeniv_reply_data_item, f_n, byte_order);
8390 }
8391 
8392 static void glxGetTexImage(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
8393 {
8394  proto_tree_add_item(t, hf_x11_glx_GetTexImage_context_tag, tvb, *offsetp, 4, byte_order);
8395  *offsetp += 4;
8396  proto_tree_add_item(t, hf_x11_glx_GetTexImage_target, tvb, *offsetp, 4, byte_order);
8397  *offsetp += 4;
8398  proto_tree_add_item(t, hf_x11_glx_GetTexImage_level, tvb, *offsetp, 4, byte_order);
8399  *offsetp += 4;
8400  proto_tree_add_item(t, hf_x11_glx_GetTexImage_format, tvb, *offsetp, 4, byte_order);
8401  *offsetp += 4;
8402  proto_tree_add_item(t, hf_x11_glx_GetTexImage_type, tvb, *offsetp, 4, byte_order);
8403  *offsetp += 4;
8404  proto_tree_add_item(t, hf_x11_glx_GetTexImage_swap_bytes, tvb, *offsetp, 1, byte_order);
8405  *offsetp += 1;
8406 }
8407 static void glxGetTexImage_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
8408 {
8409  int sequence_number;
8410  int f_length;
8411 
8412  col_append_fstr(pinfo->cinfo, COL_INFO, "-GetTexImage");
8413 
8414  REPLY(reply);
8415  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
8416  *offsetp += 1;
8417  sequence_number = tvb_get_guint16(tvb, *offsetp, byte_order);
8418  proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
8419  "%d (glx-GetTexImage)", sequence_number);
8420  *offsetp += 2;
8421  f_length = tvb_get_guint32(tvb, *offsetp, byte_order);
8422  proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
8423  *offsetp += 4;
8424  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 8, ENC_NA);
8425  *offsetp += 8;
8426  proto_tree_add_item(t, hf_x11_glx_GetTexImage_reply_width, tvb, *offsetp, 4, byte_order);
8427  *offsetp += 4;
8428  proto_tree_add_item(t, hf_x11_glx_GetTexImage_reply_height, tvb, *offsetp, 4, byte_order);
8429  *offsetp += 4;
8430  proto_tree_add_item(t, hf_x11_glx_GetTexImage_reply_depth, tvb, *offsetp, 4, byte_order);
8431  *offsetp += 4;
8432  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 4, ENC_NA);
8433  *offsetp += 4;
8434  listOfByte(tvb, offsetp, t, hf_x11_glx_GetTexImage_reply_data, (f_length * 4), byte_order);
8435 }
8436 
8437 static void glxGetTexParameterfv(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
8438 {
8439  proto_tree_add_item(t, hf_x11_glx_GetTexParameterfv_context_tag, tvb, *offsetp, 4, byte_order);
8440  *offsetp += 4;
8441  proto_tree_add_item(t, hf_x11_glx_GetTexParameterfv_target, tvb, *offsetp, 4, byte_order);
8442  *offsetp += 4;
8443  proto_tree_add_item(t, hf_x11_glx_GetTexParameterfv_pname, tvb, *offsetp, 4, byte_order);
8444  *offsetp += 4;
8445 }
8446 static void glxGetTexParameterfv_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
8447 {
8448  int sequence_number;
8449  int f_n;
8450 
8451  col_append_fstr(pinfo->cinfo, COL_INFO, "-GetTexParameterfv");
8452 
8453  REPLY(reply);
8454  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
8455  *offsetp += 1;
8456  sequence_number = tvb_get_guint16(tvb, *offsetp, byte_order);
8457  proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
8458  "%d (glx-GetTexParameterfv)", sequence_number);
8459  *offsetp += 2;
8460  proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
8461  *offsetp += 4;
8462  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 4, ENC_NA);
8463  *offsetp += 4;
8464  f_n = tvb_get_guint32(tvb, *offsetp, byte_order);
8465  proto_tree_add_item(t, hf_x11_glx_GetTexParameterfv_reply_n, tvb, *offsetp, 4, byte_order);
8466  *offsetp += 4;
8467  proto_tree_add_item(t, hf_x11_glx_GetTexParameterfv_reply_datum, tvb, *offsetp, 4, byte_order);
8468  *offsetp += 4;
8469  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 12, ENC_NA);
8470  *offsetp += 12;
8471  listOfFloat(tvb, offsetp, t, hf_x11_glx_GetTexParameterfv_reply_data, hf_x11_glx_GetTexParameterfv_reply_data_item, f_n, byte_order);
8472 }
8473 
8474 static void glxGetTexParameteriv(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
8475 {
8476  proto_tree_add_item(t, hf_x11_glx_GetTexParameteriv_context_tag, tvb, *offsetp, 4, byte_order);
8477  *offsetp += 4;
8478  proto_tree_add_item(t, hf_x11_glx_GetTexParameteriv_target, tvb, *offsetp, 4, byte_order);
8479  *offsetp += 4;
8480  proto_tree_add_item(t, hf_x11_glx_GetTexParameteriv_pname, tvb, *offsetp, 4, byte_order);
8481  *offsetp += 4;
8482 }
8483 static void glxGetTexParameteriv_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
8484 {
8485  int sequence_number;
8486  int f_n;
8487 
8488  col_append_fstr(pinfo->cinfo, COL_INFO, "-GetTexParameteriv");
8489 
8490  REPLY(reply);
8491  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
8492  *offsetp += 1;
8493  sequence_number = tvb_get_guint16(tvb, *offsetp, byte_order);
8494  proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
8495  "%d (glx-GetTexParameteriv)", sequence_number);
8496  *offsetp += 2;
8497  proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
8498  *offsetp += 4;
8499  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 4, ENC_NA);
8500  *offsetp += 4;
8501  f_n = tvb_get_guint32(tvb, *offsetp, byte_order);
8502  proto_tree_add_item(t, hf_x11_glx_GetTexParameteriv_reply_n, tvb, *offsetp, 4, byte_order);
8503  *offsetp += 4;
8504  proto_tree_add_item(t, hf_x11_glx_GetTexParameteriv_reply_datum, tvb, *offsetp, 4, byte_order);
8505  *offsetp += 4;
8506  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 12, ENC_NA);
8507  *offsetp += 12;
8508  listOfInt32(tvb, offsetp, t, hf_x11_glx_GetTexParameteriv_reply_data, hf_x11_glx_GetTexParameteriv_reply_data_item, f_n, byte_order);
8509 }
8510 
8511 static void glxGetTexLevelParameterfv(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
8512 {
8513  proto_tree_add_item(t, hf_x11_glx_GetTexLevelParameterfv_context_tag, tvb, *offsetp, 4, byte_order);
8514  *offsetp += 4;
8515  proto_tree_add_item(t, hf_x11_glx_GetTexLevelParameterfv_target, tvb, *offsetp, 4, byte_order);
8516  *offsetp += 4;
8517  proto_tree_add_item(t, hf_x11_glx_GetTexLevelParameterfv_level, tvb, *offsetp, 4, byte_order);
8518  *offsetp += 4;
8519  proto_tree_add_item(t, hf_x11_glx_GetTexLevelParameterfv_pname, tvb, *offsetp, 4, byte_order);
8520  *offsetp += 4;
8521 }
8522 static void glxGetTexLevelParameterfv_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
8523 {
8524  int sequence_number;
8525  int f_n;
8526 
8527  col_append_fstr(pinfo->cinfo, COL_INFO, "-GetTexLevelParameterfv");
8528 
8529  REPLY(reply);
8530  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
8531  *offsetp += 1;
8532  sequence_number = tvb_get_guint16(tvb, *offsetp, byte_order);
8533  proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
8534  "%d (glx-GetTexLevelParameterfv)", sequence_number);
8535  *offsetp += 2;
8536  proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
8537  *offsetp += 4;
8538  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 4, ENC_NA);
8539  *offsetp += 4;
8540  f_n = tvb_get_guint32(tvb, *offsetp, byte_order);
8541  proto_tree_add_item(t, hf_x11_glx_GetTexLevelParameterfv_reply_n, tvb, *offsetp, 4, byte_order);
8542  *offsetp += 4;
8543  proto_tree_add_item(t, hf_x11_glx_GetTexLevelParameterfv_reply_datum, tvb, *offsetp, 4, byte_order);
8544  *offsetp += 4;
8545  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 12, ENC_NA);
8546  *offsetp += 12;
8547  listOfFloat(tvb, offsetp, t, hf_x11_glx_GetTexLevelParameterfv_reply_data, hf_x11_glx_GetTexLevelParameterfv_reply_data_item, f_n, byte_order);
8548 }
8549 
8550 static void glxGetTexLevelParameteriv(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
8551 {
8552  proto_tree_add_item(t, hf_x11_glx_GetTexLevelParameteriv_context_tag, tvb, *offsetp, 4, byte_order);
8553  *offsetp += 4;
8554  proto_tree_add_item(t, hf_x11_glx_GetTexLevelParameteriv_target, tvb, *offsetp, 4, byte_order);
8555  *offsetp += 4;
8556  proto_tree_add_item(t, hf_x11_glx_GetTexLevelParameteriv_level, tvb, *offsetp, 4, byte_order);
8557  *offsetp += 4;
8558  proto_tree_add_item(t, hf_x11_glx_GetTexLevelParameteriv_pname, tvb, *offsetp, 4, byte_order);
8559  *offsetp += 4;
8560 }
8561 static void glxGetTexLevelParameteriv_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
8562 {
8563  int sequence_number;
8564  int f_n;
8565 
8566  col_append_fstr(pinfo->cinfo, COL_INFO, "-GetTexLevelParameteriv");
8567 
8568  REPLY(reply);
8569  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
8570  *offsetp += 1;
8571  sequence_number = tvb_get_guint16(tvb, *offsetp, byte_order);
8572  proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
8573  "%d (glx-GetTexLevelParameteriv)", sequence_number);
8574  *offsetp += 2;
8575  proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
8576  *offsetp += 4;
8577  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 4, ENC_NA);
8578  *offsetp += 4;
8579  f_n = tvb_get_guint32(tvb, *offsetp, byte_order);
8580  proto_tree_add_item(t, hf_x11_glx_GetTexLevelParameteriv_reply_n, tvb, *offsetp, 4, byte_order);
8581  *offsetp += 4;
8582  proto_tree_add_item(t, hf_x11_glx_GetTexLevelParameteriv_reply_datum, tvb, *offsetp, 4, byte_order);
8583  *offsetp += 4;
8584  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 12, ENC_NA);
8585  *offsetp += 12;
8586  listOfInt32(tvb, offsetp, t, hf_x11_glx_GetTexLevelParameteriv_reply_data, hf_x11_glx_GetTexLevelParameteriv_reply_data_item, f_n, byte_order);
8587 }
8588 
8589 static void glxIsEnabled(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
8590 {
8591  proto_tree_add_item(t, hf_x11_glx_IsEnabled_context_tag, tvb, *offsetp, 4, byte_order);
8592  *offsetp += 4;
8593  proto_tree_add_item(t, hf_x11_glx_IsEnabled_capability, tvb, *offsetp, 4, byte_order);
8594  *offsetp += 4;
8595 }
8596 static void glxIsEnabled_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
8597 {
8598  int sequence_number;
8599 
8600  col_append_fstr(pinfo->cinfo, COL_INFO, "-IsEnabled");
8601 
8602  REPLY(reply);
8603  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
8604  *offsetp += 1;
8605  sequence_number = tvb_get_guint16(tvb, *offsetp, byte_order);
8606  proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
8607  "%d (glx-IsEnabled)", sequence_number);
8608  *offsetp += 2;
8609  proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
8610  *offsetp += 4;
8611  proto_tree_add_item(t, hf_x11_glx_IsEnabled_reply_ret_val, tvb, *offsetp, 4, byte_order);
8612  *offsetp += 4;
8613 }
8614 
8615 static void glxIsList(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
8616 {
8617  proto_tree_add_item(t, hf_x11_glx_IsList_context_tag, tvb, *offsetp, 4, byte_order);
8618  *offsetp += 4;
8619  proto_tree_add_item(t, hf_x11_glx_IsList_list, tvb, *offsetp, 4, byte_order);
8620  *offsetp += 4;
8621 }
8622 static void glxIsList_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
8623 {
8624  int sequence_number;
8625 
8626  col_append_fstr(pinfo->cinfo, COL_INFO, "-IsList");
8627 
8628  REPLY(reply);
8629  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
8630  *offsetp += 1;
8631  sequence_number = tvb_get_guint16(tvb, *offsetp, byte_order);
8632  proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
8633  "%d (glx-IsList)", sequence_number);
8634  *offsetp += 2;
8635  proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
8636  *offsetp += 4;
8637  proto_tree_add_item(t, hf_x11_glx_IsList_reply_ret_val, tvb, *offsetp, 4, byte_order);
8638  *offsetp += 4;
8639 }
8640 
8641 static void glxFlush(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
8642 {
8643  proto_tree_add_item(t, hf_x11_glx_Flush_context_tag, tvb, *offsetp, 4, byte_order);
8644  *offsetp += 4;
8645 }
8646 
8647 static void glxAreTexturesResident(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
8648 {
8649  int f_n;
8650  proto_tree_add_item(t, hf_x11_glx_AreTexturesResident_context_tag, tvb, *offsetp, 4, byte_order);
8651  *offsetp += 4;
8652  f_n = tvb_get_guint32(tvb, *offsetp, byte_order);
8653  proto_tree_add_item(t, hf_x11_glx_AreTexturesResident_n, tvb, *offsetp, 4, byte_order);
8654  *offsetp += 4;
8655  listOfCard32(tvb, offsetp, t, hf_x11_glx_AreTexturesResident_textures, hf_x11_glx_AreTexturesResident_textures_item, f_n, byte_order);
8656  length -= f_n * 4;
8657 }
8658 static void glxAreTexturesResident_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
8659 {
8660  int sequence_number;
8661  int f_length;
8662 
8663  col_append_fstr(pinfo->cinfo, COL_INFO, "-AreTexturesResident");
8664 
8665  REPLY(reply);
8666  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
8667  *offsetp += 1;
8668  sequence_number = tvb_get_guint16(tvb, *offsetp, byte_order);
8669  proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
8670  "%d (glx-AreTexturesResident)", sequence_number);
8671  *offsetp += 2;
8672  f_length = tvb_get_guint32(tvb, *offsetp, byte_order);
8673  proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
8674  *offsetp += 4;
8675  proto_tree_add_item(t, hf_x11_glx_AreTexturesResident_reply_ret_val, tvb, *offsetp, 4, byte_order);
8676  *offsetp += 4;
8677  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 20, ENC_NA);
8678  *offsetp += 20;
8679  listOfByte(tvb, offsetp, t, hf_x11_glx_AreTexturesResident_reply_data, (f_length * 4), byte_order);
8680 }
8681 
8682 static void glxDeleteTextures(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
8683 {
8684  int f_n;
8685  proto_tree_add_item(t, hf_x11_glx_DeleteTextures_context_tag, tvb, *offsetp, 4, byte_order);
8686  *offsetp += 4;
8687  f_n = tvb_get_guint32(tvb, *offsetp, byte_order);
8688  proto_tree_add_item(t, hf_x11_glx_DeleteTextures_n, tvb, *offsetp, 4, byte_order);
8689  *offsetp += 4;
8690  listOfCard32(tvb, offsetp, t, hf_x11_glx_DeleteTextures_textures, hf_x11_glx_DeleteTextures_textures_item, f_n, byte_order);
8691  length -= f_n * 4;
8692 }
8693 
8694 static void glxGenTextures(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
8695 {
8696  proto_tree_add_item(t, hf_x11_glx_GenTextures_context_tag, tvb, *offsetp, 4, byte_order);
8697  *offsetp += 4;
8698  proto_tree_add_item(t, hf_x11_glx_GenTextures_n, tvb, *offsetp, 4, byte_order);
8699  *offsetp += 4;
8700 }
8701 static void glxGenTextures_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
8702 {
8703  int sequence_number;
8704  int f_length;
8705 
8706  col_append_fstr(pinfo->cinfo, COL_INFO, "-GenTextures");
8707 
8708  REPLY(reply);
8709  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
8710  *offsetp += 1;
8711  sequence_number = tvb_get_guint16(tvb, *offsetp, byte_order);
8712  proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
8713  "%d (glx-GenTextures)", sequence_number);
8714  *offsetp += 2;
8715  f_length = tvb_get_guint32(tvb, *offsetp, byte_order);
8716  proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
8717  *offsetp += 4;
8718  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 24, ENC_NA);
8719  *offsetp += 24;
8720  listOfCard32(tvb, offsetp, t, hf_x11_glx_GenTextures_reply_data, hf_x11_glx_GenTextures_reply_data_item, f_length, byte_order);
8721 }
8722 
8723 static void glxIsTexture(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
8724 {
8725  proto_tree_add_item(t, hf_x11_glx_IsTexture_context_tag, tvb, *offsetp, 4, byte_order);
8726  *offsetp += 4;
8727  proto_tree_add_item(t, hf_x11_glx_IsTexture_texture, tvb, *offsetp, 4, byte_order);
8728  *offsetp += 4;
8729 }
8730 static void glxIsTexture_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
8731 {
8732  int sequence_number;
8733 
8734  col_append_fstr(pinfo->cinfo, COL_INFO, "-IsTexture");
8735 
8736  REPLY(reply);
8737  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
8738  *offsetp += 1;
8739  sequence_number = tvb_get_guint16(tvb, *offsetp, byte_order);
8740  proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
8741  "%d (glx-IsTexture)", sequence_number);
8742  *offsetp += 2;
8743  proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
8744  *offsetp += 4;
8745  proto_tree_add_item(t, hf_x11_glx_IsTexture_reply_ret_val, tvb, *offsetp, 4, byte_order);
8746  *offsetp += 4;
8747 }
8748 
8749 static void glxGetColorTable(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
8750 {
8751  proto_tree_add_item(t, hf_x11_glx_GetColorTable_context_tag, tvb, *offsetp, 4, byte_order);
8752  *offsetp += 4;
8753  proto_tree_add_item(t, hf_x11_glx_GetColorTable_target, tvb, *offsetp, 4, byte_order);
8754  *offsetp += 4;
8755  proto_tree_add_item(t, hf_x11_glx_GetColorTable_format, tvb, *offsetp, 4, byte_order);
8756  *offsetp += 4;
8757  proto_tree_add_item(t, hf_x11_glx_GetColorTable_type, tvb, *offsetp, 4, byte_order);
8758  *offsetp += 4;
8759  proto_tree_add_item(t, hf_x11_glx_GetColorTable_swap_bytes, tvb, *offsetp, 1, byte_order);
8760  *offsetp += 1;
8761 }
8762 static void glxGetColorTable_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
8763 {
8764  int sequence_number;
8765  int f_length;
8766 
8767  col_append_fstr(pinfo->cinfo, COL_INFO, "-GetColorTable");
8768 
8769  REPLY(reply);
8770  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
8771  *offsetp += 1;
8772  sequence_number = tvb_get_guint16(tvb, *offsetp, byte_order);
8773  proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
8774  "%d (glx-GetColorTable)", sequence_number);
8775  *offsetp += 2;
8776  f_length = tvb_get_guint32(tvb, *offsetp, byte_order);
8777  proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
8778  *offsetp += 4;
8779  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 8, ENC_NA);
8780  *offsetp += 8;
8781  proto_tree_add_item(t, hf_x11_glx_GetColorTable_reply_width, tvb, *offsetp, 4, byte_order);
8782  *offsetp += 4;
8783  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 12, ENC_NA);
8784  *offsetp += 12;
8785  listOfByte(tvb, offsetp, t, hf_x11_glx_GetColorTable_reply_data, (f_length * 4), byte_order);
8786 }
8787 
8788 static void glxGetColorTableParameterfv(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
8789 {
8790  proto_tree_add_item(t, hf_x11_glx_GetColorTableParameterfv_context_tag, tvb, *offsetp, 4, byte_order);
8791  *offsetp += 4;
8792  proto_tree_add_item(t, hf_x11_glx_GetColorTableParameterfv_target, tvb, *offsetp, 4, byte_order);
8793  *offsetp += 4;
8794  proto_tree_add_item(t, hf_x11_glx_GetColorTableParameterfv_pname, tvb, *offsetp, 4, byte_order);
8795  *offsetp += 4;
8796 }
8797 static void glxGetColorTableParameterfv_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
8798 {
8799  int sequence_number;
8800  int f_n;
8801 
8802  col_append_fstr(pinfo->cinfo, COL_INFO, "-GetColorTableParameterfv");
8803 
8804  REPLY(reply);
8805  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
8806  *offsetp += 1;
8807  sequence_number = tvb_get_guint16(tvb, *offsetp, byte_order);
8808  proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
8809  "%d (glx-GetColorTableParameterfv)", sequence_number);
8810  *offsetp += 2;
8811  proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
8812  *offsetp += 4;
8813  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 4, ENC_NA);
8814  *offsetp += 4;
8815  f_n = tvb_get_guint32(tvb, *offsetp, byte_order);
8816  proto_tree_add_item(t, hf_x11_glx_GetColorTableParameterfv_reply_n, tvb, *offsetp, 4, byte_order);
8817  *offsetp += 4;
8818  proto_tree_add_item(t, hf_x11_glx_GetColorTableParameterfv_reply_datum, tvb, *offsetp, 4, byte_order);
8819  *offsetp += 4;
8820  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 12, ENC_NA);
8821  *offsetp += 12;
8822  listOfFloat(tvb, offsetp, t, hf_x11_glx_GetColorTableParameterfv_reply_data, hf_x11_glx_GetColorTableParameterfv_reply_data_item, f_n, byte_order);
8823 }
8824 
8825 static void glxGetColorTableParameteriv(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
8826 {
8827  proto_tree_add_item(t, hf_x11_glx_GetColorTableParameteriv_context_tag, tvb, *offsetp, 4, byte_order);
8828  *offsetp += 4;
8829  proto_tree_add_item(t, hf_x11_glx_GetColorTableParameteriv_target, tvb, *offsetp, 4, byte_order);
8830  *offsetp += 4;
8831  proto_tree_add_item(t, hf_x11_glx_GetColorTableParameteriv_pname, tvb, *offsetp, 4, byte_order);
8832  *offsetp += 4;
8833 }
8834 static void glxGetColorTableParameteriv_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
8835 {
8836  int sequence_number;
8837  int f_n;
8838 
8839  col_append_fstr(pinfo->cinfo, COL_INFO, "-GetColorTableParameteriv");
8840 
8841  REPLY(reply);
8842  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
8843  *offsetp += 1;
8844  sequence_number = tvb_get_guint16(tvb, *offsetp, byte_order);
8845  proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
8846  "%d (glx-GetColorTableParameteriv)", sequence_number);
8847  *offsetp += 2;
8848  proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
8849  *offsetp += 4;
8850  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 4, ENC_NA);
8851  *offsetp += 4;
8852  f_n = tvb_get_guint32(tvb, *offsetp, byte_order);
8853  proto_tree_add_item(t, hf_x11_glx_GetColorTableParameteriv_reply_n, tvb, *offsetp, 4, byte_order);
8854  *offsetp += 4;
8855  proto_tree_add_item(t, hf_x11_glx_GetColorTableParameteriv_reply_datum, tvb, *offsetp, 4, byte_order);
8856  *offsetp += 4;
8857  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 12, ENC_NA);
8858  *offsetp += 12;
8859  listOfInt32(tvb, offsetp, t, hf_x11_glx_GetColorTableParameteriv_reply_data, hf_x11_glx_GetColorTableParameteriv_reply_data_item, f_n, byte_order);
8860 }
8861 
8862 static void glxGetConvolutionFilter(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
8863 {
8864  proto_tree_add_item(t, hf_x11_glx_GetConvolutionFilter_context_tag, tvb, *offsetp, 4, byte_order);
8865  *offsetp += 4;
8866  proto_tree_add_item(t, hf_x11_glx_GetConvolutionFilter_target, tvb, *offsetp, 4, byte_order);
8867  *offsetp += 4;
8868  proto_tree_add_item(t, hf_x11_glx_GetConvolutionFilter_format, tvb, *offsetp, 4, byte_order);
8869  *offsetp += 4;
8870  proto_tree_add_item(t, hf_x11_glx_GetConvolutionFilter_type, tvb, *offsetp, 4, byte_order);
8871  *offsetp += 4;
8872  proto_tree_add_item(t, hf_x11_glx_GetConvolutionFilter_swap_bytes, tvb, *offsetp, 1, byte_order);
8873  *offsetp += 1;
8874 }
8875 static void glxGetConvolutionFilter_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
8876 {
8877  int sequence_number;
8878  int f_length;
8879 
8880  col_append_fstr(pinfo->cinfo, COL_INFO, "-GetConvolutionFilter");
8881 
8882  REPLY(reply);
8883  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
8884  *offsetp += 1;
8885  sequence_number = tvb_get_guint16(tvb, *offsetp, byte_order);
8886  proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
8887  "%d (glx-GetConvolutionFilter)", sequence_number);
8888  *offsetp += 2;
8889  f_length = tvb_get_guint32(tvb, *offsetp, byte_order);
8890  proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
8891  *offsetp += 4;
8892  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 8, ENC_NA);
8893  *offsetp += 8;
8894  proto_tree_add_item(t, hf_x11_glx_GetConvolutionFilter_reply_width, tvb, *offsetp, 4, byte_order);
8895  *offsetp += 4;
8896  proto_tree_add_item(t, hf_x11_glx_GetConvolutionFilter_reply_height, tvb, *offsetp, 4, byte_order);
8897  *offsetp += 4;
8898  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 8, ENC_NA);
8899  *offsetp += 8;
8900  listOfByte(tvb, offsetp, t, hf_x11_glx_GetConvolutionFilter_reply_data, (f_length * 4), byte_order);
8901 }
8902 
8903 static void glxGetConvolutionParameterfv(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
8904 {
8905  proto_tree_add_item(t, hf_x11_glx_GetConvolutionParameterfv_context_tag, tvb, *offsetp, 4, byte_order);
8906  *offsetp += 4;
8907  proto_tree_add_item(t, hf_x11_glx_GetConvolutionParameterfv_target, tvb, *offsetp, 4, byte_order);
8908  *offsetp += 4;
8909  proto_tree_add_item(t, hf_x11_glx_GetConvolutionParameterfv_pname, tvb, *offsetp, 4, byte_order);
8910  *offsetp += 4;
8911 }
8912 static void glxGetConvolutionParameterfv_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
8913 {
8914  int sequence_number;
8915  int f_n;
8916 
8917  col_append_fstr(pinfo->cinfo, COL_INFO, "-GetConvolutionParameterfv");
8918 
8919  REPLY(reply);
8920  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
8921  *offsetp += 1;
8922  sequence_number = tvb_get_guint16(tvb, *offsetp, byte_order);
8923  proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
8924  "%d (glx-GetConvolutionParameterfv)", sequence_number);
8925  *offsetp += 2;
8926  proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
8927  *offsetp += 4;
8928  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 4, ENC_NA);
8929  *offsetp += 4;
8930  f_n = tvb_get_guint32(tvb, *offsetp, byte_order);
8931  proto_tree_add_item(t, hf_x11_glx_GetConvolutionParameterfv_reply_n, tvb, *offsetp, 4, byte_order);
8932  *offsetp += 4;
8933  proto_tree_add_item(t, hf_x11_glx_GetConvolutionParameterfv_reply_datum, tvb, *offsetp, 4, byte_order);
8934  *offsetp += 4;
8935  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 12, ENC_NA);
8936  *offsetp += 12;
8937  listOfFloat(tvb, offsetp, t, hf_x11_glx_GetConvolutionParameterfv_reply_data, hf_x11_glx_GetConvolutionParameterfv_reply_data_item, f_n, byte_order);
8938 }
8939 
8940 static void glxGetConvolutionParameteriv(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
8941 {
8942  proto_tree_add_item(t, hf_x11_glx_GetConvolutionParameteriv_context_tag, tvb, *offsetp, 4, byte_order);
8943  *offsetp += 4;
8944  proto_tree_add_item(t, hf_x11_glx_GetConvolutionParameteriv_target, tvb, *offsetp, 4, byte_order);
8945  *offsetp += 4;
8946  proto_tree_add_item(t, hf_x11_glx_GetConvolutionParameteriv_pname, tvb, *offsetp, 4, byte_order);
8947  *offsetp += 4;
8948 }
8949 static void glxGetConvolutionParameteriv_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
8950 {
8951  int sequence_number;
8952  int f_n;
8953 
8954  col_append_fstr(pinfo->cinfo, COL_INFO, "-GetConvolutionParameteriv");
8955 
8956  REPLY(reply);
8957  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
8958  *offsetp += 1;
8959  sequence_number = tvb_get_guint16(tvb, *offsetp, byte_order);
8960  proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
8961  "%d (glx-GetConvolutionParameteriv)", sequence_number);
8962  *offsetp += 2;
8963  proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
8964  *offsetp += 4;
8965  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 4, ENC_NA);
8966  *offsetp += 4;
8967  f_n = tvb_get_guint32(tvb, *offsetp, byte_order);
8968  proto_tree_add_item(t, hf_x11_glx_GetConvolutionParameteriv_reply_n, tvb, *offsetp, 4, byte_order);
8969  *offsetp += 4;
8970  proto_tree_add_item(t, hf_x11_glx_GetConvolutionParameteriv_reply_datum, tvb, *offsetp, 4, byte_order);
8971  *offsetp += 4;
8972  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 12, ENC_NA);
8973  *offsetp += 12;
8974  listOfInt32(tvb, offsetp, t, hf_x11_glx_GetConvolutionParameteriv_reply_data, hf_x11_glx_GetConvolutionParameteriv_reply_data_item, f_n, byte_order);
8975 }
8976 
8977 static void glxGetSeparableFilter(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
8978 {
8979  proto_tree_add_item(t, hf_x11_glx_GetSeparableFilter_context_tag, tvb, *offsetp, 4, byte_order);
8980  *offsetp += 4;
8981  proto_tree_add_item(t, hf_x11_glx_GetSeparableFilter_target, tvb, *offsetp, 4, byte_order);
8982  *offsetp += 4;
8983  proto_tree_add_item(t, hf_x11_glx_GetSeparableFilter_format, tvb, *offsetp, 4, byte_order);
8984  *offsetp += 4;
8985  proto_tree_add_item(t, hf_x11_glx_GetSeparableFilter_type, tvb, *offsetp, 4, byte_order);
8986  *offsetp += 4;
8987  proto_tree_add_item(t, hf_x11_glx_GetSeparableFilter_swap_bytes, tvb, *offsetp, 1, byte_order);
8988  *offsetp += 1;
8989 }
8990 static void glxGetSeparableFilter_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
8991 {
8992  int sequence_number;
8993  int f_length;
8994 
8995  col_append_fstr(pinfo->cinfo, COL_INFO, "-GetSeparableFilter");
8996 
8997  REPLY(reply);
8998  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
8999  *offsetp += 1;
9000  sequence_number = tvb_get_guint16(tvb, *offsetp, byte_order);
9001  proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
9002  "%d (glx-GetSeparableFilter)", sequence_number);
9003  *offsetp += 2;
9004  f_length = tvb_get_guint32(tvb, *offsetp, byte_order);
9005  proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
9006  *offsetp += 4;
9007  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 8, ENC_NA);
9008  *offsetp += 8;
9009  proto_tree_add_item(t, hf_x11_glx_GetSeparableFilter_reply_row_w, tvb, *offsetp, 4, byte_order);
9010  *offsetp += 4;
9011  proto_tree_add_item(t, hf_x11_glx_GetSeparableFilter_reply_col_h, tvb, *offsetp, 4, byte_order);
9012  *offsetp += 4;
9013  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 8, ENC_NA);
9014  *offsetp += 8;
9015  listOfByte(tvb, offsetp, t, hf_x11_glx_GetSeparableFilter_reply_rows_and_cols, (f_length * 4), byte_order);
9016 }
9017 
9018 static void glxGetHistogram(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
9019 {
9020  proto_tree_add_item(t, hf_x11_glx_GetHistogram_context_tag, tvb, *offsetp, 4, byte_order);
9021  *offsetp += 4;
9022  proto_tree_add_item(t, hf_x11_glx_GetHistogram_target, tvb, *offsetp, 4, byte_order);
9023  *offsetp += 4;
9024  proto_tree_add_item(t, hf_x11_glx_GetHistogram_format, tvb, *offsetp, 4, byte_order);
9025  *offsetp += 4;
9026  proto_tree_add_item(t, hf_x11_glx_GetHistogram_type, tvb, *offsetp, 4, byte_order);
9027  *offsetp += 4;
9028  proto_tree_add_item(t, hf_x11_glx_GetHistogram_swap_bytes, tvb, *offsetp, 1, byte_order);
9029  *offsetp += 1;
9030  proto_tree_add_item(t, hf_x11_glx_GetHistogram_reset, tvb, *offsetp, 1, byte_order);
9031  *offsetp += 1;
9032 }
9033 static void glxGetHistogram_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
9034 {
9035  int sequence_number;
9036  int f_length;
9037 
9038  col_append_fstr(pinfo->cinfo, COL_INFO, "-GetHistogram");
9039 
9040  REPLY(reply);
9041  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
9042  *offsetp += 1;
9043  sequence_number = tvb_get_guint16(tvb, *offsetp, byte_order);
9044  proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
9045  "%d (glx-GetHistogram)", sequence_number);
9046  *offsetp += 2;
9047  f_length = tvb_get_guint32(tvb, *offsetp, byte_order);
9048  proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
9049  *offsetp += 4;
9050  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 8, ENC_NA);
9051  *offsetp += 8;
9052  proto_tree_add_item(t, hf_x11_glx_GetHistogram_reply_width, tvb, *offsetp, 4, byte_order);
9053  *offsetp += 4;
9054  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 12, ENC_NA);
9055  *offsetp += 12;
9056  listOfByte(tvb, offsetp, t, hf_x11_glx_GetHistogram_reply_data, (f_length * 4), byte_order);
9057 }
9058 
9059 static void glxGetHistogramParameterfv(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
9060 {
9061  proto_tree_add_item(t, hf_x11_glx_GetHistogramParameterfv_context_tag, tvb, *offsetp, 4, byte_order);
9062  *offsetp += 4;
9063  proto_tree_add_item(t, hf_x11_glx_GetHistogramParameterfv_target, tvb, *offsetp, 4, byte_order);
9064  *offsetp += 4;
9065  proto_tree_add_item(t, hf_x11_glx_GetHistogramParameterfv_pname, tvb, *offsetp, 4, byte_order);
9066  *offsetp += 4;
9067 }
9068 static void glxGetHistogramParameterfv_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
9069 {
9070  int sequence_number;
9071  int f_n;
9072 
9073  col_append_fstr(pinfo->cinfo, COL_INFO, "-GetHistogramParameterfv");
9074 
9075  REPLY(reply);
9076  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
9077  *offsetp += 1;
9078  sequence_number = tvb_get_guint16(tvb, *offsetp, byte_order);
9079  proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
9080  "%d (glx-GetHistogramParameterfv)", sequence_number);
9081  *offsetp += 2;
9082  proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
9083  *offsetp += 4;
9084  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 4, ENC_NA);
9085  *offsetp += 4;
9086  f_n = tvb_get_guint32(tvb, *offsetp, byte_order);
9087  proto_tree_add_item(t, hf_x11_glx_GetHistogramParameterfv_reply_n, tvb, *offsetp, 4, byte_order);
9088  *offsetp += 4;
9089  proto_tree_add_item(t, hf_x11_glx_GetHistogramParameterfv_reply_datum, tvb, *offsetp, 4, byte_order);
9090  *offsetp += 4;
9091  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 12, ENC_NA);
9092  *offsetp += 12;
9093  listOfFloat(tvb, offsetp, t, hf_x11_glx_GetHistogramParameterfv_reply_data, hf_x11_glx_GetHistogramParameterfv_reply_data_item, f_n, byte_order);
9094 }
9095 
9096 static void glxGetHistogramParameteriv(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
9097 {
9098  proto_tree_add_item(t, hf_x11_glx_GetHistogramParameteriv_context_tag, tvb, *offsetp, 4, byte_order);
9099  *offsetp += 4;
9100  proto_tree_add_item(t, hf_x11_glx_GetHistogramParameteriv_target, tvb, *offsetp, 4, byte_order);
9101  *offsetp += 4;
9102  proto_tree_add_item(t, hf_x11_glx_GetHistogramParameteriv_pname, tvb, *offsetp, 4, byte_order);
9103  *offsetp += 4;
9104 }
9105 static void glxGetHistogramParameteriv_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
9106 {
9107  int sequence_number;
9108  int f_n;
9109 
9110  col_append_fstr(pinfo->cinfo, COL_INFO, "-GetHistogramParameteriv");
9111 
9112  REPLY(reply);
9113  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
9114  *offsetp += 1;
9115  sequence_number = tvb_get_guint16(tvb, *offsetp, byte_order);
9116  proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
9117  "%d (glx-GetHistogramParameteriv)", sequence_number);
9118  *offsetp += 2;
9119  proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
9120  *offsetp += 4;
9121  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 4, ENC_NA);
9122  *offsetp += 4;
9123  f_n = tvb_get_guint32(tvb, *offsetp, byte_order);
9124  proto_tree_add_item(t, hf_x11_glx_GetHistogramParameteriv_reply_n, tvb, *offsetp, 4, byte_order);
9125  *offsetp += 4;
9126  proto_tree_add_item(t, hf_x11_glx_GetHistogramParameteriv_reply_datum, tvb, *offsetp, 4, byte_order);
9127  *offsetp += 4;
9128  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 12, ENC_NA);
9129  *offsetp += 12;
9130  listOfInt32(tvb, offsetp, t, hf_x11_glx_GetHistogramParameteriv_reply_data, hf_x11_glx_GetHistogramParameteriv_reply_data_item, f_n, byte_order);
9131 }
9132 
9133 static void glxGetMinmax(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
9134 {
9135  proto_tree_add_item(t, hf_x11_glx_GetMinmax_context_tag, tvb, *offsetp, 4, byte_order);
9136  *offsetp += 4;
9137  proto_tree_add_item(t, hf_x11_glx_GetMinmax_target, tvb, *offsetp, 4, byte_order);
9138  *offsetp += 4;
9139  proto_tree_add_item(t, hf_x11_glx_GetMinmax_format, tvb, *offsetp, 4, byte_order);
9140  *offsetp += 4;
9141  proto_tree_add_item(t, hf_x11_glx_GetMinmax_type, tvb, *offsetp, 4, byte_order);
9142  *offsetp += 4;
9143  proto_tree_add_item(t, hf_x11_glx_GetMinmax_swap_bytes, tvb, *offsetp, 1, byte_order);
9144  *offsetp += 1;
9145  proto_tree_add_item(t, hf_x11_glx_GetMinmax_reset, tvb, *offsetp, 1, byte_order);
9146  *offsetp += 1;
9147 }
9148 static void glxGetMinmax_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
9149 {
9150  int sequence_number;
9151  int f_length;
9152 
9153  col_append_fstr(pinfo->cinfo, COL_INFO, "-GetMinmax");
9154 
9155  REPLY(reply);
9156  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
9157  *offsetp += 1;
9158  sequence_number = tvb_get_guint16(tvb, *offsetp, byte_order);
9159  proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
9160  "%d (glx-GetMinmax)", sequence_number);
9161  *offsetp += 2;
9162  f_length = tvb_get_guint32(tvb, *offsetp, byte_order);
9163  proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
9164  *offsetp += 4;
9165  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 24, ENC_NA);
9166  *offsetp += 24;
9167  listOfByte(tvb, offsetp, t, hf_x11_glx_GetMinmax_reply_data, (f_length * 4), byte_order);
9168 }
9169 
9170 static void glxGetMinmaxParameterfv(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
9171 {
9172  proto_tree_add_item(t, hf_x11_glx_GetMinmaxParameterfv_context_tag, tvb, *offsetp, 4, byte_order);
9173  *offsetp += 4;
9174  proto_tree_add_item(t, hf_x11_glx_GetMinmaxParameterfv_target, tvb, *offsetp, 4, byte_order);
9175  *offsetp += 4;
9176  proto_tree_add_item(t, hf_x11_glx_GetMinmaxParameterfv_pname, tvb, *offsetp, 4, byte_order);
9177  *offsetp += 4;
9178 }
9179 static void glxGetMinmaxParameterfv_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
9180 {
9181  int sequence_number;
9182  int f_n;
9183 
9184  col_append_fstr(pinfo->cinfo, COL_INFO, "-GetMinmaxParameterfv");
9185 
9186  REPLY(reply);
9187  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
9188  *offsetp += 1;
9189  sequence_number = tvb_get_guint16(tvb, *offsetp, byte_order);
9190  proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
9191  "%d (glx-GetMinmaxParameterfv)", sequence_number);
9192  *offsetp += 2;
9193  proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
9194  *offsetp += 4;
9195  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 4, ENC_NA);
9196  *offsetp += 4;
9197  f_n = tvb_get_guint32(tvb, *offsetp, byte_order);
9198  proto_tree_add_item(t, hf_x11_glx_GetMinmaxParameterfv_reply_n, tvb, *offsetp, 4, byte_order);
9199  *offsetp += 4;
9200  proto_tree_add_item(t, hf_x11_glx_GetMinmaxParameterfv_reply_datum, tvb, *offsetp, 4, byte_order);
9201  *offsetp += 4;
9202  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 12, ENC_NA);
9203  *offsetp += 12;
9204  listOfFloat(tvb, offsetp, t, hf_x11_glx_GetMinmaxParameterfv_reply_data, hf_x11_glx_GetMinmaxParameterfv_reply_data_item, f_n, byte_order);
9205 }
9206 
9207 static void glxGetMinmaxParameteriv(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
9208 {
9209  proto_tree_add_item(t, hf_x11_glx_GetMinmaxParameteriv_context_tag, tvb, *offsetp, 4, byte_order);
9210  *offsetp += 4;
9211  proto_tree_add_item(t, hf_x11_glx_GetMinmaxParameteriv_target, tvb, *offsetp, 4, byte_order);
9212  *offsetp += 4;
9213  proto_tree_add_item(t, hf_x11_glx_GetMinmaxParameteriv_pname, tvb, *offsetp, 4, byte_order);
9214  *offsetp += 4;
9215 }
9216 static void glxGetMinmaxParameteriv_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
9217 {
9218  int sequence_number;
9219  int f_n;
9220 
9221  col_append_fstr(pinfo->cinfo, COL_INFO, "-GetMinmaxParameteriv");
9222 
9223  REPLY(reply);
9224  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
9225  *offsetp += 1;
9226  sequence_number = tvb_get_guint16(tvb, *offsetp, byte_order);
9227  proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
9228  "%d (glx-GetMinmaxParameteriv)", sequence_number);
9229  *offsetp += 2;
9230  proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
9231  *offsetp += 4;
9232  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 4, ENC_NA);
9233  *offsetp += 4;
9234  f_n = tvb_get_guint32(tvb, *offsetp, byte_order);
9235  proto_tree_add_item(t, hf_x11_glx_GetMinmaxParameteriv_reply_n, tvb, *offsetp, 4, byte_order);
9236  *offsetp += 4;
9237  proto_tree_add_item(t, hf_x11_glx_GetMinmaxParameteriv_reply_datum, tvb, *offsetp, 4, byte_order);
9238  *offsetp += 4;
9239  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 12, ENC_NA);
9240  *offsetp += 12;
9241  listOfInt32(tvb, offsetp, t, hf_x11_glx_GetMinmaxParameteriv_reply_data, hf_x11_glx_GetMinmaxParameteriv_reply_data_item, f_n, byte_order);
9242 }
9243 
9244 static void glxGetCompressedTexImageARB(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
9245 {
9246  proto_tree_add_item(t, hf_x11_glx_GetCompressedTexImageARB_context_tag, tvb, *offsetp, 4, byte_order);
9247  *offsetp += 4;
9248  proto_tree_add_item(t, hf_x11_glx_GetCompressedTexImageARB_target, tvb, *offsetp, 4, byte_order);
9249  *offsetp += 4;
9250  proto_tree_add_item(t, hf_x11_glx_GetCompressedTexImageARB_level, tvb, *offsetp, 4, byte_order);
9251  *offsetp += 4;
9252 }
9253 static void glxGetCompressedTexImageARB_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
9254 {
9255  int sequence_number;
9256  int f_length;
9257 
9258  col_append_fstr(pinfo->cinfo, COL_INFO, "-GetCompressedTexImageARB");
9259 
9260  REPLY(reply);
9261  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
9262  *offsetp += 1;
9263  sequence_number = tvb_get_guint16(tvb, *offsetp, byte_order);
9264  proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
9265  "%d (glx-GetCompressedTexImageARB)", sequence_number);
9266  *offsetp += 2;
9267  f_length = tvb_get_guint32(tvb, *offsetp, byte_order);
9268  proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
9269  *offsetp += 4;
9270  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 8, ENC_NA);
9271  *offsetp += 8;
9272  proto_tree_add_item(t, hf_x11_glx_GetCompressedTexImageARB_reply_size, tvb, *offsetp, 4, byte_order);
9273  *offsetp += 4;
9274  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 12, ENC_NA);
9275  *offsetp += 12;
9276  listOfByte(tvb, offsetp, t, hf_x11_glx_GetCompressedTexImageARB_reply_data, (f_length * 4), byte_order);
9277 }
9278 
9279 static void glxDeleteQueriesARB(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
9280 {
9281  int f_n;
9282  proto_tree_add_item(t, hf_x11_glx_DeleteQueriesARB_context_tag, tvb, *offsetp, 4, byte_order);
9283  *offsetp += 4;
9284  f_n = tvb_get_guint32(tvb, *offsetp, byte_order);
9285  proto_tree_add_item(t, hf_x11_glx_DeleteQueriesARB_n, tvb, *offsetp, 4, byte_order);
9286  *offsetp += 4;
9287  listOfCard32(tvb, offsetp, t, hf_x11_glx_DeleteQueriesARB_ids, hf_x11_glx_DeleteQueriesARB_ids_item, f_n, byte_order);
9288  length -= f_n * 4;
9289 }
9290 
9291 static void glxGenQueriesARB(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
9292 {
9293  proto_tree_add_item(t, hf_x11_glx_GenQueriesARB_context_tag, tvb, *offsetp, 4, byte_order);
9294  *offsetp += 4;
9295  proto_tree_add_item(t, hf_x11_glx_GenQueriesARB_n, tvb, *offsetp, 4, byte_order);
9296  *offsetp += 4;
9297 }
9298 static void glxGenQueriesARB_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
9299 {
9300  int sequence_number;
9301  int f_length;
9302 
9303  col_append_fstr(pinfo->cinfo, COL_INFO, "-GenQueriesARB");
9304 
9305  REPLY(reply);
9306  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
9307  *offsetp += 1;
9308  sequence_number = tvb_get_guint16(tvb, *offsetp, byte_order);
9309  proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
9310  "%d (glx-GenQueriesARB)", sequence_number);
9311  *offsetp += 2;
9312  f_length = tvb_get_guint32(tvb, *offsetp, byte_order);
9313  proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
9314  *offsetp += 4;
9315  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 24, ENC_NA);
9316  *offsetp += 24;
9317  listOfCard32(tvb, offsetp, t, hf_x11_glx_GenQueriesARB_reply_data, hf_x11_glx_GenQueriesARB_reply_data_item, f_length, byte_order);
9318 }
9319 
9320 static void glxIsQueryARB(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
9321 {
9322  proto_tree_add_item(t, hf_x11_glx_IsQueryARB_context_tag, tvb, *offsetp, 4, byte_order);
9323  *offsetp += 4;
9324  proto_tree_add_item(t, hf_x11_glx_IsQueryARB_id, tvb, *offsetp, 4, byte_order);
9325  *offsetp += 4;
9326 }
9327 static void glxIsQueryARB_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
9328 {
9329  int sequence_number;
9330 
9331  col_append_fstr(pinfo->cinfo, COL_INFO, "-IsQueryARB");
9332 
9333  REPLY(reply);
9334  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
9335  *offsetp += 1;
9336  sequence_number = tvb_get_guint16(tvb, *offsetp, byte_order);
9337  proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
9338  "%d (glx-IsQueryARB)", sequence_number);
9339  *offsetp += 2;
9340  proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
9341  *offsetp += 4;
9342  proto_tree_add_item(t, hf_x11_glx_IsQueryARB_reply_ret_val, tvb, *offsetp, 4, byte_order);
9343  *offsetp += 4;
9344 }
9345 
9346 static void glxGetQueryivARB(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
9347 {
9348  proto_tree_add_item(t, hf_x11_glx_GetQueryivARB_context_tag, tvb, *offsetp, 4, byte_order);
9349  *offsetp += 4;
9350  proto_tree_add_item(t, hf_x11_glx_GetQueryivARB_target, tvb, *offsetp, 4, byte_order);
9351  *offsetp += 4;
9352  proto_tree_add_item(t, hf_x11_glx_GetQueryivARB_pname, tvb, *offsetp, 4, byte_order);
9353  *offsetp += 4;
9354 }
9355 static void glxGetQueryivARB_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
9356 {
9357  int sequence_number;
9358  int f_n;
9359 
9360  col_append_fstr(pinfo->cinfo, COL_INFO, "-GetQueryivARB");
9361 
9362  REPLY(reply);
9363  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
9364  *offsetp += 1;
9365  sequence_number = tvb_get_guint16(tvb, *offsetp, byte_order);
9366  proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
9367  "%d (glx-GetQueryivARB)", sequence_number);
9368  *offsetp += 2;
9369  proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
9370  *offsetp += 4;
9371  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 4, ENC_NA);
9372  *offsetp += 4;
9373  f_n = tvb_get_guint32(tvb, *offsetp, byte_order);
9374  proto_tree_add_item(t, hf_x11_glx_GetQueryivARB_reply_n, tvb, *offsetp, 4, byte_order);
9375  *offsetp += 4;
9376  proto_tree_add_item(t, hf_x11_glx_GetQueryivARB_reply_datum, tvb, *offsetp, 4, byte_order);
9377  *offsetp += 4;
9378  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 12, ENC_NA);
9379  *offsetp += 12;
9380  listOfInt32(tvb, offsetp, t, hf_x11_glx_GetQueryivARB_reply_data, hf_x11_glx_GetQueryivARB_reply_data_item, f_n, byte_order);
9381 }
9382 
9383 static void glxGetQueryObjectivARB(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
9384 {
9385  proto_tree_add_item(t, hf_x11_glx_GetQueryObjectivARB_context_tag, tvb, *offsetp, 4, byte_order);
9386  *offsetp += 4;
9387  proto_tree_add_item(t, hf_x11_glx_GetQueryObjectivARB_id, tvb, *offsetp, 4, byte_order);
9388  *offsetp += 4;
9389  proto_tree_add_item(t, hf_x11_glx_GetQueryObjectivARB_pname, tvb, *offsetp, 4, byte_order);
9390  *offsetp += 4;
9391 }
9392 static void glxGetQueryObjectivARB_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
9393 {
9394  int sequence_number;
9395  int f_n;
9396 
9397  col_append_fstr(pinfo->cinfo, COL_INFO, "-GetQueryObjectivARB");
9398 
9399  REPLY(reply);
9400  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
9401  *offsetp += 1;
9402  sequence_number = tvb_get_guint16(tvb, *offsetp, byte_order);
9403  proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
9404  "%d (glx-GetQueryObjectivARB)", sequence_number);
9405  *offsetp += 2;
9406  proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
9407  *offsetp += 4;
9408  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 4, ENC_NA);
9409  *offsetp += 4;
9410  f_n = tvb_get_guint32(tvb, *offsetp, byte_order);
9411  proto_tree_add_item(t, hf_x11_glx_GetQueryObjectivARB_reply_n, tvb, *offsetp, 4, byte_order);
9412  *offsetp += 4;
9413  proto_tree_add_item(t, hf_x11_glx_GetQueryObjectivARB_reply_datum, tvb, *offsetp, 4, byte_order);
9414  *offsetp += 4;
9415  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 12, ENC_NA);
9416  *offsetp += 12;
9417  listOfInt32(tvb, offsetp, t, hf_x11_glx_GetQueryObjectivARB_reply_data, hf_x11_glx_GetQueryObjectivARB_reply_data_item, f_n, byte_order);
9418 }
9419 
9420 static void glxGetQueryObjectuivARB(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
9421 {
9422  proto_tree_add_item(t, hf_x11_glx_GetQueryObjectuivARB_context_tag, tvb, *offsetp, 4, byte_order);
9423  *offsetp += 4;
9424  proto_tree_add_item(t, hf_x11_glx_GetQueryObjectuivARB_id, tvb, *offsetp, 4, byte_order);
9425  *offsetp += 4;
9426  proto_tree_add_item(t, hf_x11_glx_GetQueryObjectuivARB_pname, tvb, *offsetp, 4, byte_order);
9427  *offsetp += 4;
9428 }
9429 static void glxGetQueryObjectuivARB_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
9430 {
9431  int sequence_number;
9432  int f_n;
9433 
9434  col_append_fstr(pinfo->cinfo, COL_INFO, "-GetQueryObjectuivARB");
9435 
9436  REPLY(reply);
9437  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
9438  *offsetp += 1;
9439  sequence_number = tvb_get_guint16(tvb, *offsetp, byte_order);
9440  proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
9441  "%d (glx-GetQueryObjectuivARB)", sequence_number);
9442  *offsetp += 2;
9443  proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
9444  *offsetp += 4;
9445  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 4, ENC_NA);
9446  *offsetp += 4;
9447  f_n = tvb_get_guint32(tvb, *offsetp, byte_order);
9448  proto_tree_add_item(t, hf_x11_glx_GetQueryObjectuivARB_reply_n, tvb, *offsetp, 4, byte_order);
9449  *offsetp += 4;
9450  proto_tree_add_item(t, hf_x11_glx_GetQueryObjectuivARB_reply_datum, tvb, *offsetp, 4, byte_order);
9451  *offsetp += 4;
9452  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 12, ENC_NA);
9453  *offsetp += 12;
9454  listOfCard32(tvb, offsetp, t, hf_x11_glx_GetQueryObjectuivARB_reply_data, hf_x11_glx_GetQueryObjectuivARB_reply_data_item, f_n, byte_order);
9455 }
9456 static const value_string glx_extension_minor[] = {
9457  { 1, "Render" },
9458  { 2, "RenderLarge" },
9459  { 3, "CreateContext" },
9460  { 4, "DestroyContext" },
9461  { 5, "MakeCurrent" },
9462  { 6, "IsDirect" },
9463  { 7, "QueryVersion" },
9464  { 8, "WaitGL" },
9465  { 9, "WaitX" },
9466  { 10, "CopyContext" },
9467  { 11, "SwapBuffers" },
9468  { 12, "UseXFont" },
9469  { 13, "CreateGLXPixmap" },
9470  { 14, "GetVisualConfigs" },
9471  { 15, "DestroyGLXPixmap" },
9472  { 16, "VendorPrivate" },
9473  { 17, "VendorPrivateWithReply" },
9474  { 18, "QueryExtensionsString" },
9475  { 19, "QueryServerString" },
9476  { 20, "ClientInfo" },
9477  { 21, "GetFBConfigs" },
9478  { 22, "CreatePixmap" },
9479  { 23, "DestroyPixmap" },
9480  { 24, "CreateNewContext" },
9481  { 25, "QueryContext" },
9482  { 26, "MakeContextCurrent" },
9483  { 27, "CreatePbuffer" },
9484  { 28, "DestroyPbuffer" },
9485  { 29, "GetDrawableAttributes" },
9486  { 30, "ChangeDrawableAttributes" },
9487  { 31, "CreateWindow" },
9488  { 32, "DeleteWindow" },
9489  { 33, "SetClientInfoARB" },
9490  { 34, "CreateContextAttribsARB" },
9491  { 35, "SetClientInfo2ARB" },
9492  { 101, "NewList" },
9493  { 102, "EndList" },
9494  { 103, "DeleteLists" },
9495  { 104, "GenLists" },
9496  { 105, "FeedbackBuffer" },
9497  { 106, "SelectBuffer" },
9498  { 107, "RenderMode" },
9499  { 108, "Finish" },
9500  { 109, "PixelStoref" },
9501  { 110, "PixelStorei" },
9502  { 111, "ReadPixels" },
9503  { 112, "GetBooleanv" },
9504  { 113, "GetClipPlane" },
9505  { 114, "GetDoublev" },
9506  { 115, "GetError" },
9507  { 116, "GetFloatv" },
9508  { 117, "GetIntegerv" },
9509  { 118, "GetLightfv" },
9510  { 119, "GetLightiv" },
9511  { 120, "GetMapdv" },
9512  { 121, "GetMapfv" },
9513  { 122, "GetMapiv" },
9514  { 123, "GetMaterialfv" },
9515  { 124, "GetMaterialiv" },
9516  { 125, "GetPixelMapfv" },
9517  { 126, "GetPixelMapuiv" },
9518  { 127, "GetPixelMapusv" },
9519  { 128, "GetPolygonStipple" },
9520  { 129, "GetString" },
9521  { 130, "GetTexEnvfv" },
9522  { 131, "GetTexEnviv" },
9523  { 132, "GetTexGendv" },
9524  { 133, "GetTexGenfv" },
9525  { 134, "GetTexGeniv" },
9526  { 135, "GetTexImage" },
9527  { 136, "GetTexParameterfv" },
9528  { 137, "GetTexParameteriv" },
9529  { 138, "GetTexLevelParameterfv" },
9530  { 139, "GetTexLevelParameteriv" },
9531  { 140, "IsEnabled" },
9532  { 141, "IsList" },
9533  { 142, "Flush" },
9534  { 143, "AreTexturesResident" },
9535  { 144, "DeleteTextures" },
9536  { 145, "GenTextures" },
9537  { 146, "IsTexture" },
9538  { 147, "GetColorTable" },
9539  { 148, "GetColorTableParameterfv" },
9540  { 149, "GetColorTableParameteriv" },
9541  { 150, "GetConvolutionFilter" },
9542  { 151, "GetConvolutionParameterfv" },
9543  { 152, "GetConvolutionParameteriv" },
9544  { 153, "GetSeparableFilter" },
9545  { 154, "GetHistogram" },
9546  { 155, "GetHistogramParameterfv" },
9547  { 156, "GetHistogramParameteriv" },
9548  { 157, "GetMinmax" },
9549  { 158, "GetMinmaxParameterfv" },
9550  { 159, "GetMinmaxParameteriv" },
9551  { 160, "GetCompressedTexImageARB" },
9552  { 161, "DeleteQueriesARB" },
9553  { 162, "GenQueriesARB" },
9554  { 163, "IsQueryARB" },
9555  { 164, "GetQueryivARB" },
9556  { 165, "GetQueryObjectivARB" },
9557  { 166, "GetQueryObjectuivARB" },
9558  { 0, NULL }
9559 };
9560 static const x11_event_info glx_events[] = {
9561  { "glx-BufferSwapComplete", glxBufferSwapComplete },
9562  { NULL, NULL }
9563 };
9564 static x11_reply_info glx_replies[] = {
9565  { 5, glxMakeCurrent_Reply },
9566  { 6, glxIsDirect_Reply },
9567  { 7, glxQueryVersion_Reply },
9568  { 14, glxGetVisualConfigs_Reply },
9569  { 17, glxVendorPrivateWithReply_Reply },
9570  { 18, glxQueryExtensionsString_Reply },
9571  { 19, glxQueryServerString_Reply },
9572  { 21, glxGetFBConfigs_Reply },
9573  { 25, glxQueryContext_Reply },
9574  { 26, glxMakeContextCurrent_Reply },
9575  { 29, glxGetDrawableAttributes_Reply },
9576  { 104, glxGenLists_Reply },
9577  { 107, glxRenderMode_Reply },
9578  { 108, glxFinish_Reply },
9579  { 111, glxReadPixels_Reply },
9580  { 112, glxGetBooleanv_Reply },
9581  { 113, glxGetClipPlane_Reply },
9582  { 114, glxGetDoublev_Reply },
9583  { 115, glxGetError_Reply },
9584  { 116, glxGetFloatv_Reply },
9585  { 117, glxGetIntegerv_Reply },
9586  { 118, glxGetLightfv_Reply },
9587  { 119, glxGetLightiv_Reply },
9588  { 120, glxGetMapdv_Reply },
9589  { 121, glxGetMapfv_Reply },
9590  { 122, glxGetMapiv_Reply },
9591  { 123, glxGetMaterialfv_Reply },
9592  { 124, glxGetMaterialiv_Reply },
9593  { 125, glxGetPixelMapfv_Reply },
9594  { 126, glxGetPixelMapuiv_Reply },
9595  { 127, glxGetPixelMapusv_Reply },
9596  { 128, glxGetPolygonStipple_Reply },
9597  { 129, glxGetString_Reply },
9598  { 130, glxGetTexEnvfv_Reply },
9599  { 131, glxGetTexEnviv_Reply },
9600  { 132, glxGetTexGendv_Reply },
9601  { 133, glxGetTexGenfv_Reply },
9602  { 134, glxGetTexGeniv_Reply },
9603  { 135, glxGetTexImage_Reply },
9604  { 136, glxGetTexParameterfv_Reply },
9605  { 137, glxGetTexParameteriv_Reply },
9606  { 138, glxGetTexLevelParameterfv_Reply },
9607  { 139, glxGetTexLevelParameteriv_Reply },
9608  { 140, glxIsEnabled_Reply },
9609  { 141, glxIsList_Reply },
9610  { 143, glxAreTexturesResident_Reply },
9611  { 145, glxGenTextures_Reply },
9612  { 146, glxIsTexture_Reply },
9613  { 147, glxGetColorTable_Reply },
9614  { 148, glxGetColorTableParameterfv_Reply },
9615  { 149, glxGetColorTableParameteriv_Reply },
9616  { 150, glxGetConvolutionFilter_Reply },
9617  { 151, glxGetConvolutionParameterfv_Reply },
9618  { 152, glxGetConvolutionParameteriv_Reply },
9619  { 153, glxGetSeparableFilter_Reply },
9620  { 154, glxGetHistogram_Reply },
9621  { 155, glxGetHistogramParameterfv_Reply },
9622  { 156, glxGetHistogramParameteriv_Reply },
9623  { 157, glxGetMinmax_Reply },
9624  { 158, glxGetMinmaxParameterfv_Reply },
9625  { 159, glxGetMinmaxParameteriv_Reply },
9626  { 160, glxGetCompressedTexImageARB_Reply },
9627  { 162, glxGenQueriesARB_Reply },
9628  { 163, glxIsQueryARB_Reply },
9629  { 164, glxGetQueryivARB_Reply },
9630  { 165, glxGetQueryObjectivARB_Reply },
9631  { 166, glxGetQueryObjectuivARB_Reply },
9632  { 0, NULL }
9633 };
9634 
9635 static void dispatch_glx(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
9636 {
9637  int minor, length;
9638  minor = CARD8(glx_extension_minor);
9639  length = REQUEST_LENGTH();
9640 
9641  col_append_fstr(pinfo->cinfo, COL_INFO, "-%s",
9642  val_to_str(minor, glx_extension_minor,
9643  "<Unknown opcode %d>"));
9644  switch (minor) {
9645  case 1:
9646  glxRender(tvb, pinfo, offsetp, t, byte_order, length);
9647  break;
9648  case 2:
9649  glxRenderLarge(tvb, pinfo, offsetp, t, byte_order, length);
9650  break;
9651  case 3:
9652  glxCreateContext(tvb, pinfo, offsetp, t, byte_order, length);
9653  break;
9654  case 4:
9655  glxDestroyContext(tvb, pinfo, offsetp, t, byte_order, length);
9656  break;
9657  case 5:
9658  glxMakeCurrent(tvb, pinfo, offsetp, t, byte_order, length);
9659  break;
9660  case 6:
9661  glxIsDirect(tvb, pinfo, offsetp, t, byte_order, length);
9662  break;
9663  case 7:
9664  glxQueryVersion(tvb, pinfo, offsetp, t, byte_order, length);
9665  break;
9666  case 8:
9667  glxWaitGL(tvb, pinfo, offsetp, t, byte_order, length);
9668  break;
9669  case 9:
9670  glxWaitX(tvb, pinfo, offsetp, t, byte_order, length);
9671  break;
9672  case 10:
9673  glxCopyContext(tvb, pinfo, offsetp, t, byte_order, length);
9674  break;
9675  case 11:
9676  glxSwapBuffers(tvb, pinfo, offsetp, t, byte_order, length);
9677  break;
9678  case 12:
9679  glxUseXFont(tvb, pinfo, offsetp, t, byte_order, length);
9680  break;
9681  case 13:
9682  glxCreateGLXPixmap(tvb, pinfo, offsetp, t, byte_order, length);
9683  break;
9684  case 14:
9685  glxGetVisualConfigs(tvb, pinfo, offsetp, t, byte_order, length);
9686  break;
9687  case 15:
9688  glxDestroyGLXPixmap(tvb, pinfo, offsetp, t, byte_order, length);
9689  break;
9690  case 16:
9691  glxVendorPrivate(tvb, pinfo, offsetp, t, byte_order, length);
9692  break;
9693  case 17:
9694  glxVendorPrivateWithReply(tvb, pinfo, offsetp, t, byte_order, length);
9695  break;
9696  case 18:
9697  glxQueryExtensionsString(tvb, pinfo, offsetp, t, byte_order, length);
9698  break;
9699  case 19:
9700  glxQueryServerString(tvb, pinfo, offsetp, t, byte_order, length);
9701  break;
9702  case 20:
9703  glxClientInfo(tvb, pinfo, offsetp, t, byte_order, length);
9704  break;
9705  case 21:
9706  glxGetFBConfigs(tvb, pinfo, offsetp, t, byte_order, length);
9707  break;
9708  case 22:
9709  glxCreatePixmap(tvb, pinfo, offsetp, t, byte_order, length);
9710  break;
9711  case 23:
9712  glxDestroyPixmap(tvb, pinfo, offsetp, t, byte_order, length);
9713  break;
9714  case 24:
9715  glxCreateNewContext(tvb, pinfo, offsetp, t, byte_order, length);
9716  break;
9717  case 25:
9718  glxQueryContext(tvb, pinfo, offsetp, t, byte_order, length);
9719  break;
9720  case 26:
9721  glxMakeContextCurrent(tvb, pinfo, offsetp, t, byte_order, length);
9722  break;
9723  case 27:
9724  glxCreatePbuffer(tvb, pinfo, offsetp, t, byte_order, length);
9725  break;
9726  case 28:
9727  glxDestroyPbuffer(tvb, pinfo, offsetp, t, byte_order, length);
9728  break;
9729  case 29:
9730  glxGetDrawableAttributes(tvb, pinfo, offsetp, t, byte_order, length);
9731  break;
9732  case 30:
9733  glxChangeDrawableAttributes(tvb, pinfo, offsetp, t, byte_order, length);
9734  break;
9735  case 31:
9736  glxCreateWindow(tvb, pinfo, offsetp, t, byte_order, length);
9737  break;
9738  case 32:
9739  glxDeleteWindow(tvb, pinfo, offsetp, t, byte_order, length);
9740  break;
9741  case 33:
9742  glxSetClientInfoARB(tvb, pinfo, offsetp, t, byte_order, length);
9743  break;
9744  case 34:
9745  glxCreateContextAttribsARB(tvb, pinfo, offsetp, t, byte_order, length);
9746  break;
9747  case 35:
9748  glxSetClientInfo2ARB(tvb, pinfo, offsetp, t, byte_order, length);
9749  break;
9750  case 101:
9751  glxNewList(tvb, pinfo, offsetp, t, byte_order, length);
9752  break;
9753  case 102:
9754  glxEndList(tvb, pinfo, offsetp, t, byte_order, length);
9755  break;
9756  case 103:
9757  glxDeleteLists(tvb, pinfo, offsetp, t, byte_order, length);
9758  break;
9759  case 104:
9760  glxGenLists(tvb, pinfo, offsetp, t, byte_order, length);
9761  break;
9762  case 105:
9763  glxFeedbackBuffer(tvb, pinfo, offsetp, t, byte_order, length);
9764  break;
9765  case 106:
9766  glxSelectBuffer(tvb, pinfo, offsetp, t, byte_order, length);
9767  break;
9768  case 107:
9769  glxRenderMode(tvb, pinfo, offsetp, t, byte_order, length);
9770  break;
9771  case 108:
9772  glxFinish(tvb, pinfo, offsetp, t, byte_order, length);
9773  break;
9774  case 109:
9775  glxPixelStoref(tvb, pinfo, offsetp, t, byte_order, length);
9776  break;
9777  case 110:
9778  glxPixelStorei(tvb, pinfo, offsetp, t, byte_order, length);
9779  break;
9780  case 111:
9781  glxReadPixels(tvb, pinfo, offsetp, t, byte_order, length);
9782  break;
9783  case 112:
9784  glxGetBooleanv(tvb, pinfo, offsetp, t, byte_order, length);
9785  break;
9786  case 113:
9787  glxGetClipPlane(tvb, pinfo, offsetp, t, byte_order, length);
9788  break;
9789  case 114:
9790  glxGetDoublev(tvb, pinfo, offsetp, t, byte_order, length);
9791  break;
9792  case 115:
9793  glxGetError(tvb, pinfo, offsetp, t, byte_order, length);
9794  break;
9795  case 116:
9796  glxGetFloatv(tvb, pinfo, offsetp, t, byte_order, length);
9797  break;
9798  case 117:
9799  glxGetIntegerv(tvb, pinfo, offsetp, t, byte_order, length);
9800  break;
9801  case 118:
9802  glxGetLightfv(tvb, pinfo, offsetp, t, byte_order, length);
9803  break;
9804  case 119:
9805  glxGetLightiv(tvb, pinfo, offsetp, t, byte_order, length);
9806  break;
9807  case 120:
9808  glxGetMapdv(tvb, pinfo, offsetp, t, byte_order, length);
9809  break;
9810  case 121:
9811  glxGetMapfv(tvb, pinfo, offsetp, t, byte_order, length);
9812  break;
9813  case 122:
9814  glxGetMapiv(tvb, pinfo, offsetp, t, byte_order, length);
9815  break;
9816  case 123:
9817  glxGetMaterialfv(tvb, pinfo, offsetp, t, byte_order, length);
9818  break;
9819  case 124:
9820  glxGetMaterialiv(tvb, pinfo, offsetp, t, byte_order, length);
9821  break;
9822  case 125:
9823  glxGetPixelMapfv(tvb, pinfo, offsetp, t, byte_order, length);
9824  break;
9825  case 126:
9826  glxGetPixelMapuiv(tvb, pinfo, offsetp, t, byte_order, length);
9827  break;
9828  case 127:
9829  glxGetPixelMapusv(tvb, pinfo, offsetp, t, byte_order, length);
9830  break;
9831  case 128:
9832  glxGetPolygonStipple(tvb, pinfo, offsetp, t, byte_order, length);
9833  break;
9834  case 129:
9835  glxGetString(tvb, pinfo, offsetp, t, byte_order, length);
9836  break;
9837  case 130:
9838  glxGetTexEnvfv(tvb, pinfo, offsetp, t, byte_order, length);
9839  break;
9840  case 131:
9841  glxGetTexEnviv(tvb, pinfo, offsetp, t, byte_order, length);
9842  break;
9843  case 132:
9844  glxGetTexGendv(tvb, pinfo, offsetp, t, byte_order, length);
9845  break;
9846  case 133:
9847  glxGetTexGenfv(tvb, pinfo, offsetp, t, byte_order, length);
9848  break;
9849  case 134:
9850  glxGetTexGeniv(tvb, pinfo, offsetp, t, byte_order, length);
9851  break;
9852  case 135:
9853  glxGetTexImage(tvb, pinfo, offsetp, t, byte_order, length);
9854  break;
9855  case 136:
9856  glxGetTexParameterfv(tvb, pinfo, offsetp, t, byte_order, length);
9857  break;
9858  case 137:
9859  glxGetTexParameteriv(tvb, pinfo, offsetp, t, byte_order, length);
9860  break;
9861  case 138:
9862  glxGetTexLevelParameterfv(tvb, pinfo, offsetp, t, byte_order, length);
9863  break;
9864  case 139:
9865  glxGetTexLevelParameteriv(tvb, pinfo, offsetp, t, byte_order, length);
9866  break;
9867  case 140:
9868  glxIsEnabled(tvb, pinfo, offsetp, t, byte_order, length);
9869  break;
9870  case 141:
9871  glxIsList(tvb, pinfo, offsetp, t, byte_order, length);
9872  break;
9873  case 142:
9874  glxFlush(tvb, pinfo, offsetp, t, byte_order, length);
9875  break;
9876  case 143:
9877  glxAreTexturesResident(tvb, pinfo, offsetp, t, byte_order, length);
9878  break;
9879  case 144:
9880  glxDeleteTextures(tvb, pinfo, offsetp, t, byte_order, length);
9881  break;
9882  case 145:
9883  glxGenTextures(tvb, pinfo, offsetp, t, byte_order, length);
9884  break;
9885  case 146:
9886  glxIsTexture(tvb, pinfo, offsetp, t, byte_order, length);
9887  break;
9888  case 147:
9889  glxGetColorTable(tvb, pinfo, offsetp, t, byte_order, length);
9890  break;
9891  case 148:
9892  glxGetColorTableParameterfv(tvb, pinfo, offsetp, t, byte_order, length);
9893  break;
9894  case 149:
9895  glxGetColorTableParameteriv(tvb, pinfo, offsetp, t, byte_order, length);
9896  break;
9897  case 150:
9898  glxGetConvolutionFilter(tvb, pinfo, offsetp, t, byte_order, length);
9899  break;
9900  case 151:
9901  glxGetConvolutionParameterfv(tvb, pinfo, offsetp, t, byte_order, length);
9902  break;
9903  case 152:
9904  glxGetConvolutionParameteriv(tvb, pinfo, offsetp, t, byte_order, length);
9905  break;
9906  case 153:
9907  glxGetSeparableFilter(tvb, pinfo, offsetp, t, byte_order, length);
9908  break;
9909  case 154:
9910  glxGetHistogram(tvb, pinfo, offsetp, t, byte_order, length);
9911  break;
9912  case 155:
9913  glxGetHistogramParameterfv(tvb, pinfo, offsetp, t, byte_order, length);
9914  break;
9915  case 156:
9916  glxGetHistogramParameteriv(tvb, pinfo, offsetp, t, byte_order, length);
9917  break;
9918  case 157:
9919  glxGetMinmax(tvb, pinfo, offsetp, t, byte_order, length);
9920  break;
9921  case 158:
9922  glxGetMinmaxParameterfv(tvb, pinfo, offsetp, t, byte_order, length);
9923  break;
9924  case 159:
9925  glxGetMinmaxParameteriv(tvb, pinfo, offsetp, t, byte_order, length);
9926  break;
9927  case 160:
9928  glxGetCompressedTexImageARB(tvb, pinfo, offsetp, t, byte_order, length);
9929  break;
9930  case 161:
9931  glxDeleteQueriesARB(tvb, pinfo, offsetp, t, byte_order, length);
9932  break;
9933  case 162:
9934  glxGenQueriesARB(tvb, pinfo, offsetp, t, byte_order, length);
9935  break;
9936  case 163:
9937  glxIsQueryARB(tvb, pinfo, offsetp, t, byte_order, length);
9938  break;
9939  case 164:
9940  glxGetQueryivARB(tvb, pinfo, offsetp, t, byte_order, length);
9941  break;
9942  case 165:
9943  glxGetQueryObjectivARB(tvb, pinfo, offsetp, t, byte_order, length);
9944  break;
9945  case 166:
9946  glxGetQueryObjectuivARB(tvb, pinfo, offsetp, t, byte_order, length);
9947  break;
9948  /* No need for a default case here, since Unknown is printed above,
9949  and UNDECODED() is taken care of by dissect_x11_request */
9950  }
9951 }
9952 
9953 static void register_glx(void)
9954 {
9955  set_handler("GLX", dispatch_glx, glx_errors, glx_events, NULL, glx_replies);
9956 }
9957 
9958 static void struct_randr_ScreenSize(tvbuff_t *tvb, int *offsetp, proto_tree *root, guint byte_order _U_, int count)
9959 {
9960  int i;
9961  for (i = 0; i < count; i++) {
9962  proto_item *item;
9963  proto_tree *t;
9964 
9965  item = proto_tree_add_item(root, hf_x11_struct_randr_ScreenSize, tvb, *offsetp, 8, ENC_NA);
9966  t = proto_item_add_subtree(item, ett_x11_rectangle);
9967  proto_tree_add_item(t, hf_x11_struct_randr_ScreenSize_width, tvb, *offsetp, 2, byte_order);
9968  *offsetp += 2;
9969  proto_tree_add_item(t, hf_x11_struct_randr_ScreenSize_height, tvb, *offsetp, 2, byte_order);
9970  *offsetp += 2;
9971  proto_tree_add_item(t, hf_x11_struct_randr_ScreenSize_mwidth, tvb, *offsetp, 2, byte_order);
9972  *offsetp += 2;
9973  proto_tree_add_item(t, hf_x11_struct_randr_ScreenSize_mheight, tvb, *offsetp, 2, byte_order);
9974  *offsetp += 2;
9975  }
9976 }
9977 
9978 static int struct_size_randr_RefreshRates(tvbuff_t *tvb _U_, int *offsetp _U_, guint byte_order _U_)
9979 {
9980  int size = 0;
9981  int f_nRates;
9982  f_nRates = tvb_get_guint16(tvb, *offsetp + size + 0, byte_order);
9983  size += f_nRates * 2;
9984  return size + 2;
9985 }
9986 
9987 static void struct_randr_RefreshRates(tvbuff_t *tvb, int *offsetp, proto_tree *root, guint byte_order _U_, int count)
9988 {
9989  int i;
9990  for (i = 0; i < count; i++) {
9991  proto_item *item;
9992  proto_tree *t;
9993  int f_nRates;
9994 
9995  item = proto_tree_add_item(root, hf_x11_struct_randr_RefreshRates, tvb, *offsetp, struct_size_randr_RefreshRates(tvb, offsetp, byte_order), ENC_NA);
9996  t = proto_item_add_subtree(item, ett_x11_rectangle);
9997  f_nRates = tvb_get_guint16(tvb, *offsetp, byte_order);
9998  proto_tree_add_item(t, hf_x11_struct_randr_RefreshRates_nRates, tvb, *offsetp, 2, byte_order);
9999  *offsetp += 2;
10000  listOfCard16(tvb, offsetp, t, hf_x11_struct_randr_RefreshRates_rates, hf_x11_struct_randr_RefreshRates_rates_item, f_nRates, byte_order);
10001  }
10002 }
10003 
10004 static void struct_randr_ModeInfo(tvbuff_t *tvb, int *offsetp, proto_tree *root, guint byte_order _U_, int count)
10005 {
10006  int i;
10007  for (i = 0; i < count; i++) {
10008  proto_item *item;
10009  proto_tree *t;
10010 
10011  item = proto_tree_add_item(root, hf_x11_struct_randr_ModeInfo, tvb, *offsetp, 32, ENC_NA);
10012  t = proto_item_add_subtree(item, ett_x11_rectangle);
10013  proto_tree_add_item(t, hf_x11_struct_randr_ModeInfo_id, tvb, *offsetp, 4, byte_order);
10014  *offsetp += 4;
10015  proto_tree_add_item(t, hf_x11_struct_randr_ModeInfo_width, tvb, *offsetp, 2, byte_order);
10016  *offsetp += 2;
10017  proto_tree_add_item(t, hf_x11_struct_randr_ModeInfo_height, tvb, *offsetp, 2, byte_order);
10018  *offsetp += 2;
10019  proto_tree_add_item(t, hf_x11_struct_randr_ModeInfo_dot_clock, tvb, *offsetp, 4, byte_order);
10020  *offsetp += 4;
10021  proto_tree_add_item(t, hf_x11_struct_randr_ModeInfo_hsync_start, tvb, *offsetp, 2, byte_order);
10022  *offsetp += 2;
10023  proto_tree_add_item(t, hf_x11_struct_randr_ModeInfo_hsync_end, tvb, *offsetp, 2, byte_order);
10024  *offsetp += 2;
10025  proto_tree_add_item(t, hf_x11_struct_randr_ModeInfo_htotal, tvb, *offsetp, 2, byte_order);
10026  *offsetp += 2;
10027  proto_tree_add_item(t, hf_x11_struct_randr_ModeInfo_hskew, tvb, *offsetp, 2, byte_order);
10028  *offsetp += 2;
10029  proto_tree_add_item(t, hf_x11_struct_randr_ModeInfo_vsync_start, tvb, *offsetp, 2, byte_order);
10030  *offsetp += 2;
10031  proto_tree_add_item(t, hf_x11_struct_randr_ModeInfo_vsync_end, tvb, *offsetp, 2, byte_order);
10032  *offsetp += 2;
10033  proto_tree_add_item(t, hf_x11_struct_randr_ModeInfo_vtotal, tvb, *offsetp, 2, byte_order);
10034  *offsetp += 2;
10035  proto_tree_add_item(t, hf_x11_struct_randr_ModeInfo_name_len, tvb, *offsetp, 2, byte_order);
10036  *offsetp += 2;
10037  {
10038  int* const mode_flags_bits [] = {
10039  &hf_x11_struct_randr_ModeInfo_mode_flags_mask_HsyncPositive,
10040  &hf_x11_struct_randr_ModeInfo_mode_flags_mask_HsyncNegative,
10041  &hf_x11_struct_randr_ModeInfo_mode_flags_mask_VsyncPositive,
10042  &hf_x11_struct_randr_ModeInfo_mode_flags_mask_VsyncNegative,
10043  &hf_x11_struct_randr_ModeInfo_mode_flags_mask_Interlace,
10044  &hf_x11_struct_randr_ModeInfo_mode_flags_mask_DoubleScan,
10045  &hf_x11_struct_randr_ModeInfo_mode_flags_mask_Csync,
10046  &hf_x11_struct_randr_ModeInfo_mode_flags_mask_CsyncPositive,
10047  &hf_x11_struct_randr_ModeInfo_mode_flags_mask_CsyncNegative,
10048  &hf_x11_struct_randr_ModeInfo_mode_flags_mask_HskewPresent,
10049  &hf_x11_struct_randr_ModeInfo_mode_flags_mask_Bcast,
10050  &hf_x11_struct_randr_ModeInfo_mode_flags_mask_PixelMultiplex,
10051  &hf_x11_struct_randr_ModeInfo_mode_flags_mask_DoubleClock,
10052  &hf_x11_struct_randr_ModeInfo_mode_flags_mask_HalveClock,
10053  NULL
10054  };
10055  proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_struct_randr_ModeInfo_mode_flags, ett_x11_rectangle, mode_flags_bits, byte_order);
10056  }
10057  *offsetp += 4;
10058  }
10059 }
10060 
10061 static void struct_randr_CrtcChange(tvbuff_t *tvb, int *offsetp, proto_tree *root, guint byte_order _U_, int count)
10062 {
10063  int i;
10064  for (i = 0; i < count; i++) {
10065  proto_item *item;
10066  proto_tree *t;
10067 
10068  item = proto_tree_add_item(root, hf_x11_struct_randr_CrtcChange, tvb, *offsetp, 28, ENC_NA);
10069  t = proto_item_add_subtree(item, ett_x11_rectangle);
10070  proto_tree_add_item(t, hf_x11_struct_randr_CrtcChange_timestamp, tvb, *offsetp, 4, byte_order);
10071  *offsetp += 4;
10072  proto_tree_add_item(t, hf_x11_struct_randr_CrtcChange_window, tvb, *offsetp, 4, byte_order);
10073  *offsetp += 4;
10074  proto_tree_add_item(t, hf_x11_struct_randr_CrtcChange_crtc, tvb, *offsetp, 4, byte_order);
10075  *offsetp += 4;
10076  proto_tree_add_item(t, hf_x11_struct_randr_CrtcChange_mode, tvb, *offsetp, 4, byte_order);
10077  *offsetp += 4;
10078  {
10079  int* const rotation_bits [] = {
10080  &hf_x11_struct_randr_CrtcChange_rotation_mask_Rotate_0,
10081  &hf_x11_struct_randr_CrtcChange_rotation_mask_Rotate_90,
10082  &hf_x11_struct_randr_CrtcChange_rotation_mask_Rotate_180,
10083  &hf_x11_struct_randr_CrtcChange_rotation_mask_Rotate_270,
10084  &hf_x11_struct_randr_CrtcChange_rotation_mask_Reflect_X,
10085  &hf_x11_struct_randr_CrtcChange_rotation_mask_Reflect_Y,
10086  NULL
10087  };
10088  proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_struct_randr_CrtcChange_rotation, ett_x11_rectangle, rotation_bits, byte_order);
10089  }
10090  *offsetp += 2;
10091  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 2, ENC_NA);
10092  *offsetp += 2;
10093  proto_tree_add_item(t, hf_x11_struct_randr_CrtcChange_x, tvb, *offsetp, 2, byte_order);
10094  *offsetp += 2;
10095  proto_tree_add_item(t, hf_x11_struct_randr_CrtcChange_y, tvb, *offsetp, 2, byte_order);
10096  *offsetp += 2;
10097  proto_tree_add_item(t, hf_x11_struct_randr_CrtcChange_width, tvb, *offsetp, 2, byte_order);
10098  *offsetp += 2;
10099  proto_tree_add_item(t, hf_x11_struct_randr_CrtcChange_height, tvb, *offsetp, 2, byte_order);
10100  *offsetp += 2;
10101  }
10102 }
10103 
10104 static void struct_randr_OutputChange(tvbuff_t *tvb, int *offsetp, proto_tree *root, guint byte_order _U_, int count)
10105 {
10106  int i;
10107  for (i = 0; i < count; i++) {
10108  proto_item *item;
10109  proto_tree *t;
10110 
10111  item = proto_tree_add_item(root, hf_x11_struct_randr_OutputChange, tvb, *offsetp, 28, ENC_NA);
10112  t = proto_item_add_subtree(item, ett_x11_rectangle);
10113  proto_tree_add_item(t, hf_x11_struct_randr_OutputChange_timestamp, tvb, *offsetp, 4, byte_order);
10114  *offsetp += 4;
10115  proto_tree_add_item(t, hf_x11_struct_randr_OutputChange_config_timestamp, tvb, *offsetp, 4, byte_order);
10116  *offsetp += 4;
10117  proto_tree_add_item(t, hf_x11_struct_randr_OutputChange_window, tvb, *offsetp, 4, byte_order);
10118  *offsetp += 4;
10119  proto_tree_add_item(t, hf_x11_struct_randr_OutputChange_output, tvb, *offsetp, 4, byte_order);
10120  *offsetp += 4;
10121  proto_tree_add_item(t, hf_x11_struct_randr_OutputChange_crtc, tvb, *offsetp, 4, byte_order);
10122  *offsetp += 4;
10123  proto_tree_add_item(t, hf_x11_struct_randr_OutputChange_mode, tvb, *offsetp, 4, byte_order);
10124  *offsetp += 4;
10125  {
10126  int* const rotation_bits [] = {
10127  &hf_x11_struct_randr_OutputChange_rotation_mask_Rotate_0,
10128  &hf_x11_struct_randr_OutputChange_rotation_mask_Rotate_90,
10129  &hf_x11_struct_randr_OutputChange_rotation_mask_Rotate_180,
10130  &hf_x11_struct_randr_OutputChange_rotation_mask_Rotate_270,
10131  &hf_x11_struct_randr_OutputChange_rotation_mask_Reflect_X,
10132  &hf_x11_struct_randr_OutputChange_rotation_mask_Reflect_Y,
10133  NULL
10134  };
10135  proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_struct_randr_OutputChange_rotation, ett_x11_rectangle, rotation_bits, byte_order);
10136  }
10137  *offsetp += 2;
10138  field8(tvb, offsetp, t, hf_x11_struct_randr_OutputChange_connection, byte_order);
10139  field8(tvb, offsetp, t, hf_x11_struct_randr_OutputChange_subpixel_order, byte_order);
10140  }
10141 }
10142 
10143 static void struct_randr_OutputProperty(tvbuff_t *tvb, int *offsetp, proto_tree *root, guint byte_order _U_, int count)
10144 {
10145  int i;
10146  for (i = 0; i < count; i++) {
10147  proto_item *item;
10148  proto_tree *t;
10149 
10150  item = proto_tree_add_item(root, hf_x11_struct_randr_OutputProperty, tvb, *offsetp, 28, ENC_NA);
10151  t = proto_item_add_subtree(item, ett_x11_rectangle);
10152  proto_tree_add_item(t, hf_x11_struct_randr_OutputProperty_window, tvb, *offsetp, 4, byte_order);
10153  *offsetp += 4;
10154  proto_tree_add_item(t, hf_x11_struct_randr_OutputProperty_output, tvb, *offsetp, 4, byte_order);
10155  *offsetp += 4;
10156  proto_tree_add_item(t, hf_x11_struct_randr_OutputProperty_atom, tvb, *offsetp, 4, byte_order);
10157  *offsetp += 4;
10158  proto_tree_add_item(t, hf_x11_struct_randr_OutputProperty_timestamp, tvb, *offsetp, 4, byte_order);
10159  *offsetp += 4;
10160  field8(tvb, offsetp, t, hf_x11_struct_randr_OutputProperty_status, byte_order);
10161  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 11, ENC_NA);
10162  *offsetp += 11;
10163  }
10164 }
10165 
10166 static void struct_randr_ProviderChange(tvbuff_t *tvb, int *offsetp, proto_tree *root, guint byte_order _U_, int count)
10167 {
10168  int i;
10169  for (i = 0; i < count; i++) {
10170  proto_item *item;
10171  proto_tree *t;
10172 
10173  item = proto_tree_add_item(root, hf_x11_struct_randr_ProviderChange, tvb, *offsetp, 28, ENC_NA);
10174  t = proto_item_add_subtree(item, ett_x11_rectangle);
10175  proto_tree_add_item(t, hf_x11_struct_randr_ProviderChange_timestamp, tvb, *offsetp, 4, byte_order);
10176  *offsetp += 4;
10177  proto_tree_add_item(t, hf_x11_struct_randr_ProviderChange_window, tvb, *offsetp, 4, byte_order);
10178  *offsetp += 4;
10179  proto_tree_add_item(t, hf_x11_struct_randr_ProviderChange_provider, tvb, *offsetp, 4, byte_order);
10180  *offsetp += 4;
10181  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 16, ENC_NA);
10182  *offsetp += 16;
10183  }
10184 }
10185 
10186 static void struct_randr_ProviderProperty(tvbuff_t *tvb, int *offsetp, proto_tree *root, guint byte_order _U_, int count)
10187 {
10188  int i;
10189  for (i = 0; i < count; i++) {
10190  proto_item *item;
10191  proto_tree *t;
10192 
10193  item = proto_tree_add_item(root, hf_x11_struct_randr_ProviderProperty, tvb, *offsetp, 28, ENC_NA);
10194  t = proto_item_add_subtree(item, ett_x11_rectangle);
10195  proto_tree_add_item(t, hf_x11_struct_randr_ProviderProperty_window, tvb, *offsetp, 4, byte_order);
10196  *offsetp += 4;
10197  proto_tree_add_item(t, hf_x11_struct_randr_ProviderProperty_provider, tvb, *offsetp, 4, byte_order);
10198  *offsetp += 4;
10199  proto_tree_add_item(t, hf_x11_struct_randr_ProviderProperty_atom, tvb, *offsetp, 4, byte_order);
10200  *offsetp += 4;
10201  proto_tree_add_item(t, hf_x11_struct_randr_ProviderProperty_timestamp, tvb, *offsetp, 4, byte_order);
10202  *offsetp += 4;
10203  proto_tree_add_item(t, hf_x11_struct_randr_ProviderProperty_state, tvb, *offsetp, 1, byte_order);
10204  *offsetp += 1;
10205  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 11, ENC_NA);
10206  *offsetp += 11;
10207  }
10208 }
10209 
10210 static void struct_randr_ResourceChange(tvbuff_t *tvb, int *offsetp, proto_tree *root, guint byte_order _U_, int count)
10211 {
10212  int i;
10213  for (i = 0; i < count; i++) {
10214  proto_item *item;
10215  proto_tree *t;
10216 
10217  item = proto_tree_add_item(root, hf_x11_struct_randr_ResourceChange, tvb, *offsetp, 28, ENC_NA);
10218  t = proto_item_add_subtree(item, ett_x11_rectangle);
10219  proto_tree_add_item(t, hf_x11_struct_randr_ResourceChange_timestamp, tvb, *offsetp, 4, byte_order);
10220  *offsetp += 4;
10221  proto_tree_add_item(t, hf_x11_struct_randr_ResourceChange_window, tvb, *offsetp, 4, byte_order);
10222  *offsetp += 4;
10223  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 20, ENC_NA);
10224  *offsetp += 20;
10225  }
10226 }
10227 
10228 static int struct_size_randr_MonitorInfo(tvbuff_t *tvb _U_, int *offsetp _U_, guint byte_order _U_)
10229 {
10230  int size = 0;
10231  int f_nOutput;
10232  f_nOutput = tvb_get_guint16(tvb, *offsetp + size + 6, byte_order);
10233  size += f_nOutput * 4;
10234  return size + 24;
10235 }
10236 
10237 static void struct_randr_MonitorInfo(tvbuff_t *tvb, int *offsetp, proto_tree *root, guint byte_order _U_, int count)
10238 {
10239  int i;
10240  for (i = 0; i < count; i++) {
10241  proto_item *item;
10242  proto_tree *t;
10243  int f_nOutput;
10244 
10245  item = proto_tree_add_item(root, hf_x11_struct_randr_MonitorInfo, tvb, *offsetp, struct_size_randr_MonitorInfo(tvb, offsetp, byte_order), ENC_NA);
10246  t = proto_item_add_subtree(item, ett_x11_rectangle);
10247  proto_tree_add_item(t, hf_x11_struct_randr_MonitorInfo_name, tvb, *offsetp, 4, byte_order);
10248  *offsetp += 4;
10249  proto_tree_add_item(t, hf_x11_struct_randr_MonitorInfo_primary, tvb, *offsetp, 1, byte_order);
10250  *offsetp += 1;
10251  proto_tree_add_item(t, hf_x11_struct_randr_MonitorInfo_automatic, tvb, *offsetp, 1, byte_order);
10252  *offsetp += 1;
10253  f_nOutput = tvb_get_guint16(tvb, *offsetp, byte_order);
10254  proto_tree_add_item(t, hf_x11_struct_randr_MonitorInfo_nOutput, tvb, *offsetp, 2, byte_order);
10255  *offsetp += 2;
10256  proto_tree_add_item(t, hf_x11_struct_randr_MonitorInfo_x, tvb, *offsetp, 2, byte_order);
10257  *offsetp += 2;
10258  proto_tree_add_item(t, hf_x11_struct_randr_MonitorInfo_y, tvb, *offsetp, 2, byte_order);
10259  *offsetp += 2;
10260  proto_tree_add_item(t, hf_x11_struct_randr_MonitorInfo_width, tvb, *offsetp, 2, byte_order);
10261  *offsetp += 2;
10262  proto_tree_add_item(t, hf_x11_struct_randr_MonitorInfo_height, tvb, *offsetp, 2, byte_order);
10263  *offsetp += 2;
10264  proto_tree_add_item(t, hf_x11_struct_randr_MonitorInfo_width_in_millimeters, tvb, *offsetp, 4, byte_order);
10265  *offsetp += 4;
10266  proto_tree_add_item(t, hf_x11_struct_randr_MonitorInfo_height_in_millimeters, tvb, *offsetp, 4, byte_order);
10267  *offsetp += 4;
10268  listOfCard32(tvb, offsetp, t, hf_x11_struct_randr_MonitorInfo_outputs, hf_x11_struct_randr_MonitorInfo_outputs_item, f_nOutput, byte_order);
10269  }
10270 }
10271 
10272 static void struct_randr_LeaseNotify(tvbuff_t *tvb, int *offsetp, proto_tree *root, guint byte_order _U_, int count)
10273 {
10274  int i;
10275  for (i = 0; i < count; i++) {
10276  proto_item *item;
10277  proto_tree *t;
10278 
10279  item = proto_tree_add_item(root, hf_x11_struct_randr_LeaseNotify, tvb, *offsetp, 28, ENC_NA);
10280  t = proto_item_add_subtree(item, ett_x11_rectangle);
10281  proto_tree_add_item(t, hf_x11_struct_randr_LeaseNotify_timestamp, tvb, *offsetp, 4, byte_order);
10282  *offsetp += 4;
10283  proto_tree_add_item(t, hf_x11_struct_randr_LeaseNotify_window, tvb, *offsetp, 4, byte_order);
10284  *offsetp += 4;
10285  proto_tree_add_item(t, hf_x11_struct_randr_LeaseNotify_lease, tvb, *offsetp, 4, byte_order);
10286  *offsetp += 4;
10287  proto_tree_add_item(t, hf_x11_struct_randr_LeaseNotify_created, tvb, *offsetp, 1, byte_order);
10288  *offsetp += 1;
10289  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 15, ENC_NA);
10290  *offsetp += 15;
10291  }
10292 }
10293 
10294 static void struct_sync_INT64(tvbuff_t *tvb, int *offsetp, proto_tree *root, guint byte_order _U_, int count)
10295 {
10296  int i;
10297  for (i = 0; i < count; i++) {
10298  proto_item *item;
10299  proto_tree *t;
10300 
10301  item = proto_tree_add_item(root, hf_x11_struct_sync_INT64, tvb, *offsetp, 8, ENC_NA);
10302  t = proto_item_add_subtree(item, ett_x11_rectangle);
10303  proto_tree_add_item(t, hf_x11_struct_sync_INT64_hi, tvb, *offsetp, 4, byte_order);
10304  *offsetp += 4;
10305  proto_tree_add_item(t, hf_x11_struct_sync_INT64_lo, tvb, *offsetp, 4, byte_order);
10306  *offsetp += 4;
10307  }
10308 }
10309 
10310 static int struct_size_sync_SYSTEMCOUNTER(tvbuff_t *tvb _U_, int *offsetp _U_, guint byte_order _U_)
10311 {
10312  int size = 0;
10313  int f_name_len;
10314  f_name_len = tvb_get_guint16(tvb, *offsetp + size + 12, byte_order);
10315  size += f_name_len * 1;
10316  size = (size + 3) & ~3;
10317  return size + 14;
10318 }
10319 
10320 static void struct_sync_SYSTEMCOUNTER(tvbuff_t *tvb, int *offsetp, proto_tree *root, guint byte_order _U_, int count)
10321 {
10322  int i;
10323  for (i = 0; i < count; i++) {
10324  proto_item *item;
10325  proto_tree *t;
10326  int f_name_len;
10327 
10328  item = proto_tree_add_item(root, hf_x11_struct_sync_SYSTEMCOUNTER, tvb, *offsetp, struct_size_sync_SYSTEMCOUNTER(tvb, offsetp, byte_order), ENC_NA);
10329  t = proto_item_add_subtree(item, ett_x11_rectangle);
10330  proto_tree_add_item(t, hf_x11_struct_sync_SYSTEMCOUNTER_counter, tvb, *offsetp, 4, byte_order);
10331  *offsetp += 4;
10332  struct_sync_INT64(tvb, offsetp, t, byte_order, 1);
10333  f_name_len = tvb_get_guint16(tvb, *offsetp, byte_order);
10334  proto_tree_add_item(t, hf_x11_struct_sync_SYSTEMCOUNTER_name_len, tvb, *offsetp, 2, byte_order);
10335  *offsetp += 2;
10336  listOfByte(tvb, offsetp, t, hf_x11_struct_sync_SYSTEMCOUNTER_name, f_name_len, byte_order);
10337  if (*offsetp % 4) {
10338  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, (4 - *offsetp % 4), ENC_NA);
10339  *offsetp += (4 - *offsetp % 4);
10340  }
10341  }
10342 }
10343 
10344 static void struct_sync_TRIGGER(tvbuff_t *tvb, int *offsetp, proto_tree *root, guint byte_order _U_, int count)
10345 {
10346  int i;
10347  for (i = 0; i < count; i++) {
10348  proto_item *item;
10349  proto_tree *t;
10350 
10351  item = proto_tree_add_item(root, hf_x11_struct_sync_TRIGGER, tvb, *offsetp, 20, ENC_NA);
10352  t = proto_item_add_subtree(item, ett_x11_rectangle);
10353  proto_tree_add_item(t, hf_x11_struct_sync_TRIGGER_counter, tvb, *offsetp, 4, byte_order);
10354  *offsetp += 4;
10355  field32(tvb, offsetp, t, hf_x11_struct_sync_TRIGGER_wait_type, byte_order);
10356  struct_sync_INT64(tvb, offsetp, t, byte_order, 1);
10357  field32(tvb, offsetp, t, hf_x11_struct_sync_TRIGGER_test_type, byte_order);
10358  }
10359 }
10360 
10361 static void struct_sync_WAITCONDITION(tvbuff_t *tvb, int *offsetp, proto_tree *root, guint byte_order _U_, int count)
10362 {
10363  int i;
10364  for (i = 0; i < count; i++) {
10365  proto_item *item;
10366  proto_tree *t;
10367 
10368  item = proto_tree_add_item(root, hf_x11_struct_sync_WAITCONDITION, tvb, *offsetp, 28, ENC_NA);
10369  t = proto_item_add_subtree(item, ett_x11_rectangle);
10370  struct_sync_TRIGGER(tvb, offsetp, t, byte_order, 1);
10371  struct_sync_INT64(tvb, offsetp, t, byte_order, 1);
10372  }
10373 }
10374 
10375 static void struct_present_Notify(tvbuff_t *tvb, int *offsetp, proto_tree *root, guint byte_order _U_, int count)
10376 {
10377  int i;
10378  for (i = 0; i < count; i++) {
10379  proto_item *item;
10380  proto_tree *t;
10381 
10382  item = proto_tree_add_item(root, hf_x11_struct_present_Notify, tvb, *offsetp, 8, ENC_NA);
10383  t = proto_item_add_subtree(item, ett_x11_rectangle);
10384  proto_tree_add_item(t, hf_x11_struct_present_Notify_window, tvb, *offsetp, 4, byte_order);
10385  *offsetp += 4;
10386  proto_tree_add_item(t, hf_x11_struct_present_Notify_serial, tvb, *offsetp, 4, byte_order);
10387  *offsetp += 4;
10388  }
10389 }
10390 
10391 static void presentQueryVersion(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
10392 {
10393  proto_tree_add_item(t, hf_x11_present_QueryVersion_major_version, tvb, *offsetp, 4, byte_order);
10394  *offsetp += 4;
10395  proto_tree_add_item(t, hf_x11_present_QueryVersion_minor_version, tvb, *offsetp, 4, byte_order);
10396  *offsetp += 4;
10397 }
10398 static void presentQueryVersion_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
10399 {
10400  int sequence_number;
10401 
10402  col_append_fstr(pinfo->cinfo, COL_INFO, "-QueryVersion");
10403 
10404  REPLY(reply);
10405  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
10406  *offsetp += 1;
10407  sequence_number = tvb_get_guint16(tvb, *offsetp, byte_order);
10408  proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
10409  "%d (present-QueryVersion)", sequence_number);
10410  *offsetp += 2;
10411  proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
10412  *offsetp += 4;
10413  proto_tree_add_item(t, hf_x11_present_QueryVersion_reply_major_version, tvb, *offsetp, 4, byte_order);
10414  *offsetp += 4;
10415  proto_tree_add_item(t, hf_x11_present_QueryVersion_reply_minor_version, tvb, *offsetp, 4, byte_order);
10416  *offsetp += 4;
10417 }
10418 
10419 static void presentPixmap(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
10420 {
10421  proto_tree_add_item(t, hf_x11_present_Pixmap_window, tvb, *offsetp, 4, byte_order);
10422  *offsetp += 4;
10423  proto_tree_add_item(t, hf_x11_present_Pixmap_pixmap, tvb, *offsetp, 4, byte_order);
10424  *offsetp += 4;
10425  proto_tree_add_item(t, hf_x11_present_Pixmap_serial, tvb, *offsetp, 4, byte_order);
10426  *offsetp += 4;
10427  proto_tree_add_item(t, hf_x11_present_Pixmap_valid, tvb, *offsetp, 4, byte_order);
10428  *offsetp += 4;
10429  proto_tree_add_item(t, hf_x11_present_Pixmap_update, tvb, *offsetp, 4, byte_order);
10430  *offsetp += 4;
10431  proto_tree_add_item(t, hf_x11_present_Pixmap_x_off, tvb, *offsetp, 2, byte_order);
10432  *offsetp += 2;
10433  proto_tree_add_item(t, hf_x11_present_Pixmap_y_off, tvb, *offsetp, 2, byte_order);
10434  *offsetp += 2;
10435  proto_tree_add_item(t, hf_x11_present_Pixmap_target_crtc, tvb, *offsetp, 4, byte_order);
10436  *offsetp += 4;
10437  proto_tree_add_item(t, hf_x11_present_Pixmap_wait_fence, tvb, *offsetp, 4, byte_order);
10438  *offsetp += 4;
10439  proto_tree_add_item(t, hf_x11_present_Pixmap_idle_fence, tvb, *offsetp, 4, byte_order);
10440  *offsetp += 4;
10441  proto_tree_add_item(t, hf_x11_present_Pixmap_options, tvb, *offsetp, 4, byte_order);
10442  *offsetp += 4;
10443  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 4, ENC_NA);
10444  *offsetp += 4;
10445  proto_tree_add_item(t, hf_x11_present_Pixmap_target_msc, tvb, *offsetp, 8, byte_order);
10446  *offsetp += 8;
10447  proto_tree_add_item(t, hf_x11_present_Pixmap_divisor, tvb, *offsetp, 8, byte_order);
10448  *offsetp += 8;
10449  proto_tree_add_item(t, hf_x11_present_Pixmap_remainder, tvb, *offsetp, 8, byte_order);
10450  *offsetp += 8;
10451  struct_present_Notify(tvb, offsetp, t, byte_order, (length - 72) / 8);
10452 }
10453 
10454 static void presentNotifyMSC(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
10455 {
10456  proto_tree_add_item(t, hf_x11_present_NotifyMSC_window, tvb, *offsetp, 4, byte_order);
10457  *offsetp += 4;
10458  proto_tree_add_item(t, hf_x11_present_NotifyMSC_serial, tvb, *offsetp, 4, byte_order);
10459  *offsetp += 4;
10460  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 4, ENC_NA);
10461  *offsetp += 4;
10462  proto_tree_add_item(t, hf_x11_present_NotifyMSC_target_msc, tvb, *offsetp, 8, byte_order);
10463  *offsetp += 8;
10464  proto_tree_add_item(t, hf_x11_present_NotifyMSC_divisor, tvb, *offsetp, 8, byte_order);
10465  *offsetp += 8;
10466  proto_tree_add_item(t, hf_x11_present_NotifyMSC_remainder, tvb, *offsetp, 8, byte_order);
10467  *offsetp += 8;
10468 }
10469 
10470 static void presentSelectInput(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
10471 {
10472  proto_tree_add_item(t, hf_x11_present_SelectInput_eid, tvb, *offsetp, 4, byte_order);
10473  *offsetp += 4;
10474  proto_tree_add_item(t, hf_x11_present_SelectInput_window, tvb, *offsetp, 4, byte_order);
10475  *offsetp += 4;
10476  {
10477  int* const event_mask_bits [] = {
10478  &hf_x11_present_SelectInput_event_mask_mask_ConfigureNotify,
10479  &hf_x11_present_SelectInput_event_mask_mask_CompleteNotify,
10480  &hf_x11_present_SelectInput_event_mask_mask_IdleNotify,
10481  &hf_x11_present_SelectInput_event_mask_mask_RedirectNotify,
10482  NULL
10483  };
10484  proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_present_SelectInput_event_mask, ett_x11_rectangle, event_mask_bits, byte_order);
10485  }
10486  *offsetp += 4;
10487 }
10488 
10489 static void presentQueryCapabilities(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
10490 {
10491  proto_tree_add_item(t, hf_x11_present_QueryCapabilities_target, tvb, *offsetp, 4, byte_order);
10492  *offsetp += 4;
10493 }
10494 static void presentQueryCapabilities_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
10495 {
10496  int sequence_number;
10497 
10498  col_append_fstr(pinfo->cinfo, COL_INFO, "-QueryCapabilities");
10499 
10500  REPLY(reply);
10501  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
10502  *offsetp += 1;
10503  sequence_number = tvb_get_guint16(tvb, *offsetp, byte_order);
10504  proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
10505  "%d (present-QueryCapabilities)", sequence_number);
10506  *offsetp += 2;
10507  proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
10508  *offsetp += 4;
10509  proto_tree_add_item(t, hf_x11_present_QueryCapabilities_reply_capabilities, tvb, *offsetp, 4, byte_order);
10510  *offsetp += 4;
10511 }
10512 
10513 static void presentCompleteNotify(tvbuff_t *tvb, int length _U_, int *offsetp, proto_tree *t, guint byte_order)
10514 {
10515  proto_tree_add_uint_format_value(t, hf_x11_minor_opcode, tvb, *offsetp, 2, 1,
10516  "CompleteNotify (1)");
10517  field8(tvb, offsetp, t, hf_x11_present_CompleteNotify_kind, byte_order);
10518  field8(tvb, offsetp, t, hf_x11_present_CompleteNotify_mode, byte_order);
10519  proto_tree_add_item(t, hf_x11_present_CompleteNotify_event, tvb, *offsetp, 4, byte_order);
10520  *offsetp += 4;
10521  proto_tree_add_item(t, hf_x11_present_CompleteNotify_window, tvb, *offsetp, 4, byte_order);
10522  *offsetp += 4;
10523  proto_tree_add_item(t, hf_x11_present_CompleteNotify_serial, tvb, *offsetp, 4, byte_order);
10524  *offsetp += 4;
10525  proto_tree_add_item(t, hf_x11_present_CompleteNotify_ust, tvb, *offsetp, 8, byte_order);
10526  *offsetp += 8;
10527  proto_tree_add_item(t, hf_x11_present_CompleteNotify_msc, tvb, *offsetp, 8, byte_order);
10528  *offsetp += 8;
10529 }
10530 
10531 
10532 static void presentIdleNotify(tvbuff_t *tvb, int length _U_, int *offsetp, proto_tree *t, guint byte_order)
10533 {
10534  proto_tree_add_uint_format_value(t, hf_x11_minor_opcode, tvb, *offsetp, 2, 2,
10535  "IdleNotify (2)");
10536  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 2, ENC_NA);
10537  *offsetp += 2;
10538  proto_tree_add_item(t, hf_x11_present_IdleNotify_event, tvb, *offsetp, 4, byte_order);
10539  *offsetp += 4;
10540  proto_tree_add_item(t, hf_x11_present_IdleNotify_window, tvb, *offsetp, 4, byte_order);
10541  *offsetp += 4;
10542  proto_tree_add_item(t, hf_x11_present_IdleNotify_serial, tvb, *offsetp, 4, byte_order);
10543  *offsetp += 4;
10544  proto_tree_add_item(t, hf_x11_present_IdleNotify_pixmap, tvb, *offsetp, 4, byte_order);
10545  *offsetp += 4;
10546  proto_tree_add_item(t, hf_x11_present_IdleNotify_idle_fence, tvb, *offsetp, 4, byte_order);
10547  *offsetp += 4;
10548 }
10549 
10550 
10551 static void presentRedirectNotify(tvbuff_t *tvb, int length _U_, int *offsetp, proto_tree *t, guint byte_order)
10552 {
10553  proto_tree_add_uint_format_value(t, hf_x11_minor_opcode, tvb, *offsetp, 2, 3,
10554  "RedirectNotify (3)");
10555  proto_tree_add_item(t, hf_x11_present_RedirectNotify_update_window, tvb, *offsetp, 1, byte_order);
10556  *offsetp += 1;
10557  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
10558  *offsetp += 1;
10559  proto_tree_add_item(t, hf_x11_present_RedirectNotify_event, tvb, *offsetp, 4, byte_order);
10560  *offsetp += 4;
10561  proto_tree_add_item(t, hf_x11_present_RedirectNotify_event_window, tvb, *offsetp, 4, byte_order);
10562  *offsetp += 4;
10563  proto_tree_add_item(t, hf_x11_present_RedirectNotify_window, tvb, *offsetp, 4, byte_order);
10564  *offsetp += 4;
10565  proto_tree_add_item(t, hf_x11_present_RedirectNotify_pixmap, tvb, *offsetp, 4, byte_order);
10566  *offsetp += 4;
10567  proto_tree_add_item(t, hf_x11_present_RedirectNotify_serial, tvb, *offsetp, 4, byte_order);
10568  *offsetp += 4;
10569  proto_tree_add_item(t, hf_x11_present_RedirectNotify_valid_region, tvb, *offsetp, 4, byte_order);
10570  *offsetp += 4;
10571  proto_tree_add_item(t, hf_x11_present_RedirectNotify_update_region, tvb, *offsetp, 4, byte_order);
10572  *offsetp += 4;
10573  struct_xproto_RECTANGLE(tvb, offsetp, t, byte_order, 1);
10574  struct_xproto_RECTANGLE(tvb, offsetp, t, byte_order, 1);
10575  proto_tree_add_item(t, hf_x11_present_RedirectNotify_x_off, tvb, *offsetp, 2, byte_order);
10576  *offsetp += 2;
10577  proto_tree_add_item(t, hf_x11_present_RedirectNotify_y_off, tvb, *offsetp, 2, byte_order);
10578  *offsetp += 2;
10579  proto_tree_add_item(t, hf_x11_present_RedirectNotify_target_crtc, tvb, *offsetp, 4, byte_order);
10580  *offsetp += 4;
10581  proto_tree_add_item(t, hf_x11_present_RedirectNotify_wait_fence, tvb, *offsetp, 4, byte_order);
10582  *offsetp += 4;
10583  proto_tree_add_item(t, hf_x11_present_RedirectNotify_idle_fence, tvb, *offsetp, 4, byte_order);
10584  *offsetp += 4;
10585  proto_tree_add_item(t, hf_x11_present_RedirectNotify_options, tvb, *offsetp, 4, byte_order);
10586  *offsetp += 4;
10587  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 4, ENC_NA);
10588  *offsetp += 4;
10589  proto_tree_add_item(t, hf_x11_present_RedirectNotify_target_msc, tvb, *offsetp, 8, byte_order);
10590  *offsetp += 8;
10591  proto_tree_add_item(t, hf_x11_present_RedirectNotify_divisor, tvb, *offsetp, 8, byte_order);
10592  *offsetp += 8;
10593  proto_tree_add_item(t, hf_x11_present_RedirectNotify_remainder, tvb, *offsetp, 8, byte_order);
10594  *offsetp += 8;
10595  struct_present_Notify(tvb, offsetp, t, byte_order, (length - 104) / 8);
10596 }
10597 
10598 static const value_string present_extension_minor[] = {
10599  { 0, "QueryVersion" },
10600  { 1, "Pixmap" },
10601  { 2, "NotifyMSC" },
10602  { 3, "SelectInput" },
10603  { 4, "QueryCapabilities" },
10604  { 0, NULL }
10605 };
10606 const x11_event_info present_events[] = {
10607  { NULL, NULL }
10608 };
10609 static const x11_generic_event_info present_generic_events[] = {
10610  { 1, presentCompleteNotify },
10611  { 2, presentIdleNotify },
10612  { 3, presentRedirectNotify },
10613  { 0, NULL },
10614 };
10615 
10616 static x11_reply_info present_replies[] = {
10617  { 0, presentQueryVersion_Reply },
10618  { 4, presentQueryCapabilities_Reply },
10619  { 0, NULL }
10620 };
10621 
10622 static void dispatch_present(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
10623 {
10624  int minor, length;
10625  minor = CARD8(present_extension_minor);
10626  length = REQUEST_LENGTH();
10627 
10628  col_append_fstr(pinfo->cinfo, COL_INFO, "-%s",
10629  val_to_str(minor, present_extension_minor,
10630  "<Unknown opcode %d>"));
10631  switch (minor) {
10632  case 0:
10633  presentQueryVersion(tvb, pinfo, offsetp, t, byte_order, length);
10634  break;
10635  case 1:
10636  presentPixmap(tvb, pinfo, offsetp, t, byte_order, length);
10637  break;
10638  case 2:
10639  presentNotifyMSC(tvb, pinfo, offsetp, t, byte_order, length);
10640  break;
10641  case 3:
10642  presentSelectInput(tvb, pinfo, offsetp, t, byte_order, length);
10643  break;
10644  case 4:
10645  presentQueryCapabilities(tvb, pinfo, offsetp, t, byte_order, length);
10646  break;
10647  /* No need for a default case here, since Unknown is printed above,
10648  and UNDECODED() is taken care of by dissect_x11_request */
10649  }
10650 }
10651 
10652 static void register_present(void)
10653 {
10654  set_handler("Present", dispatch_present, present_errors, present_events, present_generic_events, present_replies);
10655 }
10656 
10657 static void randrQueryVersion(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
10658 {
10659  proto_tree_add_item(t, hf_x11_randr_QueryVersion_major_version, tvb, *offsetp, 4, byte_order);
10660  *offsetp += 4;
10661  proto_tree_add_item(t, hf_x11_randr_QueryVersion_minor_version, tvb, *offsetp, 4, byte_order);
10662  *offsetp += 4;
10663 }
10664 static void randrQueryVersion_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
10665 {
10666  int sequence_number;
10667 
10668  col_append_fstr(pinfo->cinfo, COL_INFO, "-QueryVersion");
10669 
10670  REPLY(reply);
10671  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
10672  *offsetp += 1;
10673  sequence_number = tvb_get_guint16(tvb, *offsetp, byte_order);
10674  proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
10675  "%d (randr-QueryVersion)", sequence_number);
10676  *offsetp += 2;
10677  proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
10678  *offsetp += 4;
10679  proto_tree_add_item(t, hf_x11_randr_QueryVersion_reply_major_version, tvb, *offsetp, 4, byte_order);
10680  *offsetp += 4;
10681  proto_tree_add_item(t, hf_x11_randr_QueryVersion_reply_minor_version, tvb, *offsetp, 4, byte_order);
10682  *offsetp += 4;
10683  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 16, ENC_NA);
10684  *offsetp += 16;
10685 }
10686 
10687 static void randrSetScreenConfig(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
10688 {
10689  proto_tree_add_item(t, hf_x11_randr_SetScreenConfig_window, tvb, *offsetp, 4, byte_order);
10690  *offsetp += 4;
10691  proto_tree_add_item(t, hf_x11_randr_SetScreenConfig_timestamp, tvb, *offsetp, 4, byte_order);
10692  *offsetp += 4;
10693  proto_tree_add_item(t, hf_x11_randr_SetScreenConfig_config_timestamp, tvb, *offsetp, 4, byte_order);
10694  *offsetp += 4;
10695  proto_tree_add_item(t, hf_x11_randr_SetScreenConfig_sizeID, tvb, *offsetp, 2, byte_order);
10696  *offsetp += 2;
10697  {
10698  int* const rotation_bits [] = {
10699  &hf_x11_randr_SetScreenConfig_rotation_mask_Rotate_0,
10700  &hf_x11_randr_SetScreenConfig_rotation_mask_Rotate_90,
10701  &hf_x11_randr_SetScreenConfig_rotation_mask_Rotate_180,
10702  &hf_x11_randr_SetScreenConfig_rotation_mask_Rotate_270,
10703  &hf_x11_randr_SetScreenConfig_rotation_mask_Reflect_X,
10704  &hf_x11_randr_SetScreenConfig_rotation_mask_Reflect_Y,
10705  NULL
10706  };
10707  proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_randr_SetScreenConfig_rotation, ett_x11_rectangle, rotation_bits, byte_order);
10708  }
10709  *offsetp += 2;
10710  proto_tree_add_item(t, hf_x11_randr_SetScreenConfig_rate, tvb, *offsetp, 2, byte_order);
10711  *offsetp += 2;
10712  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 2, ENC_NA);
10713  *offsetp += 2;
10714 }
10715 static void randrSetScreenConfig_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
10716 {
10717  int sequence_number;
10718 
10719  col_append_fstr(pinfo->cinfo, COL_INFO, "-SetScreenConfig");
10720 
10721  REPLY(reply);
10722  field8(tvb, offsetp, t, hf_x11_randr_SetScreenConfig_reply_status, byte_order);
10723  sequence_number = tvb_get_guint16(tvb, *offsetp, byte_order);
10724  proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
10725  "%d (randr-SetScreenConfig)", sequence_number);
10726  *offsetp += 2;
10727  proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
10728  *offsetp += 4;
10729  proto_tree_add_item(t, hf_x11_randr_SetScreenConfig_reply_new_timestamp, tvb, *offsetp, 4, byte_order);
10730  *offsetp += 4;
10731  proto_tree_add_item(t, hf_x11_randr_SetScreenConfig_reply_config_timestamp, tvb, *offsetp, 4, byte_order);
10732  *offsetp += 4;
10733  proto_tree_add_item(t, hf_x11_randr_SetScreenConfig_reply_root, tvb, *offsetp, 4, byte_order);
10734  *offsetp += 4;
10735  field16(tvb, offsetp, t, hf_x11_randr_SetScreenConfig_reply_subpixel_order, byte_order);
10736  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 10, ENC_NA);
10737  *offsetp += 10;
10738 }
10739 
10740 static void randrSelectInput(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
10741 {
10742  proto_tree_add_item(t, hf_x11_randr_SelectInput_window, tvb, *offsetp, 4, byte_order);
10743  *offsetp += 4;
10744  {
10745  int* const enable_bits [] = {
10746  &hf_x11_randr_SelectInput_enable_mask_ScreenChange,
10747  &hf_x11_randr_SelectInput_enable_mask_CrtcChange,
10748  &hf_x11_randr_SelectInput_enable_mask_OutputChange,
10749  &hf_x11_randr_SelectInput_enable_mask_OutputProperty,
10750  &hf_x11_randr_SelectInput_enable_mask_ProviderChange,
10751  &hf_x11_randr_SelectInput_enable_mask_ProviderProperty,
10752  &hf_x11_randr_SelectInput_enable_mask_ResourceChange,
10753  &hf_x11_randr_SelectInput_enable_mask_Lease,
10754  NULL
10755  };
10756  proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_randr_SelectInput_enable, ett_x11_rectangle, enable_bits, byte_order);
10757  }
10758  *offsetp += 2;
10759  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 2, ENC_NA);
10760  *offsetp += 2;
10761 }
10762 
10763 static void randrGetScreenInfo(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
10764 {
10765  proto_tree_add_item(t, hf_x11_randr_GetScreenInfo_window, tvb, *offsetp, 4, byte_order);
10766  *offsetp += 4;
10767 }
10768 static void randrGetScreenInfo_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
10769 {
10770  int sequence_number;
10771  int f_nSizes;
10772  int f_nInfo;
10773 
10774  col_append_fstr(pinfo->cinfo, COL_INFO, "-GetScreenInfo");
10775 
10776  REPLY(reply);
10777  {
10778  int* const rotations_bits [] = {
10779  &hf_x11_randr_GetScreenInfo_reply_rotations_mask_Rotate_0,
10780  &hf_x11_randr_GetScreenInfo_reply_rotations_mask_Rotate_90,
10781  &hf_x11_randr_GetScreenInfo_reply_rotations_mask_Rotate_180,
10782  &hf_x11_randr_GetScreenInfo_reply_rotations_mask_Rotate_270,
10783  &hf_x11_randr_GetScreenInfo_reply_rotations_mask_Reflect_X,
10784  &hf_x11_randr_GetScreenInfo_reply_rotations_mask_Reflect_Y,
10785  NULL
10786  };
10787  proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_randr_GetScreenInfo_reply_rotations, ett_x11_rectangle, rotations_bits, byte_order);
10788  }
10789  *offsetp += 1;
10790  sequence_number = tvb_get_guint16(tvb, *offsetp, byte_order);
10791  proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
10792  "%d (randr-GetScreenInfo)", sequence_number);
10793  *offsetp += 2;
10794  proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
10795  *offsetp += 4;
10796  proto_tree_add_item(t, hf_x11_randr_GetScreenInfo_reply_root, tvb, *offsetp, 4, byte_order);
10797  *offsetp += 4;
10798  proto_tree_add_item(t, hf_x11_randr_GetScreenInfo_reply_timestamp, tvb, *offsetp, 4, byte_order);
10799  *offsetp += 4;
10800  proto_tree_add_item(t, hf_x11_randr_GetScreenInfo_reply_config_timestamp, tvb, *offsetp, 4, byte_order);
10801  *offsetp += 4;
10802  f_nSizes = tvb_get_guint16(tvb, *offsetp, byte_order);
10803  proto_tree_add_item(t, hf_x11_randr_GetScreenInfo_reply_nSizes, tvb, *offsetp, 2, byte_order);
10804  *offsetp += 2;
10805  proto_tree_add_item(t, hf_x11_randr_GetScreenInfo_reply_sizeID, tvb, *offsetp, 2, byte_order);
10806  *offsetp += 2;
10807  {
10808  int* const rotation_bits [] = {
10809  &hf_x11_randr_GetScreenInfo_reply_rotation_mask_Rotate_0,
10810  &hf_x11_randr_GetScreenInfo_reply_rotation_mask_Rotate_90,
10811  &hf_x11_randr_GetScreenInfo_reply_rotation_mask_Rotate_180,
10812  &hf_x11_randr_GetScreenInfo_reply_rotation_mask_Rotate_270,
10813  &hf_x11_randr_GetScreenInfo_reply_rotation_mask_Reflect_X,
10814  &hf_x11_randr_GetScreenInfo_reply_rotation_mask_Reflect_Y,
10815  NULL
10816  };
10817  proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_randr_GetScreenInfo_reply_rotation, ett_x11_rectangle, rotation_bits, byte_order);
10818  }
10819  *offsetp += 2;
10820  proto_tree_add_item(t, hf_x11_randr_GetScreenInfo_reply_rate, tvb, *offsetp, 2, byte_order);
10821  *offsetp += 2;
10822  f_nInfo = tvb_get_guint16(tvb, *offsetp, byte_order);
10823  proto_tree_add_item(t, hf_x11_randr_GetScreenInfo_reply_nInfo, tvb, *offsetp, 2, byte_order);
10824  *offsetp += 2;
10825  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 2, ENC_NA);
10826  *offsetp += 2;
10827  struct_randr_ScreenSize(tvb, offsetp, t, byte_order, f_nSizes);
10828  struct_randr_RefreshRates(tvb, offsetp, t, byte_order, (f_nInfo - f_nSizes));
10829 }
10830 
10831 static void randrGetScreenSizeRange(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
10832 {
10833  proto_tree_add_item(t, hf_x11_randr_GetScreenSizeRange_window, tvb, *offsetp, 4, byte_order);
10834  *offsetp += 4;
10835 }
10836 static void randrGetScreenSizeRange_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
10837 {
10838  int sequence_number;
10839 
10840  col_append_fstr(pinfo->cinfo, COL_INFO, "-GetScreenSizeRange");
10841 
10842  REPLY(reply);
10843  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
10844  *offsetp += 1;
10845  sequence_number = tvb_get_guint16(tvb, *offsetp, byte_order);
10846  proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
10847  "%d (randr-GetScreenSizeRange)", sequence_number);
10848  *offsetp += 2;
10849  proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
10850  *offsetp += 4;
10851  proto_tree_add_item(t, hf_x11_randr_GetScreenSizeRange_reply_min_width, tvb, *offsetp, 2, byte_order);
10852  *offsetp += 2;
10853  proto_tree_add_item(t, hf_x11_randr_GetScreenSizeRange_reply_min_height, tvb, *offsetp, 2, byte_order);
10854  *offsetp += 2;
10855  proto_tree_add_item(t, hf_x11_randr_GetScreenSizeRange_reply_max_width, tvb, *offsetp, 2, byte_order);
10856  *offsetp += 2;
10857  proto_tree_add_item(t, hf_x11_randr_GetScreenSizeRange_reply_max_height, tvb, *offsetp, 2, byte_order);
10858  *offsetp += 2;
10859  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 16, ENC_NA);
10860  *offsetp += 16;
10861 }
10862 
10863 static void randrSetScreenSize(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
10864 {
10865  proto_tree_add_item(t, hf_x11_randr_SetScreenSize_window, tvb, *offsetp, 4, byte_order);
10866  *offsetp += 4;
10867  proto_tree_add_item(t, hf_x11_randr_SetScreenSize_width, tvb, *offsetp, 2, byte_order);
10868  *offsetp += 2;
10869  proto_tree_add_item(t, hf_x11_randr_SetScreenSize_height, tvb, *offsetp, 2, byte_order);
10870  *offsetp += 2;
10871  proto_tree_add_item(t, hf_x11_randr_SetScreenSize_mm_width, tvb, *offsetp, 4, byte_order);
10872  *offsetp += 4;
10873  proto_tree_add_item(t, hf_x11_randr_SetScreenSize_mm_height, tvb, *offsetp, 4, byte_order);
10874  *offsetp += 4;
10875 }
10876 
10877 static void randrGetScreenResources(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
10878 {
10879  proto_tree_add_item(t, hf_x11_randr_GetScreenResources_window, tvb, *offsetp, 4, byte_order);
10880  *offsetp += 4;
10881 }
10882 static void randrGetScreenResources_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
10883 {
10884  int sequence_number;
10885  int f_num_crtcs;
10886  int f_num_outputs;
10887  int f_num_modes;
10888  int f_names_len;
10889 
10890  col_append_fstr(pinfo->cinfo, COL_INFO, "-GetScreenResources");
10891 
10892  REPLY(reply);
10893  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
10894  *offsetp += 1;
10895  sequence_number = tvb_get_guint16(tvb, *offsetp, byte_order);
10896  proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
10897  "%d (randr-GetScreenResources)", sequence_number);
10898  *offsetp += 2;
10899  proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
10900  *offsetp += 4;
10901  proto_tree_add_item(t, hf_x11_randr_GetScreenResources_reply_timestamp, tvb, *offsetp, 4, byte_order);
10902  *offsetp += 4;
10903  proto_tree_add_item(t, hf_x11_randr_GetScreenResources_reply_config_timestamp, tvb, *offsetp, 4, byte_order);
10904  *offsetp += 4;
10905  f_num_crtcs = tvb_get_guint16(tvb, *offsetp, byte_order);
10906  proto_tree_add_item(t, hf_x11_randr_GetScreenResources_reply_num_crtcs, tvb, *offsetp, 2, byte_order);
10907  *offsetp += 2;
10908  f_num_outputs = tvb_get_guint16(tvb, *offsetp, byte_order);
10909  proto_tree_add_item(t, hf_x11_randr_GetScreenResources_reply_num_outputs, tvb, *offsetp, 2, byte_order);
10910  *offsetp += 2;
10911  f_num_modes = tvb_get_guint16(tvb, *offsetp, byte_order);
10912  proto_tree_add_item(t, hf_x11_randr_GetScreenResources_reply_num_modes, tvb, *offsetp, 2, byte_order);
10913  *offsetp += 2;
10914  f_names_len = tvb_get_guint16(tvb, *offsetp, byte_order);
10915  proto_tree_add_item(t, hf_x11_randr_GetScreenResources_reply_names_len, tvb, *offsetp, 2, byte_order);
10916  *offsetp += 2;
10917  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 8, ENC_NA);
10918  *offsetp += 8;
10919  listOfCard32(tvb, offsetp, t, hf_x11_randr_GetScreenResources_reply_crtcs, hf_x11_randr_GetScreenResources_reply_crtcs_item, f_num_crtcs, byte_order);
10920  listOfCard32(tvb, offsetp, t, hf_x11_randr_GetScreenResources_reply_outputs, hf_x11_randr_GetScreenResources_reply_outputs_item, f_num_outputs, byte_order);
10921  struct_randr_ModeInfo(tvb, offsetp, t, byte_order, f_num_modes);
10922  listOfByte(tvb, offsetp, t, hf_x11_randr_GetScreenResources_reply_names, f_names_len, byte_order);
10923 }
10924 
10925 static void randrGetOutputInfo(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
10926 {
10927  proto_tree_add_item(t, hf_x11_randr_GetOutputInfo_output, tvb, *offsetp, 4, byte_order);
10928  *offsetp += 4;
10929  proto_tree_add_item(t, hf_x11_randr_GetOutputInfo_config_timestamp, tvb, *offsetp, 4, byte_order);
10930  *offsetp += 4;
10931 }
10932 static void randrGetOutputInfo_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
10933 {
10934  int sequence_number;
10935  int f_num_crtcs;
10936  int f_num_modes;
10937  int f_num_clones;
10938  int f_name_len;
10939 
10940  col_append_fstr(pinfo->cinfo, COL_INFO, "-GetOutputInfo");
10941 
10942  REPLY(reply);
10943  field8(tvb, offsetp, t, hf_x11_randr_GetOutputInfo_reply_status, byte_order);
10944  sequence_number = tvb_get_guint16(tvb, *offsetp, byte_order);
10945  proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
10946  "%d (randr-GetOutputInfo)", sequence_number);
10947  *offsetp += 2;
10948  proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
10949  *offsetp += 4;
10950  proto_tree_add_item(t, hf_x11_randr_GetOutputInfo_reply_timestamp, tvb, *offsetp, 4, byte_order);
10951  *offsetp += 4;
10952  proto_tree_add_item(t, hf_x11_randr_GetOutputInfo_reply_crtc, tvb, *offsetp, 4, byte_order);
10953  *offsetp += 4;
10954  proto_tree_add_item(t, hf_x11_randr_GetOutputInfo_reply_mm_width, tvb, *offsetp, 4, byte_order);
10955  *offsetp += 4;
10956  proto_tree_add_item(t, hf_x11_randr_GetOutputInfo_reply_mm_height, tvb, *offsetp, 4, byte_order);
10957  *offsetp += 4;
10958  field8(tvb, offsetp, t, hf_x11_randr_GetOutputInfo_reply_connection, byte_order);
10959  field8(tvb, offsetp, t, hf_x11_randr_GetOutputInfo_reply_subpixel_order, byte_order);
10960  f_num_crtcs = tvb_get_guint16(tvb, *offsetp, byte_order);
10961  proto_tree_add_item(t, hf_x11_randr_GetOutputInfo_reply_num_crtcs, tvb, *offsetp, 2, byte_order);
10962  *offsetp += 2;
10963  f_num_modes = tvb_get_guint16(tvb, *offsetp, byte_order);
10964  proto_tree_add_item(t, hf_x11_randr_GetOutputInfo_reply_num_modes, tvb, *offsetp, 2, byte_order);
10965  *offsetp += 2;
10966  proto_tree_add_item(t, hf_x11_randr_GetOutputInfo_reply_num_preferred, tvb, *offsetp, 2, byte_order);
10967  *offsetp += 2;
10968  f_num_clones = tvb_get_guint16(tvb, *offsetp, byte_order);
10969  proto_tree_add_item(t, hf_x11_randr_GetOutputInfo_reply_num_clones, tvb, *offsetp, 2, byte_order);
10970  *offsetp += 2;
10971  f_name_len = tvb_get_guint16(tvb, *offsetp, byte_order);
10972  proto_tree_add_item(t, hf_x11_randr_GetOutputInfo_reply_name_len, tvb, *offsetp, 2, byte_order);
10973  *offsetp += 2;
10974  listOfCard32(tvb, offsetp, t, hf_x11_randr_GetOutputInfo_reply_crtcs, hf_x11_randr_GetOutputInfo_reply_crtcs_item, f_num_crtcs, byte_order);
10975  listOfCard32(tvb, offsetp, t, hf_x11_randr_GetOutputInfo_reply_modes, hf_x11_randr_GetOutputInfo_reply_modes_item, f_num_modes, byte_order);
10976  listOfCard32(tvb, offsetp, t, hf_x11_randr_GetOutputInfo_reply_clones, hf_x11_randr_GetOutputInfo_reply_clones_item, f_num_clones, byte_order);
10977  listOfByte(tvb, offsetp, t, hf_x11_randr_GetOutputInfo_reply_name, f_name_len, byte_order);
10978 }
10979 
10980 static void randrListOutputProperties(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
10981 {
10982  proto_tree_add_item(t, hf_x11_randr_ListOutputProperties_output, tvb, *offsetp, 4, byte_order);
10983  *offsetp += 4;
10984 }
10985 static void randrListOutputProperties_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
10986 {
10987  int sequence_number;
10988  int f_num_atoms;
10989 
10990  col_append_fstr(pinfo->cinfo, COL_INFO, "-ListOutputProperties");
10991 
10992  REPLY(reply);
10993  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
10994  *offsetp += 1;
10995  sequence_number = tvb_get_guint16(tvb, *offsetp, byte_order);
10996  proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
10997  "%d (randr-ListOutputProperties)", sequence_number);
10998  *offsetp += 2;
10999  proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
11000  *offsetp += 4;
11001  f_num_atoms = tvb_get_guint16(tvb, *offsetp, byte_order);
11002  proto_tree_add_item(t, hf_x11_randr_ListOutputProperties_reply_num_atoms, tvb, *offsetp, 2, byte_order);
11003  *offsetp += 2;
11004  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 22, ENC_NA);
11005  *offsetp += 22;
11006  listOfCard32(tvb, offsetp, t, hf_x11_randr_ListOutputProperties_reply_atoms, hf_x11_randr_ListOutputProperties_reply_atoms_item, f_num_atoms, byte_order);
11007 }
11008 
11009 static void randrQueryOutputProperty(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
11010 {
11011  proto_tree_add_item(t, hf_x11_randr_QueryOutputProperty_output, tvb, *offsetp, 4, byte_order);
11012  *offsetp += 4;
11013  proto_tree_add_item(t, hf_x11_randr_QueryOutputProperty_property, tvb, *offsetp, 4, byte_order);
11014  *offsetp += 4;
11015 }
11016 static void randrQueryOutputProperty_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
11017 {
11018  int sequence_number;
11019  int f_length;
11020 
11021  col_append_fstr(pinfo->cinfo, COL_INFO, "-QueryOutputProperty");
11022 
11023  REPLY(reply);
11024  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
11025  *offsetp += 1;
11026  sequence_number = tvb_get_guint16(tvb, *offsetp, byte_order);
11027  proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
11028  "%d (randr-QueryOutputProperty)", sequence_number);
11029  *offsetp += 2;
11030  f_length = tvb_get_guint32(tvb, *offsetp, byte_order);
11031  proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
11032  *offsetp += 4;
11033  proto_tree_add_item(t, hf_x11_randr_QueryOutputProperty_reply_pending, tvb, *offsetp, 1, byte_order);
11034  *offsetp += 1;
11035  proto_tree_add_item(t, hf_x11_randr_QueryOutputProperty_reply_range, tvb, *offsetp, 1, byte_order);
11036  *offsetp += 1;
11037  proto_tree_add_item(t, hf_x11_randr_QueryOutputProperty_reply_immutable, tvb, *offsetp, 1, byte_order);
11038  *offsetp += 1;
11039  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 21, ENC_NA);
11040  *offsetp += 21;
11041  listOfInt32(tvb, offsetp, t, hf_x11_randr_QueryOutputProperty_reply_validValues, hf_x11_randr_QueryOutputProperty_reply_validValues_item, f_length, byte_order);
11042 }
11043 
11044 static void randrConfigureOutputProperty(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
11045 {
11046  proto_tree_add_item(t, hf_x11_randr_ConfigureOutputProperty_output, tvb, *offsetp, 4, byte_order);
11047  *offsetp += 4;
11048  proto_tree_add_item(t, hf_x11_randr_ConfigureOutputProperty_property, tvb, *offsetp, 4, byte_order);
11049  *offsetp += 4;
11050  proto_tree_add_item(t, hf_x11_randr_ConfigureOutputProperty_pending, tvb, *offsetp, 1, byte_order);
11051  *offsetp += 1;
11052  proto_tree_add_item(t, hf_x11_randr_ConfigureOutputProperty_range, tvb, *offsetp, 1, byte_order);
11053  *offsetp += 1;
11054  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 2, ENC_NA);
11055  *offsetp += 2;
11056  listOfInt32(tvb, offsetp, t, hf_x11_randr_ConfigureOutputProperty_values, hf_x11_randr_ConfigureOutputProperty_values_item, (length - 16) / 4, byte_order);
11057 }
11058 
11059 static void randrChangeOutputProperty(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
11060 {
11061  int f_format;
11062  int f_num_units;
11063  proto_tree_add_item(t, hf_x11_randr_ChangeOutputProperty_output, tvb, *offsetp, 4, byte_order);
11064  *offsetp += 4;
11065  proto_tree_add_item(t, hf_x11_randr_ChangeOutputProperty_property, tvb, *offsetp, 4, byte_order);
11066  *offsetp += 4;
11067  proto_tree_add_item(t, hf_x11_randr_ChangeOutputProperty_type, tvb, *offsetp, 4, byte_order);
11068  *offsetp += 4;
11069  f_format = tvb_get_guint8(tvb, *offsetp);
11070  proto_tree_add_item(t, hf_x11_randr_ChangeOutputProperty_format, tvb, *offsetp, 1, byte_order);
11071  *offsetp += 1;
11072  field8(tvb, offsetp, t, hf_x11_randr_ChangeOutputProperty_mode, byte_order);
11073  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 2, ENC_NA);
11074  *offsetp += 2;
11075  f_num_units = tvb_get_guint32(tvb, *offsetp, byte_order);
11076  proto_tree_add_item(t, hf_x11_randr_ChangeOutputProperty_num_units, tvb, *offsetp, 4, byte_order);
11077  *offsetp += 4;
11078  listOfByte(tvb, offsetp, t, hf_x11_randr_ChangeOutputProperty_data, ((f_num_units * f_format) / 8), byte_order);
11079  length -= ((f_num_units * f_format) / 8) * 1;
11080 }
11081 
11082 static void randrDeleteOutputProperty(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
11083 {
11084  proto_tree_add_item(t, hf_x11_randr_DeleteOutputProperty_output, tvb, *offsetp, 4, byte_order);
11085  *offsetp += 4;
11086  proto_tree_add_item(t, hf_x11_randr_DeleteOutputProperty_property, tvb, *offsetp, 4, byte_order);
11087  *offsetp += 4;
11088 }
11089 
11090 static void randrGetOutputProperty(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
11091 {
11092  proto_tree_add_item(t, hf_x11_randr_GetOutputProperty_output, tvb, *offsetp, 4, byte_order);
11093  *offsetp += 4;
11094  proto_tree_add_item(t, hf_x11_randr_GetOutputProperty_property, tvb, *offsetp, 4, byte_order);
11095  *offsetp += 4;
11096  field32(tvb, offsetp, t, hf_x11_randr_GetOutputProperty_type, byte_order);
11097  proto_tree_add_item(t, hf_x11_randr_GetOutputProperty_long_offset, tvb, *offsetp, 4, byte_order);
11098  *offsetp += 4;
11099  proto_tree_add_item(t, hf_x11_randr_GetOutputProperty_long_length, tvb, *offsetp, 4, byte_order);
11100  *offsetp += 4;
11101  proto_tree_add_item(t, hf_x11_randr_GetOutputProperty_delete, tvb, *offsetp, 1, byte_order);
11102  *offsetp += 1;
11103  proto_tree_add_item(t, hf_x11_randr_GetOutputProperty_pending, tvb, *offsetp, 1, byte_order);
11104  *offsetp += 1;
11105  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 2, ENC_NA);
11106  *offsetp += 2;
11107 }
11108 static void randrGetOutputProperty_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
11109 {
11110  int sequence_number;
11111  int f_format;
11112  int f_num_items;
11113 
11114  col_append_fstr(pinfo->cinfo, COL_INFO, "-GetOutputProperty");
11115 
11116  REPLY(reply);
11117  f_format = tvb_get_guint8(tvb, *offsetp);
11118  proto_tree_add_item(t, hf_x11_randr_GetOutputProperty_reply_format, tvb, *offsetp, 1, byte_order);
11119  *offsetp += 1;
11120  sequence_number = tvb_get_guint16(tvb, *offsetp, byte_order);
11121  proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
11122  "%d (randr-GetOutputProperty)", sequence_number);
11123  *offsetp += 2;
11124  proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
11125  *offsetp += 4;
11126  field32(tvb, offsetp, t, hf_x11_randr_GetOutputProperty_reply_type, byte_order);
11127  proto_tree_add_item(t, hf_x11_randr_GetOutputProperty_reply_bytes_after, tvb, *offsetp, 4, byte_order);
11128  *offsetp += 4;
11129  f_num_items = tvb_get_guint32(tvb, *offsetp, byte_order);
11130  proto_tree_add_item(t, hf_x11_randr_GetOutputProperty_reply_num_items, tvb, *offsetp, 4, byte_order);
11131  *offsetp += 4;
11132  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 12, ENC_NA);
11133  *offsetp += 12;
11134  listOfByte(tvb, offsetp, t, hf_x11_randr_GetOutputProperty_reply_data, (f_num_items * (f_format / 8)), byte_order);
11135 }
11136 
11137 static void randrCreateMode(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
11138 {
11139  proto_tree_add_item(t, hf_x11_randr_CreateMode_window, tvb, *offsetp, 4, byte_order);
11140  *offsetp += 4;
11141  struct_randr_ModeInfo(tvb, offsetp, t, byte_order, 1);
11142  listOfByte(tvb, offsetp, t, hf_x11_randr_CreateMode_name, (length - 40) / 1, byte_order);
11143 }
11144 static void randrCreateMode_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
11145 {
11146  int sequence_number;
11147 
11148  col_append_fstr(pinfo->cinfo, COL_INFO, "-CreateMode");
11149 
11150  REPLY(reply);
11151  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
11152  *offsetp += 1;
11153  sequence_number = tvb_get_guint16(tvb, *offsetp, byte_order);
11154  proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
11155  "%d (randr-CreateMode)", sequence_number);
11156  *offsetp += 2;
11157  proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
11158  *offsetp += 4;
11159  proto_tree_add_item(t, hf_x11_randr_CreateMode_reply_mode, tvb, *offsetp, 4, byte_order);
11160  *offsetp += 4;
11161  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 20, ENC_NA);
11162  *offsetp += 20;
11163 }
11164 
11165 static void randrDestroyMode(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
11166 {
11167  proto_tree_add_item(t, hf_x11_randr_DestroyMode_mode, tvb, *offsetp, 4, byte_order);
11168  *offsetp += 4;
11169 }
11170 
11171 static void randrAddOutputMode(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
11172 {
11173  proto_tree_add_item(t, hf_x11_randr_AddOutputMode_output, tvb, *offsetp, 4, byte_order);
11174  *offsetp += 4;
11175  proto_tree_add_item(t, hf_x11_randr_AddOutputMode_mode, tvb, *offsetp, 4, byte_order);
11176  *offsetp += 4;
11177 }
11178 
11179 static void randrDeleteOutputMode(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
11180 {
11181  proto_tree_add_item(t, hf_x11_randr_DeleteOutputMode_output, tvb, *offsetp, 4, byte_order);
11182  *offsetp += 4;
11183  proto_tree_add_item(t, hf_x11_randr_DeleteOutputMode_mode, tvb, *offsetp, 4, byte_order);
11184  *offsetp += 4;
11185 }
11186 
11187 static void randrGetCrtcInfo(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
11188 {
11189  proto_tree_add_item(t, hf_x11_randr_GetCrtcInfo_crtc, tvb, *offsetp, 4, byte_order);
11190  *offsetp += 4;
11191  proto_tree_add_item(t, hf_x11_randr_GetCrtcInfo_config_timestamp, tvb, *offsetp, 4, byte_order);
11192  *offsetp += 4;
11193 }
11194 static void randrGetCrtcInfo_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
11195 {
11196  int sequence_number;
11197  int f_num_outputs;
11198  int f_num_possible_outputs;
11199 
11200  col_append_fstr(pinfo->cinfo, COL_INFO, "-GetCrtcInfo");
11201 
11202  REPLY(reply);
11203  field8(tvb, offsetp, t, hf_x11_randr_GetCrtcInfo_reply_status, byte_order);
11204  sequence_number = tvb_get_guint16(tvb, *offsetp, byte_order);
11205  proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
11206  "%d (randr-GetCrtcInfo)", sequence_number);
11207  *offsetp += 2;
11208  proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
11209  *offsetp += 4;
11210  proto_tree_add_item(t, hf_x11_randr_GetCrtcInfo_reply_timestamp, tvb, *offsetp, 4, byte_order);
11211  *offsetp += 4;
11212  proto_tree_add_item(t, hf_x11_randr_GetCrtcInfo_reply_x, tvb, *offsetp, 2, byte_order);
11213  *offsetp += 2;
11214  proto_tree_add_item(t, hf_x11_randr_GetCrtcInfo_reply_y, tvb, *offsetp, 2, byte_order);
11215  *offsetp += 2;
11216  proto_tree_add_item(t, hf_x11_randr_GetCrtcInfo_reply_width, tvb, *offsetp, 2, byte_order);
11217  *offsetp += 2;
11218  proto_tree_add_item(t, hf_x11_randr_GetCrtcInfo_reply_height, tvb, *offsetp, 2, byte_order);
11219  *offsetp += 2;
11220  proto_tree_add_item(t, hf_x11_randr_GetCrtcInfo_reply_mode, tvb, *offsetp, 4, byte_order);
11221  *offsetp += 4;
11222  {
11223  int* const rotation_bits [] = {
11224  &hf_x11_randr_GetCrtcInfo_reply_rotation_mask_Rotate_0,
11225  &hf_x11_randr_GetCrtcInfo_reply_rotation_mask_Rotate_90,
11226  &hf_x11_randr_GetCrtcInfo_reply_rotation_mask_Rotate_180,
11227  &hf_x11_randr_GetCrtcInfo_reply_rotation_mask_Rotate_270,
11228  &hf_x11_randr_GetCrtcInfo_reply_rotation_mask_Reflect_X,
11229  &hf_x11_randr_GetCrtcInfo_reply_rotation_mask_Reflect_Y,
11230  NULL
11231  };
11232  proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_randr_GetCrtcInfo_reply_rotation, ett_x11_rectangle, rotation_bits, byte_order);
11233  }
11234  *offsetp += 2;
11235  {
11236  int* const rotations_bits [] = {
11237  &hf_x11_randr_GetCrtcInfo_reply_rotations_mask_Rotate_0,
11238  &hf_x11_randr_GetCrtcInfo_reply_rotations_mask_Rotate_90,
11239  &hf_x11_randr_GetCrtcInfo_reply_rotations_mask_Rotate_180,
11240  &hf_x11_randr_GetCrtcInfo_reply_rotations_mask_Rotate_270,
11241  &hf_x11_randr_GetCrtcInfo_reply_rotations_mask_Reflect_X,
11242  &hf_x11_randr_GetCrtcInfo_reply_rotations_mask_Reflect_Y,
11243  NULL
11244  };
11245  proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_randr_GetCrtcInfo_reply_rotations, ett_x11_rectangle, rotations_bits, byte_order);
11246  }
11247  *offsetp += 2;
11248  f_num_outputs = tvb_get_guint16(tvb, *offsetp, byte_order);
11249  proto_tree_add_item(t, hf_x11_randr_GetCrtcInfo_reply_num_outputs, tvb, *offsetp, 2, byte_order);
11250  *offsetp += 2;
11251  f_num_possible_outputs = tvb_get_guint16(tvb, *offsetp, byte_order);
11252  proto_tree_add_item(t, hf_x11_randr_GetCrtcInfo_reply_num_possible_outputs, tvb, *offsetp, 2, byte_order);
11253  *offsetp += 2;
11254  listOfCard32(tvb, offsetp, t, hf_x11_randr_GetCrtcInfo_reply_outputs, hf_x11_randr_GetCrtcInfo_reply_outputs_item, f_num_outputs, byte_order);
11255  listOfCard32(tvb, offsetp, t, hf_x11_randr_GetCrtcInfo_reply_possible, hf_x11_randr_GetCrtcInfo_reply_possible_item, f_num_possible_outputs, byte_order);
11256 }
11257 
11258 static void randrSetCrtcConfig(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
11259 {
11260  proto_tree_add_item(t, hf_x11_randr_SetCrtcConfig_crtc, tvb, *offsetp, 4, byte_order);
11261  *offsetp += 4;
11262  proto_tree_add_item(t, hf_x11_randr_SetCrtcConfig_timestamp, tvb, *offsetp, 4, byte_order);
11263  *offsetp += 4;
11264  proto_tree_add_item(t, hf_x11_randr_SetCrtcConfig_config_timestamp, tvb, *offsetp, 4, byte_order);
11265  *offsetp += 4;
11266  proto_tree_add_item(t, hf_x11_randr_SetCrtcConfig_x, tvb, *offsetp, 2, byte_order);
11267  *offsetp += 2;
11268  proto_tree_add_item(t, hf_x11_randr_SetCrtcConfig_y, tvb, *offsetp, 2, byte_order);
11269  *offsetp += 2;
11270  proto_tree_add_item(t, hf_x11_randr_SetCrtcConfig_mode, tvb, *offsetp, 4, byte_order);
11271  *offsetp += 4;
11272  {
11273  int* const rotation_bits [] = {
11274  &hf_x11_randr_SetCrtcConfig_rotation_mask_Rotate_0,
11275  &hf_x11_randr_SetCrtcConfig_rotation_mask_Rotate_90,
11276  &hf_x11_randr_SetCrtcConfig_rotation_mask_Rotate_180,
11277  &hf_x11_randr_SetCrtcConfig_rotation_mask_Rotate_270,
11278  &hf_x11_randr_SetCrtcConfig_rotation_mask_Reflect_X,
11279  &hf_x11_randr_SetCrtcConfig_rotation_mask_Reflect_Y,
11280  NULL
11281  };
11282  proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_randr_SetCrtcConfig_rotation, ett_x11_rectangle, rotation_bits, byte_order);
11283  }
11284  *offsetp += 2;
11285  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 2, ENC_NA);
11286  *offsetp += 2;
11287  listOfCard32(tvb, offsetp, t, hf_x11_randr_SetCrtcConfig_outputs, hf_x11_randr_SetCrtcConfig_outputs_item, (length - 28) / 4, byte_order);
11288 }
11289 static void randrSetCrtcConfig_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
11290 {
11291  int sequence_number;
11292 
11293  col_append_fstr(pinfo->cinfo, COL_INFO, "-SetCrtcConfig");
11294 
11295  REPLY(reply);
11296  field8(tvb, offsetp, t, hf_x11_randr_SetCrtcConfig_reply_status, byte_order);
11297  sequence_number = tvb_get_guint16(tvb, *offsetp, byte_order);
11298  proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
11299  "%d (randr-SetCrtcConfig)", sequence_number);
11300  *offsetp += 2;
11301  proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
11302  *offsetp += 4;
11303  proto_tree_add_item(t, hf_x11_randr_SetCrtcConfig_reply_timestamp, tvb, *offsetp, 4, byte_order);
11304  *offsetp += 4;
11305  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 20, ENC_NA);
11306  *offsetp += 20;
11307 }
11308 
11309 static void randrGetCrtcGammaSize(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
11310 {
11311  proto_tree_add_item(t, hf_x11_randr_GetCrtcGammaSize_crtc, tvb, *offsetp, 4, byte_order);
11312  *offsetp += 4;
11313 }
11314 static void randrGetCrtcGammaSize_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
11315 {
11316  int sequence_number;
11317 
11318  col_append_fstr(pinfo->cinfo, COL_INFO, "-GetCrtcGammaSize");
11319 
11320  REPLY(reply);
11321  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
11322  *offsetp += 1;
11323  sequence_number = tvb_get_guint16(tvb, *offsetp, byte_order);
11324  proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
11325  "%d (randr-GetCrtcGammaSize)", sequence_number);
11326  *offsetp += 2;
11327  proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
11328  *offsetp += 4;
11329  proto_tree_add_item(t, hf_x11_randr_GetCrtcGammaSize_reply_size, tvb, *offsetp, 2, byte_order);
11330  *offsetp += 2;
11331  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 22, ENC_NA);
11332  *offsetp += 22;
11333 }
11334 
11335 static void randrGetCrtcGamma(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
11336 {
11337  proto_tree_add_item(t, hf_x11_randr_GetCrtcGamma_crtc, tvb, *offsetp, 4, byte_order);
11338  *offsetp += 4;
11339 }
11340 static void randrGetCrtcGamma_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
11341 {
11342  int sequence_number;
11343  int f_size;
11344 
11345  col_append_fstr(pinfo->cinfo, COL_INFO, "-GetCrtcGamma");
11346 
11347  REPLY(reply);
11348  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
11349  *offsetp += 1;
11350  sequence_number = tvb_get_guint16(tvb, *offsetp, byte_order);
11351  proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
11352  "%d (randr-GetCrtcGamma)", sequence_number);
11353  *offsetp += 2;
11354  proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
11355  *offsetp += 4;
11356  f_size = tvb_get_guint16(tvb, *offsetp, byte_order);
11357  proto_tree_add_item(t, hf_x11_randr_GetCrtcGamma_reply_size, tvb, *offsetp, 2, byte_order);
11358  *offsetp += 2;
11359  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 22, ENC_NA);
11360  *offsetp += 22;
11361  listOfCard16(tvb, offsetp, t, hf_x11_randr_GetCrtcGamma_reply_red, hf_x11_randr_GetCrtcGamma_reply_red_item, f_size, byte_order);
11362  listOfCard16(tvb, offsetp, t, hf_x11_randr_GetCrtcGamma_reply_green, hf_x11_randr_GetCrtcGamma_reply_green_item, f_size, byte_order);
11363  listOfCard16(tvb, offsetp, t, hf_x11_randr_GetCrtcGamma_reply_blue, hf_x11_randr_GetCrtcGamma_reply_blue_item, f_size, byte_order);
11364 }
11365 
11366 static void randrSetCrtcGamma(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
11367 {
11368  int f_size;
11369  proto_tree_add_item(t, hf_x11_randr_SetCrtcGamma_crtc, tvb, *offsetp, 4, byte_order);
11370  *offsetp += 4;
11371  f_size = tvb_get_guint16(tvb, *offsetp, byte_order);
11372  proto_tree_add_item(t, hf_x11_randr_SetCrtcGamma_size, tvb, *offsetp, 2, byte_order);
11373  *offsetp += 2;
11374  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 2, ENC_NA);
11375  *offsetp += 2;
11376  listOfCard16(tvb, offsetp, t, hf_x11_randr_SetCrtcGamma_red, hf_x11_randr_SetCrtcGamma_red_item, f_size, byte_order);
11377  length -= f_size * 2;
11378  listOfCard16(tvb, offsetp, t, hf_x11_randr_SetCrtcGamma_green, hf_x11_randr_SetCrtcGamma_green_item, f_size, byte_order);
11379  length -= f_size * 2;
11380  listOfCard16(tvb, offsetp, t, hf_x11_randr_SetCrtcGamma_blue, hf_x11_randr_SetCrtcGamma_blue_item, f_size, byte_order);
11381  length -= f_size * 2;
11382 }
11383 
11384 static void randrGetScreenResourcesCurrent(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
11385 {
11386  proto_tree_add_item(t, hf_x11_randr_GetScreenResourcesCurrent_window, tvb, *offsetp, 4, byte_order);
11387  *offsetp += 4;
11388 }
11389 static void randrGetScreenResourcesCurrent_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
11390 {
11391  int sequence_number;
11392  int f_num_crtcs;
11393  int f_num_outputs;
11394  int f_num_modes;
11395  int f_names_len;
11396 
11397  col_append_fstr(pinfo->cinfo, COL_INFO, "-GetScreenResourcesCurrent");
11398 
11399  REPLY(reply);
11400  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
11401  *offsetp += 1;
11402  sequence_number = tvb_get_guint16(tvb, *offsetp, byte_order);
11403  proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
11404  "%d (randr-GetScreenResourcesCurrent)", sequence_number);
11405  *offsetp += 2;
11406  proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
11407  *offsetp += 4;
11408  proto_tree_add_item(t, hf_x11_randr_GetScreenResourcesCurrent_reply_timestamp, tvb, *offsetp, 4, byte_order);
11409  *offsetp += 4;
11410  proto_tree_add_item(t, hf_x11_randr_GetScreenResourcesCurrent_reply_config_timestamp, tvb, *offsetp, 4, byte_order);
11411  *offsetp += 4;
11412  f_num_crtcs = tvb_get_guint16(tvb, *offsetp, byte_order);
11413  proto_tree_add_item(t, hf_x11_randr_GetScreenResourcesCurrent_reply_num_crtcs, tvb, *offsetp, 2, byte_order);
11414  *offsetp += 2;
11415  f_num_outputs = tvb_get_guint16(tvb, *offsetp, byte_order);
11416  proto_tree_add_item(t, hf_x11_randr_GetScreenResourcesCurrent_reply_num_outputs, tvb, *offsetp, 2, byte_order);
11417  *offsetp += 2;
11418  f_num_modes = tvb_get_guint16(tvb, *offsetp, byte_order);
11419  proto_tree_add_item(t, hf_x11_randr_GetScreenResourcesCurrent_reply_num_modes, tvb, *offsetp, 2, byte_order);
11420  *offsetp += 2;
11421  f_names_len = tvb_get_guint16(tvb, *offsetp, byte_order);
11422  proto_tree_add_item(t, hf_x11_randr_GetScreenResourcesCurrent_reply_names_len, tvb, *offsetp, 2, byte_order);
11423  *offsetp += 2;
11424  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 8, ENC_NA);
11425  *offsetp += 8;
11426  listOfCard32(tvb, offsetp, t, hf_x11_randr_GetScreenResourcesCurrent_reply_crtcs, hf_x11_randr_GetScreenResourcesCurrent_reply_crtcs_item, f_num_crtcs, byte_order);
11427  listOfCard32(tvb, offsetp, t, hf_x11_randr_GetScreenResourcesCurrent_reply_outputs, hf_x11_randr_GetScreenResourcesCurrent_reply_outputs_item, f_num_outputs, byte_order);
11428  struct_randr_ModeInfo(tvb, offsetp, t, byte_order, f_num_modes);
11429  listOfByte(tvb, offsetp, t, hf_x11_randr_GetScreenResourcesCurrent_reply_names, f_names_len, byte_order);
11430 }
11431 
11432 static void randrSetCrtcTransform(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
11433 {
11434  int f_filter_len;
11435  proto_tree_add_item(t, hf_x11_randr_SetCrtcTransform_crtc, tvb, *offsetp, 4, byte_order);
11436  *offsetp += 4;
11437  struct_render_TRANSFORM(tvb, offsetp, t, byte_order, 1);
11438  f_filter_len = tvb_get_guint16(tvb, *offsetp, byte_order);
11439  proto_tree_add_item(t, hf_x11_randr_SetCrtcTransform_filter_len, tvb, *offsetp, 2, byte_order);
11440  *offsetp += 2;
11441  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 2, ENC_NA);
11442  *offsetp += 2;
11443  listOfByte(tvb, offsetp, t, hf_x11_randr_SetCrtcTransform_filter_name, f_filter_len, byte_order);
11444  length -= f_filter_len * 1;
11445  if (*offsetp % 4) {
11446  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, (4 - *offsetp % 4), ENC_NA);
11447  *offsetp += (4 - *offsetp % 4);
11448  }
11449  length = ((length + 3) & ~3);
11450  listOfInt32(tvb, offsetp, t, hf_x11_randr_SetCrtcTransform_filter_params, hf_x11_randr_SetCrtcTransform_filter_params_item, (length - 48) / 4, byte_order);
11451 }
11452 
11453 static void randrGetCrtcTransform(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
11454 {
11455  proto_tree_add_item(t, hf_x11_randr_GetCrtcTransform_crtc, tvb, *offsetp, 4, byte_order);
11456  *offsetp += 4;
11457 }
11458 static void randrGetCrtcTransform_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
11459 {
11460  int sequence_number;
11461  int f_pending_len;
11462  int f_pending_nparams;
11463  int f_current_len;
11464  int f_current_nparams;
11465 
11466  col_append_fstr(pinfo->cinfo, COL_INFO, "-GetCrtcTransform");
11467 
11468  REPLY(reply);
11469  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
11470  *offsetp += 1;
11471  sequence_number = tvb_get_guint16(tvb, *offsetp, byte_order);
11472  proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
11473  "%d (randr-GetCrtcTransform)", sequence_number);
11474  *offsetp += 2;
11475  proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
11476  *offsetp += 4;
11477  struct_render_TRANSFORM(tvb, offsetp, t, byte_order, 1);
11478  proto_tree_add_item(t, hf_x11_randr_GetCrtcTransform_reply_has_transforms, tvb, *offsetp, 1, byte_order);
11479  *offsetp += 1;
11480  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 3, ENC_NA);
11481  *offsetp += 3;
11482  struct_render_TRANSFORM(tvb, offsetp, t, byte_order, 1);
11483  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 4, ENC_NA);
11484  *offsetp += 4;
11485  f_pending_len = tvb_get_guint16(tvb, *offsetp, byte_order);
11486  proto_tree_add_item(t, hf_x11_randr_GetCrtcTransform_reply_pending_len, tvb, *offsetp, 2, byte_order);
11487  *offsetp += 2;
11488  f_pending_nparams = tvb_get_guint16(tvb, *offsetp, byte_order);
11489  proto_tree_add_item(t, hf_x11_randr_GetCrtcTransform_reply_pending_nparams, tvb, *offsetp, 2, byte_order);
11490  *offsetp += 2;
11491  f_current_len = tvb_get_guint16(tvb, *offsetp, byte_order);
11492  proto_tree_add_item(t, hf_x11_randr_GetCrtcTransform_reply_current_len, tvb, *offsetp, 2, byte_order);
11493  *offsetp += 2;
11494  f_current_nparams = tvb_get_guint16(tvb, *offsetp, byte_order);
11495  proto_tree_add_item(t, hf_x11_randr_GetCrtcTransform_reply_current_nparams, tvb, *offsetp, 2, byte_order);
11496  *offsetp += 2;
11497  listOfByte(tvb, offsetp, t, hf_x11_randr_GetCrtcTransform_reply_pending_filter_name, f_pending_len, byte_order);
11498  if (*offsetp % 4) {
11499  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, (4 - *offsetp % 4), ENC_NA);
11500  *offsetp += (4 - *offsetp % 4);
11501  }
11502  listOfInt32(tvb, offsetp, t, hf_x11_randr_GetCrtcTransform_reply_pending_params, hf_x11_randr_GetCrtcTransform_reply_pending_params_item, f_pending_nparams, byte_order);
11503  listOfByte(tvb, offsetp, t, hf_x11_randr_GetCrtcTransform_reply_current_filter_name, f_current_len, byte_order);
11504  if (*offsetp % 4) {
11505  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, (4 - *offsetp % 4), ENC_NA);
11506  *offsetp += (4 - *offsetp % 4);
11507  }
11508  listOfInt32(tvb, offsetp, t, hf_x11_randr_GetCrtcTransform_reply_current_params, hf_x11_randr_GetCrtcTransform_reply_current_params_item, f_current_nparams, byte_order);
11509 }
11510 
11511 static void randrGetPanning(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
11512 {
11513  proto_tree_add_item(t, hf_x11_randr_GetPanning_crtc, tvb, *offsetp, 4, byte_order);
11514  *offsetp += 4;
11515 }
11516 static void randrGetPanning_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
11517 {
11518  int sequence_number;
11519 
11520  col_append_fstr(pinfo->cinfo, COL_INFO, "-GetPanning");
11521 
11522  REPLY(reply);
11523  field8(tvb, offsetp, t, hf_x11_randr_GetPanning_reply_status, byte_order);
11524  sequence_number = tvb_get_guint16(tvb, *offsetp, byte_order);
11525  proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
11526  "%d (randr-GetPanning)", sequence_number);
11527  *offsetp += 2;
11528  proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
11529  *offsetp += 4;
11530  proto_tree_add_item(t, hf_x11_randr_GetPanning_reply_timestamp, tvb, *offsetp, 4, byte_order);
11531  *offsetp += 4;
11532  proto_tree_add_item(t, hf_x11_randr_GetPanning_reply_left, tvb, *offsetp, 2, byte_order);
11533  *offsetp += 2;
11534  proto_tree_add_item(t, hf_x11_randr_GetPanning_reply_top, tvb, *offsetp, 2, byte_order);
11535  *offsetp += 2;
11536  proto_tree_add_item(t, hf_x11_randr_GetPanning_reply_width, tvb, *offsetp, 2, byte_order);
11537  *offsetp += 2;
11538  proto_tree_add_item(t, hf_x11_randr_GetPanning_reply_height, tvb, *offsetp, 2, byte_order);
11539  *offsetp += 2;
11540  proto_tree_add_item(t, hf_x11_randr_GetPanning_reply_track_left, tvb, *offsetp, 2, byte_order);
11541  *offsetp += 2;
11542  proto_tree_add_item(t, hf_x11_randr_GetPanning_reply_track_top, tvb, *offsetp, 2, byte_order);
11543  *offsetp += 2;
11544  proto_tree_add_item(t, hf_x11_randr_GetPanning_reply_track_width, tvb, *offsetp, 2, byte_order);
11545  *offsetp += 2;
11546  proto_tree_add_item(t, hf_x11_randr_GetPanning_reply_track_height, tvb, *offsetp, 2, byte_order);
11547  *offsetp += 2;
11548  proto_tree_add_item(t, hf_x11_randr_GetPanning_reply_border_left, tvb, *offsetp, 2, byte_order);
11549  *offsetp += 2;
11550  proto_tree_add_item(t, hf_x11_randr_GetPanning_reply_border_top, tvb, *offsetp, 2, byte_order);
11551  *offsetp += 2;
11552  proto_tree_add_item(t, hf_x11_randr_GetPanning_reply_border_right, tvb, *offsetp, 2, byte_order);
11553  *offsetp += 2;
11554  proto_tree_add_item(t, hf_x11_randr_GetPanning_reply_border_bottom, tvb, *offsetp, 2, byte_order);
11555  *offsetp += 2;
11556 }
11557 
11558 static void randrSetPanning(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
11559 {
11560  proto_tree_add_item(t, hf_x11_randr_SetPanning_crtc, tvb, *offsetp, 4, byte_order);
11561  *offsetp += 4;
11562  proto_tree_add_item(t, hf_x11_randr_SetPanning_timestamp, tvb, *offsetp, 4, byte_order);
11563  *offsetp += 4;
11564  proto_tree_add_item(t, hf_x11_randr_SetPanning_left, tvb, *offsetp, 2, byte_order);
11565  *offsetp += 2;
11566  proto_tree_add_item(t, hf_x11_randr_SetPanning_top, tvb, *offsetp, 2, byte_order);
11567  *offsetp += 2;
11568  proto_tree_add_item(t, hf_x11_randr_SetPanning_width, tvb, *offsetp, 2, byte_order);
11569  *offsetp += 2;
11570  proto_tree_add_item(t, hf_x11_randr_SetPanning_height, tvb, *offsetp, 2, byte_order);
11571  *offsetp += 2;
11572  proto_tree_add_item(t, hf_x11_randr_SetPanning_track_left, tvb, *offsetp, 2, byte_order);
11573  *offsetp += 2;
11574  proto_tree_add_item(t, hf_x11_randr_SetPanning_track_top, tvb, *offsetp, 2, byte_order);
11575  *offsetp += 2;
11576  proto_tree_add_item(t, hf_x11_randr_SetPanning_track_width, tvb, *offsetp, 2, byte_order);
11577  *offsetp += 2;
11578  proto_tree_add_item(t, hf_x11_randr_SetPanning_track_height, tvb, *offsetp, 2, byte_order);
11579  *offsetp += 2;
11580  proto_tree_add_item(t, hf_x11_randr_SetPanning_border_left, tvb, *offsetp, 2, byte_order);
11581  *offsetp += 2;
11582  proto_tree_add_item(t, hf_x11_randr_SetPanning_border_top, tvb, *offsetp, 2, byte_order);
11583  *offsetp += 2;
11584  proto_tree_add_item(t, hf_x11_randr_SetPanning_border_right, tvb, *offsetp, 2, byte_order);
11585  *offsetp += 2;
11586  proto_tree_add_item(t, hf_x11_randr_SetPanning_border_bottom, tvb, *offsetp, 2, byte_order);
11587  *offsetp += 2;
11588 }
11589 static void randrSetPanning_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
11590 {
11591  int sequence_number;
11592 
11593  col_append_fstr(pinfo->cinfo, COL_INFO, "-SetPanning");
11594 
11595  REPLY(reply);
11596  field8(tvb, offsetp, t, hf_x11_randr_SetPanning_reply_status, byte_order);
11597  sequence_number = tvb_get_guint16(tvb, *offsetp, byte_order);
11598  proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
11599  "%d (randr-SetPanning)", sequence_number);
11600  *offsetp += 2;
11601  proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
11602  *offsetp += 4;
11603  proto_tree_add_item(t, hf_x11_randr_SetPanning_reply_timestamp, tvb, *offsetp, 4, byte_order);
11604  *offsetp += 4;
11605 }
11606 
11607 static void randrSetOutputPrimary(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
11608 {
11609  proto_tree_add_item(t, hf_x11_randr_SetOutputPrimary_window, tvb, *offsetp, 4, byte_order);
11610  *offsetp += 4;
11611  proto_tree_add_item(t, hf_x11_randr_SetOutputPrimary_output, tvb, *offsetp, 4, byte_order);
11612  *offsetp += 4;
11613 }
11614 
11615 static void randrGetOutputPrimary(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
11616 {
11617  proto_tree_add_item(t, hf_x11_randr_GetOutputPrimary_window, tvb, *offsetp, 4, byte_order);
11618  *offsetp += 4;
11619 }
11620 static void randrGetOutputPrimary_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
11621 {
11622  int sequence_number;
11623 
11624  col_append_fstr(pinfo->cinfo, COL_INFO, "-GetOutputPrimary");
11625 
11626  REPLY(reply);
11627  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
11628  *offsetp += 1;
11629  sequence_number = tvb_get_guint16(tvb, *offsetp, byte_order);
11630  proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
11631  "%d (randr-GetOutputPrimary)", sequence_number);
11632  *offsetp += 2;
11633  proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
11634  *offsetp += 4;
11635  proto_tree_add_item(t, hf_x11_randr_GetOutputPrimary_reply_output, tvb, *offsetp, 4, byte_order);
11636  *offsetp += 4;
11637 }
11638 
11639 static void randrGetProviders(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
11640 {
11641  proto_tree_add_item(t, hf_x11_randr_GetProviders_window, tvb, *offsetp, 4, byte_order);
11642  *offsetp += 4;
11643 }
11644 static void randrGetProviders_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
11645 {
11646  int sequence_number;
11647  int f_num_providers;
11648 
11649  col_append_fstr(pinfo->cinfo, COL_INFO, "-GetProviders");
11650 
11651  REPLY(reply);
11652  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
11653  *offsetp += 1;
11654  sequence_number = tvb_get_guint16(tvb, *offsetp, byte_order);
11655  proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
11656  "%d (randr-GetProviders)", sequence_number);
11657  *offsetp += 2;
11658  proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
11659  *offsetp += 4;
11660  proto_tree_add_item(t, hf_x11_randr_GetProviders_reply_timestamp, tvb, *offsetp, 4, byte_order);
11661  *offsetp += 4;
11662  f_num_providers = tvb_get_guint16(tvb, *offsetp, byte_order);
11663  proto_tree_add_item(t, hf_x11_randr_GetProviders_reply_num_providers, tvb, *offsetp, 2, byte_order);
11664  *offsetp += 2;
11665  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 18, ENC_NA);
11666  *offsetp += 18;
11667  listOfCard32(tvb, offsetp, t, hf_x11_randr_GetProviders_reply_providers, hf_x11_randr_GetProviders_reply_providers_item, f_num_providers, byte_order);
11668 }
11669 
11670 static void randrGetProviderInfo(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
11671 {
11672  proto_tree_add_item(t, hf_x11_randr_GetProviderInfo_provider, tvb, *offsetp, 4, byte_order);
11673  *offsetp += 4;
11674  proto_tree_add_item(t, hf_x11_randr_GetProviderInfo_config_timestamp, tvb, *offsetp, 4, byte_order);
11675  *offsetp += 4;
11676 }
11677 static void randrGetProviderInfo_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
11678 {
11679  int sequence_number;
11680  int f_num_crtcs;
11681  int f_num_outputs;
11682  int f_num_associated_providers;
11683  int f_name_len;
11684 
11685  col_append_fstr(pinfo->cinfo, COL_INFO, "-GetProviderInfo");
11686 
11687  REPLY(reply);
11688  proto_tree_add_item(t, hf_x11_randr_GetProviderInfo_reply_status, tvb, *offsetp, 1, byte_order);
11689  *offsetp += 1;
11690  sequence_number = tvb_get_guint16(tvb, *offsetp, byte_order);
11691  proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
11692  "%d (randr-GetProviderInfo)", sequence_number);
11693  *offsetp += 2;
11694  proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
11695  *offsetp += 4;
11696  proto_tree_add_item(t, hf_x11_randr_GetProviderInfo_reply_timestamp, tvb, *offsetp, 4, byte_order);
11697  *offsetp += 4;
11698  {
11699  int* const capabilities_bits [] = {
11700  &hf_x11_randr_GetProviderInfo_reply_capabilities_mask_SourceOutput,
11701  &hf_x11_randr_GetProviderInfo_reply_capabilities_mask_SinkOutput,
11702  &hf_x11_randr_GetProviderInfo_reply_capabilities_mask_SourceOffload,
11703  &hf_x11_randr_GetProviderInfo_reply_capabilities_mask_SinkOffload,
11704  NULL
11705  };
11706  proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_randr_GetProviderInfo_reply_capabilities, ett_x11_rectangle, capabilities_bits, byte_order);
11707  }
11708  *offsetp += 4;
11709  f_num_crtcs = tvb_get_guint16(tvb, *offsetp, byte_order);
11710  proto_tree_add_item(t, hf_x11_randr_GetProviderInfo_reply_num_crtcs, tvb, *offsetp, 2, byte_order);
11711  *offsetp += 2;
11712  f_num_outputs = tvb_get_guint16(tvb, *offsetp, byte_order);
11713  proto_tree_add_item(t, hf_x11_randr_GetProviderInfo_reply_num_outputs, tvb, *offsetp, 2, byte_order);
11714  *offsetp += 2;
11715  f_num_associated_providers = tvb_get_guint16(tvb, *offsetp, byte_order);
11716  proto_tree_add_item(t, hf_x11_randr_GetProviderInfo_reply_num_associated_providers, tvb, *offsetp, 2, byte_order);
11717  *offsetp += 2;
11718  f_name_len = tvb_get_guint16(tvb, *offsetp, byte_order);
11719  proto_tree_add_item(t, hf_x11_randr_GetProviderInfo_reply_name_len, tvb, *offsetp, 2, byte_order);
11720  *offsetp += 2;
11721  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 8, ENC_NA);
11722  *offsetp += 8;
11723  listOfCard32(tvb, offsetp, t, hf_x11_randr_GetProviderInfo_reply_crtcs, hf_x11_randr_GetProviderInfo_reply_crtcs_item, f_num_crtcs, byte_order);
11724  listOfCard32(tvb, offsetp, t, hf_x11_randr_GetProviderInfo_reply_outputs, hf_x11_randr_GetProviderInfo_reply_outputs_item, f_num_outputs, byte_order);
11725  listOfCard32(tvb, offsetp, t, hf_x11_randr_GetProviderInfo_reply_associated_providers, hf_x11_randr_GetProviderInfo_reply_associated_providers_item, f_num_associated_providers, byte_order);
11726  listOfCard32(tvb, offsetp, t, hf_x11_randr_GetProviderInfo_reply_associated_capability, hf_x11_randr_GetProviderInfo_reply_associated_capability_item, f_num_associated_providers, byte_order);
11727  listOfByte(tvb, offsetp, t, hf_x11_randr_GetProviderInfo_reply_name, f_name_len, byte_order);
11728 }
11729 
11730 static void randrSetProviderOffloadSink(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
11731 {
11732  proto_tree_add_item(t, hf_x11_randr_SetProviderOffloadSink_provider, tvb, *offsetp, 4, byte_order);
11733  *offsetp += 4;
11734  proto_tree_add_item(t, hf_x11_randr_SetProviderOffloadSink_sink_provider, tvb, *offsetp, 4, byte_order);
11735  *offsetp += 4;
11736  proto_tree_add_item(t, hf_x11_randr_SetProviderOffloadSink_config_timestamp, tvb, *offsetp, 4, byte_order);
11737  *offsetp += 4;
11738 }
11739 
11740 static void randrSetProviderOutputSource(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
11741 {
11742  proto_tree_add_item(t, hf_x11_randr_SetProviderOutputSource_provider, tvb, *offsetp, 4, byte_order);
11743  *offsetp += 4;
11744  proto_tree_add_item(t, hf_x11_randr_SetProviderOutputSource_source_provider, tvb, *offsetp, 4, byte_order);
11745  *offsetp += 4;
11746  proto_tree_add_item(t, hf_x11_randr_SetProviderOutputSource_config_timestamp, tvb, *offsetp, 4, byte_order);
11747  *offsetp += 4;
11748 }
11749 
11750 static void randrListProviderProperties(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
11751 {
11752  proto_tree_add_item(t, hf_x11_randr_ListProviderProperties_provider, tvb, *offsetp, 4, byte_order);
11753  *offsetp += 4;
11754 }
11755 static void randrListProviderProperties_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
11756 {
11757  int sequence_number;
11758  int f_num_atoms;
11759 
11760  col_append_fstr(pinfo->cinfo, COL_INFO, "-ListProviderProperties");
11761 
11762  REPLY(reply);
11763  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
11764  *offsetp += 1;
11765  sequence_number = tvb_get_guint16(tvb, *offsetp, byte_order);
11766  proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
11767  "%d (randr-ListProviderProperties)", sequence_number);
11768  *offsetp += 2;
11769  proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
11770  *offsetp += 4;
11771  f_num_atoms = tvb_get_guint16(tvb, *offsetp, byte_order);
11772  proto_tree_add_item(t, hf_x11_randr_ListProviderProperties_reply_num_atoms, tvb, *offsetp, 2, byte_order);
11773  *offsetp += 2;
11774  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 22, ENC_NA);
11775  *offsetp += 22;
11776  listOfCard32(tvb, offsetp, t, hf_x11_randr_ListProviderProperties_reply_atoms, hf_x11_randr_ListProviderProperties_reply_atoms_item, f_num_atoms, byte_order);
11777 }
11778 
11779 static void randrQueryProviderProperty(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
11780 {
11781  proto_tree_add_item(t, hf_x11_randr_QueryProviderProperty_provider, tvb, *offsetp, 4, byte_order);
11782  *offsetp += 4;
11783  proto_tree_add_item(t, hf_x11_randr_QueryProviderProperty_property, tvb, *offsetp, 4, byte_order);
11784  *offsetp += 4;
11785 }
11786 static void randrQueryProviderProperty_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
11787 {
11788  int sequence_number;
11789  int f_length;
11790 
11791  col_append_fstr(pinfo->cinfo, COL_INFO, "-QueryProviderProperty");
11792 
11793  REPLY(reply);
11794  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
11795  *offsetp += 1;
11796  sequence_number = tvb_get_guint16(tvb, *offsetp, byte_order);
11797  proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
11798  "%d (randr-QueryProviderProperty)", sequence_number);
11799  *offsetp += 2;
11800  f_length = tvb_get_guint32(tvb, *offsetp, byte_order);
11801  proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
11802  *offsetp += 4;
11803  proto_tree_add_item(t, hf_x11_randr_QueryProviderProperty_reply_pending, tvb, *offsetp, 1, byte_order);
11804  *offsetp += 1;
11805  proto_tree_add_item(t, hf_x11_randr_QueryProviderProperty_reply_range, tvb, *offsetp, 1, byte_order);
11806  *offsetp += 1;
11807  proto_tree_add_item(t, hf_x11_randr_QueryProviderProperty_reply_immutable, tvb, *offsetp, 1, byte_order);
11808  *offsetp += 1;
11809  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 21, ENC_NA);
11810  *offsetp += 21;
11811  listOfInt32(tvb, offsetp, t, hf_x11_randr_QueryProviderProperty_reply_valid_values, hf_x11_randr_QueryProviderProperty_reply_valid_values_item, f_length, byte_order);
11812 }
11813 
11814 static void randrConfigureProviderProperty(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
11815 {
11816  proto_tree_add_item(t, hf_x11_randr_ConfigureProviderProperty_provider, tvb, *offsetp, 4, byte_order);
11817  *offsetp += 4;
11818  proto_tree_add_item(t, hf_x11_randr_ConfigureProviderProperty_property, tvb, *offsetp, 4, byte_order);
11819  *offsetp += 4;
11820  proto_tree_add_item(t, hf_x11_randr_ConfigureProviderProperty_pending, tvb, *offsetp, 1, byte_order);
11821  *offsetp += 1;
11822  proto_tree_add_item(t, hf_x11_randr_ConfigureProviderProperty_range, tvb, *offsetp, 1, byte_order);
11823  *offsetp += 1;
11824  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 2, ENC_NA);
11825  *offsetp += 2;
11826  listOfInt32(tvb, offsetp, t, hf_x11_randr_ConfigureProviderProperty_values, hf_x11_randr_ConfigureProviderProperty_values_item, (length - 16) / 4, byte_order);
11827 }
11828 
11829 static void randrChangeProviderProperty(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
11830 {
11831  int f_format;
11832  int f_num_items;
11833  proto_tree_add_item(t, hf_x11_randr_ChangeProviderProperty_provider, tvb, *offsetp, 4, byte_order);
11834  *offsetp += 4;
11835  proto_tree_add_item(t, hf_x11_randr_ChangeProviderProperty_property, tvb, *offsetp, 4, byte_order);
11836  *offsetp += 4;
11837  proto_tree_add_item(t, hf_x11_randr_ChangeProviderProperty_type, tvb, *offsetp, 4, byte_order);
11838  *offsetp += 4;
11839  f_format = tvb_get_guint8(tvb, *offsetp);
11840  proto_tree_add_item(t, hf_x11_randr_ChangeProviderProperty_format, tvb, *offsetp, 1, byte_order);
11841  *offsetp += 1;
11842  proto_tree_add_item(t, hf_x11_randr_ChangeProviderProperty_mode, tvb, *offsetp, 1, byte_order);
11843  *offsetp += 1;
11844  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 2, ENC_NA);
11845  *offsetp += 2;
11846  f_num_items = tvb_get_guint32(tvb, *offsetp, byte_order);
11847  proto_tree_add_item(t, hf_x11_randr_ChangeProviderProperty_num_items, tvb, *offsetp, 4, byte_order);
11848  *offsetp += 4;
11849  listOfByte(tvb, offsetp, t, hf_x11_randr_ChangeProviderProperty_data, (f_num_items * (f_format / 8)), byte_order);
11850  length -= (f_num_items * (f_format / 8)) * 1;
11851 }
11852 
11853 static void randrDeleteProviderProperty(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
11854 {
11855  proto_tree_add_item(t, hf_x11_randr_DeleteProviderProperty_provider, tvb, *offsetp, 4, byte_order);
11856  *offsetp += 4;
11857  proto_tree_add_item(t, hf_x11_randr_DeleteProviderProperty_property, tvb, *offsetp, 4, byte_order);
11858  *offsetp += 4;
11859 }
11860 
11861 static void randrGetProviderProperty(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
11862 {
11863  proto_tree_add_item(t, hf_x11_randr_GetProviderProperty_provider, tvb, *offsetp, 4, byte_order);
11864  *offsetp += 4;
11865  proto_tree_add_item(t, hf_x11_randr_GetProviderProperty_property, tvb, *offsetp, 4, byte_order);
11866  *offsetp += 4;
11867  proto_tree_add_item(t, hf_x11_randr_GetProviderProperty_type, tvb, *offsetp, 4, byte_order);
11868  *offsetp += 4;
11869  proto_tree_add_item(t, hf_x11_randr_GetProviderProperty_long_offset, tvb, *offsetp, 4, byte_order);
11870  *offsetp += 4;
11871  proto_tree_add_item(t, hf_x11_randr_GetProviderProperty_long_length, tvb, *offsetp, 4, byte_order);
11872  *offsetp += 4;
11873  proto_tree_add_item(t, hf_x11_randr_GetProviderProperty_delete, tvb, *offsetp, 1, byte_order);
11874  *offsetp += 1;
11875  proto_tree_add_item(t, hf_x11_randr_GetProviderProperty_pending, tvb, *offsetp, 1, byte_order);
11876  *offsetp += 1;
11877  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 2, ENC_NA);
11878  *offsetp += 2;
11879 }
11880 static void randrGetProviderProperty_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
11881 {
11882  int sequence_number;
11883  int f_format;
11884  int f_num_items;
11885 
11886  col_append_fstr(pinfo->cinfo, COL_INFO, "-GetProviderProperty");
11887 
11888  REPLY(reply);
11889  f_format = tvb_get_guint8(tvb, *offsetp);
11890  proto_tree_add_item(t, hf_x11_randr_GetProviderProperty_reply_format, tvb, *offsetp, 1, byte_order);
11891  *offsetp += 1;
11892  sequence_number = tvb_get_guint16(tvb, *offsetp, byte_order);
11893  proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
11894  "%d (randr-GetProviderProperty)", sequence_number);
11895  *offsetp += 2;
11896  proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
11897  *offsetp += 4;
11898  proto_tree_add_item(t, hf_x11_randr_GetProviderProperty_reply_type, tvb, *offsetp, 4, byte_order);
11899  *offsetp += 4;
11900  proto_tree_add_item(t, hf_x11_randr_GetProviderProperty_reply_bytes_after, tvb, *offsetp, 4, byte_order);
11901  *offsetp += 4;
11902  f_num_items = tvb_get_guint32(tvb, *offsetp, byte_order);
11903  proto_tree_add_item(t, hf_x11_randr_GetProviderProperty_reply_num_items, tvb, *offsetp, 4, byte_order);
11904  *offsetp += 4;
11905  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 12, ENC_NA);
11906  *offsetp += 12;
11907  listOfByte(tvb, offsetp, t, hf_x11_randr_GetProviderProperty_reply_data, (f_num_items * (f_format / 8)), byte_order);
11908 }
11909 
11910 static void randrGetMonitors(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
11911 {
11912  proto_tree_add_item(t, hf_x11_randr_GetMonitors_window, tvb, *offsetp, 4, byte_order);
11913  *offsetp += 4;
11914  proto_tree_add_item(t, hf_x11_randr_GetMonitors_get_active, tvb, *offsetp, 1, byte_order);
11915  *offsetp += 1;
11916 }
11917 static void randrGetMonitors_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
11918 {
11919  int sequence_number;
11920  int f_nMonitors;
11921 
11922  col_append_fstr(pinfo->cinfo, COL_INFO, "-GetMonitors");
11923 
11924  REPLY(reply);
11925  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
11926  *offsetp += 1;
11927  sequence_number = tvb_get_guint16(tvb, *offsetp, byte_order);
11928  proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
11929  "%d (randr-GetMonitors)", sequence_number);
11930  *offsetp += 2;
11931  proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
11932  *offsetp += 4;
11933  proto_tree_add_item(t, hf_x11_randr_GetMonitors_reply_timestamp, tvb, *offsetp, 4, byte_order);
11934  *offsetp += 4;
11935  f_nMonitors = tvb_get_guint32(tvb, *offsetp, byte_order);
11936  proto_tree_add_item(t, hf_x11_randr_GetMonitors_reply_nMonitors, tvb, *offsetp, 4, byte_order);
11937  *offsetp += 4;
11938  proto_tree_add_item(t, hf_x11_randr_GetMonitors_reply_nOutputs, tvb, *offsetp, 4, byte_order);
11939  *offsetp += 4;
11940  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 12, ENC_NA);
11941  *offsetp += 12;
11942  struct_randr_MonitorInfo(tvb, offsetp, t, byte_order, f_nMonitors);
11943 }
11944 
11945 static void randrSetMonitor(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
11946 {
11947  proto_tree_add_item(t, hf_x11_randr_SetMonitor_window, tvb, *offsetp, 4, byte_order);
11948  *offsetp += 4;
11949  struct_randr_MonitorInfo(tvb, offsetp, t, byte_order, 1);
11950 }
11951 
11952 static void randrDeleteMonitor(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
11953 {
11954  proto_tree_add_item(t, hf_x11_randr_DeleteMonitor_window, tvb, *offsetp, 4, byte_order);
11955  *offsetp += 4;
11956  proto_tree_add_item(t, hf_x11_randr_DeleteMonitor_name, tvb, *offsetp, 4, byte_order);
11957  *offsetp += 4;
11958 }
11959 
11960 static void randrCreateLease(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
11961 {
11962  int f_num_crtcs;
11963  int f_num_outputs;
11964  proto_tree_add_item(t, hf_x11_randr_CreateLease_window, tvb, *offsetp, 4, byte_order);
11965  *offsetp += 4;
11966  proto_tree_add_item(t, hf_x11_randr_CreateLease_lid, tvb, *offsetp, 4, byte_order);
11967  *offsetp += 4;
11968  f_num_crtcs = tvb_get_guint16(tvb, *offsetp, byte_order);
11969  proto_tree_add_item(t, hf_x11_randr_CreateLease_num_crtcs, tvb, *offsetp, 2, byte_order);
11970  *offsetp += 2;
11971  f_num_outputs = tvb_get_guint16(tvb, *offsetp, byte_order);
11972  proto_tree_add_item(t, hf_x11_randr_CreateLease_num_outputs, tvb, *offsetp, 2, byte_order);
11973  *offsetp += 2;
11974  listOfCard32(tvb, offsetp, t, hf_x11_randr_CreateLease_crtcs, hf_x11_randr_CreateLease_crtcs_item, f_num_crtcs, byte_order);
11975  length -= f_num_crtcs * 4;
11976  listOfCard32(tvb, offsetp, t, hf_x11_randr_CreateLease_outputs, hf_x11_randr_CreateLease_outputs_item, f_num_outputs, byte_order);
11977  length -= f_num_outputs * 4;
11978 }
11979 static void randrCreateLease_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
11980 {
11981  int sequence_number;
11982 
11983  col_append_fstr(pinfo->cinfo, COL_INFO, "-CreateLease");
11984 
11985  REPLY(reply);
11986  proto_tree_add_item(t, hf_x11_randr_CreateLease_reply_nfd, tvb, *offsetp, 1, byte_order);
11987  *offsetp += 1;
11988  sequence_number = tvb_get_guint16(tvb, *offsetp, byte_order);
11989  proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
11990  "%d (randr-CreateLease)", sequence_number);
11991  *offsetp += 2;
11992  proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
11993  *offsetp += 4;
11994  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 24, ENC_NA);
11995  *offsetp += 24;
11996 }
11997 
11998 static void randrFreeLease(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
11999 {
12000  proto_tree_add_item(t, hf_x11_randr_FreeLease_lid, tvb, *offsetp, 4, byte_order);
12001  *offsetp += 4;
12002  proto_tree_add_item(t, hf_x11_randr_FreeLease_terminate, tvb, *offsetp, 1, ENC_NA);
12003  *offsetp += 1;
12004 }
12005 
12006 static void struct_randr_NotifyData(tvbuff_t *tvb, int *offsetp, proto_tree *root, guint byte_order, int count)
12007 {
12008  int i;
12009  int base = *offsetp;
12010  for (i = 0; i < count; i++) {
12011  proto_item *item;
12012  proto_tree *t;
12013  item = proto_tree_add_item(root, hf_x11_union_randr_NotifyData, tvb, base, 28, ENC_NA);
12014  t = proto_item_add_subtree(item, ett_x11_rectangle);
12015 
12016  *offsetp = base;
12017  struct_randr_CrtcChange(tvb, offsetp, t, byte_order, 1);
12018  *offsetp = base;
12019  struct_randr_OutputChange(tvb, offsetp, t, byte_order, 1);
12020  *offsetp = base;
12021  struct_randr_OutputProperty(tvb, offsetp, t, byte_order, 1);
12022  *offsetp = base;
12023  struct_randr_ProviderChange(tvb, offsetp, t, byte_order, 1);
12024  *offsetp = base;
12025  struct_randr_ProviderProperty(tvb, offsetp, t, byte_order, 1);
12026  *offsetp = base;
12027  struct_randr_ResourceChange(tvb, offsetp, t, byte_order, 1);
12028  *offsetp = base;
12029  struct_randr_LeaseNotify(tvb, offsetp, t, byte_order, 1);
12030  base += 28;
12031  }
12032  *offsetp = base;
12033 }
12034 
12035 static void randrNotify(tvbuff_t *tvb, int *offsetp, proto_tree *t, guint byte_order)
12036 {
12037  field8(tvb, offsetp, t, hf_x11_randr_Notify_subCode, byte_order);
12038  CARD16(event_sequencenumber);
12039  struct_randr_NotifyData(tvb, offsetp, t, byte_order, 1);
12040 }
12041 
12042 static const value_string randr_extension_minor[] = {
12043  { 0, "QueryVersion" },
12044  { 2, "SetScreenConfig" },
12045  { 4, "SelectInput" },
12046  { 5, "GetScreenInfo" },
12047  { 6, "GetScreenSizeRange" },
12048  { 7, "SetScreenSize" },
12049  { 8, "GetScreenResources" },
12050  { 9, "GetOutputInfo" },
12051  { 10, "ListOutputProperties" },
12052  { 11, "QueryOutputProperty" },
12053  { 12, "ConfigureOutputProperty" },
12054  { 13, "ChangeOutputProperty" },
12055  { 14, "DeleteOutputProperty" },
12056  { 15, "GetOutputProperty" },
12057  { 16, "CreateMode" },
12058  { 17, "DestroyMode" },
12059  { 18, "AddOutputMode" },
12060  { 19, "DeleteOutputMode" },
12061  { 20, "GetCrtcInfo" },
12062  { 21, "SetCrtcConfig" },
12063  { 22, "GetCrtcGammaSize" },
12064  { 23, "GetCrtcGamma" },
12065  { 24, "SetCrtcGamma" },
12066  { 25, "GetScreenResourcesCurrent" },
12067  { 26, "SetCrtcTransform" },
12068  { 27, "GetCrtcTransform" },
12069  { 28, "GetPanning" },
12070  { 29, "SetPanning" },
12071  { 30, "SetOutputPrimary" },
12072  { 31, "GetOutputPrimary" },
12073  { 32, "GetProviders" },
12074  { 33, "GetProviderInfo" },
12075  { 34, "SetProviderOffloadSink" },
12076  { 35, "SetProviderOutputSource" },
12077  { 36, "ListProviderProperties" },
12078  { 37, "QueryProviderProperty" },
12079  { 38, "ConfigureProviderProperty" },
12080  { 39, "ChangeProviderProperty" },
12081  { 40, "DeleteProviderProperty" },
12082  { 41, "GetProviderProperty" },
12083  { 42, "GetMonitors" },
12084  { 43, "SetMonitor" },
12085  { 44, "DeleteMonitor" },
12086  { 45, "CreateLease" },
12087  { 46, "FreeLease" },
12088  { 0, NULL }
12089 };
12090 static const x11_event_info randr_events[] = {
12091  { "randr-Notify", randrNotify },
12092  { NULL, NULL }
12093 };
12094 static x11_reply_info randr_replies[] = {
12095  { 0, randrQueryVersion_Reply },
12096  { 2, randrSetScreenConfig_Reply },
12097  { 5, randrGetScreenInfo_Reply },
12098  { 6, randrGetScreenSizeRange_Reply },
12099  { 8, randrGetScreenResources_Reply },
12100  { 9, randrGetOutputInfo_Reply },
12101  { 10, randrListOutputProperties_Reply },
12102  { 11, randrQueryOutputProperty_Reply },
12103  { 15, randrGetOutputProperty_Reply },
12104  { 16, randrCreateMode_Reply },
12105  { 20, randrGetCrtcInfo_Reply },
12106  { 21, randrSetCrtcConfig_Reply },
12107  { 22, randrGetCrtcGammaSize_Reply },
12108  { 23, randrGetCrtcGamma_Reply },
12109  { 25, randrGetScreenResourcesCurrent_Reply },
12110  { 27, randrGetCrtcTransform_Reply },
12111  { 28, randrGetPanning_Reply },
12112  { 29, randrSetPanning_Reply },
12113  { 31, randrGetOutputPrimary_Reply },
12114  { 32, randrGetProviders_Reply },
12115  { 33, randrGetProviderInfo_Reply },
12116  { 36, randrListProviderProperties_Reply },
12117  { 37, randrQueryProviderProperty_Reply },
12118  { 41, randrGetProviderProperty_Reply },
12119  { 42, randrGetMonitors_Reply },
12120  { 45, randrCreateLease_Reply },
12121  { 0, NULL }
12122 };
12123 
12124 static void dispatch_randr(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
12125 {
12126  int minor, length;
12127  minor = CARD8(randr_extension_minor);
12128  length = REQUEST_LENGTH();
12129 
12130  col_append_fstr(pinfo->cinfo, COL_INFO, "-%s",
12131  val_to_str(minor, randr_extension_minor,
12132  "<Unknown opcode %d>"));
12133  switch (minor) {
12134  case 0:
12135  randrQueryVersion(tvb, pinfo, offsetp, t, byte_order, length);
12136  break;
12137  case 2:
12138  randrSetScreenConfig(tvb, pinfo, offsetp, t, byte_order, length);
12139  break;
12140  case 4:
12141  randrSelectInput(tvb, pinfo, offsetp, t, byte_order, length);
12142  break;
12143  case 5:
12144  randrGetScreenInfo(tvb, pinfo, offsetp, t, byte_order, length);
12145  break;
12146  case 6:
12147  randrGetScreenSizeRange(tvb, pinfo, offsetp, t, byte_order, length);
12148  break;
12149  case 7:
12150  randrSetScreenSize(tvb, pinfo, offsetp, t, byte_order, length);
12151  break;
12152  case 8:
12153  randrGetScreenResources(tvb, pinfo, offsetp, t, byte_order, length);
12154  break;
12155  case 9:
12156  randrGetOutputInfo(tvb, pinfo, offsetp, t, byte_order, length);
12157  break;
12158  case 10:
12159  randrListOutputProperties(tvb, pinfo, offsetp, t, byte_order, length);
12160  break;
12161  case 11:
12162  randrQueryOutputProperty(tvb, pinfo, offsetp, t, byte_order, length);
12163  break;
12164  case 12:
12165  randrConfigureOutputProperty(tvb, pinfo, offsetp, t, byte_order, length);
12166  break;
12167  case 13:
12168  randrChangeOutputProperty(tvb, pinfo, offsetp, t, byte_order, length);
12169  break;
12170  case 14:
12171  randrDeleteOutputProperty(tvb, pinfo, offsetp, t, byte_order, length);
12172  break;
12173  case 15:
12174  randrGetOutputProperty(tvb, pinfo, offsetp, t, byte_order, length);
12175  break;
12176  case 16:
12177  randrCreateMode(tvb, pinfo, offsetp, t, byte_order, length);
12178  break;
12179  case 17:
12180  randrDestroyMode(tvb, pinfo, offsetp, t, byte_order, length);
12181  break;
12182  case 18:
12183  randrAddOutputMode(tvb, pinfo, offsetp, t, byte_order, length);
12184  break;
12185  case 19:
12186  randrDeleteOutputMode(tvb, pinfo, offsetp, t, byte_order, length);
12187  break;
12188  case 20:
12189  randrGetCrtcInfo(tvb, pinfo, offsetp, t, byte_order, length);
12190  break;
12191  case 21:
12192  randrSetCrtcConfig(tvb, pinfo, offsetp, t, byte_order, length);
12193  break;
12194  case 22:
12195  randrGetCrtcGammaSize(tvb, pinfo, offsetp, t, byte_order, length);
12196  break;
12197  case 23:
12198  randrGetCrtcGamma(tvb, pinfo, offsetp, t, byte_order, length);
12199  break;
12200  case 24:
12201  randrSetCrtcGamma(tvb, pinfo, offsetp, t, byte_order, length);
12202  break;
12203  case 25:
12204  randrGetScreenResourcesCurrent(tvb, pinfo, offsetp, t, byte_order, length);
12205  break;
12206  case 26:
12207  randrSetCrtcTransform(tvb, pinfo, offsetp, t, byte_order, length);
12208  break;
12209  case 27:
12210  randrGetCrtcTransform(tvb, pinfo, offsetp, t, byte_order, length);
12211  break;
12212  case 28:
12213  randrGetPanning(tvb, pinfo, offsetp, t, byte_order, length);
12214  break;
12215  case 29:
12216  randrSetPanning(tvb, pinfo, offsetp, t, byte_order, length);
12217  break;
12218  case 30:
12219  randrSetOutputPrimary(tvb, pinfo, offsetp, t, byte_order, length);
12220  break;
12221  case 31:
12222  randrGetOutputPrimary(tvb, pinfo, offsetp, t, byte_order, length);
12223  break;
12224  case 32:
12225  randrGetProviders(tvb, pinfo, offsetp, t, byte_order, length);
12226  break;
12227  case 33:
12228  randrGetProviderInfo(tvb, pinfo, offsetp, t, byte_order, length);
12229  break;
12230  case 34:
12231  randrSetProviderOffloadSink(tvb, pinfo, offsetp, t, byte_order, length);
12232  break;
12233  case 35:
12234  randrSetProviderOutputSource(tvb, pinfo, offsetp, t, byte_order, length);
12235  break;
12236  case 36:
12237  randrListProviderProperties(tvb, pinfo, offsetp, t, byte_order, length);
12238  break;
12239  case 37:
12240  randrQueryProviderProperty(tvb, pinfo, offsetp, t, byte_order, length);
12241  break;
12242  case 38:
12243  randrConfigureProviderProperty(tvb, pinfo, offsetp, t, byte_order, length);
12244  break;
12245  case 39:
12246  randrChangeProviderProperty(tvb, pinfo, offsetp, t, byte_order, length);
12247  break;
12248  case 40:
12249  randrDeleteProviderProperty(tvb, pinfo, offsetp, t, byte_order, length);
12250  break;
12251  case 41:
12252  randrGetProviderProperty(tvb, pinfo, offsetp, t, byte_order, length);
12253  break;
12254  case 42:
12255  randrGetMonitors(tvb, pinfo, offsetp, t, byte_order, length);
12256  break;
12257  case 43:
12258  randrSetMonitor(tvb, pinfo, offsetp, t, byte_order, length);
12259  break;
12260  case 44:
12261  randrDeleteMonitor(tvb, pinfo, offsetp, t, byte_order, length);
12262  break;
12263  case 45:
12264  randrCreateLease(tvb, pinfo, offsetp, t, byte_order, length);
12265  break;
12266  case 46:
12267  randrFreeLease(tvb, pinfo, offsetp, t, byte_order, length);
12268  break;
12269  /* No need for a default case here, since Unknown is printed above,
12270  and UNDECODED() is taken care of by dissect_x11_request */
12271  }
12272 }
12273 
12274 static void register_randr(void)
12275 {
12276  set_handler("RANDR", dispatch_randr, randr_errors, randr_events, NULL, randr_replies);
12277 }
12278 
12279 static void struct_record_Range8(tvbuff_t *tvb, int *offsetp, proto_tree *root, guint byte_order _U_, int count)
12280 {
12281  int i;
12282  for (i = 0; i < count; i++) {
12283  proto_item *item;
12284  proto_tree *t;
12285 
12286  item = proto_tree_add_item(root, hf_x11_struct_record_Range8, tvb, *offsetp, 2, ENC_NA);
12287  t = proto_item_add_subtree(item, ett_x11_rectangle);
12288  proto_tree_add_item(t, hf_x11_struct_record_Range8_first, tvb, *offsetp, 1, byte_order);
12289  *offsetp += 1;
12290  proto_tree_add_item(t, hf_x11_struct_record_Range8_last, tvb, *offsetp, 1, byte_order);
12291  *offsetp += 1;
12292  }
12293 }
12294 
12295 static void struct_record_Range16(tvbuff_t *tvb, int *offsetp, proto_tree *root, guint byte_order _U_, int count)
12296 {
12297  int i;
12298  for (i = 0; i < count; i++) {
12299  proto_item *item;
12300  proto_tree *t;
12301 
12302  item = proto_tree_add_item(root, hf_x11_struct_record_Range16, tvb, *offsetp, 4, ENC_NA);
12303  t = proto_item_add_subtree(item, ett_x11_rectangle);
12304  proto_tree_add_item(t, hf_x11_struct_record_Range16_first, tvb, *offsetp, 2, byte_order);
12305  *offsetp += 2;
12306  proto_tree_add_item(t, hf_x11_struct_record_Range16_last, tvb, *offsetp, 2, byte_order);
12307  *offsetp += 2;
12308  }
12309 }
12310 
12311 static void struct_record_ExtRange(tvbuff_t *tvb, int *offsetp, proto_tree *root, guint byte_order _U_, int count)
12312 {
12313  int i;
12314  for (i = 0; i < count; i++) {
12315  proto_item *item;
12316  proto_tree *t;
12317 
12318  item = proto_tree_add_item(root, hf_x11_struct_record_ExtRange, tvb, *offsetp, 6, ENC_NA);
12319  t = proto_item_add_subtree(item, ett_x11_rectangle);
12320  struct_record_Range8(tvb, offsetp, t, byte_order, 1);
12321  struct_record_Range16(tvb, offsetp, t, byte_order, 1);
12322  }
12323 }
12324 
12325 static void struct_record_Range(tvbuff_t *tvb, int *offsetp, proto_tree *root, guint byte_order _U_, int count)
12326 {
12327  int i;
12328  for (i = 0; i < count; i++) {
12329  proto_item *item;
12330  proto_tree *t;
12331 
12332  item = proto_tree_add_item(root, hf_x11_struct_record_Range, tvb, *offsetp, 24, ENC_NA);
12333  t = proto_item_add_subtree(item, ett_x11_rectangle);
12334  struct_record_Range8(tvb, offsetp, t, byte_order, 1);
12335  struct_record_Range8(tvb, offsetp, t, byte_order, 1);
12336  struct_record_ExtRange(tvb, offsetp, t, byte_order, 1);
12337  struct_record_ExtRange(tvb, offsetp, t, byte_order, 1);
12338  struct_record_Range8(tvb, offsetp, t, byte_order, 1);
12339  struct_record_Range8(tvb, offsetp, t, byte_order, 1);
12340  struct_record_Range8(tvb, offsetp, t, byte_order, 1);
12341  proto_tree_add_item(t, hf_x11_struct_record_Range_client_started, tvb, *offsetp, 1, byte_order);
12342  *offsetp += 1;
12343  proto_tree_add_item(t, hf_x11_struct_record_Range_client_died, tvb, *offsetp, 1, byte_order);
12344  *offsetp += 1;
12345  }
12346 }
12347 
12348 static int struct_size_record_ClientInfo(tvbuff_t *tvb _U_, int *offsetp _U_, guint byte_order _U_)
12349 {
12350  int size = 0;
12351  int f_num_ranges;
12352  f_num_ranges = tvb_get_guint32(tvb, *offsetp + size + 4, byte_order);
12353  size += f_num_ranges * 24;
12354  return size + 8;
12355 }
12356 
12357 static void struct_record_ClientInfo(tvbuff_t *tvb, int *offsetp, proto_tree *root, guint byte_order _U_, int count)
12358 {
12359  int i;
12360  for (i = 0; i < count; i++) {
12361  proto_item *item;
12362  proto_tree *t;
12363  int f_num_ranges;
12364 
12365  item = proto_tree_add_item(root, hf_x11_struct_record_ClientInfo, tvb, *offsetp, struct_size_record_ClientInfo(tvb, offsetp, byte_order), ENC_NA);
12366  t = proto_item_add_subtree(item, ett_x11_rectangle);
12367  proto_tree_add_item(t, hf_x11_struct_record_ClientInfo_client_resource, tvb, *offsetp, 4, byte_order);
12368  *offsetp += 4;
12369  f_num_ranges = tvb_get_guint32(tvb, *offsetp, byte_order);
12370  proto_tree_add_item(t, hf_x11_struct_record_ClientInfo_num_ranges, tvb, *offsetp, 4, byte_order);
12371  *offsetp += 4;
12372  struct_record_Range(tvb, offsetp, t, byte_order, f_num_ranges);
12373  }
12374 }
12375 
12376 static void recordQueryVersion(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
12377 {
12378  proto_tree_add_item(t, hf_x11_record_QueryVersion_major_version, tvb, *offsetp, 2, byte_order);
12379  *offsetp += 2;
12380  proto_tree_add_item(t, hf_x11_record_QueryVersion_minor_version, tvb, *offsetp, 2, byte_order);
12381  *offsetp += 2;
12382 }
12383 static void recordQueryVersion_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
12384 {
12385  int sequence_number;
12386 
12387  col_append_fstr(pinfo->cinfo, COL_INFO, "-QueryVersion");
12388 
12389  REPLY(reply);
12390  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
12391  *offsetp += 1;
12392  sequence_number = tvb_get_guint16(tvb, *offsetp, byte_order);
12393  proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
12394  "%d (record-QueryVersion)", sequence_number);
12395  *offsetp += 2;
12396  proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
12397  *offsetp += 4;
12398  proto_tree_add_item(t, hf_x11_record_QueryVersion_reply_major_version, tvb, *offsetp, 2, byte_order);
12399  *offsetp += 2;
12400  proto_tree_add_item(t, hf_x11_record_QueryVersion_reply_minor_version, tvb, *offsetp, 2, byte_order);
12401  *offsetp += 2;
12402 }
12403 
12404 static void recordCreateContext(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
12405 {
12406  int f_num_client_specs;
12407  int f_num_ranges;
12408  proto_tree_add_item(t, hf_x11_record_CreateContext_context, tvb, *offsetp, 4, byte_order);
12409  *offsetp += 4;
12410  proto_tree_add_item(t, hf_x11_record_CreateContext_element_header, tvb, *offsetp, 1, byte_order);
12411  *offsetp += 1;
12412  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 3, ENC_NA);
12413  *offsetp += 3;
12414  f_num_client_specs = tvb_get_guint32(tvb, *offsetp, byte_order);
12415  proto_tree_add_item(t, hf_x11_record_CreateContext_num_client_specs, tvb, *offsetp, 4, byte_order);
12416  *offsetp += 4;
12417  f_num_ranges = tvb_get_guint32(tvb, *offsetp, byte_order);
12418  proto_tree_add_item(t, hf_x11_record_CreateContext_num_ranges, tvb, *offsetp, 4, byte_order);
12419  *offsetp += 4;
12420  listOfCard32(tvb, offsetp, t, hf_x11_record_CreateContext_client_specs, hf_x11_record_CreateContext_client_specs_item, f_num_client_specs, byte_order);
12421  length -= f_num_client_specs * 4;
12422  struct_record_Range(tvb, offsetp, t, byte_order, f_num_ranges);
12423  length -= f_num_ranges * 24;
12424 }
12425 
12426 static void recordRegisterClients(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
12427 {
12428  int f_num_client_specs;
12429  int f_num_ranges;
12430  proto_tree_add_item(t, hf_x11_record_RegisterClients_context, tvb, *offsetp, 4, byte_order);
12431  *offsetp += 4;
12432  proto_tree_add_item(t, hf_x11_record_RegisterClients_element_header, tvb, *offsetp, 1, byte_order);
12433  *offsetp += 1;
12434  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 3, ENC_NA);
12435  *offsetp += 3;
12436  f_num_client_specs = tvb_get_guint32(tvb, *offsetp, byte_order);
12437  proto_tree_add_item(t, hf_x11_record_RegisterClients_num_client_specs, tvb, *offsetp, 4, byte_order);
12438  *offsetp += 4;
12439  f_num_ranges = tvb_get_guint32(tvb, *offsetp, byte_order);
12440  proto_tree_add_item(t, hf_x11_record_RegisterClients_num_ranges, tvb, *offsetp, 4, byte_order);
12441  *offsetp += 4;
12442  listOfCard32(tvb, offsetp, t, hf_x11_record_RegisterClients_client_specs, hf_x11_record_RegisterClients_client_specs_item, f_num_client_specs, byte_order);
12443  length -= f_num_client_specs * 4;
12444  struct_record_Range(tvb, offsetp, t, byte_order, f_num_ranges);
12445  length -= f_num_ranges * 24;
12446 }
12447 
12448 static void recordUnregisterClients(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
12449 {
12450  int f_num_client_specs;
12451  proto_tree_add_item(t, hf_x11_record_UnregisterClients_context, tvb, *offsetp, 4, byte_order);
12452  *offsetp += 4;
12453  f_num_client_specs = tvb_get_guint32(tvb, *offsetp, byte_order);
12454  proto_tree_add_item(t, hf_x11_record_UnregisterClients_num_client_specs, tvb, *offsetp, 4, byte_order);
12455  *offsetp += 4;
12456  listOfCard32(tvb, offsetp, t, hf_x11_record_UnregisterClients_client_specs, hf_x11_record_UnregisterClients_client_specs_item, f_num_client_specs, byte_order);
12457  length -= f_num_client_specs * 4;
12458 }
12459 
12460 static void recordGetContext(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
12461 {
12462  proto_tree_add_item(t, hf_x11_record_GetContext_context, tvb, *offsetp, 4, byte_order);
12463  *offsetp += 4;
12464 }
12465 static void recordGetContext_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
12466 {
12467  int sequence_number;
12468  int f_num_intercepted_clients;
12469 
12470  col_append_fstr(pinfo->cinfo, COL_INFO, "-GetContext");
12471 
12472  REPLY(reply);
12473  proto_tree_add_item(t, hf_x11_record_GetContext_reply_enabled, tvb, *offsetp, 1, byte_order);
12474  *offsetp += 1;
12475  sequence_number = tvb_get_guint16(tvb, *offsetp, byte_order);
12476  proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
12477  "%d (record-GetContext)", sequence_number);
12478  *offsetp += 2;
12479  proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
12480  *offsetp += 4;
12481  proto_tree_add_item(t, hf_x11_record_GetContext_reply_element_header, tvb, *offsetp, 1, byte_order);
12482  *offsetp += 1;
12483  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 3, ENC_NA);
12484  *offsetp += 3;
12485  f_num_intercepted_clients = tvb_get_guint32(tvb, *offsetp, byte_order);
12486  proto_tree_add_item(t, hf_x11_record_GetContext_reply_num_intercepted_clients, tvb, *offsetp, 4, byte_order);
12487  *offsetp += 4;
12488  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 16, ENC_NA);
12489  *offsetp += 16;
12490  struct_record_ClientInfo(tvb, offsetp, t, byte_order, f_num_intercepted_clients);
12491 }
12492 
12493 static void recordEnableContext(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
12494 {
12495  proto_tree_add_item(t, hf_x11_record_EnableContext_context, tvb, *offsetp, 4, byte_order);
12496  *offsetp += 4;
12497 }
12498 static void recordEnableContext_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
12499 {
12500  int sequence_number;
12501  int f_length;
12502 
12503  col_append_fstr(pinfo->cinfo, COL_INFO, "-EnableContext");
12504 
12505  REPLY(reply);
12506  proto_tree_add_item(t, hf_x11_record_EnableContext_reply_category, tvb, *offsetp, 1, byte_order);
12507  *offsetp += 1;
12508  sequence_number = tvb_get_guint16(tvb, *offsetp, byte_order);
12509  proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
12510  "%d (record-EnableContext)", sequence_number);
12511  *offsetp += 2;
12512  f_length = tvb_get_guint32(tvb, *offsetp, byte_order);
12513  proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
12514  *offsetp += 4;
12515  proto_tree_add_item(t, hf_x11_record_EnableContext_reply_element_header, tvb, *offsetp, 1, byte_order);
12516  *offsetp += 1;
12517  proto_tree_add_item(t, hf_x11_record_EnableContext_reply_client_swapped, tvb, *offsetp, 1, byte_order);
12518  *offsetp += 1;
12519  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 2, ENC_NA);
12520  *offsetp += 2;
12521  proto_tree_add_item(t, hf_x11_record_EnableContext_reply_xid_base, tvb, *offsetp, 4, byte_order);
12522  *offsetp += 4;
12523  proto_tree_add_item(t, hf_x11_record_EnableContext_reply_server_time, tvb, *offsetp, 4, byte_order);
12524  *offsetp += 4;
12525  proto_tree_add_item(t, hf_x11_record_EnableContext_reply_rec_sequence_num, tvb, *offsetp, 4, byte_order);
12526  *offsetp += 4;
12527  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 8, ENC_NA);
12528  *offsetp += 8;
12529  listOfByte(tvb, offsetp, t, hf_x11_record_EnableContext_reply_data, (f_length * 4), byte_order);
12530 }
12531 
12532 static void recordDisableContext(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
12533 {
12534  proto_tree_add_item(t, hf_x11_record_DisableContext_context, tvb, *offsetp, 4, byte_order);
12535  *offsetp += 4;
12536 }
12537 
12538 static void recordFreeContext(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
12539 {
12540  proto_tree_add_item(t, hf_x11_record_FreeContext_context, tvb, *offsetp, 4, byte_order);
12541  *offsetp += 4;
12542 }
12543 static const value_string record_extension_minor[] = {
12544  { 0, "QueryVersion" },
12545  { 1, "CreateContext" },
12546  { 2, "RegisterClients" },
12547  { 3, "UnregisterClients" },
12548  { 4, "GetContext" },
12549  { 5, "EnableContext" },
12550  { 6, "DisableContext" },
12551  { 7, "FreeContext" },
12552  { 0, NULL }
12553 };
12554 const x11_event_info record_events[] = {
12555  { NULL, NULL }
12556 };
12557 static x11_reply_info record_replies[] = {
12558  { 0, recordQueryVersion_Reply },
12559  { 4, recordGetContext_Reply },
12560  { 5, recordEnableContext_Reply },
12561  { 0, NULL }
12562 };
12563 
12564 static void dispatch_record(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
12565 {
12566  int minor, length;
12567  minor = CARD8(record_extension_minor);
12568  length = REQUEST_LENGTH();
12569 
12570  col_append_fstr(pinfo->cinfo, COL_INFO, "-%s",
12571  val_to_str(minor, record_extension_minor,
12572  "<Unknown opcode %d>"));
12573  switch (minor) {
12574  case 0:
12575  recordQueryVersion(tvb, pinfo, offsetp, t, byte_order, length);
12576  break;
12577  case 1:
12578  recordCreateContext(tvb, pinfo, offsetp, t, byte_order, length);
12579  break;
12580  case 2:
12581  recordRegisterClients(tvb, pinfo, offsetp, t, byte_order, length);
12582  break;
12583  case 3:
12584  recordUnregisterClients(tvb, pinfo, offsetp, t, byte_order, length);
12585  break;
12586  case 4:
12587  recordGetContext(tvb, pinfo, offsetp, t, byte_order, length);
12588  break;
12589  case 5:
12590  recordEnableContext(tvb, pinfo, offsetp, t, byte_order, length);
12591  break;
12592  case 6:
12593  recordDisableContext(tvb, pinfo, offsetp, t, byte_order, length);
12594  break;
12595  case 7:
12596  recordFreeContext(tvb, pinfo, offsetp, t, byte_order, length);
12597  break;
12598  /* No need for a default case here, since Unknown is printed above,
12599  and UNDECODED() is taken care of by dissect_x11_request */
12600  }
12601 }
12602 
12603 static void register_record(void)
12604 {
12605  set_handler("RECORD", dispatch_record, record_errors, record_events, NULL, record_replies);
12606 }
12607 
12608 static void renderQueryVersion(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
12609 {
12610  proto_tree_add_item(t, hf_x11_render_QueryVersion_client_major_version, tvb, *offsetp, 4, byte_order);
12611  *offsetp += 4;
12612  proto_tree_add_item(t, hf_x11_render_QueryVersion_client_minor_version, tvb, *offsetp, 4, byte_order);
12613  *offsetp += 4;
12614 }
12615 static void renderQueryVersion_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
12616 {
12617  int sequence_number;
12618 
12619  col_append_fstr(pinfo->cinfo, COL_INFO, "-QueryVersion");
12620 
12621  REPLY(reply);
12622  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
12623  *offsetp += 1;
12624  sequence_number = tvb_get_guint16(tvb, *offsetp, byte_order);
12625  proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
12626  "%d (render-QueryVersion)", sequence_number);
12627  *offsetp += 2;
12628  proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
12629  *offsetp += 4;
12630  proto_tree_add_item(t, hf_x11_render_QueryVersion_reply_major_version, tvb, *offsetp, 4, byte_order);
12631  *offsetp += 4;
12632  proto_tree_add_item(t, hf_x11_render_QueryVersion_reply_minor_version, tvb, *offsetp, 4, byte_order);
12633  *offsetp += 4;
12634  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 16, ENC_NA);
12635  *offsetp += 16;
12636 }
12637 
12638 static void renderQueryPictFormats(tvbuff_t *tvb _U_, packet_info *pinfo _U_, int *offsetp _U_, proto_tree *t _U_, guint byte_order _U_, int length _U_)
12639 {
12640 }
12641 static void renderQueryPictFormats_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
12642 {
12643  int sequence_number;
12644  int f_num_formats;
12645  int f_num_screens;
12646  int f_num_subpixel;
12647 
12648  col_append_fstr(pinfo->cinfo, COL_INFO, "-QueryPictFormats");
12649 
12650  REPLY(reply);
12651  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
12652  *offsetp += 1;
12653  sequence_number = tvb_get_guint16(tvb, *offsetp, byte_order);
12654  proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
12655  "%d (render-QueryPictFormats)", sequence_number);
12656  *offsetp += 2;
12657  proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
12658  *offsetp += 4;
12659  f_num_formats = tvb_get_guint32(tvb, *offsetp, byte_order);
12660  proto_tree_add_item(t, hf_x11_render_QueryPictFormats_reply_num_formats, tvb, *offsetp, 4, byte_order);
12661  *offsetp += 4;
12662  f_num_screens = tvb_get_guint32(tvb, *offsetp, byte_order);
12663  proto_tree_add_item(t, hf_x11_render_QueryPictFormats_reply_num_screens, tvb, *offsetp, 4, byte_order);
12664  *offsetp += 4;
12665  proto_tree_add_item(t, hf_x11_render_QueryPictFormats_reply_num_depths, tvb, *offsetp, 4, byte_order);
12666  *offsetp += 4;
12667  proto_tree_add_item(t, hf_x11_render_QueryPictFormats_reply_num_visuals, tvb, *offsetp, 4, byte_order);
12668  *offsetp += 4;
12669  f_num_subpixel = tvb_get_guint32(tvb, *offsetp, byte_order);
12670  proto_tree_add_item(t, hf_x11_render_QueryPictFormats_reply_num_subpixel, tvb, *offsetp, 4, byte_order);
12671  *offsetp += 4;
12672  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 4, ENC_NA);
12673  *offsetp += 4;
12674  struct_render_PICTFORMINFO(tvb, offsetp, t, byte_order, f_num_formats);
12675  struct_render_PICTSCREEN(tvb, offsetp, t, byte_order, f_num_screens);
12676  listOfCard32(tvb, offsetp, t, hf_x11_render_QueryPictFormats_reply_subpixels, hf_x11_render_QueryPictFormats_reply_subpixels_item, f_num_subpixel, byte_order);
12677 }
12678 
12679 static void renderQueryPictIndexValues(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
12680 {
12681  proto_tree_add_item(t, hf_x11_render_QueryPictIndexValues_format, tvb, *offsetp, 4, byte_order);
12682  *offsetp += 4;
12683 }
12684 static void renderQueryPictIndexValues_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
12685 {
12686  int sequence_number;
12687  int f_num_values;
12688 
12689  col_append_fstr(pinfo->cinfo, COL_INFO, "-QueryPictIndexValues");
12690 
12691  REPLY(reply);
12692  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
12693  *offsetp += 1;
12694  sequence_number = tvb_get_guint16(tvb, *offsetp, byte_order);
12695  proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
12696  "%d (render-QueryPictIndexValues)", sequence_number);
12697  *offsetp += 2;
12698  proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
12699  *offsetp += 4;
12700  f_num_values = tvb_get_guint32(tvb, *offsetp, byte_order);
12701  proto_tree_add_item(t, hf_x11_render_QueryPictIndexValues_reply_num_values, tvb, *offsetp, 4, byte_order);
12702  *offsetp += 4;
12703  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 20, ENC_NA);
12704  *offsetp += 20;
12705  struct_render_INDEXVALUE(tvb, offsetp, t, byte_order, f_num_values);
12706 }
12707 
12708 static void renderCreatePicture(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
12709 {
12710  int f_value_mask;
12711  proto_tree_add_item(t, hf_x11_render_CreatePicture_pid, tvb, *offsetp, 4, byte_order);
12712  *offsetp += 4;
12713  proto_tree_add_item(t, hf_x11_render_CreatePicture_drawable, tvb, *offsetp, 4, byte_order);
12714  *offsetp += 4;
12715  proto_tree_add_item(t, hf_x11_render_CreatePicture_format, tvb, *offsetp, 4, byte_order);
12716  *offsetp += 4;
12717  f_value_mask = tvb_get_guint32(tvb, *offsetp, byte_order);
12718  {
12719  int* const value_mask_bits [] = {
12720  &hf_x11_render_CreatePicture_value_mask_mask_Repeat,
12721  &hf_x11_render_CreatePicture_value_mask_mask_AlphaMap,
12722  &hf_x11_render_CreatePicture_value_mask_mask_AlphaXOrigin,
12723  &hf_x11_render_CreatePicture_value_mask_mask_AlphaYOrigin,
12724  &hf_x11_render_CreatePicture_value_mask_mask_ClipXOrigin,
12725  &hf_x11_render_CreatePicture_value_mask_mask_ClipYOrigin,
12726  &hf_x11_render_CreatePicture_value_mask_mask_ClipMask,
12727  &hf_x11_render_CreatePicture_value_mask_mask_GraphicsExposure,
12728  &hf_x11_render_CreatePicture_value_mask_mask_SubwindowMode,
12729  &hf_x11_render_CreatePicture_value_mask_mask_PolyEdge,
12730  &hf_x11_render_CreatePicture_value_mask_mask_PolyMode,
12731  &hf_x11_render_CreatePicture_value_mask_mask_Dither,
12732  &hf_x11_render_CreatePicture_value_mask_mask_ComponentAlpha,
12733  NULL
12734  };
12735  proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_render_CreatePicture_value_mask, ett_x11_rectangle, value_mask_bits, byte_order);
12736  }
12737  *offsetp += 4;
12738  if (f_value_mask & (1U << 0)) {
12739  field32(tvb, offsetp, t, hf_x11_render_CreatePicture_Repeat_repeat, byte_order);
12740  }
12741  if (f_value_mask & (1U << 1)) {
12742  proto_tree_add_item(t, hf_x11_render_CreatePicture_AlphaMap_alphamap, tvb, *offsetp, 4, byte_order);
12743  *offsetp += 4;
12744  }
12745  if (f_value_mask & (1U << 2)) {
12746  proto_tree_add_item(t, hf_x11_render_CreatePicture_AlphaXOrigin_alphaxorigin, tvb, *offsetp, 4, byte_order);
12747  *offsetp += 4;
12748  }
12749  if (f_value_mask & (1U << 3)) {
12750  proto_tree_add_item(t, hf_x11_render_CreatePicture_AlphaYOrigin_alphayorigin, tvb, *offsetp, 4, byte_order);
12751  *offsetp += 4;
12752  }
12753  if (f_value_mask & (1U << 4)) {
12754  proto_tree_add_item(t, hf_x11_render_CreatePicture_ClipXOrigin_clipxorigin, tvb, *offsetp, 4, byte_order);
12755  *offsetp += 4;
12756  }
12757  if (f_value_mask & (1U << 5)) {
12758  proto_tree_add_item(t, hf_x11_render_CreatePicture_ClipYOrigin_clipyorigin, tvb, *offsetp, 4, byte_order);
12759  *offsetp += 4;
12760  }
12761  if (f_value_mask & (1U << 6)) {
12762  proto_tree_add_item(t, hf_x11_render_CreatePicture_ClipMask_clipmask, tvb, *offsetp, 4, byte_order);
12763  *offsetp += 4;
12764  }
12765  if (f_value_mask & (1U << 7)) {
12766  proto_tree_add_item(t, hf_x11_render_CreatePicture_GraphicsExposure_graphicsexposure, tvb, *offsetp, 4, byte_order);
12767  *offsetp += 4;
12768  }
12769  if (f_value_mask & (1U << 8)) {
12770  field32(tvb, offsetp, t, hf_x11_render_CreatePicture_SubwindowMode_subwindowmode, byte_order);
12771  }
12772  if (f_value_mask & (1U << 9)) {
12773  field32(tvb, offsetp, t, hf_x11_render_CreatePicture_PolyEdge_polyedge, byte_order);
12774  }
12775  if (f_value_mask & (1U << 10)) {
12776  field32(tvb, offsetp, t, hf_x11_render_CreatePicture_PolyMode_polymode, byte_order);
12777  }
12778  if (f_value_mask & (1U << 11)) {
12779  proto_tree_add_item(t, hf_x11_render_CreatePicture_Dither_dither, tvb, *offsetp, 4, byte_order);
12780  *offsetp += 4;
12781  }
12782  if (f_value_mask & (1U << 12)) {
12783  proto_tree_add_item(t, hf_x11_render_CreatePicture_ComponentAlpha_componentalpha, tvb, *offsetp, 4, byte_order);
12784  *offsetp += 4;
12785  }
12786 }
12787 
12788 static void renderChangePicture(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
12789 {
12790  int f_value_mask;
12791  proto_tree_add_item(t, hf_x11_render_ChangePicture_picture, tvb, *offsetp, 4, byte_order);
12792  *offsetp += 4;
12793  f_value_mask = tvb_get_guint32(tvb, *offsetp, byte_order);
12794  {
12795  int* const value_mask_bits [] = {
12796  &hf_x11_render_ChangePicture_value_mask_mask_Repeat,
12797  &hf_x11_render_ChangePicture_value_mask_mask_AlphaMap,
12798  &hf_x11_render_ChangePicture_value_mask_mask_AlphaXOrigin,
12799  &hf_x11_render_ChangePicture_value_mask_mask_AlphaYOrigin,
12800  &hf_x11_render_ChangePicture_value_mask_mask_ClipXOrigin,
12801  &hf_x11_render_ChangePicture_value_mask_mask_ClipYOrigin,
12802  &hf_x11_render_ChangePicture_value_mask_mask_ClipMask,
12803  &hf_x11_render_ChangePicture_value_mask_mask_GraphicsExposure,
12804  &hf_x11_render_ChangePicture_value_mask_mask_SubwindowMode,
12805  &hf_x11_render_ChangePicture_value_mask_mask_PolyEdge,
12806  &hf_x11_render_ChangePicture_value_mask_mask_PolyMode,
12807  &hf_x11_render_ChangePicture_value_mask_mask_Dither,
12808  &hf_x11_render_ChangePicture_value_mask_mask_ComponentAlpha,
12809  NULL
12810  };
12811  proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_render_ChangePicture_value_mask, ett_x11_rectangle, value_mask_bits, byte_order);
12812  }
12813  *offsetp += 4;
12814  if (f_value_mask & (1U << 0)) {
12815  field32(tvb, offsetp, t, hf_x11_render_ChangePicture_Repeat_repeat, byte_order);
12816  }
12817  if (f_value_mask & (1U << 1)) {
12818  proto_tree_add_item(t, hf_x11_render_ChangePicture_AlphaMap_alphamap, tvb, *offsetp, 4, byte_order);
12819  *offsetp += 4;
12820  }
12821  if (f_value_mask & (1U << 2)) {
12822  proto_tree_add_item(t, hf_x11_render_ChangePicture_AlphaXOrigin_alphaxorigin, tvb, *offsetp, 4, byte_order);
12823  *offsetp += 4;
12824  }
12825  if (f_value_mask & (1U << 3)) {
12826  proto_tree_add_item(t, hf_x11_render_ChangePicture_AlphaYOrigin_alphayorigin, tvb, *offsetp, 4, byte_order);
12827  *offsetp += 4;
12828  }
12829  if (f_value_mask & (1U << 4)) {
12830  proto_tree_add_item(t, hf_x11_render_ChangePicture_ClipXOrigin_clipxorigin, tvb, *offsetp, 4, byte_order);
12831  *offsetp += 4;
12832  }
12833  if (f_value_mask & (1U << 5)) {
12834  proto_tree_add_item(t, hf_x11_render_ChangePicture_ClipYOrigin_clipyorigin, tvb, *offsetp, 4, byte_order);
12835  *offsetp += 4;
12836  }
12837  if (f_value_mask & (1U << 6)) {
12838  proto_tree_add_item(t, hf_x11_render_ChangePicture_ClipMask_clipmask, tvb, *offsetp, 4, byte_order);
12839  *offsetp += 4;
12840  }
12841  if (f_value_mask & (1U << 7)) {
12842  proto_tree_add_item(t, hf_x11_render_ChangePicture_GraphicsExposure_graphicsexposure, tvb, *offsetp, 4, byte_order);
12843  *offsetp += 4;
12844  }
12845  if (f_value_mask & (1U << 8)) {
12846  field32(tvb, offsetp, t, hf_x11_render_ChangePicture_SubwindowMode_subwindowmode, byte_order);
12847  }
12848  if (f_value_mask & (1U << 9)) {
12849  field32(tvb, offsetp, t, hf_x11_render_ChangePicture_PolyEdge_polyedge, byte_order);
12850  }
12851  if (f_value_mask & (1U << 10)) {
12852  field32(tvb, offsetp, t, hf_x11_render_ChangePicture_PolyMode_polymode, byte_order);
12853  }
12854  if (f_value_mask & (1U << 11)) {
12855  proto_tree_add_item(t, hf_x11_render_ChangePicture_Dither_dither, tvb, *offsetp, 4, byte_order);
12856  *offsetp += 4;
12857  }
12858  if (f_value_mask & (1U << 12)) {
12859  proto_tree_add_item(t, hf_x11_render_ChangePicture_ComponentAlpha_componentalpha, tvb, *offsetp, 4, byte_order);
12860  *offsetp += 4;
12861  }
12862 }
12863 
12864 static void renderSetPictureClipRectangles(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
12865 {
12866  proto_tree_add_item(t, hf_x11_render_SetPictureClipRectangles_picture, tvb, *offsetp, 4, byte_order);
12867  *offsetp += 4;
12868  proto_tree_add_item(t, hf_x11_render_SetPictureClipRectangles_clip_x_origin, tvb, *offsetp, 2, byte_order);
12869  *offsetp += 2;
12870  proto_tree_add_item(t, hf_x11_render_SetPictureClipRectangles_clip_y_origin, tvb, *offsetp, 2, byte_order);
12871  *offsetp += 2;
12872  struct_xproto_RECTANGLE(tvb, offsetp, t, byte_order, (length - 12) / 8);
12873 }
12874 
12875 static void renderFreePicture(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
12876 {
12877  proto_tree_add_item(t, hf_x11_render_FreePicture_picture, tvb, *offsetp, 4, byte_order);
12878  *offsetp += 4;
12879 }
12880 
12881 static void renderComposite(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
12882 {
12883  field8(tvb, offsetp, t, hf_x11_render_Composite_op, byte_order);
12884  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 3, ENC_NA);
12885  *offsetp += 3;
12886  proto_tree_add_item(t, hf_x11_render_Composite_src, tvb, *offsetp, 4, byte_order);
12887  *offsetp += 4;
12888  field32(tvb, offsetp, t, hf_x11_render_Composite_mask, byte_order);
12889  proto_tree_add_item(t, hf_x11_render_Composite_dst, tvb, *offsetp, 4, byte_order);
12890  *offsetp += 4;
12891  proto_tree_add_item(t, hf_x11_render_Composite_src_x, tvb, *offsetp, 2, byte_order);
12892  *offsetp += 2;
12893  proto_tree_add_item(t, hf_x11_render_Composite_src_y, tvb, *offsetp, 2, byte_order);
12894  *offsetp += 2;
12895  proto_tree_add_item(t, hf_x11_render_Composite_mask_x, tvb, *offsetp, 2, byte_order);
12896  *offsetp += 2;
12897  proto_tree_add_item(t, hf_x11_render_Composite_mask_y, tvb, *offsetp, 2, byte_order);
12898  *offsetp += 2;
12899  proto_tree_add_item(t, hf_x11_render_Composite_dst_x, tvb, *offsetp, 2, byte_order);
12900  *offsetp += 2;
12901  proto_tree_add_item(t, hf_x11_render_Composite_dst_y, tvb, *offsetp, 2, byte_order);
12902  *offsetp += 2;
12903  proto_tree_add_item(t, hf_x11_render_Composite_width, tvb, *offsetp, 2, byte_order);
12904  *offsetp += 2;
12905  proto_tree_add_item(t, hf_x11_render_Composite_height, tvb, *offsetp, 2, byte_order);
12906  *offsetp += 2;
12907 }
12908 
12909 static void renderTrapezoids(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
12910 {
12911  field8(tvb, offsetp, t, hf_x11_render_Trapezoids_op, byte_order);
12912  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 3, ENC_NA);
12913  *offsetp += 3;
12914  proto_tree_add_item(t, hf_x11_render_Trapezoids_src, tvb, *offsetp, 4, byte_order);
12915  *offsetp += 4;
12916  proto_tree_add_item(t, hf_x11_render_Trapezoids_dst, tvb, *offsetp, 4, byte_order);
12917  *offsetp += 4;
12918  proto_tree_add_item(t, hf_x11_render_Trapezoids_mask_format, tvb, *offsetp, 4, byte_order);
12919  *offsetp += 4;
12920  proto_tree_add_item(t, hf_x11_render_Trapezoids_src_x, tvb, *offsetp, 2, byte_order);
12921  *offsetp += 2;
12922  proto_tree_add_item(t, hf_x11_render_Trapezoids_src_y, tvb, *offsetp, 2, byte_order);
12923  *offsetp += 2;
12924  struct_render_TRAPEZOID(tvb, offsetp, t, byte_order, (length - 24) / 40);
12925 }
12926 
12927 static void renderTriangles(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
12928 {
12929  field8(tvb, offsetp, t, hf_x11_render_Triangles_op, byte_order);
12930  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 3, ENC_NA);
12931  *offsetp += 3;
12932  proto_tree_add_item(t, hf_x11_render_Triangles_src, tvb, *offsetp, 4, byte_order);
12933  *offsetp += 4;
12934  proto_tree_add_item(t, hf_x11_render_Triangles_dst, tvb, *offsetp, 4, byte_order);
12935  *offsetp += 4;
12936  proto_tree_add_item(t, hf_x11_render_Triangles_mask_format, tvb, *offsetp, 4, byte_order);
12937  *offsetp += 4;
12938  proto_tree_add_item(t, hf_x11_render_Triangles_src_x, tvb, *offsetp, 2, byte_order);
12939  *offsetp += 2;
12940  proto_tree_add_item(t, hf_x11_render_Triangles_src_y, tvb, *offsetp, 2, byte_order);
12941  *offsetp += 2;
12942  struct_render_TRIANGLE(tvb, offsetp, t, byte_order, (length - 24) / 24);
12943 }
12944 
12945 static void renderTriStrip(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
12946 {
12947  field8(tvb, offsetp, t, hf_x11_render_TriStrip_op, byte_order);
12948  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 3, ENC_NA);
12949  *offsetp += 3;
12950  proto_tree_add_item(t, hf_x11_render_TriStrip_src, tvb, *offsetp, 4, byte_order);
12951  *offsetp += 4;
12952  proto_tree_add_item(t, hf_x11_render_TriStrip_dst, tvb, *offsetp, 4, byte_order);
12953  *offsetp += 4;
12954  proto_tree_add_item(t, hf_x11_render_TriStrip_mask_format, tvb, *offsetp, 4, byte_order);
12955  *offsetp += 4;
12956  proto_tree_add_item(t, hf_x11_render_TriStrip_src_x, tvb, *offsetp, 2, byte_order);
12957  *offsetp += 2;
12958  proto_tree_add_item(t, hf_x11_render_TriStrip_src_y, tvb, *offsetp, 2, byte_order);
12959  *offsetp += 2;
12960  struct_render_POINTFIX(tvb, offsetp, t, byte_order, (length - 24) / 8);
12961 }
12962 
12963 static void renderTriFan(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
12964 {
12965  field8(tvb, offsetp, t, hf_x11_render_TriFan_op, byte_order);
12966  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 3, ENC_NA);
12967  *offsetp += 3;
12968  proto_tree_add_item(t, hf_x11_render_TriFan_src, tvb, *offsetp, 4, byte_order);
12969  *offsetp += 4;
12970  proto_tree_add_item(t, hf_x11_render_TriFan_dst, tvb, *offsetp, 4, byte_order);
12971  *offsetp += 4;
12972  proto_tree_add_item(t, hf_x11_render_TriFan_mask_format, tvb, *offsetp, 4, byte_order);
12973  *offsetp += 4;
12974  proto_tree_add_item(t, hf_x11_render_TriFan_src_x, tvb, *offsetp, 2, byte_order);
12975  *offsetp += 2;
12976  proto_tree_add_item(t, hf_x11_render_TriFan_src_y, tvb, *offsetp, 2, byte_order);
12977  *offsetp += 2;
12978  struct_render_POINTFIX(tvb, offsetp, t, byte_order, (length - 24) / 8);
12979 }
12980 
12981 static void renderCreateGlyphSet(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
12982 {
12983  proto_tree_add_item(t, hf_x11_render_CreateGlyphSet_gsid, tvb, *offsetp, 4, byte_order);
12984  *offsetp += 4;
12985  proto_tree_add_item(t, hf_x11_render_CreateGlyphSet_format, tvb, *offsetp, 4, byte_order);
12986  *offsetp += 4;
12987 }
12988 
12989 static void renderReferenceGlyphSet(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
12990 {
12991  proto_tree_add_item(t, hf_x11_render_ReferenceGlyphSet_gsid, tvb, *offsetp, 4, byte_order);
12992  *offsetp += 4;
12993  proto_tree_add_item(t, hf_x11_render_ReferenceGlyphSet_existing, tvb, *offsetp, 4, byte_order);
12994  *offsetp += 4;
12995 }
12996 
12997 static void renderFreeGlyphSet(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
12998 {
12999  proto_tree_add_item(t, hf_x11_render_FreeGlyphSet_glyphset, tvb, *offsetp, 4, byte_order);
13000  *offsetp += 4;
13001 }
13002 
13003 static void renderAddGlyphs(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
13004 {
13005  int f_glyphs_len;
13006  proto_tree_add_item(t, hf_x11_render_AddGlyphs_glyphset, tvb, *offsetp, 4, byte_order);
13007  *offsetp += 4;
13008  f_glyphs_len = tvb_get_guint32(tvb, *offsetp, byte_order);
13009  proto_tree_add_item(t, hf_x11_render_AddGlyphs_glyphs_len, tvb, *offsetp, 4, byte_order);
13010  *offsetp += 4;
13011  listOfCard32(tvb, offsetp, t, hf_x11_render_AddGlyphs_glyphids, hf_x11_render_AddGlyphs_glyphids_item, f_glyphs_len, byte_order);
13012  length -= f_glyphs_len * 4;
13013  struct_render_GLYPHINFO(tvb, offsetp, t, byte_order, f_glyphs_len);
13014  length -= f_glyphs_len * 12;
13015  listOfByte(tvb, offsetp, t, hf_x11_render_AddGlyphs_data, (length - 12) / 1, byte_order);
13016 }
13017 
13018 static void renderFreeGlyphs(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
13019 {
13020  proto_tree_add_item(t, hf_x11_render_FreeGlyphs_glyphset, tvb, *offsetp, 4, byte_order);
13021  *offsetp += 4;
13022  listOfCard32(tvb, offsetp, t, hf_x11_render_FreeGlyphs_glyphs, hf_x11_render_FreeGlyphs_glyphs_item, (length - 8) / 4, byte_order);
13023 }
13024 
13025 static void renderCompositeGlyphs8(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
13026 {
13027  field8(tvb, offsetp, t, hf_x11_render_CompositeGlyphs8_op, byte_order);
13028  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 3, ENC_NA);
13029  *offsetp += 3;
13030  proto_tree_add_item(t, hf_x11_render_CompositeGlyphs8_src, tvb, *offsetp, 4, byte_order);
13031  *offsetp += 4;
13032  proto_tree_add_item(t, hf_x11_render_CompositeGlyphs8_dst, tvb, *offsetp, 4, byte_order);
13033  *offsetp += 4;
13034  proto_tree_add_item(t, hf_x11_render_CompositeGlyphs8_mask_format, tvb, *offsetp, 4, byte_order);
13035  *offsetp += 4;
13036  proto_tree_add_item(t, hf_x11_render_CompositeGlyphs8_glyphset, tvb, *offsetp, 4, byte_order);
13037  *offsetp += 4;
13038  proto_tree_add_item(t, hf_x11_render_CompositeGlyphs8_src_x, tvb, *offsetp, 2, byte_order);
13039  *offsetp += 2;
13040  proto_tree_add_item(t, hf_x11_render_CompositeGlyphs8_src_y, tvb, *offsetp, 2, byte_order);
13041  *offsetp += 2;
13042  listOfByte(tvb, offsetp, t, hf_x11_render_CompositeGlyphs8_glyphcmds, (length - 28) / 1, byte_order);
13043 }
13044 
13045 static void renderCompositeGlyphs16(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
13046 {
13047  field8(tvb, offsetp, t, hf_x11_render_CompositeGlyphs16_op, byte_order);
13048  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 3, ENC_NA);
13049  *offsetp += 3;
13050  proto_tree_add_item(t, hf_x11_render_CompositeGlyphs16_src, tvb, *offsetp, 4, byte_order);
13051  *offsetp += 4;
13052  proto_tree_add_item(t, hf_x11_render_CompositeGlyphs16_dst, tvb, *offsetp, 4, byte_order);
13053  *offsetp += 4;
13054  proto_tree_add_item(t, hf_x11_render_CompositeGlyphs16_mask_format, tvb, *offsetp, 4, byte_order);
13055  *offsetp += 4;
13056  proto_tree_add_item(t, hf_x11_render_CompositeGlyphs16_glyphset, tvb, *offsetp, 4, byte_order);
13057  *offsetp += 4;
13058  proto_tree_add_item(t, hf_x11_render_CompositeGlyphs16_src_x, tvb, *offsetp, 2, byte_order);
13059  *offsetp += 2;
13060  proto_tree_add_item(t, hf_x11_render_CompositeGlyphs16_src_y, tvb, *offsetp, 2, byte_order);
13061  *offsetp += 2;
13062  listOfByte(tvb, offsetp, t, hf_x11_render_CompositeGlyphs16_glyphcmds, (length - 28) / 1, byte_order);
13063 }
13064 
13065 static void renderCompositeGlyphs32(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
13066 {
13067  field8(tvb, offsetp, t, hf_x11_render_CompositeGlyphs32_op, byte_order);
13068  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 3, ENC_NA);
13069  *offsetp += 3;
13070  proto_tree_add_item(t, hf_x11_render_CompositeGlyphs32_src, tvb, *offsetp, 4, byte_order);
13071  *offsetp += 4;
13072  proto_tree_add_item(t, hf_x11_render_CompositeGlyphs32_dst, tvb, *offsetp, 4, byte_order);
13073  *offsetp += 4;
13074  proto_tree_add_item(t, hf_x11_render_CompositeGlyphs32_mask_format, tvb, *offsetp, 4, byte_order);
13075  *offsetp += 4;
13076  proto_tree_add_item(t, hf_x11_render_CompositeGlyphs32_glyphset, tvb, *offsetp, 4, byte_order);
13077  *offsetp += 4;
13078  proto_tree_add_item(t, hf_x11_render_CompositeGlyphs32_src_x, tvb, *offsetp, 2, byte_order);
13079  *offsetp += 2;
13080  proto_tree_add_item(t, hf_x11_render_CompositeGlyphs32_src_y, tvb, *offsetp, 2, byte_order);
13081  *offsetp += 2;
13082  listOfByte(tvb, offsetp, t, hf_x11_render_CompositeGlyphs32_glyphcmds, (length - 28) / 1, byte_order);
13083 }
13084 
13085 static void renderFillRectangles(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
13086 {
13087  field8(tvb, offsetp, t, hf_x11_render_FillRectangles_op, byte_order);
13088  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 3, ENC_NA);
13089  *offsetp += 3;
13090  proto_tree_add_item(t, hf_x11_render_FillRectangles_dst, tvb, *offsetp, 4, byte_order);
13091  *offsetp += 4;
13092  struct_render_COLOR(tvb, offsetp, t, byte_order, 1);
13093  struct_xproto_RECTANGLE(tvb, offsetp, t, byte_order, (length - 20) / 8);
13094 }
13095 
13096 static void renderCreateCursor(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
13097 {
13098  proto_tree_add_item(t, hf_x11_render_CreateCursor_cid, tvb, *offsetp, 4, byte_order);
13099  *offsetp += 4;
13100  proto_tree_add_item(t, hf_x11_render_CreateCursor_source, tvb, *offsetp, 4, byte_order);
13101  *offsetp += 4;
13102  proto_tree_add_item(t, hf_x11_render_CreateCursor_x, tvb, *offsetp, 2, byte_order);
13103  *offsetp += 2;
13104  proto_tree_add_item(t, hf_x11_render_CreateCursor_y, tvb, *offsetp, 2, byte_order);
13105  *offsetp += 2;
13106 }
13107 
13108 static void renderSetPictureTransform(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
13109 {
13110  proto_tree_add_item(t, hf_x11_render_SetPictureTransform_picture, tvb, *offsetp, 4, byte_order);
13111  *offsetp += 4;
13112  struct_render_TRANSFORM(tvb, offsetp, t, byte_order, 1);
13113 }
13114 
13115 static void renderQueryFilters(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
13116 {
13117  proto_tree_add_item(t, hf_x11_render_QueryFilters_drawable, tvb, *offsetp, 4, byte_order);
13118  *offsetp += 4;
13119 }
13120 static void renderQueryFilters_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
13121 {
13122  int sequence_number;
13123  int f_num_aliases;
13124  int f_num_filters;
13125 
13126  col_append_fstr(pinfo->cinfo, COL_INFO, "-QueryFilters");
13127 
13128  REPLY(reply);
13129  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
13130  *offsetp += 1;
13131  sequence_number = tvb_get_guint16(tvb, *offsetp, byte_order);
13132  proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
13133  "%d (render-QueryFilters)", sequence_number);
13134  *offsetp += 2;
13135  proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
13136  *offsetp += 4;
13137  f_num_aliases = tvb_get_guint32(tvb, *offsetp, byte_order);
13138  proto_tree_add_item(t, hf_x11_render_QueryFilters_reply_num_aliases, tvb, *offsetp, 4, byte_order);
13139  *offsetp += 4;
13140  f_num_filters = tvb_get_guint32(tvb, *offsetp, byte_order);
13141  proto_tree_add_item(t, hf_x11_render_QueryFilters_reply_num_filters, tvb, *offsetp, 4, byte_order);
13142  *offsetp += 4;
13143  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 16, ENC_NA);
13144  *offsetp += 16;
13145  listOfCard16(tvb, offsetp, t, hf_x11_render_QueryFilters_reply_aliases, hf_x11_render_QueryFilters_reply_aliases_item, f_num_aliases, byte_order);
13146  struct_xproto_STR(tvb, offsetp, t, byte_order, f_num_filters);
13147 }
13148 
13149 static void renderSetPictureFilter(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
13150 {
13151  int f_filter_len;
13152  proto_tree_add_item(t, hf_x11_render_SetPictureFilter_picture, tvb, *offsetp, 4, byte_order);
13153  *offsetp += 4;
13154  f_filter_len = tvb_get_guint16(tvb, *offsetp, byte_order);
13155  proto_tree_add_item(t, hf_x11_render_SetPictureFilter_filter_len, tvb, *offsetp, 2, byte_order);
13156  *offsetp += 2;
13157  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 2, ENC_NA);
13158  *offsetp += 2;
13159  listOfByte(tvb, offsetp, t, hf_x11_render_SetPictureFilter_filter, f_filter_len, byte_order);
13160  length -= f_filter_len * 1;
13161  if (*offsetp % 4) {
13162  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, (4 - *offsetp % 4), ENC_NA);
13163  *offsetp += (4 - *offsetp % 4);
13164  }
13165  length = ((length + 3) & ~3);
13166  listOfInt32(tvb, offsetp, t, hf_x11_render_SetPictureFilter_values, hf_x11_render_SetPictureFilter_values_item, (length - 12) / 4, byte_order);
13167 }
13168 
13169 static void renderCreateAnimCursor(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
13170 {
13171  proto_tree_add_item(t, hf_x11_render_CreateAnimCursor_cid, tvb, *offsetp, 4, byte_order);
13172  *offsetp += 4;
13173  struct_render_ANIMCURSORELT(tvb, offsetp, t, byte_order, (length - 8) / 8);
13174 }
13175 
13176 static void renderAddTraps(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
13177 {
13178  proto_tree_add_item(t, hf_x11_render_AddTraps_picture, tvb, *offsetp, 4, byte_order);
13179  *offsetp += 4;
13180  proto_tree_add_item(t, hf_x11_render_AddTraps_x_off, tvb, *offsetp, 2, byte_order);
13181  *offsetp += 2;
13182  proto_tree_add_item(t, hf_x11_render_AddTraps_y_off, tvb, *offsetp, 2, byte_order);
13183  *offsetp += 2;
13184  struct_render_TRAP(tvb, offsetp, t, byte_order, (length - 12) / 24);
13185 }
13186 
13187 static void renderCreateSolidFill(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
13188 {
13189  proto_tree_add_item(t, hf_x11_render_CreateSolidFill_picture, tvb, *offsetp, 4, byte_order);
13190  *offsetp += 4;
13191  struct_render_COLOR(tvb, offsetp, t, byte_order, 1);
13192 }
13193 
13194 static void renderCreateLinearGradient(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
13195 {
13196  int f_num_stops;
13197  proto_tree_add_item(t, hf_x11_render_CreateLinearGradient_picture, tvb, *offsetp, 4, byte_order);
13198  *offsetp += 4;
13199  struct_render_POINTFIX(tvb, offsetp, t, byte_order, 1);
13200  struct_render_POINTFIX(tvb, offsetp, t, byte_order, 1);
13201  f_num_stops = tvb_get_guint32(tvb, *offsetp, byte_order);
13202  proto_tree_add_item(t, hf_x11_render_CreateLinearGradient_num_stops, tvb, *offsetp, 4, byte_order);
13203  *offsetp += 4;
13204  listOfInt32(tvb, offsetp, t, hf_x11_render_CreateLinearGradient_stops, hf_x11_render_CreateLinearGradient_stops_item, f_num_stops, byte_order);
13205  length -= f_num_stops * 4;
13206  struct_render_COLOR(tvb, offsetp, t, byte_order, f_num_stops);
13207  length -= f_num_stops * 8;
13208 }
13209 
13210 static void renderCreateRadialGradient(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
13211 {
13212  int f_num_stops;
13213  proto_tree_add_item(t, hf_x11_render_CreateRadialGradient_picture, tvb, *offsetp, 4, byte_order);
13214  *offsetp += 4;
13215  struct_render_POINTFIX(tvb, offsetp, t, byte_order, 1);
13216  struct_render_POINTFIX(tvb, offsetp, t, byte_order, 1);
13217  proto_tree_add_item(t, hf_x11_render_CreateRadialGradient_inner_radius, tvb, *offsetp, 4, byte_order);
13218  *offsetp += 4;
13219  proto_tree_add_item(t, hf_x11_render_CreateRadialGradient_outer_radius, tvb, *offsetp, 4, byte_order);
13220  *offsetp += 4;
13221  f_num_stops = tvb_get_guint32(tvb, *offsetp, byte_order);
13222  proto_tree_add_item(t, hf_x11_render_CreateRadialGradient_num_stops, tvb, *offsetp, 4, byte_order);
13223  *offsetp += 4;
13224  listOfInt32(tvb, offsetp, t, hf_x11_render_CreateRadialGradient_stops, hf_x11_render_CreateRadialGradient_stops_item, f_num_stops, byte_order);
13225  length -= f_num_stops * 4;
13226  struct_render_COLOR(tvb, offsetp, t, byte_order, f_num_stops);
13227  length -= f_num_stops * 8;
13228 }
13229 
13230 static void renderCreateConicalGradient(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
13231 {
13232  int f_num_stops;
13233  proto_tree_add_item(t, hf_x11_render_CreateConicalGradient_picture, tvb, *offsetp, 4, byte_order);
13234  *offsetp += 4;
13235  struct_render_POINTFIX(tvb, offsetp, t, byte_order, 1);
13236  proto_tree_add_item(t, hf_x11_render_CreateConicalGradient_angle, tvb, *offsetp, 4, byte_order);
13237  *offsetp += 4;
13238  f_num_stops = tvb_get_guint32(tvb, *offsetp, byte_order);
13239  proto_tree_add_item(t, hf_x11_render_CreateConicalGradient_num_stops, tvb, *offsetp, 4, byte_order);
13240  *offsetp += 4;
13241  listOfInt32(tvb, offsetp, t, hf_x11_render_CreateConicalGradient_stops, hf_x11_render_CreateConicalGradient_stops_item, f_num_stops, byte_order);
13242  length -= f_num_stops * 4;
13243  struct_render_COLOR(tvb, offsetp, t, byte_order, f_num_stops);
13244  length -= f_num_stops * 8;
13245 }
13246 static const value_string render_extension_minor[] = {
13247  { 0, "QueryVersion" },
13248  { 1, "QueryPictFormats" },
13249  { 2, "QueryPictIndexValues" },
13250  { 4, "CreatePicture" },
13251  { 5, "ChangePicture" },
13252  { 6, "SetPictureClipRectangles" },
13253  { 7, "FreePicture" },
13254  { 8, "Composite" },
13255  { 10, "Trapezoids" },
13256  { 11, "Triangles" },
13257  { 12, "TriStrip" },
13258  { 13, "TriFan" },
13259  { 17, "CreateGlyphSet" },
13260  { 18, "ReferenceGlyphSet" },
13261  { 19, "FreeGlyphSet" },
13262  { 20, "AddGlyphs" },
13263  { 22, "FreeGlyphs" },
13264  { 23, "CompositeGlyphs8" },
13265  { 24, "CompositeGlyphs16" },
13266  { 25, "CompositeGlyphs32" },
13267  { 26, "FillRectangles" },
13268  { 27, "CreateCursor" },
13269  { 28, "SetPictureTransform" },
13270  { 29, "QueryFilters" },
13271  { 30, "SetPictureFilter" },
13272  { 31, "CreateAnimCursor" },
13273  { 32, "AddTraps" },
13274  { 33, "CreateSolidFill" },
13275  { 34, "CreateLinearGradient" },
13276  { 35, "CreateRadialGradient" },
13277  { 36, "CreateConicalGradient" },
13278  { 0, NULL }
13279 };
13280 const x11_event_info render_events[] = {
13281  { NULL, NULL }
13282 };
13283 static x11_reply_info render_replies[] = {
13284  { 0, renderQueryVersion_Reply },
13285  { 1, renderQueryPictFormats_Reply },
13286  { 2, renderQueryPictIndexValues_Reply },
13287  { 29, renderQueryFilters_Reply },
13288  { 0, NULL }
13289 };
13290 
13291 static void dispatch_render(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
13292 {
13293  int minor, length;
13294  minor = CARD8(render_extension_minor);
13295  length = REQUEST_LENGTH();
13296 
13297  col_append_fstr(pinfo->cinfo, COL_INFO, "-%s",
13298  val_to_str(minor, render_extension_minor,
13299  "<Unknown opcode %d>"));
13300  switch (minor) {
13301  case 0:
13302  renderQueryVersion(tvb, pinfo, offsetp, t, byte_order, length);
13303  break;
13304  case 1:
13305  renderQueryPictFormats(tvb, pinfo, offsetp, t, byte_order, length);
13306  break;
13307  case 2:
13308  renderQueryPictIndexValues(tvb, pinfo, offsetp, t, byte_order, length);
13309  break;
13310  case 4:
13311  renderCreatePicture(tvb, pinfo, offsetp, t, byte_order, length);
13312  break;
13313  case 5:
13314  renderChangePicture(tvb, pinfo, offsetp, t, byte_order, length);
13315  break;
13316  case 6:
13317  renderSetPictureClipRectangles(tvb, pinfo, offsetp, t, byte_order, length);
13318  break;
13319  case 7:
13320  renderFreePicture(tvb, pinfo, offsetp, t, byte_order, length);
13321  break;
13322  case 8:
13323  renderComposite(tvb, pinfo, offsetp, t, byte_order, length);
13324  break;
13325  case 10:
13326  renderTrapezoids(tvb, pinfo, offsetp, t, byte_order, length);
13327  break;
13328  case 11:
13329  renderTriangles(tvb, pinfo, offsetp, t, byte_order, length);
13330  break;
13331  case 12:
13332  renderTriStrip(tvb, pinfo, offsetp, t, byte_order, length);
13333  break;
13334  case 13:
13335  renderTriFan(tvb, pinfo, offsetp, t, byte_order, length);
13336  break;
13337  case 17:
13338  renderCreateGlyphSet(tvb, pinfo, offsetp, t, byte_order, length);
13339  break;
13340  case 18:
13341  renderReferenceGlyphSet(tvb, pinfo, offsetp, t, byte_order, length);
13342  break;
13343  case 19:
13344  renderFreeGlyphSet(tvb, pinfo, offsetp, t, byte_order, length);
13345  break;
13346  case 20:
13347  renderAddGlyphs(tvb, pinfo, offsetp, t, byte_order, length);
13348  break;
13349  case 22:
13350  renderFreeGlyphs(tvb, pinfo, offsetp, t, byte_order, length);
13351  break;
13352  case 23:
13353  renderCompositeGlyphs8(tvb, pinfo, offsetp, t, byte_order, length);
13354  break;
13355  case 24:
13356  renderCompositeGlyphs16(tvb, pinfo, offsetp, t, byte_order, length);
13357  break;
13358  case 25:
13359  renderCompositeGlyphs32(tvb, pinfo, offsetp, t, byte_order, length);
13360  break;
13361  case 26:
13362  renderFillRectangles(tvb, pinfo, offsetp, t, byte_order, length);
13363  break;
13364  case 27:
13365  renderCreateCursor(tvb, pinfo, offsetp, t, byte_order, length);
13366  break;
13367  case 28:
13368  renderSetPictureTransform(tvb, pinfo, offsetp, t, byte_order, length);
13369  break;
13370  case 29:
13371  renderQueryFilters(tvb, pinfo, offsetp, t, byte_order, length);
13372  break;
13373  case 30:
13374  renderSetPictureFilter(tvb, pinfo, offsetp, t, byte_order, length);
13375  break;
13376  case 31:
13377  renderCreateAnimCursor(tvb, pinfo, offsetp, t, byte_order, length);
13378  break;
13379  case 32:
13380  renderAddTraps(tvb, pinfo, offsetp, t, byte_order, length);
13381  break;
13382  case 33:
13383  renderCreateSolidFill(tvb, pinfo, offsetp, t, byte_order, length);
13384  break;
13385  case 34:
13386  renderCreateLinearGradient(tvb, pinfo, offsetp, t, byte_order, length);
13387  break;
13388  case 35:
13389  renderCreateRadialGradient(tvb, pinfo, offsetp, t, byte_order, length);
13390  break;
13391  case 36:
13392  renderCreateConicalGradient(tvb, pinfo, offsetp, t, byte_order, length);
13393  break;
13394  /* No need for a default case here, since Unknown is printed above,
13395  and UNDECODED() is taken care of by dissect_x11_request */
13396  }
13397 }
13398 
13399 static void register_render(void)
13400 {
13401  set_handler("RENDER", dispatch_render, render_errors, render_events, NULL, render_replies);
13402 }
13403 
13404 static void struct_res_Client(tvbuff_t *tvb, int *offsetp, proto_tree *root, guint byte_order _U_, int count)
13405 {
13406  int i;
13407  for (i = 0; i < count; i++) {
13408  proto_item *item;
13409  proto_tree *t;
13410 
13411  item = proto_tree_add_item(root, hf_x11_struct_res_Client, tvb, *offsetp, 8, ENC_NA);
13412  t = proto_item_add_subtree(item, ett_x11_rectangle);
13413  proto_tree_add_item(t, hf_x11_struct_res_Client_resource_base, tvb, *offsetp, 4, byte_order);
13414  *offsetp += 4;
13415  proto_tree_add_item(t, hf_x11_struct_res_Client_resource_mask, tvb, *offsetp, 4, byte_order);
13416  *offsetp += 4;
13417  }
13418 }
13419 
13420 static void struct_res_Type(tvbuff_t *tvb, int *offsetp, proto_tree *root, guint byte_order _U_, int count)
13421 {
13422  int i;
13423  for (i = 0; i < count; i++) {
13424  proto_item *item;
13425  proto_tree *t;
13426 
13427  item = proto_tree_add_item(root, hf_x11_struct_res_Type, tvb, *offsetp, 8, ENC_NA);
13428  t = proto_item_add_subtree(item, ett_x11_rectangle);
13429  proto_tree_add_item(t, hf_x11_struct_res_Type_resource_type, tvb, *offsetp, 4, byte_order);
13430  *offsetp += 4;
13431  proto_tree_add_item(t, hf_x11_struct_res_Type_count, tvb, *offsetp, 4, byte_order);
13432  *offsetp += 4;
13433  }
13434 }
13435 
13436 static void struct_res_ClientIdSpec(tvbuff_t *tvb, int *offsetp, proto_tree *root, guint byte_order _U_, int count)
13437 {
13438  int i;
13439  for (i = 0; i < count; i++) {
13440  proto_item *item;
13441  proto_tree *t;
13442 
13443  item = proto_tree_add_item(root, hf_x11_struct_res_ClientIdSpec, tvb, *offsetp, 8, ENC_NA);
13444  t = proto_item_add_subtree(item, ett_x11_rectangle);
13445  proto_tree_add_item(t, hf_x11_struct_res_ClientIdSpec_client, tvb, *offsetp, 4, byte_order);
13446  *offsetp += 4;
13447  {
13448  int* const mask_bits [] = {
13449  &hf_x11_struct_res_ClientIdSpec_mask_mask_ClientXID,
13450  &hf_x11_struct_res_ClientIdSpec_mask_mask_LocalClientPID,
13451  NULL
13452  };
13453  proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_struct_res_ClientIdSpec_mask, ett_x11_rectangle, mask_bits, byte_order);
13454  }
13455  *offsetp += 4;
13456  }
13457 }
13458 
13459 static int struct_size_res_ClientIdValue(tvbuff_t *tvb _U_, int *offsetp _U_, guint byte_order _U_)
13460 {
13461  int size = 0;
13462  int f_length;
13463  f_length = tvb_get_guint32(tvb, *offsetp + size + 8, byte_order);
13464  size += (f_length / 4) * 4;
13465  return size + 12;
13466 }
13467 
13468 static void struct_res_ClientIdValue(tvbuff_t *tvb, int *offsetp, proto_tree *root, guint byte_order _U_, int count)
13469 {
13470  int i;
13471  for (i = 0; i < count; i++) {
13472  proto_item *item;
13473  proto_tree *t;
13474  int f_length;
13475 
13476  item = proto_tree_add_item(root, hf_x11_struct_res_ClientIdValue, tvb, *offsetp, struct_size_res_ClientIdValue(tvb, offsetp, byte_order), ENC_NA);
13477  t = proto_item_add_subtree(item, ett_x11_rectangle);
13478  struct_res_ClientIdSpec(tvb, offsetp, t, byte_order, 1);
13479  f_length = tvb_get_guint32(tvb, *offsetp, byte_order);
13480  proto_tree_add_item(t, hf_x11_struct_res_ClientIdValue_length, tvb, *offsetp, 4, byte_order);
13481  *offsetp += 4;
13482  listOfCard32(tvb, offsetp, t, hf_x11_struct_res_ClientIdValue_value, hf_x11_struct_res_ClientIdValue_value_item, (f_length / 4), byte_order);
13483  }
13484 }
13485 
13486 static void struct_res_ResourceIdSpec(tvbuff_t *tvb, int *offsetp, proto_tree *root, guint byte_order _U_, int count)
13487 {
13488  int i;
13489  for (i = 0; i < count; i++) {
13490  proto_item *item;
13491  proto_tree *t;
13492 
13493  item = proto_tree_add_item(root, hf_x11_struct_res_ResourceIdSpec, tvb, *offsetp, 8, ENC_NA);
13494  t = proto_item_add_subtree(item, ett_x11_rectangle);
13495  proto_tree_add_item(t, hf_x11_struct_res_ResourceIdSpec_resource, tvb, *offsetp, 4, byte_order);
13496  *offsetp += 4;
13497  proto_tree_add_item(t, hf_x11_struct_res_ResourceIdSpec_type, tvb, *offsetp, 4, byte_order);
13498  *offsetp += 4;
13499  }
13500 }
13501 
13502 static void struct_res_ResourceSizeSpec(tvbuff_t *tvb, int *offsetp, proto_tree *root, guint byte_order _U_, int count)
13503 {
13504  int i;
13505  for (i = 0; i < count; i++) {
13506  proto_item *item;
13507  proto_tree *t;
13508 
13509  item = proto_tree_add_item(root, hf_x11_struct_res_ResourceSizeSpec, tvb, *offsetp, 20, ENC_NA);
13510  t = proto_item_add_subtree(item, ett_x11_rectangle);
13511  struct_res_ResourceIdSpec(tvb, offsetp, t, byte_order, 1);
13512  proto_tree_add_item(t, hf_x11_struct_res_ResourceSizeSpec_bytes, tvb, *offsetp, 4, byte_order);
13513  *offsetp += 4;
13514  proto_tree_add_item(t, hf_x11_struct_res_ResourceSizeSpec_ref_count, tvb, *offsetp, 4, byte_order);
13515  *offsetp += 4;
13516  proto_tree_add_item(t, hf_x11_struct_res_ResourceSizeSpec_use_count, tvb, *offsetp, 4, byte_order);
13517  *offsetp += 4;
13518  }
13519 }
13520 
13521 static int struct_size_res_ResourceSizeValue(tvbuff_t *tvb _U_, int *offsetp _U_, guint byte_order _U_)
13522 {
13523  int size = 0;
13524  int f_num_cross_references;
13525  f_num_cross_references = tvb_get_guint32(tvb, *offsetp + size + 20, byte_order);
13526  size += f_num_cross_references * 20;
13527  return size + 24;
13528 }
13529 
13530 static void struct_res_ResourceSizeValue(tvbuff_t *tvb, int *offsetp, proto_tree *root, guint byte_order _U_, int count)
13531 {
13532  int i;
13533  for (i = 0; i < count; i++) {
13534  proto_item *item;
13535  proto_tree *t;
13536  int f_num_cross_references;
13537 
13538  item = proto_tree_add_item(root, hf_x11_struct_res_ResourceSizeValue, tvb, *offsetp, struct_size_res_ResourceSizeValue(tvb, offsetp, byte_order), ENC_NA);
13539  t = proto_item_add_subtree(item, ett_x11_rectangle);
13540  struct_res_ResourceSizeSpec(tvb, offsetp, t, byte_order, 1);
13541  f_num_cross_references = tvb_get_guint32(tvb, *offsetp, byte_order);
13542  proto_tree_add_item(t, hf_x11_struct_res_ResourceSizeValue_num_cross_references, tvb, *offsetp, 4, byte_order);
13543  *offsetp += 4;
13544  struct_res_ResourceSizeSpec(tvb, offsetp, t, byte_order, f_num_cross_references);
13545  }
13546 }
13547 
13548 static void resQueryVersion(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
13549 {
13550  proto_tree_add_item(t, hf_x11_res_QueryVersion_client_major, tvb, *offsetp, 1, byte_order);
13551  *offsetp += 1;
13552  proto_tree_add_item(t, hf_x11_res_QueryVersion_client_minor, tvb, *offsetp, 1, byte_order);
13553  *offsetp += 1;
13554 }
13555 static void resQueryVersion_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
13556 {
13557  int sequence_number;
13558 
13559  col_append_fstr(pinfo->cinfo, COL_INFO, "-QueryVersion");
13560 
13561  REPLY(reply);
13562  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
13563  *offsetp += 1;
13564  sequence_number = tvb_get_guint16(tvb, *offsetp, byte_order);
13565  proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
13566  "%d (res-QueryVersion)", sequence_number);
13567  *offsetp += 2;
13568  proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
13569  *offsetp += 4;
13570  proto_tree_add_item(t, hf_x11_res_QueryVersion_reply_server_major, tvb, *offsetp, 2, byte_order);
13571  *offsetp += 2;
13572  proto_tree_add_item(t, hf_x11_res_QueryVersion_reply_server_minor, tvb, *offsetp, 2, byte_order);
13573  *offsetp += 2;
13574 }
13575 
13576 static void resQueryClients(tvbuff_t *tvb _U_, packet_info *pinfo _U_, int *offsetp _U_, proto_tree *t _U_, guint byte_order _U_, int length _U_)
13577 {
13578 }
13579 static void resQueryClients_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
13580 {
13581  int sequence_number;
13582  int f_num_clients;
13583 
13584  col_append_fstr(pinfo->cinfo, COL_INFO, "-QueryClients");
13585 
13586  REPLY(reply);
13587  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
13588  *offsetp += 1;
13589  sequence_number = tvb_get_guint16(tvb, *offsetp, byte_order);
13590  proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
13591  "%d (res-QueryClients)", sequence_number);
13592  *offsetp += 2;
13593  proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
13594  *offsetp += 4;
13595  f_num_clients = tvb_get_guint32(tvb, *offsetp, byte_order);
13596  proto_tree_add_item(t, hf_x11_res_QueryClients_reply_num_clients, tvb, *offsetp, 4, byte_order);
13597  *offsetp += 4;
13598  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 20, ENC_NA);
13599  *offsetp += 20;
13600  struct_res_Client(tvb, offsetp, t, byte_order, f_num_clients);
13601 }
13602 
13603 static void resQueryClientResources(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
13604 {
13605  proto_tree_add_item(t, hf_x11_res_QueryClientResources_xid, tvb, *offsetp, 4, byte_order);
13606  *offsetp += 4;
13607 }
13608 static void resQueryClientResources_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
13609 {
13610  int sequence_number;
13611  int f_num_types;
13612 
13613  col_append_fstr(pinfo->cinfo, COL_INFO, "-QueryClientResources");
13614 
13615  REPLY(reply);
13616  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
13617  *offsetp += 1;
13618  sequence_number = tvb_get_guint16(tvb, *offsetp, byte_order);
13619  proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
13620  "%d (res-QueryClientResources)", sequence_number);
13621  *offsetp += 2;
13622  proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
13623  *offsetp += 4;
13624  f_num_types = tvb_get_guint32(tvb, *offsetp, byte_order);
13625  proto_tree_add_item(t, hf_x11_res_QueryClientResources_reply_num_types, tvb, *offsetp, 4, byte_order);
13626  *offsetp += 4;
13627  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 20, ENC_NA);
13628  *offsetp += 20;
13629  struct_res_Type(tvb, offsetp, t, byte_order, f_num_types);
13630 }
13631 
13632 static void resQueryClientPixmapBytes(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
13633 {
13634  proto_tree_add_item(t, hf_x11_res_QueryClientPixmapBytes_xid, tvb, *offsetp, 4, byte_order);
13635  *offsetp += 4;
13636 }
13637 static void resQueryClientPixmapBytes_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
13638 {
13639  int sequence_number;
13640 
13641  col_append_fstr(pinfo->cinfo, COL_INFO, "-QueryClientPixmapBytes");
13642 
13643  REPLY(reply);
13644  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
13645  *offsetp += 1;
13646  sequence_number = tvb_get_guint16(tvb, *offsetp, byte_order);
13647  proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
13648  "%d (res-QueryClientPixmapBytes)", sequence_number);
13649  *offsetp += 2;
13650  proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
13651  *offsetp += 4;
13652  proto_tree_add_item(t, hf_x11_res_QueryClientPixmapBytes_reply_bytes, tvb, *offsetp, 4, byte_order);
13653  *offsetp += 4;
13654  proto_tree_add_item(t, hf_x11_res_QueryClientPixmapBytes_reply_bytes_overflow, tvb, *offsetp, 4, byte_order);
13655  *offsetp += 4;
13656 }
13657 
13658 static void resQueryClientIds(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
13659 {
13660  int f_num_specs;
13661  f_num_specs = tvb_get_guint32(tvb, *offsetp, byte_order);
13662  proto_tree_add_item(t, hf_x11_res_QueryClientIds_num_specs, tvb, *offsetp, 4, byte_order);
13663  *offsetp += 4;
13664  struct_res_ClientIdSpec(tvb, offsetp, t, byte_order, f_num_specs);
13665  length -= f_num_specs * 8;
13666 }
13667 static void resQueryClientIds_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
13668 {
13669  int sequence_number;
13670  int f_num_ids;
13671 
13672  col_append_fstr(pinfo->cinfo, COL_INFO, "-QueryClientIds");
13673 
13674  REPLY(reply);
13675  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
13676  *offsetp += 1;
13677  sequence_number = tvb_get_guint16(tvb, *offsetp, byte_order);
13678  proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
13679  "%d (res-QueryClientIds)", sequence_number);
13680  *offsetp += 2;
13681  proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
13682  *offsetp += 4;
13683  f_num_ids = tvb_get_guint32(tvb, *offsetp, byte_order);
13684  proto_tree_add_item(t, hf_x11_res_QueryClientIds_reply_num_ids, tvb, *offsetp, 4, byte_order);
13685  *offsetp += 4;
13686  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 20, ENC_NA);
13687  *offsetp += 20;
13688  struct_res_ClientIdValue(tvb, offsetp, t, byte_order, f_num_ids);
13689 }
13690 
13691 static void resQueryResourceBytes(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
13692 {
13693  int f_num_specs;
13694  proto_tree_add_item(t, hf_x11_res_QueryResourceBytes_client, tvb, *offsetp, 4, byte_order);
13695  *offsetp += 4;
13696  f_num_specs = tvb_get_guint32(tvb, *offsetp, byte_order);
13697  proto_tree_add_item(t, hf_x11_res_QueryResourceBytes_num_specs, tvb, *offsetp, 4, byte_order);
13698  *offsetp += 4;
13699  struct_res_ResourceIdSpec(tvb, offsetp, t, byte_order, f_num_specs);
13700  length -= f_num_specs * 8;
13701 }
13702 static void resQueryResourceBytes_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
13703 {
13704  int sequence_number;
13705  int f_num_sizes;
13706 
13707  col_append_fstr(pinfo->cinfo, COL_INFO, "-QueryResourceBytes");
13708 
13709  REPLY(reply);
13710  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
13711  *offsetp += 1;
13712  sequence_number = tvb_get_guint16(tvb, *offsetp, byte_order);
13713  proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
13714  "%d (res-QueryResourceBytes)", sequence_number);
13715  *offsetp += 2;
13716  proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
13717  *offsetp += 4;
13718  f_num_sizes = tvb_get_guint32(tvb, *offsetp, byte_order);
13719  proto_tree_add_item(t, hf_x11_res_QueryResourceBytes_reply_num_sizes, tvb, *offsetp, 4, byte_order);
13720  *offsetp += 4;
13721  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 20, ENC_NA);
13722  *offsetp += 20;
13723  struct_res_ResourceSizeValue(tvb, offsetp, t, byte_order, f_num_sizes);
13724 }
13725 static const value_string res_extension_minor[] = {
13726  { 0, "QueryVersion" },
13727  { 1, "QueryClients" },
13728  { 2, "QueryClientResources" },
13729  { 3, "QueryClientPixmapBytes" },
13730  { 4, "QueryClientIds" },
13731  { 5, "QueryResourceBytes" },
13732  { 0, NULL }
13733 };
13734 const x11_event_info res_events[] = {
13735  { NULL, NULL }
13736 };
13737 static x11_reply_info res_replies[] = {
13738  { 0, resQueryVersion_Reply },
13739  { 1, resQueryClients_Reply },
13740  { 2, resQueryClientResources_Reply },
13741  { 3, resQueryClientPixmapBytes_Reply },
13742  { 4, resQueryClientIds_Reply },
13743  { 5, resQueryResourceBytes_Reply },
13744  { 0, NULL }
13745 };
13746 
13747 static void dispatch_res(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
13748 {
13749  int minor, length;
13750  minor = CARD8(res_extension_minor);
13751  length = REQUEST_LENGTH();
13752 
13753  col_append_fstr(pinfo->cinfo, COL_INFO, "-%s",
13754  val_to_str(minor, res_extension_minor,
13755  "<Unknown opcode %d>"));
13756  switch (minor) {
13757  case 0:
13758  resQueryVersion(tvb, pinfo, offsetp, t, byte_order, length);
13759  break;
13760  case 1:
13761  resQueryClients(tvb, pinfo, offsetp, t, byte_order, length);
13762  break;
13763  case 2:
13764  resQueryClientResources(tvb, pinfo, offsetp, t, byte_order, length);
13765  break;
13766  case 3:
13767  resQueryClientPixmapBytes(tvb, pinfo, offsetp, t, byte_order, length);
13768  break;
13769  case 4:
13770  resQueryClientIds(tvb, pinfo, offsetp, t, byte_order, length);
13771  break;
13772  case 5:
13773  resQueryResourceBytes(tvb, pinfo, offsetp, t, byte_order, length);
13774  break;
13775  /* No need for a default case here, since Unknown is printed above,
13776  and UNDECODED() is taken care of by dissect_x11_request */
13777  }
13778 }
13779 
13780 static void register_res(void)
13781 {
13782  set_handler("X-Resource", dispatch_res, res_errors, res_events, NULL, res_replies);
13783 }
13784 
13785 static void screensaverQueryVersion(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
13786 {
13787  proto_tree_add_item(t, hf_x11_screensaver_QueryVersion_client_major_version, tvb, *offsetp, 1, byte_order);
13788  *offsetp += 1;
13789  proto_tree_add_item(t, hf_x11_screensaver_QueryVersion_client_minor_version, tvb, *offsetp, 1, byte_order);
13790  *offsetp += 1;
13791  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 2, ENC_NA);
13792  *offsetp += 2;
13793 }
13794 static void screensaverQueryVersion_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
13795 {
13796  int sequence_number;
13797 
13798  col_append_fstr(pinfo->cinfo, COL_INFO, "-QueryVersion");
13799 
13800  REPLY(reply);
13801  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
13802  *offsetp += 1;
13803  sequence_number = tvb_get_guint16(tvb, *offsetp, byte_order);
13804  proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
13805  "%d (screensaver-QueryVersion)", sequence_number);
13806  *offsetp += 2;
13807  proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
13808  *offsetp += 4;
13809  proto_tree_add_item(t, hf_x11_screensaver_QueryVersion_reply_server_major_version, tvb, *offsetp, 2, byte_order);
13810  *offsetp += 2;
13811  proto_tree_add_item(t, hf_x11_screensaver_QueryVersion_reply_server_minor_version, tvb, *offsetp, 2, byte_order);
13812  *offsetp += 2;
13813  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 20, ENC_NA);
13814  *offsetp += 20;
13815 }
13816 
13817 static void screensaverQueryInfo(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
13818 {
13819  proto_tree_add_item(t, hf_x11_screensaver_QueryInfo_drawable, tvb, *offsetp, 4, byte_order);
13820  *offsetp += 4;
13821 }
13822 static void screensaverQueryInfo_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
13823 {
13824  int sequence_number;
13825 
13826  col_append_fstr(pinfo->cinfo, COL_INFO, "-QueryInfo");
13827 
13828  REPLY(reply);
13829  proto_tree_add_item(t, hf_x11_screensaver_QueryInfo_reply_state, tvb, *offsetp, 1, byte_order);
13830  *offsetp += 1;
13831  sequence_number = tvb_get_guint16(tvb, *offsetp, byte_order);
13832  proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
13833  "%d (screensaver-QueryInfo)", sequence_number);
13834  *offsetp += 2;
13835  proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
13836  *offsetp += 4;
13837  proto_tree_add_item(t, hf_x11_screensaver_QueryInfo_reply_saver_window, tvb, *offsetp, 4, byte_order);
13838  *offsetp += 4;
13839  proto_tree_add_item(t, hf_x11_screensaver_QueryInfo_reply_ms_until_server, tvb, *offsetp, 4, byte_order);
13840  *offsetp += 4;
13841  proto_tree_add_item(t, hf_x11_screensaver_QueryInfo_reply_ms_since_user_input, tvb, *offsetp, 4, byte_order);
13842  *offsetp += 4;
13843  proto_tree_add_item(t, hf_x11_screensaver_QueryInfo_reply_event_mask, tvb, *offsetp, 4, byte_order);
13844  *offsetp += 4;
13845  field8(tvb, offsetp, t, hf_x11_screensaver_QueryInfo_reply_kind, byte_order);
13846  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 7, ENC_NA);
13847  *offsetp += 7;
13848 }
13849 
13850 static void screensaverSelectInput(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
13851 {
13852  proto_tree_add_item(t, hf_x11_screensaver_SelectInput_drawable, tvb, *offsetp, 4, byte_order);
13853  *offsetp += 4;
13854  {
13855  int* const event_mask_bits [] = {
13856  &hf_x11_screensaver_SelectInput_event_mask_mask_NotifyMask,
13857  &hf_x11_screensaver_SelectInput_event_mask_mask_CycleMask,
13858  NULL
13859  };
13860  proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_screensaver_SelectInput_event_mask, ett_x11_rectangle, event_mask_bits, byte_order);
13861  }
13862  *offsetp += 4;
13863 }
13864 
13865 static void screensaverSetAttributes(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
13866 {
13867  int f_value_mask;
13868  proto_tree_add_item(t, hf_x11_screensaver_SetAttributes_drawable, tvb, *offsetp, 4, byte_order);
13869  *offsetp += 4;
13870  proto_tree_add_item(t, hf_x11_screensaver_SetAttributes_x, tvb, *offsetp, 2, byte_order);
13871  *offsetp += 2;
13872  proto_tree_add_item(t, hf_x11_screensaver_SetAttributes_y, tvb, *offsetp, 2, byte_order);
13873  *offsetp += 2;
13874  proto_tree_add_item(t, hf_x11_screensaver_SetAttributes_width, tvb, *offsetp, 2, byte_order);
13875  *offsetp += 2;
13876  proto_tree_add_item(t, hf_x11_screensaver_SetAttributes_height, tvb, *offsetp, 2, byte_order);
13877  *offsetp += 2;
13878  proto_tree_add_item(t, hf_x11_screensaver_SetAttributes_border_width, tvb, *offsetp, 2, byte_order);
13879  *offsetp += 2;
13880  field8(tvb, offsetp, t, hf_x11_screensaver_SetAttributes_class, byte_order);
13881  proto_tree_add_item(t, hf_x11_screensaver_SetAttributes_depth, tvb, *offsetp, 1, byte_order);
13882  *offsetp += 1;
13883  proto_tree_add_item(t, hf_x11_screensaver_SetAttributes_visual, tvb, *offsetp, 4, byte_order);
13884  *offsetp += 4;
13885  f_value_mask = tvb_get_guint32(tvb, *offsetp, byte_order);
13886  {
13887  int* const value_mask_bits [] = {
13888  &hf_x11_screensaver_SetAttributes_value_mask_mask_BackPixmap,
13889  &hf_x11_screensaver_SetAttributes_value_mask_mask_BackPixel,
13890  &hf_x11_screensaver_SetAttributes_value_mask_mask_BorderPixmap,
13891  &hf_x11_screensaver_SetAttributes_value_mask_mask_BorderPixel,
13892  &hf_x11_screensaver_SetAttributes_value_mask_mask_BitGravity,
13893  &hf_x11_screensaver_SetAttributes_value_mask_mask_WinGravity,
13894  &hf_x11_screensaver_SetAttributes_value_mask_mask_BackingStore,
13895  &hf_x11_screensaver_SetAttributes_value_mask_mask_BackingPlanes,
13896  &hf_x11_screensaver_SetAttributes_value_mask_mask_BackingPixel,
13897  &hf_x11_screensaver_SetAttributes_value_mask_mask_OverrideRedirect,
13898  &hf_x11_screensaver_SetAttributes_value_mask_mask_SaveUnder,
13899  &hf_x11_screensaver_SetAttributes_value_mask_mask_EventMask,
13900  &hf_x11_screensaver_SetAttributes_value_mask_mask_DontPropagate,
13901  &hf_x11_screensaver_SetAttributes_value_mask_mask_Colormap,
13902  &hf_x11_screensaver_SetAttributes_value_mask_mask_Cursor,
13903  NULL
13904  };
13905  proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_screensaver_SetAttributes_value_mask, ett_x11_rectangle, value_mask_bits, byte_order);
13906  }
13907  *offsetp += 4;
13908  if (f_value_mask & (1U << 0)) {
13909  field32(tvb, offsetp, t, hf_x11_screensaver_SetAttributes_BackPixmap_background_pixmap, byte_order);
13910  }
13911  if (f_value_mask & (1U << 1)) {
13912  proto_tree_add_item(t, hf_x11_screensaver_SetAttributes_BackPixel_background_pixel, tvb, *offsetp, 4, byte_order);
13913  *offsetp += 4;
13914  }
13915  if (f_value_mask & (1U << 2)) {
13916  field32(tvb, offsetp, t, hf_x11_screensaver_SetAttributes_BorderPixmap_border_pixmap, byte_order);
13917  }
13918  if (f_value_mask & (1U << 3)) {
13919  proto_tree_add_item(t, hf_x11_screensaver_SetAttributes_BorderPixel_border_pixel, tvb, *offsetp, 4, byte_order);
13920  *offsetp += 4;
13921  }
13922  if (f_value_mask & (1U << 4)) {
13923  field32(tvb, offsetp, t, hf_x11_screensaver_SetAttributes_BitGravity_bit_gravity, byte_order);
13924  }
13925  if (f_value_mask & (1U << 5)) {
13926  field32(tvb, offsetp, t, hf_x11_screensaver_SetAttributes_WinGravity_win_gravity, byte_order);
13927  }
13928  if (f_value_mask & (1U << 6)) {
13929  field32(tvb, offsetp, t, hf_x11_screensaver_SetAttributes_BackingStore_backing_store, byte_order);
13930  }
13931  if (f_value_mask & (1U << 7)) {
13932  proto_tree_add_item(t, hf_x11_screensaver_SetAttributes_BackingPlanes_backing_planes, tvb, *offsetp, 4, byte_order);
13933  *offsetp += 4;
13934  }
13935  if (f_value_mask & (1U << 8)) {
13936  proto_tree_add_item(t, hf_x11_screensaver_SetAttributes_BackingPixel_backing_pixel, tvb, *offsetp, 4, byte_order);
13937  *offsetp += 4;
13938  }
13939  if (f_value_mask & (1U << 9)) {
13940  proto_tree_add_item(t, hf_x11_screensaver_SetAttributes_OverrideRedirect_override_redirect, tvb, *offsetp, 4, byte_order);
13941  *offsetp += 4;
13942  }
13943  if (f_value_mask & (1U << 10)) {
13944  proto_tree_add_item(t, hf_x11_screensaver_SetAttributes_SaveUnder_save_under, tvb, *offsetp, 4, byte_order);
13945  *offsetp += 4;
13946  }
13947  if (f_value_mask & (1U << 11)) {
13948  {
13949  int* const event_mask_bits [] = {
13950  &hf_x11_screensaver_SetAttributes_EventMask_event_mask_mask_KeyPress,
13951  &hf_x11_screensaver_SetAttributes_EventMask_event_mask_mask_KeyRelease,
13952  &hf_x11_screensaver_SetAttributes_EventMask_event_mask_mask_ButtonPress,
13953  &hf_x11_screensaver_SetAttributes_EventMask_event_mask_mask_ButtonRelease,
13954  &hf_x11_screensaver_SetAttributes_EventMask_event_mask_mask_EnterWindow,
13955  &hf_x11_screensaver_SetAttributes_EventMask_event_mask_mask_LeaveWindow,
13956  &hf_x11_screensaver_SetAttributes_EventMask_event_mask_mask_PointerMotion,
13957  &hf_x11_screensaver_SetAttributes_EventMask_event_mask_mask_PointerMotionHint,
13958  &hf_x11_screensaver_SetAttributes_EventMask_event_mask_mask_Button1Motion,
13959  &hf_x11_screensaver_SetAttributes_EventMask_event_mask_mask_Button2Motion,
13960  &hf_x11_screensaver_SetAttributes_EventMask_event_mask_mask_Button3Motion,
13961  &hf_x11_screensaver_SetAttributes_EventMask_event_mask_mask_Button4Motion,
13962  &hf_x11_screensaver_SetAttributes_EventMask_event_mask_mask_Button5Motion,
13963  &hf_x11_screensaver_SetAttributes_EventMask_event_mask_mask_ButtonMotion,
13964  &hf_x11_screensaver_SetAttributes_EventMask_event_mask_mask_KeymapState,
13965  &hf_x11_screensaver_SetAttributes_EventMask_event_mask_mask_Exposure,
13966  &hf_x11_screensaver_SetAttributes_EventMask_event_mask_mask_VisibilityChange,
13967  &hf_x11_screensaver_SetAttributes_EventMask_event_mask_mask_StructureNotify,
13968  &hf_x11_screensaver_SetAttributes_EventMask_event_mask_mask_ResizeRedirect,
13969  &hf_x11_screensaver_SetAttributes_EventMask_event_mask_mask_SubstructureNotify,
13970  &hf_x11_screensaver_SetAttributes_EventMask_event_mask_mask_SubstructureRedirect,
13971  &hf_x11_screensaver_SetAttributes_EventMask_event_mask_mask_FocusChange,
13972  &hf_x11_screensaver_SetAttributes_EventMask_event_mask_mask_PropertyChange,
13973  &hf_x11_screensaver_SetAttributes_EventMask_event_mask_mask_ColorMapChange,
13974  &hf_x11_screensaver_SetAttributes_EventMask_event_mask_mask_OwnerGrabButton,
13975  NULL
13976  };
13977  proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_screensaver_SetAttributes_EventMask_event_mask, ett_x11_rectangle, event_mask_bits, byte_order);
13978  }
13979  *offsetp += 4;
13980  }
13981  if (f_value_mask & (1U << 12)) {
13982  {
13983  int* const do_not_propogate_mask_bits [] = {
13984  &hf_x11_screensaver_SetAttributes_DontPropagate_do_not_propogate_mask_mask_KeyPress,
13985  &hf_x11_screensaver_SetAttributes_DontPropagate_do_not_propogate_mask_mask_KeyRelease,
13986  &hf_x11_screensaver_SetAttributes_DontPropagate_do_not_propogate_mask_mask_ButtonPress,
13987  &hf_x11_screensaver_SetAttributes_DontPropagate_do_not_propogate_mask_mask_ButtonRelease,
13988  &hf_x11_screensaver_SetAttributes_DontPropagate_do_not_propogate_mask_mask_EnterWindow,
13989  &hf_x11_screensaver_SetAttributes_DontPropagate_do_not_propogate_mask_mask_LeaveWindow,
13990  &hf_x11_screensaver_SetAttributes_DontPropagate_do_not_propogate_mask_mask_PointerMotion,
13991  &hf_x11_screensaver_SetAttributes_DontPropagate_do_not_propogate_mask_mask_PointerMotionHint,
13992  &hf_x11_screensaver_SetAttributes_DontPropagate_do_not_propogate_mask_mask_Button1Motion,
13993  &hf_x11_screensaver_SetAttributes_DontPropagate_do_not_propogate_mask_mask_Button2Motion,
13994  &hf_x11_screensaver_SetAttributes_DontPropagate_do_not_propogate_mask_mask_Button3Motion,
13995  &hf_x11_screensaver_SetAttributes_DontPropagate_do_not_propogate_mask_mask_Button4Motion,
13996  &hf_x11_screensaver_SetAttributes_DontPropagate_do_not_propogate_mask_mask_Button5Motion,
13997  &hf_x11_screensaver_SetAttributes_DontPropagate_do_not_propogate_mask_mask_ButtonMotion,
13998  &hf_x11_screensaver_SetAttributes_DontPropagate_do_not_propogate_mask_mask_KeymapState,
13999  &hf_x11_screensaver_SetAttributes_DontPropagate_do_not_propogate_mask_mask_Exposure,
14000  &hf_x11_screensaver_SetAttributes_DontPropagate_do_not_propogate_mask_mask_VisibilityChange,
14001  &hf_x11_screensaver_SetAttributes_DontPropagate_do_not_propogate_mask_mask_StructureNotify,
14002  &hf_x11_screensaver_SetAttributes_DontPropagate_do_not_propogate_mask_mask_ResizeRedirect,
14003  &hf_x11_screensaver_SetAttributes_DontPropagate_do_not_propogate_mask_mask_SubstructureNotify,
14004  &hf_x11_screensaver_SetAttributes_DontPropagate_do_not_propogate_mask_mask_SubstructureRedirect,
14005  &hf_x11_screensaver_SetAttributes_DontPropagate_do_not_propogate_mask_mask_FocusChange,
14006  &hf_x11_screensaver_SetAttributes_DontPropagate_do_not_propogate_mask_mask_PropertyChange,
14007  &hf_x11_screensaver_SetAttributes_DontPropagate_do_not_propogate_mask_mask_ColorMapChange,
14008  &hf_x11_screensaver_SetAttributes_DontPropagate_do_not_propogate_mask_mask_OwnerGrabButton,
14009  NULL
14010  };
14011  proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_screensaver_SetAttributes_DontPropagate_do_not_propogate_mask, ett_x11_rectangle, do_not_propogate_mask_bits, byte_order);
14012  }
14013  *offsetp += 4;
14014  }
14015  if (f_value_mask & (1U << 13)) {
14016  field32(tvb, offsetp, t, hf_x11_screensaver_SetAttributes_Colormap_colormap, byte_order);
14017  }
14018  if (f_value_mask & (1U << 14)) {
14019  field32(tvb, offsetp, t, hf_x11_screensaver_SetAttributes_Cursor_cursor, byte_order);
14020  }
14021 }
14022 
14023 static void screensaverUnsetAttributes(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
14024 {
14025  proto_tree_add_item(t, hf_x11_screensaver_UnsetAttributes_drawable, tvb, *offsetp, 4, byte_order);
14026  *offsetp += 4;
14027 }
14028 
14029 static void screensaverSuspend(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
14030 {
14031  proto_tree_add_item(t, hf_x11_screensaver_Suspend_suspend, tvb, *offsetp, 4, byte_order);
14032  *offsetp += 4;
14033 }
14034 static const value_string screensaver_extension_minor[] = {
14035  { 0, "QueryVersion" },
14036  { 1, "QueryInfo" },
14037  { 2, "SelectInput" },
14038  { 3, "SetAttributes" },
14039  { 4, "UnsetAttributes" },
14040  { 5, "Suspend" },
14041  { 0, NULL }
14042 };
14043 const x11_event_info screensaver_events[] = {
14044  { NULL, NULL }
14045 };
14046 static x11_reply_info screensaver_replies[] = {
14047  { 0, screensaverQueryVersion_Reply },
14048  { 1, screensaverQueryInfo_Reply },
14049  { 0, NULL }
14050 };
14051 
14052 static void dispatch_screensaver(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
14053 {
14054  int minor, length;
14055  minor = CARD8(screensaver_extension_minor);
14056  length = REQUEST_LENGTH();
14057 
14058  col_append_fstr(pinfo->cinfo, COL_INFO, "-%s",
14059  val_to_str(minor, screensaver_extension_minor,
14060  "<Unknown opcode %d>"));
14061  switch (minor) {
14062  case 0:
14063  screensaverQueryVersion(tvb, pinfo, offsetp, t, byte_order, length);
14064  break;
14065  case 1:
14066  screensaverQueryInfo(tvb, pinfo, offsetp, t, byte_order, length);
14067  break;
14068  case 2:
14069  screensaverSelectInput(tvb, pinfo, offsetp, t, byte_order, length);
14070  break;
14071  case 3:
14072  screensaverSetAttributes(tvb, pinfo, offsetp, t, byte_order, length);
14073  break;
14074  case 4:
14075  screensaverUnsetAttributes(tvb, pinfo, offsetp, t, byte_order, length);
14076  break;
14077  case 5:
14078  screensaverSuspend(tvb, pinfo, offsetp, t, byte_order, length);
14079  break;
14080  /* No need for a default case here, since Unknown is printed above,
14081  and UNDECODED() is taken care of by dissect_x11_request */
14082  }
14083 }
14084 
14085 static void register_screensaver(void)
14086 {
14087  set_handler("MIT-SCREEN-SAVER", dispatch_screensaver, screensaver_errors, screensaver_events, NULL, screensaver_replies);
14088 }
14089 
14090 static void shapeQueryVersion(tvbuff_t *tvb _U_, packet_info *pinfo _U_, int *offsetp _U_, proto_tree *t _U_, guint byte_order _U_, int length _U_)
14091 {
14092 }
14093 static void shapeQueryVersion_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
14094 {
14095  int sequence_number;
14096 
14097  col_append_fstr(pinfo->cinfo, COL_INFO, "-QueryVersion");
14098 
14099  REPLY(reply);
14100  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
14101  *offsetp += 1;
14102  sequence_number = tvb_get_guint16(tvb, *offsetp, byte_order);
14103  proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
14104  "%d (shape-QueryVersion)", sequence_number);
14105  *offsetp += 2;
14106  proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
14107  *offsetp += 4;
14108  proto_tree_add_item(t, hf_x11_shape_QueryVersion_reply_major_version, tvb, *offsetp, 2, byte_order);
14109  *offsetp += 2;
14110  proto_tree_add_item(t, hf_x11_shape_QueryVersion_reply_minor_version, tvb, *offsetp, 2, byte_order);
14111  *offsetp += 2;
14112 }
14113 
14114 static void shapeRectangles(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
14115 {
14116  field8(tvb, offsetp, t, hf_x11_shape_Rectangles_operation, byte_order);
14117  field8(tvb, offsetp, t, hf_x11_shape_Rectangles_destination_kind, byte_order);
14118  field8(tvb, offsetp, t, hf_x11_shape_Rectangles_ordering, byte_order);
14119  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
14120  *offsetp += 1;
14121  proto_tree_add_item(t, hf_x11_shape_Rectangles_destination_window, tvb, *offsetp, 4, byte_order);
14122  *offsetp += 4;
14123  proto_tree_add_item(t, hf_x11_shape_Rectangles_x_offset, tvb, *offsetp, 2, byte_order);
14124  *offsetp += 2;
14125  proto_tree_add_item(t, hf_x11_shape_Rectangles_y_offset, tvb, *offsetp, 2, byte_order);
14126  *offsetp += 2;
14127  struct_xproto_RECTANGLE(tvb, offsetp, t, byte_order, (length - 16) / 8);
14128 }
14129 
14130 static void shapeMask(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
14131 {
14132  field8(tvb, offsetp, t, hf_x11_shape_Mask_operation, byte_order);
14133  field8(tvb, offsetp, t, hf_x11_shape_Mask_destination_kind, byte_order);
14134  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 2, ENC_NA);
14135  *offsetp += 2;
14136  proto_tree_add_item(t, hf_x11_shape_Mask_destination_window, tvb, *offsetp, 4, byte_order);
14137  *offsetp += 4;
14138  proto_tree_add_item(t, hf_x11_shape_Mask_x_offset, tvb, *offsetp, 2, byte_order);
14139  *offsetp += 2;
14140  proto_tree_add_item(t, hf_x11_shape_Mask_y_offset, tvb, *offsetp, 2, byte_order);
14141  *offsetp += 2;
14142  field32(tvb, offsetp, t, hf_x11_shape_Mask_source_bitmap, byte_order);
14143 }
14144 
14145 static void shapeCombine(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
14146 {
14147  field8(tvb, offsetp, t, hf_x11_shape_Combine_operation, byte_order);
14148  field8(tvb, offsetp, t, hf_x11_shape_Combine_destination_kind, byte_order);
14149  field8(tvb, offsetp, t, hf_x11_shape_Combine_source_kind, byte_order);
14150  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
14151  *offsetp += 1;
14152  proto_tree_add_item(t, hf_x11_shape_Combine_destination_window, tvb, *offsetp, 4, byte_order);
14153  *offsetp += 4;
14154  proto_tree_add_item(t, hf_x11_shape_Combine_x_offset, tvb, *offsetp, 2, byte_order);
14155  *offsetp += 2;
14156  proto_tree_add_item(t, hf_x11_shape_Combine_y_offset, tvb, *offsetp, 2, byte_order);
14157  *offsetp += 2;
14158  proto_tree_add_item(t, hf_x11_shape_Combine_source_window, tvb, *offsetp, 4, byte_order);
14159  *offsetp += 4;
14160 }
14161 
14162 static void shapeOffset(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
14163 {
14164  field8(tvb, offsetp, t, hf_x11_shape_Offset_destination_kind, byte_order);
14165  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 3, ENC_NA);
14166  *offsetp += 3;
14167  proto_tree_add_item(t, hf_x11_shape_Offset_destination_window, tvb, *offsetp, 4, byte_order);
14168  *offsetp += 4;
14169  proto_tree_add_item(t, hf_x11_shape_Offset_x_offset, tvb, *offsetp, 2, byte_order);
14170  *offsetp += 2;
14171  proto_tree_add_item(t, hf_x11_shape_Offset_y_offset, tvb, *offsetp, 2, byte_order);
14172  *offsetp += 2;
14173 }
14174 
14175 static void shapeQueryExtents(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
14176 {
14177  proto_tree_add_item(t, hf_x11_shape_QueryExtents_destination_window, tvb, *offsetp, 4, byte_order);
14178  *offsetp += 4;
14179 }
14180 static void shapeQueryExtents_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
14181 {
14182  int sequence_number;
14183 
14184  col_append_fstr(pinfo->cinfo, COL_INFO, "-QueryExtents");
14185 
14186  REPLY(reply);
14187  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
14188  *offsetp += 1;
14189  sequence_number = tvb_get_guint16(tvb, *offsetp, byte_order);
14190  proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
14191  "%d (shape-QueryExtents)", sequence_number);
14192  *offsetp += 2;
14193  proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
14194  *offsetp += 4;
14195  proto_tree_add_item(t, hf_x11_shape_QueryExtents_reply_bounding_shaped, tvb, *offsetp, 1, byte_order);
14196  *offsetp += 1;
14197  proto_tree_add_item(t, hf_x11_shape_QueryExtents_reply_clip_shaped, tvb, *offsetp, 1, byte_order);
14198  *offsetp += 1;
14199  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 2, ENC_NA);
14200  *offsetp += 2;
14201  proto_tree_add_item(t, hf_x11_shape_QueryExtents_reply_bounding_shape_extents_x, tvb, *offsetp, 2, byte_order);
14202  *offsetp += 2;
14203  proto_tree_add_item(t, hf_x11_shape_QueryExtents_reply_bounding_shape_extents_y, tvb, *offsetp, 2, byte_order);
14204  *offsetp += 2;
14205  proto_tree_add_item(t, hf_x11_shape_QueryExtents_reply_bounding_shape_extents_width, tvb, *offsetp, 2, byte_order);
14206  *offsetp += 2;
14207  proto_tree_add_item(t, hf_x11_shape_QueryExtents_reply_bounding_shape_extents_height, tvb, *offsetp, 2, byte_order);
14208  *offsetp += 2;
14209  proto_tree_add_item(t, hf_x11_shape_QueryExtents_reply_clip_shape_extents_x, tvb, *offsetp, 2, byte_order);
14210  *offsetp += 2;
14211  proto_tree_add_item(t, hf_x11_shape_QueryExtents_reply_clip_shape_extents_y, tvb, *offsetp, 2, byte_order);
14212  *offsetp += 2;
14213  proto_tree_add_item(t, hf_x11_shape_QueryExtents_reply_clip_shape_extents_width, tvb, *offsetp, 2, byte_order);
14214  *offsetp += 2;
14215  proto_tree_add_item(t, hf_x11_shape_QueryExtents_reply_clip_shape_extents_height, tvb, *offsetp, 2, byte_order);
14216  *offsetp += 2;
14217 }
14218 
14219 static void shapeSelectInput(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
14220 {
14221  proto_tree_add_item(t, hf_x11_shape_SelectInput_destination_window, tvb, *offsetp, 4, byte_order);
14222  *offsetp += 4;
14223  proto_tree_add_item(t, hf_x11_shape_SelectInput_enable, tvb, *offsetp, 1, byte_order);
14224  *offsetp += 1;
14225  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 3, ENC_NA);
14226  *offsetp += 3;
14227 }
14228 
14229 static void shapeInputSelected(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
14230 {
14231  proto_tree_add_item(t, hf_x11_shape_InputSelected_destination_window, tvb, *offsetp, 4, byte_order);
14232  *offsetp += 4;
14233 }
14234 static void shapeInputSelected_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
14235 {
14236  int sequence_number;
14237 
14238  col_append_fstr(pinfo->cinfo, COL_INFO, "-InputSelected");
14239 
14240  REPLY(reply);
14241  proto_tree_add_item(t, hf_x11_shape_InputSelected_reply_enabled, tvb, *offsetp, 1, byte_order);
14242  *offsetp += 1;
14243  sequence_number = tvb_get_guint16(tvb, *offsetp, byte_order);
14244  proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
14245  "%d (shape-InputSelected)", sequence_number);
14246  *offsetp += 2;
14247  proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
14248  *offsetp += 4;
14249 }
14250 
14251 static void shapeGetRectangles(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
14252 {
14253  proto_tree_add_item(t, hf_x11_shape_GetRectangles_window, tvb, *offsetp, 4, byte_order);
14254  *offsetp += 4;
14255  field8(tvb, offsetp, t, hf_x11_shape_GetRectangles_source_kind, byte_order);
14256  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 3, ENC_NA);
14257  *offsetp += 3;
14258 }
14259 static void shapeGetRectangles_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
14260 {
14261  int sequence_number;
14262  int f_rectangles_len;
14263 
14264  col_append_fstr(pinfo->cinfo, COL_INFO, "-GetRectangles");
14265 
14266  REPLY(reply);
14267  field8(tvb, offsetp, t, hf_x11_shape_GetRectangles_reply_ordering, byte_order);
14268  sequence_number = tvb_get_guint16(tvb, *offsetp, byte_order);
14269  proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
14270  "%d (shape-GetRectangles)", sequence_number);
14271  *offsetp += 2;
14272  proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
14273  *offsetp += 4;
14274  f_rectangles_len = tvb_get_guint32(tvb, *offsetp, byte_order);
14275  proto_tree_add_item(t, hf_x11_shape_GetRectangles_reply_rectangles_len, tvb, *offsetp, 4, byte_order);
14276  *offsetp += 4;
14277  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 20, ENC_NA);
14278  *offsetp += 20;
14279  struct_xproto_RECTANGLE(tvb, offsetp, t, byte_order, f_rectangles_len);
14280 }
14281 static const value_string shape_extension_minor[] = {
14282  { 0, "QueryVersion" },
14283  { 1, "Rectangles" },
14284  { 2, "Mask" },
14285  { 3, "Combine" },
14286  { 4, "Offset" },
14287  { 5, "QueryExtents" },
14288  { 6, "SelectInput" },
14289  { 7, "InputSelected" },
14290  { 8, "GetRectangles" },
14291  { 0, NULL }
14292 };
14293 const x11_event_info shape_events[] = {
14294  { NULL, NULL }
14295 };
14296 static x11_reply_info shape_replies[] = {
14297  { 0, shapeQueryVersion_Reply },
14298  { 5, shapeQueryExtents_Reply },
14299  { 7, shapeInputSelected_Reply },
14300  { 8, shapeGetRectangles_Reply },
14301  { 0, NULL }
14302 };
14303 
14304 static void dispatch_shape(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
14305 {
14306  int minor, length;
14307  minor = CARD8(shape_extension_minor);
14308  length = REQUEST_LENGTH();
14309 
14310  col_append_fstr(pinfo->cinfo, COL_INFO, "-%s",
14311  val_to_str(minor, shape_extension_minor,
14312  "<Unknown opcode %d>"));
14313  switch (minor) {
14314  case 0:
14315  shapeQueryVersion(tvb, pinfo, offsetp, t, byte_order, length);
14316  break;
14317  case 1:
14318  shapeRectangles(tvb, pinfo, offsetp, t, byte_order, length);
14319  break;
14320  case 2:
14321  shapeMask(tvb, pinfo, offsetp, t, byte_order, length);
14322  break;
14323  case 3:
14324  shapeCombine(tvb, pinfo, offsetp, t, byte_order, length);
14325  break;
14326  case 4:
14327  shapeOffset(tvb, pinfo, offsetp, t, byte_order, length);
14328  break;
14329  case 5:
14330  shapeQueryExtents(tvb, pinfo, offsetp, t, byte_order, length);
14331  break;
14332  case 6:
14333  shapeSelectInput(tvb, pinfo, offsetp, t, byte_order, length);
14334  break;
14335  case 7:
14336  shapeInputSelected(tvb, pinfo, offsetp, t, byte_order, length);
14337  break;
14338  case 8:
14339  shapeGetRectangles(tvb, pinfo, offsetp, t, byte_order, length);
14340  break;
14341  /* No need for a default case here, since Unknown is printed above,
14342  and UNDECODED() is taken care of by dissect_x11_request */
14343  }
14344 }
14345 
14346 static void register_shape(void)
14347 {
14348  set_handler("SHAPE", dispatch_shape, shape_errors, shape_events, NULL, shape_replies);
14349 }
14350 
14351 static void shmQueryVersion(tvbuff_t *tvb _U_, packet_info *pinfo _U_, int *offsetp _U_, proto_tree *t _U_, guint byte_order _U_, int length _U_)
14352 {
14353 }
14354 static void shmQueryVersion_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
14355 {
14356  int sequence_number;
14357 
14358  col_append_fstr(pinfo->cinfo, COL_INFO, "-QueryVersion");
14359 
14360  REPLY(reply);
14361  proto_tree_add_item(t, hf_x11_shm_QueryVersion_reply_shared_pixmaps, tvb, *offsetp, 1, byte_order);
14362  *offsetp += 1;
14363  sequence_number = tvb_get_guint16(tvb, *offsetp, byte_order);
14364  proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
14365  "%d (shm-QueryVersion)", sequence_number);
14366  *offsetp += 2;
14367  proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
14368  *offsetp += 4;
14369  proto_tree_add_item(t, hf_x11_shm_QueryVersion_reply_major_version, tvb, *offsetp, 2, byte_order);
14370  *offsetp += 2;
14371  proto_tree_add_item(t, hf_x11_shm_QueryVersion_reply_minor_version, tvb, *offsetp, 2, byte_order);
14372  *offsetp += 2;
14373  proto_tree_add_item(t, hf_x11_shm_QueryVersion_reply_uid, tvb, *offsetp, 2, byte_order);
14374  *offsetp += 2;
14375  proto_tree_add_item(t, hf_x11_shm_QueryVersion_reply_gid, tvb, *offsetp, 2, byte_order);
14376  *offsetp += 2;
14377  proto_tree_add_item(t, hf_x11_shm_QueryVersion_reply_pixmap_format, tvb, *offsetp, 1, byte_order);
14378  *offsetp += 1;
14379  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 15, ENC_NA);
14380  *offsetp += 15;
14381 }
14382 
14383 static void shmAttach(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
14384 {
14385  proto_tree_add_item(t, hf_x11_shm_Attach_shmseg, tvb, *offsetp, 4, byte_order);
14386  *offsetp += 4;
14387  proto_tree_add_item(t, hf_x11_shm_Attach_shmid, tvb, *offsetp, 4, byte_order);
14388  *offsetp += 4;
14389  proto_tree_add_item(t, hf_x11_shm_Attach_read_only, tvb, *offsetp, 1, byte_order);
14390  *offsetp += 1;
14391  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 3, ENC_NA);
14392  *offsetp += 3;
14393 }
14394 
14395 static void shmDetach(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
14396 {
14397  proto_tree_add_item(t, hf_x11_shm_Detach_shmseg, tvb, *offsetp, 4, byte_order);
14398  *offsetp += 4;
14399 }
14400 
14401 static void shmPutImage(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
14402 {
14403  proto_tree_add_item(t, hf_x11_shm_PutImage_drawable, tvb, *offsetp, 4, byte_order);
14404  *offsetp += 4;
14405  proto_tree_add_item(t, hf_x11_shm_PutImage_gc, tvb, *offsetp, 4, byte_order);
14406  *offsetp += 4;
14407  proto_tree_add_item(t, hf_x11_shm_PutImage_total_width, tvb, *offsetp, 2, byte_order);
14408  *offsetp += 2;
14409  proto_tree_add_item(t, hf_x11_shm_PutImage_total_height, tvb, *offsetp, 2, byte_order);
14410  *offsetp += 2;
14411  proto_tree_add_item(t, hf_x11_shm_PutImage_src_x, tvb, *offsetp, 2, byte_order);
14412  *offsetp += 2;
14413  proto_tree_add_item(t, hf_x11_shm_PutImage_src_y, tvb, *offsetp, 2, byte_order);
14414  *offsetp += 2;
14415  proto_tree_add_item(t, hf_x11_shm_PutImage_src_width, tvb, *offsetp, 2, byte_order);
14416  *offsetp += 2;
14417  proto_tree_add_item(t, hf_x11_shm_PutImage_src_height, tvb, *offsetp, 2, byte_order);
14418  *offsetp += 2;
14419  proto_tree_add_item(t, hf_x11_shm_PutImage_dst_x, tvb, *offsetp, 2, byte_order);
14420  *offsetp += 2;
14421  proto_tree_add_item(t, hf_x11_shm_PutImage_dst_y, tvb, *offsetp, 2, byte_order);
14422  *offsetp += 2;
14423  proto_tree_add_item(t, hf_x11_shm_PutImage_depth, tvb, *offsetp, 1, byte_order);
14424  *offsetp += 1;
14425  proto_tree_add_item(t, hf_x11_shm_PutImage_format, tvb, *offsetp, 1, byte_order);
14426  *offsetp += 1;
14427  proto_tree_add_item(t, hf_x11_shm_PutImage_send_event, tvb, *offsetp, 1, byte_order);
14428  *offsetp += 1;
14429  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
14430  *offsetp += 1;
14431  proto_tree_add_item(t, hf_x11_shm_PutImage_shmseg, tvb, *offsetp, 4, byte_order);
14432  *offsetp += 4;
14433  proto_tree_add_item(t, hf_x11_shm_PutImage_offset, tvb, *offsetp, 4, byte_order);
14434  *offsetp += 4;
14435 }
14436 
14437 static void shmGetImage(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
14438 {
14439  proto_tree_add_item(t, hf_x11_shm_GetImage_drawable, tvb, *offsetp, 4, byte_order);
14440  *offsetp += 4;
14441  proto_tree_add_item(t, hf_x11_shm_GetImage_x, tvb, *offsetp, 2, byte_order);
14442  *offsetp += 2;
14443  proto_tree_add_item(t, hf_x11_shm_GetImage_y, tvb, *offsetp, 2, byte_order);
14444  *offsetp += 2;
14445  proto_tree_add_item(t, hf_x11_shm_GetImage_width, tvb, *offsetp, 2, byte_order);
14446  *offsetp += 2;
14447  proto_tree_add_item(t, hf_x11_shm_GetImage_height, tvb, *offsetp, 2, byte_order);
14448  *offsetp += 2;
14449  proto_tree_add_item(t, hf_x11_shm_GetImage_plane_mask, tvb, *offsetp, 4, byte_order);
14450  *offsetp += 4;
14451  proto_tree_add_item(t, hf_x11_shm_GetImage_format, tvb, *offsetp, 1, byte_order);
14452  *offsetp += 1;
14453  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 3, ENC_NA);
14454  *offsetp += 3;
14455  proto_tree_add_item(t, hf_x11_shm_GetImage_shmseg, tvb, *offsetp, 4, byte_order);
14456  *offsetp += 4;
14457  proto_tree_add_item(t, hf_x11_shm_GetImage_offset, tvb, *offsetp, 4, byte_order);
14458  *offsetp += 4;
14459 }
14460 static void shmGetImage_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
14461 {
14462  int sequence_number;
14463 
14464  col_append_fstr(pinfo->cinfo, COL_INFO, "-GetImage");
14465 
14466  REPLY(reply);
14467  proto_tree_add_item(t, hf_x11_shm_GetImage_reply_depth, tvb, *offsetp, 1, byte_order);
14468  *offsetp += 1;
14469  sequence_number = tvb_get_guint16(tvb, *offsetp, byte_order);
14470  proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
14471  "%d (shm-GetImage)", sequence_number);
14472  *offsetp += 2;
14473  proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
14474  *offsetp += 4;
14475  proto_tree_add_item(t, hf_x11_shm_GetImage_reply_visual, tvb, *offsetp, 4, byte_order);
14476  *offsetp += 4;
14477  proto_tree_add_item(t, hf_x11_shm_GetImage_reply_size, tvb, *offsetp, 4, byte_order);
14478  *offsetp += 4;
14479 }
14480 
14481 static void shmCreatePixmap(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
14482 {
14483  proto_tree_add_item(t, hf_x11_shm_CreatePixmap_pid, tvb, *offsetp, 4, byte_order);
14484  *offsetp += 4;
14485  proto_tree_add_item(t, hf_x11_shm_CreatePixmap_drawable, tvb, *offsetp, 4, byte_order);
14486  *offsetp += 4;
14487  proto_tree_add_item(t, hf_x11_shm_CreatePixmap_width, tvb, *offsetp, 2, byte_order);
14488  *offsetp += 2;
14489  proto_tree_add_item(t, hf_x11_shm_CreatePixmap_height, tvb, *offsetp, 2, byte_order);
14490  *offsetp += 2;
14491  proto_tree_add_item(t, hf_x11_shm_CreatePixmap_depth, tvb, *offsetp, 1, byte_order);
14492  *offsetp += 1;
14493  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 3, ENC_NA);
14494  *offsetp += 3;
14495  proto_tree_add_item(t, hf_x11_shm_CreatePixmap_shmseg, tvb, *offsetp, 4, byte_order);
14496  *offsetp += 4;
14497  proto_tree_add_item(t, hf_x11_shm_CreatePixmap_offset, tvb, *offsetp, 4, byte_order);
14498  *offsetp += 4;
14499 }
14500 
14501 static void shmAttachFd(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
14502 {
14503  proto_tree_add_item(t, hf_x11_shm_AttachFd_shmseg, tvb, *offsetp, 4, byte_order);
14504  *offsetp += 4;
14505  proto_tree_add_item(t, hf_x11_shm_AttachFd_read_only, tvb, *offsetp, 1, byte_order);
14506  *offsetp += 1;
14507  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 3, ENC_NA);
14508  *offsetp += 3;
14509 }
14510 
14511 static void shmCreateSegment(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
14512 {
14513  proto_tree_add_item(t, hf_x11_shm_CreateSegment_shmseg, tvb, *offsetp, 4, byte_order);
14514  *offsetp += 4;
14515  proto_tree_add_item(t, hf_x11_shm_CreateSegment_size, tvb, *offsetp, 4, byte_order);
14516  *offsetp += 4;
14517  proto_tree_add_item(t, hf_x11_shm_CreateSegment_read_only, tvb, *offsetp, 1, byte_order);
14518  *offsetp += 1;
14519  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 3, ENC_NA);
14520  *offsetp += 3;
14521 }
14522 static void shmCreateSegment_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
14523 {
14524  int sequence_number;
14525 
14526  col_append_fstr(pinfo->cinfo, COL_INFO, "-CreateSegment");
14527 
14528  REPLY(reply);
14529  proto_tree_add_item(t, hf_x11_shm_CreateSegment_reply_nfd, tvb, *offsetp, 1, byte_order);
14530  *offsetp += 1;
14531  sequence_number = tvb_get_guint16(tvb, *offsetp, byte_order);
14532  proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
14533  "%d (shm-CreateSegment)", sequence_number);
14534  *offsetp += 2;
14535  proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
14536  *offsetp += 4;
14537  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 24, ENC_NA);
14538  *offsetp += 24;
14539 }
14540 static const value_string shm_extension_minor[] = {
14541  { 0, "QueryVersion" },
14542  { 1, "Attach" },
14543  { 2, "Detach" },
14544  { 3, "PutImage" },
14545  { 4, "GetImage" },
14546  { 5, "CreatePixmap" },
14547  { 6, "AttachFd" },
14548  { 7, "CreateSegment" },
14549  { 0, NULL }
14550 };
14551 const x11_event_info shm_events[] = {
14552  { NULL, NULL }
14553 };
14554 static x11_reply_info shm_replies[] = {
14555  { 0, shmQueryVersion_Reply },
14556  { 4, shmGetImage_Reply },
14557  { 7, shmCreateSegment_Reply },
14558  { 0, NULL }
14559 };
14560 
14561 static void dispatch_shm(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
14562 {
14563  int minor, length;
14564  minor = CARD8(shm_extension_minor);
14565  length = REQUEST_LENGTH();
14566 
14567  col_append_fstr(pinfo->cinfo, COL_INFO, "-%s",
14568  val_to_str(minor, shm_extension_minor,
14569  "<Unknown opcode %d>"));
14570  switch (minor) {
14571  case 0:
14572  shmQueryVersion(tvb, pinfo, offsetp, t, byte_order, length);
14573  break;
14574  case 1:
14575  shmAttach(tvb, pinfo, offsetp, t, byte_order, length);
14576  break;
14577  case 2:
14578  shmDetach(tvb, pinfo, offsetp, t, byte_order, length);
14579  break;
14580  case 3:
14581  shmPutImage(tvb, pinfo, offsetp, t, byte_order, length);
14582  break;
14583  case 4:
14584  shmGetImage(tvb, pinfo, offsetp, t, byte_order, length);
14585  break;
14586  case 5:
14587  shmCreatePixmap(tvb, pinfo, offsetp, t, byte_order, length);
14588  break;
14589  case 6:
14590  shmAttachFd(tvb, pinfo, offsetp, t, byte_order, length);
14591  break;
14592  case 7:
14593  shmCreateSegment(tvb, pinfo, offsetp, t, byte_order, length);
14594  break;
14595  /* No need for a default case here, since Unknown is printed above,
14596  and UNDECODED() is taken care of by dissect_x11_request */
14597  }
14598 }
14599 
14600 static void register_shm(void)
14601 {
14602  set_handler("MIT-SHM", dispatch_shm, shm_errors, shm_events, NULL, shm_replies);
14603 }
14604 
14605 static void syncInitialize(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
14606 {
14607  proto_tree_add_item(t, hf_x11_sync_Initialize_desired_major_version, tvb, *offsetp, 1, byte_order);
14608  *offsetp += 1;
14609  proto_tree_add_item(t, hf_x11_sync_Initialize_desired_minor_version, tvb, *offsetp, 1, byte_order);
14610  *offsetp += 1;
14611 }
14612 static void syncInitialize_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
14613 {
14614  int sequence_number;
14615 
14616  col_append_fstr(pinfo->cinfo, COL_INFO, "-Initialize");
14617 
14618  REPLY(reply);
14619  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
14620  *offsetp += 1;
14621  sequence_number = tvb_get_guint16(tvb, *offsetp, byte_order);
14622  proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
14623  "%d (sync-Initialize)", sequence_number);
14624  *offsetp += 2;
14625  proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
14626  *offsetp += 4;
14627  proto_tree_add_item(t, hf_x11_sync_Initialize_reply_major_version, tvb, *offsetp, 1, byte_order);
14628  *offsetp += 1;
14629  proto_tree_add_item(t, hf_x11_sync_Initialize_reply_minor_version, tvb, *offsetp, 1, byte_order);
14630  *offsetp += 1;
14631  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 22, ENC_NA);
14632  *offsetp += 22;
14633 }
14634 
14635 static void syncListSystemCounters(tvbuff_t *tvb _U_, packet_info *pinfo _U_, int *offsetp _U_, proto_tree *t _U_, guint byte_order _U_, int length _U_)
14636 {
14637 }
14638 static void syncListSystemCounters_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
14639 {
14640  int sequence_number;
14641  int f_counters_len;
14642 
14643  col_append_fstr(pinfo->cinfo, COL_INFO, "-ListSystemCounters");
14644 
14645  REPLY(reply);
14646  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
14647  *offsetp += 1;
14648  sequence_number = tvb_get_guint16(tvb, *offsetp, byte_order);
14649  proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
14650  "%d (sync-ListSystemCounters)", sequence_number);
14651  *offsetp += 2;
14652  proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
14653  *offsetp += 4;
14654  f_counters_len = tvb_get_guint32(tvb, *offsetp, byte_order);
14655  proto_tree_add_item(t, hf_x11_sync_ListSystemCounters_reply_counters_len, tvb, *offsetp, 4, byte_order);
14656  *offsetp += 4;
14657  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 20, ENC_NA);
14658  *offsetp += 20;
14659  struct_sync_SYSTEMCOUNTER(tvb, offsetp, t, byte_order, f_counters_len);
14660 }
14661 
14662 static void syncCreateCounter(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
14663 {
14664  proto_tree_add_item(t, hf_x11_sync_CreateCounter_id, tvb, *offsetp, 4, byte_order);
14665  *offsetp += 4;
14666  struct_sync_INT64(tvb, offsetp, t, byte_order, 1);
14667 }
14668 
14669 static void syncDestroyCounter(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
14670 {
14671  proto_tree_add_item(t, hf_x11_sync_DestroyCounter_counter, tvb, *offsetp, 4, byte_order);
14672  *offsetp += 4;
14673 }
14674 
14675 static void syncQueryCounter(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
14676 {
14677  proto_tree_add_item(t, hf_x11_sync_QueryCounter_counter, tvb, *offsetp, 4, byte_order);
14678  *offsetp += 4;
14679 }
14680 static void syncQueryCounter_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
14681 {
14682  int sequence_number;
14683 
14684  col_append_fstr(pinfo->cinfo, COL_INFO, "-QueryCounter");
14685 
14686  REPLY(reply);
14687  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
14688  *offsetp += 1;
14689  sequence_number = tvb_get_guint16(tvb, *offsetp, byte_order);
14690  proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
14691  "%d (sync-QueryCounter)", sequence_number);
14692  *offsetp += 2;
14693  proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
14694  *offsetp += 4;
14695  struct_sync_INT64(tvb, offsetp, t, byte_order, 1);
14696 }
14697 
14698 static void syncAwait(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
14699 {
14700  struct_sync_WAITCONDITION(tvb, offsetp, t, byte_order, (length - 4) / 28);
14701 }
14702 
14703 static void syncChangeCounter(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
14704 {
14705  proto_tree_add_item(t, hf_x11_sync_ChangeCounter_counter, tvb, *offsetp, 4, byte_order);
14706  *offsetp += 4;
14707  struct_sync_INT64(tvb, offsetp, t, byte_order, 1);
14708 }
14709 
14710 static void syncSetCounter(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
14711 {
14712  proto_tree_add_item(t, hf_x11_sync_SetCounter_counter, tvb, *offsetp, 4, byte_order);
14713  *offsetp += 4;
14714  struct_sync_INT64(tvb, offsetp, t, byte_order, 1);
14715 }
14716 
14717 static void syncCreateAlarm(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
14718 {
14719  int f_value_mask;
14720  proto_tree_add_item(t, hf_x11_sync_CreateAlarm_id, tvb, *offsetp, 4, byte_order);
14721  *offsetp += 4;
14722  f_value_mask = tvb_get_guint32(tvb, *offsetp, byte_order);
14723  {
14724  int* const value_mask_bits [] = {
14725  &hf_x11_sync_CreateAlarm_value_mask_mask_Counter,
14726  &hf_x11_sync_CreateAlarm_value_mask_mask_ValueType,
14727  &hf_x11_sync_CreateAlarm_value_mask_mask_Value,
14728  &hf_x11_sync_CreateAlarm_value_mask_mask_TestType,
14729  &hf_x11_sync_CreateAlarm_value_mask_mask_Delta,
14730  &hf_x11_sync_CreateAlarm_value_mask_mask_Events,
14731  NULL
14732  };
14733  proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_sync_CreateAlarm_value_mask, ett_x11_rectangle, value_mask_bits, byte_order);
14734  }
14735  *offsetp += 4;
14736  if (f_value_mask & (1U << 0)) {
14737  proto_tree_add_item(t, hf_x11_sync_CreateAlarm_Counter_counter, tvb, *offsetp, 4, byte_order);
14738  *offsetp += 4;
14739  }
14740  if (f_value_mask & (1U << 1)) {
14741  field32(tvb, offsetp, t, hf_x11_sync_CreateAlarm_ValueType_valueType, byte_order);
14742  }
14743  if (f_value_mask & (1U << 2)) {
14744  struct_sync_INT64(tvb, offsetp, t, byte_order, 1);
14745  }
14746  if (f_value_mask & (1U << 3)) {
14747  field32(tvb, offsetp, t, hf_x11_sync_CreateAlarm_TestType_testType, byte_order);
14748  }
14749  if (f_value_mask & (1U << 4)) {
14750  struct_sync_INT64(tvb, offsetp, t, byte_order, 1);
14751  }
14752  if (f_value_mask & (1U << 5)) {
14753  proto_tree_add_item(t, hf_x11_sync_CreateAlarm_Events_events, tvb, *offsetp, 4, byte_order);
14754  *offsetp += 4;
14755  }
14756 }
14757 
14758 static void syncChangeAlarm(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
14759 {
14760  int f_value_mask;
14761  proto_tree_add_item(t, hf_x11_sync_ChangeAlarm_id, tvb, *offsetp, 4, byte_order);
14762  *offsetp += 4;
14763  f_value_mask = tvb_get_guint32(tvb, *offsetp, byte_order);
14764  {
14765  int* const value_mask_bits [] = {
14766  &hf_x11_sync_ChangeAlarm_value_mask_mask_Counter,
14767  &hf_x11_sync_ChangeAlarm_value_mask_mask_ValueType,
14768  &hf_x11_sync_ChangeAlarm_value_mask_mask_Value,
14769  &hf_x11_sync_ChangeAlarm_value_mask_mask_TestType,
14770  &hf_x11_sync_ChangeAlarm_value_mask_mask_Delta,
14771  &hf_x11_sync_ChangeAlarm_value_mask_mask_Events,
14772  NULL
14773  };
14774  proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_sync_ChangeAlarm_value_mask, ett_x11_rectangle, value_mask_bits, byte_order);
14775  }
14776  *offsetp += 4;
14777  if (f_value_mask & (1U << 0)) {
14778  proto_tree_add_item(t, hf_x11_sync_ChangeAlarm_Counter_counter, tvb, *offsetp, 4, byte_order);
14779  *offsetp += 4;
14780  }
14781  if (f_value_mask & (1U << 1)) {
14782  field32(tvb, offsetp, t, hf_x11_sync_ChangeAlarm_ValueType_valueType, byte_order);
14783  }
14784  if (f_value_mask & (1U << 2)) {
14785  struct_sync_INT64(tvb, offsetp, t, byte_order, 1);
14786  }
14787  if (f_value_mask & (1U << 3)) {
14788  field32(tvb, offsetp, t, hf_x11_sync_ChangeAlarm_TestType_testType, byte_order);
14789  }
14790  if (f_value_mask & (1U << 4)) {
14791  struct_sync_INT64(tvb, offsetp, t, byte_order, 1);
14792  }
14793  if (f_value_mask & (1U << 5)) {
14794  proto_tree_add_item(t, hf_x11_sync_ChangeAlarm_Events_events, tvb, *offsetp, 4, byte_order);
14795  *offsetp += 4;
14796  }
14797 }
14798 
14799 static void syncDestroyAlarm(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
14800 {
14801  proto_tree_add_item(t, hf_x11_sync_DestroyAlarm_alarm, tvb, *offsetp, 4, byte_order);
14802  *offsetp += 4;
14803 }
14804 
14805 static void syncQueryAlarm(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
14806 {
14807  proto_tree_add_item(t, hf_x11_sync_QueryAlarm_alarm, tvb, *offsetp, 4, byte_order);
14808  *offsetp += 4;
14809 }
14810 static void syncQueryAlarm_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
14811 {
14812  int sequence_number;
14813 
14814  col_append_fstr(pinfo->cinfo, COL_INFO, "-QueryAlarm");
14815 
14816  REPLY(reply);
14817  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
14818  *offsetp += 1;
14819  sequence_number = tvb_get_guint16(tvb, *offsetp, byte_order);
14820  proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
14821  "%d (sync-QueryAlarm)", sequence_number);
14822  *offsetp += 2;
14823  proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
14824  *offsetp += 4;
14825  struct_sync_TRIGGER(tvb, offsetp, t, byte_order, 1);
14826  struct_sync_INT64(tvb, offsetp, t, byte_order, 1);
14827  proto_tree_add_item(t, hf_x11_sync_QueryAlarm_reply_events, tvb, *offsetp, 1, byte_order);
14828  *offsetp += 1;
14829  field8(tvb, offsetp, t, hf_x11_sync_QueryAlarm_reply_state, byte_order);
14830  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 2, ENC_NA);
14831  *offsetp += 2;
14832 }
14833 
14834 static void syncSetPriority(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
14835 {
14836  proto_tree_add_item(t, hf_x11_sync_SetPriority_id, tvb, *offsetp, 4, byte_order);
14837  *offsetp += 4;
14838  proto_tree_add_item(t, hf_x11_sync_SetPriority_priority, tvb, *offsetp, 4, byte_order);
14839  *offsetp += 4;
14840 }
14841 
14842 static void syncGetPriority(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
14843 {
14844  proto_tree_add_item(t, hf_x11_sync_GetPriority_id, tvb, *offsetp, 4, byte_order);
14845  *offsetp += 4;
14846 }
14847 static void syncGetPriority_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
14848 {
14849  int sequence_number;
14850 
14851  col_append_fstr(pinfo->cinfo, COL_INFO, "-GetPriority");
14852 
14853  REPLY(reply);
14854  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
14855  *offsetp += 1;
14856  sequence_number = tvb_get_guint16(tvb, *offsetp, byte_order);
14857  proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
14858  "%d (sync-GetPriority)", sequence_number);
14859  *offsetp += 2;
14860  proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
14861  *offsetp += 4;
14862  proto_tree_add_item(t, hf_x11_sync_GetPriority_reply_priority, tvb, *offsetp, 4, byte_order);
14863  *offsetp += 4;
14864 }
14865 
14866 static void syncCreateFence(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
14867 {
14868  proto_tree_add_item(t, hf_x11_sync_CreateFence_drawable, tvb, *offsetp, 4, byte_order);
14869  *offsetp += 4;
14870  proto_tree_add_item(t, hf_x11_sync_CreateFence_fence, tvb, *offsetp, 4, byte_order);
14871  *offsetp += 4;
14872  proto_tree_add_item(t, hf_x11_sync_CreateFence_initially_triggered, tvb, *offsetp, 1, byte_order);
14873  *offsetp += 1;
14874 }
14875 
14876 static void syncTriggerFence(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
14877 {
14878  proto_tree_add_item(t, hf_x11_sync_TriggerFence_fence, tvb, *offsetp, 4, byte_order);
14879  *offsetp += 4;
14880 }
14881 
14882 static void syncResetFence(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
14883 {
14884  proto_tree_add_item(t, hf_x11_sync_ResetFence_fence, tvb, *offsetp, 4, byte_order);
14885  *offsetp += 4;
14886 }
14887 
14888 static void syncDestroyFence(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
14889 {
14890  proto_tree_add_item(t, hf_x11_sync_DestroyFence_fence, tvb, *offsetp, 4, byte_order);
14891  *offsetp += 4;
14892 }
14893 
14894 static void syncQueryFence(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
14895 {
14896  proto_tree_add_item(t, hf_x11_sync_QueryFence_fence, tvb, *offsetp, 4, byte_order);
14897  *offsetp += 4;
14898 }
14899 static void syncQueryFence_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
14900 {
14901  int sequence_number;
14902 
14903  col_append_fstr(pinfo->cinfo, COL_INFO, "-QueryFence");
14904 
14905  REPLY(reply);
14906  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
14907  *offsetp += 1;
14908  sequence_number = tvb_get_guint16(tvb, *offsetp, byte_order);
14909  proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
14910  "%d (sync-QueryFence)", sequence_number);
14911  *offsetp += 2;
14912  proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
14913  *offsetp += 4;
14914  proto_tree_add_item(t, hf_x11_sync_QueryFence_reply_triggered, tvb, *offsetp, 1, byte_order);
14915  *offsetp += 1;
14916  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 23, ENC_NA);
14917  *offsetp += 23;
14918 }
14919 
14920 static void syncAwaitFence(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
14921 {
14922  listOfCard32(tvb, offsetp, t, hf_x11_sync_AwaitFence_fence_list, hf_x11_sync_AwaitFence_fence_list_item, (length - 4) / 4, byte_order);
14923 }
14924 
14925 static void syncAlarmNotify(tvbuff_t *tvb, int *offsetp, proto_tree *t, guint byte_order)
14926 {
14927  proto_tree_add_item(t, hf_x11_sync_AlarmNotify_kind, tvb, *offsetp, 1, byte_order);
14928  *offsetp += 1;
14929  CARD16(event_sequencenumber);
14930  proto_tree_add_item(t, hf_x11_sync_AlarmNotify_alarm, tvb, *offsetp, 4, byte_order);
14931  *offsetp += 4;
14932  struct_sync_INT64(tvb, offsetp, t, byte_order, 1);
14933  struct_sync_INT64(tvb, offsetp, t, byte_order, 1);
14934  proto_tree_add_item(t, hf_x11_sync_AlarmNotify_timestamp, tvb, *offsetp, 4, byte_order);
14935  *offsetp += 4;
14936  field8(tvb, offsetp, t, hf_x11_sync_AlarmNotify_state, byte_order);
14937  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 3, ENC_NA);
14938  *offsetp += 3;
14939 }
14940 
14941 static const value_string sync_extension_minor[] = {
14942  { 0, "Initialize" },
14943  { 1, "ListSystemCounters" },
14944  { 2, "CreateCounter" },
14945  { 3, "SetCounter" },
14946  { 4, "ChangeCounter" },
14947  { 5, "QueryCounter" },
14948  { 6, "DestroyCounter" },
14949  { 7, "Await" },
14950  { 8, "CreateAlarm" },
14951  { 9, "ChangeAlarm" },
14952  { 10, "QueryAlarm" },
14953  { 11, "DestroyAlarm" },
14954  { 12, "SetPriority" },
14955  { 13, "GetPriority" },
14956  { 14, "CreateFence" },
14957  { 15, "TriggerFence" },
14958  { 16, "ResetFence" },
14959  { 17, "DestroyFence" },
14960  { 18, "QueryFence" },
14961  { 19, "AwaitFence" },
14962  { 0, NULL }
14963 };
14964 static const x11_event_info sync_events[] = {
14965  { "sync-AlarmNotify", syncAlarmNotify },
14966  { NULL, NULL }
14967 };
14968 static x11_reply_info sync_replies[] = {
14969  { 0, syncInitialize_Reply },
14970  { 1, syncListSystemCounters_Reply },
14971  { 5, syncQueryCounter_Reply },
14972  { 10, syncQueryAlarm_Reply },
14973  { 13, syncGetPriority_Reply },
14974  { 18, syncQueryFence_Reply },
14975  { 0, NULL }
14976 };
14977 
14978 static void dispatch_sync(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
14979 {
14980  int minor, length;
14981  minor = CARD8(sync_extension_minor);
14982  length = REQUEST_LENGTH();
14983 
14984  col_append_fstr(pinfo->cinfo, COL_INFO, "-%s",
14985  val_to_str(minor, sync_extension_minor,
14986  "<Unknown opcode %d>"));
14987  switch (minor) {
14988  case 0:
14989  syncInitialize(tvb, pinfo, offsetp, t, byte_order, length);
14990  break;
14991  case 1:
14992  syncListSystemCounters(tvb, pinfo, offsetp, t, byte_order, length);
14993  break;
14994  case 2:
14995  syncCreateCounter(tvb, pinfo, offsetp, t, byte_order, length);
14996  break;
14997  case 3:
14998  syncSetCounter(tvb, pinfo, offsetp, t, byte_order, length);
14999  break;
15000  case 4:
15001  syncChangeCounter(tvb, pinfo, offsetp, t, byte_order, length);
15002  break;
15003  case 5:
15004  syncQueryCounter(tvb, pinfo, offsetp, t, byte_order, length);
15005  break;
15006  case 6:
15007  syncDestroyCounter(tvb, pinfo, offsetp, t, byte_order, length);
15008  break;
15009  case 7:
15010  syncAwait(tvb, pinfo, offsetp, t, byte_order, length);
15011  break;
15012  case 8:
15013  syncCreateAlarm(tvb, pinfo, offsetp, t, byte_order, length);
15014  break;
15015  case 9:
15016  syncChangeAlarm(tvb, pinfo, offsetp, t, byte_order, length);
15017  break;
15018  case 10:
15019  syncQueryAlarm(tvb, pinfo, offsetp, t, byte_order, length);
15020  break;
15021  case 11:
15022  syncDestroyAlarm(tvb, pinfo, offsetp, t, byte_order, length);
15023  break;
15024  case 12:
15025  syncSetPriority(tvb, pinfo, offsetp, t, byte_order, length);
15026  break;
15027  case 13:
15028  syncGetPriority(tvb, pinfo, offsetp, t, byte_order, length);
15029  break;
15030  case 14:
15031  syncCreateFence(tvb, pinfo, offsetp, t, byte_order, length);
15032  break;
15033  case 15:
15034  syncTriggerFence(tvb, pinfo, offsetp, t, byte_order, length);
15035  break;
15036  case 16:
15037  syncResetFence(tvb, pinfo, offsetp, t, byte_order, length);
15038  break;
15039  case 17:
15040  syncDestroyFence(tvb, pinfo, offsetp, t, byte_order, length);
15041  break;
15042  case 18:
15043  syncQueryFence(tvb, pinfo, offsetp, t, byte_order, length);
15044  break;
15045  case 19:
15046  syncAwaitFence(tvb, pinfo, offsetp, t, byte_order, length);
15047  break;
15048  /* No need for a default case here, since Unknown is printed above,
15049  and UNDECODED() is taken care of by dissect_x11_request */
15050  }
15051 }
15052 
15053 static void register_sync(void)
15054 {
15055  set_handler("SYNC", dispatch_sync, sync_errors, sync_events, NULL, sync_replies);
15056 }
15057 
15058 static void xc_miscGetVersion(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
15059 {
15060  proto_tree_add_item(t, hf_x11_xc_misc_GetVersion_client_major_version, tvb, *offsetp, 2, byte_order);
15061  *offsetp += 2;
15062  proto_tree_add_item(t, hf_x11_xc_misc_GetVersion_client_minor_version, tvb, *offsetp, 2, byte_order);
15063  *offsetp += 2;
15064 }
15065 static void xc_miscGetVersion_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
15066 {
15067  int sequence_number;
15068 
15069  col_append_fstr(pinfo->cinfo, COL_INFO, "-GetVersion");
15070 
15071  REPLY(reply);
15072  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
15073  *offsetp += 1;
15074  sequence_number = tvb_get_guint16(tvb, *offsetp, byte_order);
15075  proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
15076  "%d (xc_misc-GetVersion)", sequence_number);
15077  *offsetp += 2;
15078  proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
15079  *offsetp += 4;
15080  proto_tree_add_item(t, hf_x11_xc_misc_GetVersion_reply_server_major_version, tvb, *offsetp, 2, byte_order);
15081  *offsetp += 2;
15082  proto_tree_add_item(t, hf_x11_xc_misc_GetVersion_reply_server_minor_version, tvb, *offsetp, 2, byte_order);
15083  *offsetp += 2;
15084 }
15085 
15086 static void xc_miscGetXIDRange(tvbuff_t *tvb _U_, packet_info *pinfo _U_, int *offsetp _U_, proto_tree *t _U_, guint byte_order _U_, int length _U_)
15087 {
15088 }
15089 static void xc_miscGetXIDRange_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
15090 {
15091  int sequence_number;
15092 
15093  col_append_fstr(pinfo->cinfo, COL_INFO, "-GetXIDRange");
15094 
15095  REPLY(reply);
15096  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
15097  *offsetp += 1;
15098  sequence_number = tvb_get_guint16(tvb, *offsetp, byte_order);
15099  proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
15100  "%d (xc_misc-GetXIDRange)", sequence_number);
15101  *offsetp += 2;
15102  proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
15103  *offsetp += 4;
15104  proto_tree_add_item(t, hf_x11_xc_misc_GetXIDRange_reply_start_id, tvb, *offsetp, 4, byte_order);
15105  *offsetp += 4;
15106  proto_tree_add_item(t, hf_x11_xc_misc_GetXIDRange_reply_count, tvb, *offsetp, 4, byte_order);
15107  *offsetp += 4;
15108 }
15109 
15110 static void xc_miscGetXIDList(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
15111 {
15112  proto_tree_add_item(t, hf_x11_xc_misc_GetXIDList_count, tvb, *offsetp, 4, byte_order);
15113  *offsetp += 4;
15114 }
15115 static void xc_miscGetXIDList_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
15116 {
15117  int sequence_number;
15118  int f_ids_len;
15119 
15120  col_append_fstr(pinfo->cinfo, COL_INFO, "-GetXIDList");
15121 
15122  REPLY(reply);
15123  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
15124  *offsetp += 1;
15125  sequence_number = tvb_get_guint16(tvb, *offsetp, byte_order);
15126  proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
15127  "%d (xc_misc-GetXIDList)", sequence_number);
15128  *offsetp += 2;
15129  proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
15130  *offsetp += 4;
15131  f_ids_len = tvb_get_guint32(tvb, *offsetp, byte_order);
15132  proto_tree_add_item(t, hf_x11_xc_misc_GetXIDList_reply_ids_len, tvb, *offsetp, 4, byte_order);
15133  *offsetp += 4;
15134  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 20, ENC_NA);
15135  *offsetp += 20;
15136  listOfCard32(tvb, offsetp, t, hf_x11_xc_misc_GetXIDList_reply_ids, hf_x11_xc_misc_GetXIDList_reply_ids_item, f_ids_len, byte_order);
15137 }
15138 static const value_string xc_misc_extension_minor[] = {
15139  { 0, "GetVersion" },
15140  { 1, "GetXIDRange" },
15141  { 2, "GetXIDList" },
15142  { 0, NULL }
15143 };
15144 const x11_event_info xc_misc_events[] = {
15145  { NULL, NULL }
15146 };
15147 static x11_reply_info xc_misc_replies[] = {
15148  { 0, xc_miscGetVersion_Reply },
15149  { 1, xc_miscGetXIDRange_Reply },
15150  { 2, xc_miscGetXIDList_Reply },
15151  { 0, NULL }
15152 };
15153 
15154 static void dispatch_xc_misc(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
15155 {
15156  int minor, length;
15157  minor = CARD8(xc_misc_extension_minor);
15158  length = REQUEST_LENGTH();
15159 
15160  col_append_fstr(pinfo->cinfo, COL_INFO, "-%s",
15161  val_to_str(minor, xc_misc_extension_minor,
15162  "<Unknown opcode %d>"));
15163  switch (minor) {
15164  case 0:
15165  xc_miscGetVersion(tvb, pinfo, offsetp, t, byte_order, length);
15166  break;
15167  case 1:
15168  xc_miscGetXIDRange(tvb, pinfo, offsetp, t, byte_order, length);
15169  break;
15170  case 2:
15171  xc_miscGetXIDList(tvb, pinfo, offsetp, t, byte_order, length);
15172  break;
15173  /* No need for a default case here, since Unknown is printed above,
15174  and UNDECODED() is taken care of by dissect_x11_request */
15175  }
15176 }
15177 
15178 static void register_xc_misc(void)
15179 {
15180  set_handler("XC-MISC", dispatch_xc_misc, xc_misc_errors, xc_misc_events, NULL, xc_misc_replies);
15181 }
15182 
15183 static void xevieQueryVersion(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
15184 {
15185  proto_tree_add_item(t, hf_x11_xevie_QueryVersion_client_major_version, tvb, *offsetp, 2, byte_order);
15186  *offsetp += 2;
15187  proto_tree_add_item(t, hf_x11_xevie_QueryVersion_client_minor_version, tvb, *offsetp, 2, byte_order);
15188  *offsetp += 2;
15189 }
15190 static void xevieQueryVersion_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
15191 {
15192  int sequence_number;
15193 
15194  col_append_fstr(pinfo->cinfo, COL_INFO, "-QueryVersion");
15195 
15196  REPLY(reply);
15197  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
15198  *offsetp += 1;
15199  sequence_number = tvb_get_guint16(tvb, *offsetp, byte_order);
15200  proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
15201  "%d (xevie-QueryVersion)", sequence_number);
15202  *offsetp += 2;
15203  proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
15204  *offsetp += 4;
15205  proto_tree_add_item(t, hf_x11_xevie_QueryVersion_reply_server_major_version, tvb, *offsetp, 2, byte_order);
15206  *offsetp += 2;
15207  proto_tree_add_item(t, hf_x11_xevie_QueryVersion_reply_server_minor_version, tvb, *offsetp, 2, byte_order);
15208  *offsetp += 2;
15209  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 20, ENC_NA);
15210  *offsetp += 20;
15211 }
15212 
15213 static void xevieStart(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
15214 {
15215  proto_tree_add_item(t, hf_x11_xevie_Start_screen, tvb, *offsetp, 4, byte_order);
15216  *offsetp += 4;
15217 }
15218 static void xevieStart_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
15219 {
15220  int sequence_number;
15221 
15222  col_append_fstr(pinfo->cinfo, COL_INFO, "-Start");
15223 
15224  REPLY(reply);
15225  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
15226  *offsetp += 1;
15227  sequence_number = tvb_get_guint16(tvb, *offsetp, byte_order);
15228  proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
15229  "%d (xevie-Start)", sequence_number);
15230  *offsetp += 2;
15231  proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
15232  *offsetp += 4;
15233  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 24, ENC_NA);
15234  *offsetp += 24;
15235 }
15236 
15237 static void xevieEnd(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
15238 {
15239  proto_tree_add_item(t, hf_x11_xevie_End_cmap, tvb, *offsetp, 4, byte_order);
15240  *offsetp += 4;
15241 }
15242 static void xevieEnd_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
15243 {
15244  int sequence_number;
15245 
15246  col_append_fstr(pinfo->cinfo, COL_INFO, "-End");
15247 
15248  REPLY(reply);
15249  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
15250  *offsetp += 1;
15251  sequence_number = tvb_get_guint16(tvb, *offsetp, byte_order);
15252  proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
15253  "%d (xevie-End)", sequence_number);
15254  *offsetp += 2;
15255  proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
15256  *offsetp += 4;
15257  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 24, ENC_NA);
15258  *offsetp += 24;
15259 }
15260 
15261 static void struct_xevie_Event(tvbuff_t *tvb, int *offsetp, proto_tree *root, guint byte_order _U_, int count)
15262 {
15263  int i;
15264  for (i = 0; i < count; i++) {
15265  proto_item *item;
15266  proto_tree *t;
15267 
15268  item = proto_tree_add_item(root, hf_x11_struct_xevie_Event, tvb, *offsetp, 32, ENC_NA);
15269  t = proto_item_add_subtree(item, ett_x11_rectangle);
15270  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 32, ENC_NA);
15271  *offsetp += 32;
15272  }
15273 }
15274 
15275 static void xevieSend(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
15276 {
15277  struct_xevie_Event(tvb, offsetp, t, byte_order, 1);
15278  proto_tree_add_item(t, hf_x11_xevie_Send_data_type, tvb, *offsetp, 4, byte_order);
15279  *offsetp += 4;
15280  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 64, ENC_NA);
15281  *offsetp += 64;
15282 }
15283 static void xevieSend_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
15284 {
15285  int sequence_number;
15286 
15287  col_append_fstr(pinfo->cinfo, COL_INFO, "-Send");
15288 
15289  REPLY(reply);
15290  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
15291  *offsetp += 1;
15292  sequence_number = tvb_get_guint16(tvb, *offsetp, byte_order);
15293  proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
15294  "%d (xevie-Send)", sequence_number);
15295  *offsetp += 2;
15296  proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
15297  *offsetp += 4;
15298  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 24, ENC_NA);
15299  *offsetp += 24;
15300 }
15301 
15302 static void xevieSelectInput(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
15303 {
15304  proto_tree_add_item(t, hf_x11_xevie_SelectInput_event_mask, tvb, *offsetp, 4, byte_order);
15305  *offsetp += 4;
15306 }
15307 static void xevieSelectInput_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
15308 {
15309  int sequence_number;
15310 
15311  col_append_fstr(pinfo->cinfo, COL_INFO, "-SelectInput");
15312 
15313  REPLY(reply);
15314  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
15315  *offsetp += 1;
15316  sequence_number = tvb_get_guint16(tvb, *offsetp, byte_order);
15317  proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
15318  "%d (xevie-SelectInput)", sequence_number);
15319  *offsetp += 2;
15320  proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
15321  *offsetp += 4;
15322  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 24, ENC_NA);
15323  *offsetp += 24;
15324 }
15325 static const value_string xevie_extension_minor[] = {
15326  { 0, "QueryVersion" },
15327  { 1, "Start" },
15328  { 2, "End" },
15329  { 3, "Send" },
15330  { 4, "SelectInput" },
15331  { 0, NULL }
15332 };
15333 const x11_event_info xevie_events[] = {
15334  { NULL, NULL }
15335 };
15336 static x11_reply_info xevie_replies[] = {
15337  { 0, xevieQueryVersion_Reply },
15338  { 1, xevieStart_Reply },
15339  { 2, xevieEnd_Reply },
15340  { 3, xevieSend_Reply },
15341  { 4, xevieSelectInput_Reply },
15342  { 0, NULL }
15343 };
15344 
15345 static void dispatch_xevie(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
15346 {
15347  int minor, length;
15348  minor = CARD8(xevie_extension_minor);
15349  length = REQUEST_LENGTH();
15350 
15351  col_append_fstr(pinfo->cinfo, COL_INFO, "-%s",
15352  val_to_str(minor, xevie_extension_minor,
15353  "<Unknown opcode %d>"));
15354  switch (minor) {
15355  case 0:
15356  xevieQueryVersion(tvb, pinfo, offsetp, t, byte_order, length);
15357  break;
15358  case 1:
15359  xevieStart(tvb, pinfo, offsetp, t, byte_order, length);
15360  break;
15361  case 2:
15362  xevieEnd(tvb, pinfo, offsetp, t, byte_order, length);
15363  break;
15364  case 3:
15365  xevieSend(tvb, pinfo, offsetp, t, byte_order, length);
15366  break;
15367  case 4:
15368  xevieSelectInput(tvb, pinfo, offsetp, t, byte_order, length);
15369  break;
15370  /* No need for a default case here, since Unknown is printed above,
15371  and UNDECODED() is taken care of by dissect_x11_request */
15372  }
15373 }
15374 
15375 static void register_xevie(void)
15376 {
15377  set_handler("XEVIE", dispatch_xevie, xevie_errors, xevie_events, NULL, xevie_replies);
15378 }
15379 
15380 static void struct_xf86dri_DrmClipRect(tvbuff_t *tvb, int *offsetp, proto_tree *root, guint byte_order _U_, int count)
15381 {
15382  int i;
15383  for (i = 0; i < count; i++) {
15384  proto_item *item;
15385  proto_tree *t;
15386 
15387  item = proto_tree_add_item(root, hf_x11_struct_xf86dri_DrmClipRect, tvb, *offsetp, 8, ENC_NA);
15388  t = proto_item_add_subtree(item, ett_x11_rectangle);
15389  proto_tree_add_item(t, hf_x11_struct_xf86dri_DrmClipRect_x1, tvb, *offsetp, 2, byte_order);
15390  *offsetp += 2;
15391  proto_tree_add_item(t, hf_x11_struct_xf86dri_DrmClipRect_y1, tvb, *offsetp, 2, byte_order);
15392  *offsetp += 2;
15393  proto_tree_add_item(t, hf_x11_struct_xf86dri_DrmClipRect_x2, tvb, *offsetp, 2, byte_order);
15394  *offsetp += 2;
15395  proto_tree_add_item(t, hf_x11_struct_xf86dri_DrmClipRect_x3, tvb, *offsetp, 2, byte_order);
15396  *offsetp += 2;
15397  }
15398 }
15399 
15400 static void xf86driQueryVersion(tvbuff_t *tvb _U_, packet_info *pinfo _U_, int *offsetp _U_, proto_tree *t _U_, guint byte_order _U_, int length _U_)
15401 {
15402 }
15403 static void xf86driQueryVersion_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
15404 {
15405  int sequence_number;
15406 
15407  col_append_fstr(pinfo->cinfo, COL_INFO, "-QueryVersion");
15408 
15409  REPLY(reply);
15410  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
15411  *offsetp += 1;
15412  sequence_number = tvb_get_guint16(tvb, *offsetp, byte_order);
15413  proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
15414  "%d (xf86dri-QueryVersion)", sequence_number);
15415  *offsetp += 2;
15416  proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
15417  *offsetp += 4;
15418  proto_tree_add_item(t, hf_x11_xf86dri_QueryVersion_reply_dri_major_version, tvb, *offsetp, 2, byte_order);
15419  *offsetp += 2;
15420  proto_tree_add_item(t, hf_x11_xf86dri_QueryVersion_reply_dri_minor_version, tvb, *offsetp, 2, byte_order);
15421  *offsetp += 2;
15422  proto_tree_add_item(t, hf_x11_xf86dri_QueryVersion_reply_dri_minor_patch, tvb, *offsetp, 4, byte_order);
15423  *offsetp += 4;
15424 }
15425 
15426 static void xf86driQueryDirectRenderingCapable(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
15427 {
15428  proto_tree_add_item(t, hf_x11_xf86dri_QueryDirectRenderingCapable_screen, tvb, *offsetp, 4, byte_order);
15429  *offsetp += 4;
15430 }
15431 static void xf86driQueryDirectRenderingCapable_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
15432 {
15433  int sequence_number;
15434 
15435  col_append_fstr(pinfo->cinfo, COL_INFO, "-QueryDirectRenderingCapable");
15436 
15437  REPLY(reply);
15438  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
15439  *offsetp += 1;
15440  sequence_number = tvb_get_guint16(tvb, *offsetp, byte_order);
15441  proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
15442  "%d (xf86dri-QueryDirectRenderingCapable)", sequence_number);
15443  *offsetp += 2;
15444  proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
15445  *offsetp += 4;
15446  proto_tree_add_item(t, hf_x11_xf86dri_QueryDirectRenderingCapable_reply_is_capable, tvb, *offsetp, 1, byte_order);
15447  *offsetp += 1;
15448 }
15449 
15450 static void xf86driOpenConnection(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
15451 {
15452  proto_tree_add_item(t, hf_x11_xf86dri_OpenConnection_screen, tvb, *offsetp, 4, byte_order);
15453  *offsetp += 4;
15454 }
15455 static void xf86driOpenConnection_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
15456 {
15457  int sequence_number;
15458  int f_bus_id_len;
15459 
15460  col_append_fstr(pinfo->cinfo, COL_INFO, "-OpenConnection");
15461 
15462  REPLY(reply);
15463  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
15464  *offsetp += 1;
15465  sequence_number = tvb_get_guint16(tvb, *offsetp, byte_order);
15466  proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
15467  "%d (xf86dri-OpenConnection)", sequence_number);
15468  *offsetp += 2;
15469  proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
15470  *offsetp += 4;
15471  proto_tree_add_item(t, hf_x11_xf86dri_OpenConnection_reply_sarea_handle_low, tvb, *offsetp, 4, byte_order);
15472  *offsetp += 4;
15473  proto_tree_add_item(t, hf_x11_xf86dri_OpenConnection_reply_sarea_handle_high, tvb, *offsetp, 4, byte_order);
15474  *offsetp += 4;
15475  f_bus_id_len = tvb_get_guint32(tvb, *offsetp, byte_order);
15476  proto_tree_add_item(t, hf_x11_xf86dri_OpenConnection_reply_bus_id_len, tvb, *offsetp, 4, byte_order);
15477  *offsetp += 4;
15478  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 12, ENC_NA);
15479  *offsetp += 12;
15480  listOfByte(tvb, offsetp, t, hf_x11_xf86dri_OpenConnection_reply_bus_id, f_bus_id_len, byte_order);
15481 }
15482 
15483 static void xf86driCloseConnection(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
15484 {
15485  proto_tree_add_item(t, hf_x11_xf86dri_CloseConnection_screen, tvb, *offsetp, 4, byte_order);
15486  *offsetp += 4;
15487 }
15488 
15489 static void xf86driGetClientDriverName(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
15490 {
15491  proto_tree_add_item(t, hf_x11_xf86dri_GetClientDriverName_screen, tvb, *offsetp, 4, byte_order);
15492  *offsetp += 4;
15493 }
15494 static void xf86driGetClientDriverName_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
15495 {
15496  int sequence_number;
15497  int f_client_driver_name_len;
15498 
15499  col_append_fstr(pinfo->cinfo, COL_INFO, "-GetClientDriverName");
15500 
15501  REPLY(reply);
15502  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
15503  *offsetp += 1;
15504  sequence_number = tvb_get_guint16(tvb, *offsetp, byte_order);
15505  proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
15506  "%d (xf86dri-GetClientDriverName)", sequence_number);
15507  *offsetp += 2;
15508  proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
15509  *offsetp += 4;
15510  proto_tree_add_item(t, hf_x11_xf86dri_GetClientDriverName_reply_client_driver_major_version, tvb, *offsetp, 4, byte_order);
15511  *offsetp += 4;
15512  proto_tree_add_item(t, hf_x11_xf86dri_GetClientDriverName_reply_client_driver_minor_version, tvb, *offsetp, 4, byte_order);
15513  *offsetp += 4;
15514  proto_tree_add_item(t, hf_x11_xf86dri_GetClientDriverName_reply_client_driver_patch_version, tvb, *offsetp, 4, byte_order);
15515  *offsetp += 4;
15516  f_client_driver_name_len = tvb_get_guint32(tvb, *offsetp, byte_order);
15517  proto_tree_add_item(t, hf_x11_xf86dri_GetClientDriverName_reply_client_driver_name_len, tvb, *offsetp, 4, byte_order);
15518  *offsetp += 4;
15519  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 8, ENC_NA);
15520  *offsetp += 8;
15521  listOfByte(tvb, offsetp, t, hf_x11_xf86dri_GetClientDriverName_reply_client_driver_name, f_client_driver_name_len, byte_order);
15522 }
15523 
15524 static void xf86driCreateContext(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
15525 {
15526  proto_tree_add_item(t, hf_x11_xf86dri_CreateContext_screen, tvb, *offsetp, 4, byte_order);
15527  *offsetp += 4;
15528  proto_tree_add_item(t, hf_x11_xf86dri_CreateContext_visual, tvb, *offsetp, 4, byte_order);
15529  *offsetp += 4;
15530  proto_tree_add_item(t, hf_x11_xf86dri_CreateContext_context, tvb, *offsetp, 4, byte_order);
15531  *offsetp += 4;
15532 }
15533 static void xf86driCreateContext_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
15534 {
15535  int sequence_number;
15536 
15537  col_append_fstr(pinfo->cinfo, COL_INFO, "-CreateContext");
15538 
15539  REPLY(reply);
15540  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
15541  *offsetp += 1;
15542  sequence_number = tvb_get_guint16(tvb, *offsetp, byte_order);
15543  proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
15544  "%d (xf86dri-CreateContext)", sequence_number);
15545  *offsetp += 2;
15546  proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
15547  *offsetp += 4;
15548  proto_tree_add_item(t, hf_x11_xf86dri_CreateContext_reply_hw_context, tvb, *offsetp, 4, byte_order);
15549  *offsetp += 4;
15550 }
15551 
15552 static void xf86driDestroyContext(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
15553 {
15554  proto_tree_add_item(t, hf_x11_xf86dri_DestroyContext_screen, tvb, *offsetp, 4, byte_order);
15555  *offsetp += 4;
15556  proto_tree_add_item(t, hf_x11_xf86dri_DestroyContext_context, tvb, *offsetp, 4, byte_order);
15557  *offsetp += 4;
15558 }
15559 
15560 static void xf86driCreateDrawable(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
15561 {
15562  proto_tree_add_item(t, hf_x11_xf86dri_CreateDrawable_screen, tvb, *offsetp, 4, byte_order);
15563  *offsetp += 4;
15564  proto_tree_add_item(t, hf_x11_xf86dri_CreateDrawable_drawable, tvb, *offsetp, 4, byte_order);
15565  *offsetp += 4;
15566 }
15567 static void xf86driCreateDrawable_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
15568 {
15569  int sequence_number;
15570 
15571  col_append_fstr(pinfo->cinfo, COL_INFO, "-CreateDrawable");
15572 
15573  REPLY(reply);
15574  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
15575  *offsetp += 1;
15576  sequence_number = tvb_get_guint16(tvb, *offsetp, byte_order);
15577  proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
15578  "%d (xf86dri-CreateDrawable)", sequence_number);
15579  *offsetp += 2;
15580  proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
15581  *offsetp += 4;
15582  proto_tree_add_item(t, hf_x11_xf86dri_CreateDrawable_reply_hw_drawable_handle, tvb, *offsetp, 4, byte_order);
15583  *offsetp += 4;
15584 }
15585 
15586 static void xf86driDestroyDrawable(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
15587 {
15588  proto_tree_add_item(t, hf_x11_xf86dri_DestroyDrawable_screen, tvb, *offsetp, 4, byte_order);
15589  *offsetp += 4;
15590  proto_tree_add_item(t, hf_x11_xf86dri_DestroyDrawable_drawable, tvb, *offsetp, 4, byte_order);
15591  *offsetp += 4;
15592 }
15593 
15594 static void xf86driGetDrawableInfo(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
15595 {
15596  proto_tree_add_item(t, hf_x11_xf86dri_GetDrawableInfo_screen, tvb, *offsetp, 4, byte_order);
15597  *offsetp += 4;
15598  proto_tree_add_item(t, hf_x11_xf86dri_GetDrawableInfo_drawable, tvb, *offsetp, 4, byte_order);
15599  *offsetp += 4;
15600 }
15601 static void xf86driGetDrawableInfo_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
15602 {
15603  int sequence_number;
15604  int f_num_clip_rects;
15605  int f_num_back_clip_rects;
15606 
15607  col_append_fstr(pinfo->cinfo, COL_INFO, "-GetDrawableInfo");
15608 
15609  REPLY(reply);
15610  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
15611  *offsetp += 1;
15612  sequence_number = tvb_get_guint16(tvb, *offsetp, byte_order);
15613  proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
15614  "%d (xf86dri-GetDrawableInfo)", sequence_number);
15615  *offsetp += 2;
15616  proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
15617  *offsetp += 4;
15618  proto_tree_add_item(t, hf_x11_xf86dri_GetDrawableInfo_reply_drawable_table_index, tvb, *offsetp, 4, byte_order);
15619  *offsetp += 4;
15620  proto_tree_add_item(t, hf_x11_xf86dri_GetDrawableInfo_reply_drawable_table_stamp, tvb, *offsetp, 4, byte_order);
15621  *offsetp += 4;
15622  proto_tree_add_item(t, hf_x11_xf86dri_GetDrawableInfo_reply_drawable_origin_X, tvb, *offsetp, 2, byte_order);
15623  *offsetp += 2;
15624  proto_tree_add_item(t, hf_x11_xf86dri_GetDrawableInfo_reply_drawable_origin_Y, tvb, *offsetp, 2, byte_order);
15625  *offsetp += 2;
15626  proto_tree_add_item(t, hf_x11_xf86dri_GetDrawableInfo_reply_drawable_size_W, tvb, *offsetp, 2, byte_order);
15627  *offsetp += 2;
15628  proto_tree_add_item(t, hf_x11_xf86dri_GetDrawableInfo_reply_drawable_size_H, tvb, *offsetp, 2, byte_order);
15629  *offsetp += 2;
15630  f_num_clip_rects = tvb_get_guint32(tvb, *offsetp, byte_order);
15631  proto_tree_add_item(t, hf_x11_xf86dri_GetDrawableInfo_reply_num_clip_rects, tvb, *offsetp, 4, byte_order);
15632  *offsetp += 4;
15633  proto_tree_add_item(t, hf_x11_xf86dri_GetDrawableInfo_reply_back_x, tvb, *offsetp, 2, byte_order);
15634  *offsetp += 2;
15635  proto_tree_add_item(t, hf_x11_xf86dri_GetDrawableInfo_reply_back_y, tvb, *offsetp, 2, byte_order);
15636  *offsetp += 2;
15637  f_num_back_clip_rects = tvb_get_guint32(tvb, *offsetp, byte_order);
15638  proto_tree_add_item(t, hf_x11_xf86dri_GetDrawableInfo_reply_num_back_clip_rects, tvb, *offsetp, 4, byte_order);
15639  *offsetp += 4;
15640  struct_xf86dri_DrmClipRect(tvb, offsetp, t, byte_order, f_num_clip_rects);
15641  struct_xf86dri_DrmClipRect(tvb, offsetp, t, byte_order, f_num_back_clip_rects);
15642 }
15643 
15644 static void xf86driGetDeviceInfo(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
15645 {
15646  proto_tree_add_item(t, hf_x11_xf86dri_GetDeviceInfo_screen, tvb, *offsetp, 4, byte_order);
15647  *offsetp += 4;
15648 }
15649 static void xf86driGetDeviceInfo_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
15650 {
15651  int sequence_number;
15652  int f_device_private_size;
15653 
15654  col_append_fstr(pinfo->cinfo, COL_INFO, "-GetDeviceInfo");
15655 
15656  REPLY(reply);
15657  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
15658  *offsetp += 1;
15659  sequence_number = tvb_get_guint16(tvb, *offsetp, byte_order);
15660  proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
15661  "%d (xf86dri-GetDeviceInfo)", sequence_number);
15662  *offsetp += 2;
15663  proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
15664  *offsetp += 4;
15665  proto_tree_add_item(t, hf_x11_xf86dri_GetDeviceInfo_reply_framebuffer_handle_low, tvb, *offsetp, 4, byte_order);
15666  *offsetp += 4;
15667  proto_tree_add_item(t, hf_x11_xf86dri_GetDeviceInfo_reply_framebuffer_handle_high, tvb, *offsetp, 4, byte_order);
15668  *offsetp += 4;
15669  proto_tree_add_item(t, hf_x11_xf86dri_GetDeviceInfo_reply_framebuffer_origin_offset, tvb, *offsetp, 4, byte_order);
15670  *offsetp += 4;
15671  proto_tree_add_item(t, hf_x11_xf86dri_GetDeviceInfo_reply_framebuffer_size, tvb, *offsetp, 4, byte_order);
15672  *offsetp += 4;
15673  proto_tree_add_item(t, hf_x11_xf86dri_GetDeviceInfo_reply_framebuffer_stride, tvb, *offsetp, 4, byte_order);
15674  *offsetp += 4;
15675  f_device_private_size = tvb_get_guint32(tvb, *offsetp, byte_order);
15676  proto_tree_add_item(t, hf_x11_xf86dri_GetDeviceInfo_reply_device_private_size, tvb, *offsetp, 4, byte_order);
15677  *offsetp += 4;
15678  listOfCard32(tvb, offsetp, t, hf_x11_xf86dri_GetDeviceInfo_reply_device_private, hf_x11_xf86dri_GetDeviceInfo_reply_device_private_item, f_device_private_size, byte_order);
15679 }
15680 
15681 static void xf86driAuthConnection(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
15682 {
15683  proto_tree_add_item(t, hf_x11_xf86dri_AuthConnection_screen, tvb, *offsetp, 4, byte_order);
15684  *offsetp += 4;
15685  proto_tree_add_item(t, hf_x11_xf86dri_AuthConnection_magic, tvb, *offsetp, 4, byte_order);
15686  *offsetp += 4;
15687 }
15688 static void xf86driAuthConnection_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
15689 {
15690  int sequence_number;
15691 
15692  col_append_fstr(pinfo->cinfo, COL_INFO, "-AuthConnection");
15693 
15694  REPLY(reply);
15695  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
15696  *offsetp += 1;
15697  sequence_number = tvb_get_guint16(tvb, *offsetp, byte_order);
15698  proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
15699  "%d (xf86dri-AuthConnection)", sequence_number);
15700  *offsetp += 2;
15701  proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
15702  *offsetp += 4;
15703  proto_tree_add_item(t, hf_x11_xf86dri_AuthConnection_reply_authenticated, tvb, *offsetp, 4, byte_order);
15704  *offsetp += 4;
15705 }
15706 static const value_string xf86dri_extension_minor[] = {
15707  { 0, "QueryVersion" },
15708  { 1, "QueryDirectRenderingCapable" },
15709  { 2, "OpenConnection" },
15710  { 3, "CloseConnection" },
15711  { 4, "GetClientDriverName" },
15712  { 5, "CreateContext" },
15713  { 6, "DestroyContext" },
15714  { 7, "CreateDrawable" },
15715  { 8, "DestroyDrawable" },
15716  { 9, "GetDrawableInfo" },
15717  { 10, "GetDeviceInfo" },
15718  { 11, "AuthConnection" },
15719  { 0, NULL }
15720 };
15721 const x11_event_info xf86dri_events[] = {
15722  { NULL, NULL }
15723 };
15724 static x11_reply_info xf86dri_replies[] = {
15725  { 0, xf86driQueryVersion_Reply },
15726  { 1, xf86driQueryDirectRenderingCapable_Reply },
15727  { 2, xf86driOpenConnection_Reply },
15728  { 4, xf86driGetClientDriverName_Reply },
15729  { 5, xf86driCreateContext_Reply },
15730  { 7, xf86driCreateDrawable_Reply },
15731  { 9, xf86driGetDrawableInfo_Reply },
15732  { 10, xf86driGetDeviceInfo_Reply },
15733  { 11, xf86driAuthConnection_Reply },
15734  { 0, NULL }
15735 };
15736 
15737 static void dispatch_xf86dri(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
15738 {
15739  int minor, length;
15740  minor = CARD8(xf86dri_extension_minor);
15741  length = REQUEST_LENGTH();
15742 
15743  col_append_fstr(pinfo->cinfo, COL_INFO, "-%s",
15744  val_to_str(minor, xf86dri_extension_minor,
15745  "<Unknown opcode %d>"));
15746  switch (minor) {
15747  case 0:
15748  xf86driQueryVersion(tvb, pinfo, offsetp, t, byte_order, length);
15749  break;
15750  case 1:
15751  xf86driQueryDirectRenderingCapable(tvb, pinfo, offsetp, t, byte_order, length);
15752  break;
15753  case 2:
15754  xf86driOpenConnection(tvb, pinfo, offsetp, t, byte_order, length);
15755  break;
15756  case 3:
15757  xf86driCloseConnection(tvb, pinfo, offsetp, t, byte_order, length);
15758  break;
15759  case 4:
15760  xf86driGetClientDriverName(tvb, pinfo, offsetp, t, byte_order, length);
15761  break;
15762  case 5:
15763  xf86driCreateContext(tvb, pinfo, offsetp, t, byte_order, length);
15764  break;
15765  case 6:
15766  xf86driDestroyContext(tvb, pinfo, offsetp, t, byte_order, length);
15767  break;
15768  case 7:
15769  xf86driCreateDrawable(tvb, pinfo, offsetp, t, byte_order, length);
15770  break;
15771  case 8:
15772  xf86driDestroyDrawable(tvb, pinfo, offsetp, t, byte_order, length);
15773  break;
15774  case 9:
15775  xf86driGetDrawableInfo(tvb, pinfo, offsetp, t, byte_order, length);
15776  break;
15777  case 10:
15778  xf86driGetDeviceInfo(tvb, pinfo, offsetp, t, byte_order, length);
15779  break;
15780  case 11:
15781  xf86driAuthConnection(tvb, pinfo, offsetp, t, byte_order, length);
15782  break;
15783  /* No need for a default case here, since Unknown is printed above,
15784  and UNDECODED() is taken care of by dissect_x11_request */
15785  }
15786 }
15787 
15788 static void register_xf86dri(void)
15789 {
15790  set_handler("XFree86-DRI", dispatch_xf86dri, xf86dri_errors, xf86dri_events, NULL, xf86dri_replies);
15791 }
15792 
15793 static void struct_xf86vidmode_ModeInfo(tvbuff_t *tvb, int *offsetp, proto_tree *root, guint byte_order _U_, int count)
15794 {
15795  int i;
15796  for (i = 0; i < count; i++) {
15797  proto_item *item;
15798  proto_tree *t;
15799 
15800  item = proto_tree_add_item(root, hf_x11_struct_xf86vidmode_ModeInfo, tvb, *offsetp, 48, ENC_NA);
15801  t = proto_item_add_subtree(item, ett_x11_rectangle);
15802  proto_tree_add_item(t, hf_x11_struct_xf86vidmode_ModeInfo_dotclock, tvb, *offsetp, 4, byte_order);
15803  *offsetp += 4;
15804  proto_tree_add_item(t, hf_x11_struct_xf86vidmode_ModeInfo_hdisplay, tvb, *offsetp, 2, byte_order);
15805  *offsetp += 2;
15806  proto_tree_add_item(t, hf_x11_struct_xf86vidmode_ModeInfo_hsyncstart, tvb, *offsetp, 2, byte_order);
15807  *offsetp += 2;
15808  proto_tree_add_item(t, hf_x11_struct_xf86vidmode_ModeInfo_hsyncend, tvb, *offsetp, 2, byte_order);
15809  *offsetp += 2;
15810  proto_tree_add_item(t, hf_x11_struct_xf86vidmode_ModeInfo_htotal, tvb, *offsetp, 2, byte_order);
15811  *offsetp += 2;
15812  proto_tree_add_item(t, hf_x11_struct_xf86vidmode_ModeInfo_hskew, tvb, *offsetp, 4, byte_order);
15813  *offsetp += 4;
15814  proto_tree_add_item(t, hf_x11_struct_xf86vidmode_ModeInfo_vdisplay, tvb, *offsetp, 2, byte_order);
15815  *offsetp += 2;
15816  proto_tree_add_item(t, hf_x11_struct_xf86vidmode_ModeInfo_vsyncstart, tvb, *offsetp, 2, byte_order);
15817  *offsetp += 2;
15818  proto_tree_add_item(t, hf_x11_struct_xf86vidmode_ModeInfo_vsyncend, tvb, *offsetp, 2, byte_order);
15819  *offsetp += 2;
15820  proto_tree_add_item(t, hf_x11_struct_xf86vidmode_ModeInfo_vtotal, tvb, *offsetp, 2, byte_order);
15821  *offsetp += 2;
15822  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 4, ENC_NA);
15823  *offsetp += 4;
15824  {
15825  int* const flags_bits [] = {
15826  &hf_x11_struct_xf86vidmode_ModeInfo_flags_mask_Positive_HSync,
15827  &hf_x11_struct_xf86vidmode_ModeInfo_flags_mask_Negative_HSync,
15828  &hf_x11_struct_xf86vidmode_ModeInfo_flags_mask_Positive_VSync,
15829  &hf_x11_struct_xf86vidmode_ModeInfo_flags_mask_Negative_VSync,
15830  &hf_x11_struct_xf86vidmode_ModeInfo_flags_mask_Interlace,
15831  &hf_x11_struct_xf86vidmode_ModeInfo_flags_mask_Composite_Sync,
15832  &hf_x11_struct_xf86vidmode_ModeInfo_flags_mask_Positive_CSync,
15833  &hf_x11_struct_xf86vidmode_ModeInfo_flags_mask_Negative_CSync,
15834  &hf_x11_struct_xf86vidmode_ModeInfo_flags_mask_HSkew,
15835  &hf_x11_struct_xf86vidmode_ModeInfo_flags_mask_Broadcast,
15836  &hf_x11_struct_xf86vidmode_ModeInfo_flags_mask_Pixmux,
15837  &hf_x11_struct_xf86vidmode_ModeInfo_flags_mask_Double_Clock,
15838  &hf_x11_struct_xf86vidmode_ModeInfo_flags_mask_Half_Clock,
15839  NULL
15840  };
15841  proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_struct_xf86vidmode_ModeInfo_flags, ett_x11_rectangle, flags_bits, byte_order);
15842  }
15843  *offsetp += 4;
15844  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 12, ENC_NA);
15845  *offsetp += 12;
15846  proto_tree_add_item(t, hf_x11_struct_xf86vidmode_ModeInfo_privsize, tvb, *offsetp, 4, byte_order);
15847  *offsetp += 4;
15848  }
15849 }
15850 
15851 static void xf86vidmodeQueryVersion(tvbuff_t *tvb _U_, packet_info *pinfo _U_, int *offsetp _U_, proto_tree *t _U_, guint byte_order _U_, int length _U_)
15852 {
15853 }
15854 static void xf86vidmodeQueryVersion_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
15855 {
15856  int sequence_number;
15857 
15858  col_append_fstr(pinfo->cinfo, COL_INFO, "-QueryVersion");
15859 
15860  REPLY(reply);
15861  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
15862  *offsetp += 1;
15863  sequence_number = tvb_get_guint16(tvb, *offsetp, byte_order);
15864  proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
15865  "%d (xf86vidmode-QueryVersion)", sequence_number);
15866  *offsetp += 2;
15867  proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
15868  *offsetp += 4;
15869  proto_tree_add_item(t, hf_x11_xf86vidmode_QueryVersion_reply_major_version, tvb, *offsetp, 2, byte_order);
15870  *offsetp += 2;
15871  proto_tree_add_item(t, hf_x11_xf86vidmode_QueryVersion_reply_minor_version, tvb, *offsetp, 2, byte_order);
15872  *offsetp += 2;
15873 }
15874 
15875 static void xf86vidmodeGetModeLine(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
15876 {
15877  proto_tree_add_item(t, hf_x11_xf86vidmode_GetModeLine_screen, tvb, *offsetp, 2, byte_order);
15878  *offsetp += 2;
15879  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 2, ENC_NA);
15880  *offsetp += 2;
15881 }
15882 static void xf86vidmodeGetModeLine_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
15883 {
15884  int sequence_number;
15885  int f_privsize;
15886 
15887  col_append_fstr(pinfo->cinfo, COL_INFO, "-GetModeLine");
15888 
15889  REPLY(reply);
15890  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
15891  *offsetp += 1;
15892  sequence_number = tvb_get_guint16(tvb, *offsetp, byte_order);
15893  proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
15894  "%d (xf86vidmode-GetModeLine)", sequence_number);
15895  *offsetp += 2;
15896  proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
15897  *offsetp += 4;
15898  proto_tree_add_item(t, hf_x11_xf86vidmode_GetModeLine_reply_dotclock, tvb, *offsetp, 4, byte_order);
15899  *offsetp += 4;
15900  proto_tree_add_item(t, hf_x11_xf86vidmode_GetModeLine_reply_hdisplay, tvb, *offsetp, 2, byte_order);
15901  *offsetp += 2;
15902  proto_tree_add_item(t, hf_x11_xf86vidmode_GetModeLine_reply_hsyncstart, tvb, *offsetp, 2, byte_order);
15903  *offsetp += 2;
15904  proto_tree_add_item(t, hf_x11_xf86vidmode_GetModeLine_reply_hsyncend, tvb, *offsetp, 2, byte_order);
15905  *offsetp += 2;
15906  proto_tree_add_item(t, hf_x11_xf86vidmode_GetModeLine_reply_htotal, tvb, *offsetp, 2, byte_order);
15907  *offsetp += 2;
15908  proto_tree_add_item(t, hf_x11_xf86vidmode_GetModeLine_reply_hskew, tvb, *offsetp, 2, byte_order);
15909  *offsetp += 2;
15910  proto_tree_add_item(t, hf_x11_xf86vidmode_GetModeLine_reply_vdisplay, tvb, *offsetp, 2, byte_order);
15911  *offsetp += 2;
15912  proto_tree_add_item(t, hf_x11_xf86vidmode_GetModeLine_reply_vsyncstart, tvb, *offsetp, 2, byte_order);
15913  *offsetp += 2;
15914  proto_tree_add_item(t, hf_x11_xf86vidmode_GetModeLine_reply_vsyncend, tvb, *offsetp, 2, byte_order);
15915  *offsetp += 2;
15916  proto_tree_add_item(t, hf_x11_xf86vidmode_GetModeLine_reply_vtotal, tvb, *offsetp, 2, byte_order);
15917  *offsetp += 2;
15918  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 2, ENC_NA);
15919  *offsetp += 2;
15920  {
15921  int* const flags_bits [] = {
15922  &hf_x11_xf86vidmode_GetModeLine_reply_flags_mask_Positive_HSync,
15923  &hf_x11_xf86vidmode_GetModeLine_reply_flags_mask_Negative_HSync,
15924  &hf_x11_xf86vidmode_GetModeLine_reply_flags_mask_Positive_VSync,
15925  &hf_x11_xf86vidmode_GetModeLine_reply_flags_mask_Negative_VSync,
15926  &hf_x11_xf86vidmode_GetModeLine_reply_flags_mask_Interlace,
15927  &hf_x11_xf86vidmode_GetModeLine_reply_flags_mask_Composite_Sync,
15928  &hf_x11_xf86vidmode_GetModeLine_reply_flags_mask_Positive_CSync,
15929  &hf_x11_xf86vidmode_GetModeLine_reply_flags_mask_Negative_CSync,
15930  &hf_x11_xf86vidmode_GetModeLine_reply_flags_mask_HSkew,
15931  &hf_x11_xf86vidmode_GetModeLine_reply_flags_mask_Broadcast,
15932  &hf_x11_xf86vidmode_GetModeLine_reply_flags_mask_Pixmux,
15933  &hf_x11_xf86vidmode_GetModeLine_reply_flags_mask_Double_Clock,
15934  &hf_x11_xf86vidmode_GetModeLine_reply_flags_mask_Half_Clock,
15935  NULL
15936  };
15937  proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_xf86vidmode_GetModeLine_reply_flags, ett_x11_rectangle, flags_bits, byte_order);
15938  }
15939  *offsetp += 4;
15940  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 12, ENC_NA);
15941  *offsetp += 12;
15942  f_privsize = tvb_get_guint32(tvb, *offsetp, byte_order);
15943  proto_tree_add_item(t, hf_x11_xf86vidmode_GetModeLine_reply_privsize, tvb, *offsetp, 4, byte_order);
15944  *offsetp += 4;
15945  listOfByte(tvb, offsetp, t, hf_x11_xf86vidmode_GetModeLine_reply_private, f_privsize, byte_order);
15946 }
15947 
15948 static void xf86vidmodeModModeLine(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
15949 {
15950  int f_privsize;
15951  proto_tree_add_item(t, hf_x11_xf86vidmode_ModModeLine_screen, tvb, *offsetp, 4, byte_order);
15952  *offsetp += 4;
15953  proto_tree_add_item(t, hf_x11_xf86vidmode_ModModeLine_hdisplay, tvb, *offsetp, 2, byte_order);
15954  *offsetp += 2;
15955  proto_tree_add_item(t, hf_x11_xf86vidmode_ModModeLine_hsyncstart, tvb, *offsetp, 2, byte_order);
15956  *offsetp += 2;
15957  proto_tree_add_item(t, hf_x11_xf86vidmode_ModModeLine_hsyncend, tvb, *offsetp, 2, byte_order);
15958  *offsetp += 2;
15959  proto_tree_add_item(t, hf_x11_xf86vidmode_ModModeLine_htotal, tvb, *offsetp, 2, byte_order);
15960  *offsetp += 2;
15961  proto_tree_add_item(t, hf_x11_xf86vidmode_ModModeLine_hskew, tvb, *offsetp, 2, byte_order);
15962  *offsetp += 2;
15963  proto_tree_add_item(t, hf_x11_xf86vidmode_ModModeLine_vdisplay, tvb, *offsetp, 2, byte_order);
15964  *offsetp += 2;
15965  proto_tree_add_item(t, hf_x11_xf86vidmode_ModModeLine_vsyncstart, tvb, *offsetp, 2, byte_order);
15966  *offsetp += 2;
15967  proto_tree_add_item(t, hf_x11_xf86vidmode_ModModeLine_vsyncend, tvb, *offsetp, 2, byte_order);
15968  *offsetp += 2;
15969  proto_tree_add_item(t, hf_x11_xf86vidmode_ModModeLine_vtotal, tvb, *offsetp, 2, byte_order);
15970  *offsetp += 2;
15971  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 2, ENC_NA);
15972  *offsetp += 2;
15973  {
15974  int* const flags_bits [] = {
15975  &hf_x11_xf86vidmode_ModModeLine_flags_mask_Positive_HSync,
15976  &hf_x11_xf86vidmode_ModModeLine_flags_mask_Negative_HSync,
15977  &hf_x11_xf86vidmode_ModModeLine_flags_mask_Positive_VSync,
15978  &hf_x11_xf86vidmode_ModModeLine_flags_mask_Negative_VSync,
15979  &hf_x11_xf86vidmode_ModModeLine_flags_mask_Interlace,
15980  &hf_x11_xf86vidmode_ModModeLine_flags_mask_Composite_Sync,
15981  &hf_x11_xf86vidmode_ModModeLine_flags_mask_Positive_CSync,
15982  &hf_x11_xf86vidmode_ModModeLine_flags_mask_Negative_CSync,
15983  &hf_x11_xf86vidmode_ModModeLine_flags_mask_HSkew,
15984  &hf_x11_xf86vidmode_ModModeLine_flags_mask_Broadcast,
15985  &hf_x11_xf86vidmode_ModModeLine_flags_mask_Pixmux,
15986  &hf_x11_xf86vidmode_ModModeLine_flags_mask_Double_Clock,
15987  &hf_x11_xf86vidmode_ModModeLine_flags_mask_Half_Clock,
15988  NULL
15989  };
15990  proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_xf86vidmode_ModModeLine_flags, ett_x11_rectangle, flags_bits, byte_order);
15991  }
15992  *offsetp += 4;
15993  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 12, ENC_NA);
15994  *offsetp += 12;
15995  f_privsize = tvb_get_guint32(tvb, *offsetp, byte_order);
15996  proto_tree_add_item(t, hf_x11_xf86vidmode_ModModeLine_privsize, tvb, *offsetp, 4, byte_order);
15997  *offsetp += 4;
15998  listOfByte(tvb, offsetp, t, hf_x11_xf86vidmode_ModModeLine_private, f_privsize, byte_order);
15999  length -= f_privsize * 1;
16000 }
16001 
16002 static void xf86vidmodeSwitchMode(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
16003 {
16004  proto_tree_add_item(t, hf_x11_xf86vidmode_SwitchMode_screen, tvb, *offsetp, 2, byte_order);
16005  *offsetp += 2;
16006  proto_tree_add_item(t, hf_x11_xf86vidmode_SwitchMode_zoom, tvb, *offsetp, 2, byte_order);
16007  *offsetp += 2;
16008 }
16009 
16010 static void xf86vidmodeGetMonitor(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
16011 {
16012  proto_tree_add_item(t, hf_x11_xf86vidmode_GetMonitor_screen, tvb, *offsetp, 2, byte_order);
16013  *offsetp += 2;
16014  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 2, ENC_NA);
16015  *offsetp += 2;
16016 }
16017 static void xf86vidmodeGetMonitor_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
16018 {
16019  int sequence_number;
16020  int f_vendor_length;
16021  int f_model_length;
16022  int f_num_hsync;
16023  int f_num_vsync;
16024 
16025  col_append_fstr(pinfo->cinfo, COL_INFO, "-GetMonitor");
16026 
16027  REPLY(reply);
16028  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
16029  *offsetp += 1;
16030  sequence_number = tvb_get_guint16(tvb, *offsetp, byte_order);
16031  proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
16032  "%d (xf86vidmode-GetMonitor)", sequence_number);
16033  *offsetp += 2;
16034  proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
16035  *offsetp += 4;
16036  f_vendor_length = tvb_get_guint8(tvb, *offsetp);
16037  proto_tree_add_item(t, hf_x11_xf86vidmode_GetMonitor_reply_vendor_length, tvb, *offsetp, 1, byte_order);
16038  *offsetp += 1;
16039  f_model_length = tvb_get_guint8(tvb, *offsetp);
16040  proto_tree_add_item(t, hf_x11_xf86vidmode_GetMonitor_reply_model_length, tvb, *offsetp, 1, byte_order);
16041  *offsetp += 1;
16042  f_num_hsync = tvb_get_guint8(tvb, *offsetp);
16043  proto_tree_add_item(t, hf_x11_xf86vidmode_GetMonitor_reply_num_hsync, tvb, *offsetp, 1, byte_order);
16044  *offsetp += 1;
16045  f_num_vsync = tvb_get_guint8(tvb, *offsetp);
16046  proto_tree_add_item(t, hf_x11_xf86vidmode_GetMonitor_reply_num_vsync, tvb, *offsetp, 1, byte_order);
16047  *offsetp += 1;
16048  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 20, ENC_NA);
16049  *offsetp += 20;
16050  listOfCard32(tvb, offsetp, t, hf_x11_xf86vidmode_GetMonitor_reply_hsync, hf_x11_xf86vidmode_GetMonitor_reply_hsync_item, f_num_hsync, byte_order);
16051  listOfCard32(tvb, offsetp, t, hf_x11_xf86vidmode_GetMonitor_reply_vsync, hf_x11_xf86vidmode_GetMonitor_reply_vsync_item, f_num_vsync, byte_order);
16052  listOfByte(tvb, offsetp, t, hf_x11_xf86vidmode_GetMonitor_reply_vendor, f_vendor_length, byte_order);
16053  listOfByte(tvb, offsetp, t, hf_x11_xf86vidmode_GetMonitor_reply_alignment_pad, (((f_vendor_length + 3) & (~3)) - f_vendor_length), byte_order);
16054  listOfByte(tvb, offsetp, t, hf_x11_xf86vidmode_GetMonitor_reply_model, f_model_length, byte_order);
16055 }
16056 
16057 static void xf86vidmodeLockModeSwitch(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
16058 {
16059  proto_tree_add_item(t, hf_x11_xf86vidmode_LockModeSwitch_screen, tvb, *offsetp, 2, byte_order);
16060  *offsetp += 2;
16061  proto_tree_add_item(t, hf_x11_xf86vidmode_LockModeSwitch_lock, tvb, *offsetp, 2, byte_order);
16062  *offsetp += 2;
16063 }
16064 
16065 static void xf86vidmodeGetAllModeLines(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
16066 {
16067  proto_tree_add_item(t, hf_x11_xf86vidmode_GetAllModeLines_screen, tvb, *offsetp, 2, byte_order);
16068  *offsetp += 2;
16069  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 2, ENC_NA);
16070  *offsetp += 2;
16071 }
16072 static void xf86vidmodeGetAllModeLines_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
16073 {
16074  int sequence_number;
16075  int f_modecount;
16076 
16077  col_append_fstr(pinfo->cinfo, COL_INFO, "-GetAllModeLines");
16078 
16079  REPLY(reply);
16080  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
16081  *offsetp += 1;
16082  sequence_number = tvb_get_guint16(tvb, *offsetp, byte_order);
16083  proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
16084  "%d (xf86vidmode-GetAllModeLines)", sequence_number);
16085  *offsetp += 2;
16086  proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
16087  *offsetp += 4;
16088  f_modecount = tvb_get_guint32(tvb, *offsetp, byte_order);
16089  proto_tree_add_item(t, hf_x11_xf86vidmode_GetAllModeLines_reply_modecount, tvb, *offsetp, 4, byte_order);
16090  *offsetp += 4;
16091  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 20, ENC_NA);
16092  *offsetp += 20;
16093  struct_xf86vidmode_ModeInfo(tvb, offsetp, t, byte_order, f_modecount);
16094 }
16095 
16096 static void xf86vidmodeAddModeLine(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
16097 {
16098  int f_privsize;
16099  proto_tree_add_item(t, hf_x11_xf86vidmode_AddModeLine_screen, tvb, *offsetp, 4, byte_order);
16100  *offsetp += 4;
16101  proto_tree_add_item(t, hf_x11_xf86vidmode_AddModeLine_dotclock, tvb, *offsetp, 4, byte_order);
16102  *offsetp += 4;
16103  proto_tree_add_item(t, hf_x11_xf86vidmode_AddModeLine_hdisplay, tvb, *offsetp, 2, byte_order);
16104  *offsetp += 2;
16105  proto_tree_add_item(t, hf_x11_xf86vidmode_AddModeLine_hsyncstart, tvb, *offsetp, 2, byte_order);
16106  *offsetp += 2;
16107  proto_tree_add_item(t, hf_x11_xf86vidmode_AddModeLine_hsyncend, tvb, *offsetp, 2, byte_order);
16108  *offsetp += 2;
16109  proto_tree_add_item(t, hf_x11_xf86vidmode_AddModeLine_htotal, tvb, *offsetp, 2, byte_order);
16110  *offsetp += 2;
16111  proto_tree_add_item(t, hf_x11_xf86vidmode_AddModeLine_hskew, tvb, *offsetp, 2, byte_order);
16112  *offsetp += 2;
16113  proto_tree_add_item(t, hf_x11_xf86vidmode_AddModeLine_vdisplay, tvb, *offsetp, 2, byte_order);
16114  *offsetp += 2;
16115  proto_tree_add_item(t, hf_x11_xf86vidmode_AddModeLine_vsyncstart, tvb, *offsetp, 2, byte_order);
16116  *offsetp += 2;
16117  proto_tree_add_item(t, hf_x11_xf86vidmode_AddModeLine_vsyncend, tvb, *offsetp, 2, byte_order);
16118  *offsetp += 2;
16119  proto_tree_add_item(t, hf_x11_xf86vidmode_AddModeLine_vtotal, tvb, *offsetp, 2, byte_order);
16120  *offsetp += 2;
16121  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 2, ENC_NA);
16122  *offsetp += 2;
16123  {
16124  int* const flags_bits [] = {
16125  &hf_x11_xf86vidmode_AddModeLine_flags_mask_Positive_HSync,
16126  &hf_x11_xf86vidmode_AddModeLine_flags_mask_Negative_HSync,
16127  &hf_x11_xf86vidmode_AddModeLine_flags_mask_Positive_VSync,
16128  &hf_x11_xf86vidmode_AddModeLine_flags_mask_Negative_VSync,
16129  &hf_x11_xf86vidmode_AddModeLine_flags_mask_Interlace,
16130  &hf_x11_xf86vidmode_AddModeLine_flags_mask_Composite_Sync,
16131  &hf_x11_xf86vidmode_AddModeLine_flags_mask_Positive_CSync,
16132  &hf_x11_xf86vidmode_AddModeLine_flags_mask_Negative_CSync,
16133  &hf_x11_xf86vidmode_AddModeLine_flags_mask_HSkew,
16134  &hf_x11_xf86vidmode_AddModeLine_flags_mask_Broadcast,
16135  &hf_x11_xf86vidmode_AddModeLine_flags_mask_Pixmux,
16136  &hf_x11_xf86vidmode_AddModeLine_flags_mask_Double_Clock,
16137  &hf_x11_xf86vidmode_AddModeLine_flags_mask_Half_Clock,
16138  NULL
16139  };
16140  proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_xf86vidmode_AddModeLine_flags, ett_x11_rectangle, flags_bits, byte_order);
16141  }
16142  *offsetp += 4;
16143  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 12, ENC_NA);
16144  *offsetp += 12;
16145  f_privsize = tvb_get_guint32(tvb, *offsetp, byte_order);
16146  proto_tree_add_item(t, hf_x11_xf86vidmode_AddModeLine_privsize, tvb, *offsetp, 4, byte_order);
16147  *offsetp += 4;
16148  proto_tree_add_item(t, hf_x11_xf86vidmode_AddModeLine_after_dotclock, tvb, *offsetp, 4, byte_order);
16149  *offsetp += 4;
16150  proto_tree_add_item(t, hf_x11_xf86vidmode_AddModeLine_after_hdisplay, tvb, *offsetp, 2, byte_order);
16151  *offsetp += 2;
16152  proto_tree_add_item(t, hf_x11_xf86vidmode_AddModeLine_after_hsyncstart, tvb, *offsetp, 2, byte_order);
16153  *offsetp += 2;
16154  proto_tree_add_item(t, hf_x11_xf86vidmode_AddModeLine_after_hsyncend, tvb, *offsetp, 2, byte_order);
16155  *offsetp += 2;
16156  proto_tree_add_item(t, hf_x11_xf86vidmode_AddModeLine_after_htotal, tvb, *offsetp, 2, byte_order);
16157  *offsetp += 2;
16158  proto_tree_add_item(t, hf_x11_xf86vidmode_AddModeLine_after_hskew, tvb, *offsetp, 2, byte_order);
16159  *offsetp += 2;
16160  proto_tree_add_item(t, hf_x11_xf86vidmode_AddModeLine_after_vdisplay, tvb, *offsetp, 2, byte_order);
16161  *offsetp += 2;
16162  proto_tree_add_item(t, hf_x11_xf86vidmode_AddModeLine_after_vsyncstart, tvb, *offsetp, 2, byte_order);
16163  *offsetp += 2;
16164  proto_tree_add_item(t, hf_x11_xf86vidmode_AddModeLine_after_vsyncend, tvb, *offsetp, 2, byte_order);
16165  *offsetp += 2;
16166  proto_tree_add_item(t, hf_x11_xf86vidmode_AddModeLine_after_vtotal, tvb, *offsetp, 2, byte_order);
16167  *offsetp += 2;
16168  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 2, ENC_NA);
16169  *offsetp += 2;
16170  {
16171  int* const after_flags_bits [] = {
16172  &hf_x11_xf86vidmode_AddModeLine_after_flags_mask_Positive_HSync,
16173  &hf_x11_xf86vidmode_AddModeLine_after_flags_mask_Negative_HSync,
16174  &hf_x11_xf86vidmode_AddModeLine_after_flags_mask_Positive_VSync,
16175  &hf_x11_xf86vidmode_AddModeLine_after_flags_mask_Negative_VSync,
16176  &hf_x11_xf86vidmode_AddModeLine_after_flags_mask_Interlace,
16177  &hf_x11_xf86vidmode_AddModeLine_after_flags_mask_Composite_Sync,
16178  &hf_x11_xf86vidmode_AddModeLine_after_flags_mask_Positive_CSync,
16179  &hf_x11_xf86vidmode_AddModeLine_after_flags_mask_Negative_CSync,
16180  &hf_x11_xf86vidmode_AddModeLine_after_flags_mask_HSkew,
16181  &hf_x11_xf86vidmode_AddModeLine_after_flags_mask_Broadcast,
16182  &hf_x11_xf86vidmode_AddModeLine_after_flags_mask_Pixmux,
16183  &hf_x11_xf86vidmode_AddModeLine_after_flags_mask_Double_Clock,
16184  &hf_x11_xf86vidmode_AddModeLine_after_flags_mask_Half_Clock,
16185  NULL
16186  };
16187  proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_xf86vidmode_AddModeLine_after_flags, ett_x11_rectangle, after_flags_bits, byte_order);
16188  }
16189  *offsetp += 4;
16190  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 12, ENC_NA);
16191  *offsetp += 12;
16192  listOfByte(tvb, offsetp, t, hf_x11_xf86vidmode_AddModeLine_private, f_privsize, byte_order);
16193  length -= f_privsize * 1;
16194 }
16195 
16196 static void xf86vidmodeDeleteModeLine(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
16197 {
16198  int f_privsize;
16199  proto_tree_add_item(t, hf_x11_xf86vidmode_DeleteModeLine_screen, tvb, *offsetp, 4, byte_order);
16200  *offsetp += 4;
16201  proto_tree_add_item(t, hf_x11_xf86vidmode_DeleteModeLine_dotclock, tvb, *offsetp, 4, byte_order);
16202  *offsetp += 4;
16203  proto_tree_add_item(t, hf_x11_xf86vidmode_DeleteModeLine_hdisplay, tvb, *offsetp, 2, byte_order);
16204  *offsetp += 2;
16205  proto_tree_add_item(t, hf_x11_xf86vidmode_DeleteModeLine_hsyncstart, tvb, *offsetp, 2, byte_order);
16206  *offsetp += 2;
16207  proto_tree_add_item(t, hf_x11_xf86vidmode_DeleteModeLine_hsyncend, tvb, *offsetp, 2, byte_order);
16208  *offsetp += 2;
16209  proto_tree_add_item(t, hf_x11_xf86vidmode_DeleteModeLine_htotal, tvb, *offsetp, 2, byte_order);
16210  *offsetp += 2;
16211  proto_tree_add_item(t, hf_x11_xf86vidmode_DeleteModeLine_hskew, tvb, *offsetp, 2, byte_order);
16212  *offsetp += 2;
16213  proto_tree_add_item(t, hf_x11_xf86vidmode_DeleteModeLine_vdisplay, tvb, *offsetp, 2, byte_order);
16214  *offsetp += 2;
16215  proto_tree_add_item(t, hf_x11_xf86vidmode_DeleteModeLine_vsyncstart, tvb, *offsetp, 2, byte_order);
16216  *offsetp += 2;
16217  proto_tree_add_item(t, hf_x11_xf86vidmode_DeleteModeLine_vsyncend, tvb, *offsetp, 2, byte_order);
16218  *offsetp += 2;
16219  proto_tree_add_item(t, hf_x11_xf86vidmode_DeleteModeLine_vtotal, tvb, *offsetp, 2, byte_order);
16220  *offsetp += 2;
16221  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 2, ENC_NA);
16222  *offsetp += 2;
16223  {
16224  int* const flags_bits [] = {
16225  &hf_x11_xf86vidmode_DeleteModeLine_flags_mask_Positive_HSync,
16226  &hf_x11_xf86vidmode_DeleteModeLine_flags_mask_Negative_HSync,
16227  &hf_x11_xf86vidmode_DeleteModeLine_flags_mask_Positive_VSync,
16228  &hf_x11_xf86vidmode_DeleteModeLine_flags_mask_Negative_VSync,
16229  &hf_x11_xf86vidmode_DeleteModeLine_flags_mask_Interlace,
16230  &hf_x11_xf86vidmode_DeleteModeLine_flags_mask_Composite_Sync,
16231  &hf_x11_xf86vidmode_DeleteModeLine_flags_mask_Positive_CSync,
16232  &hf_x11_xf86vidmode_DeleteModeLine_flags_mask_Negative_CSync,
16233  &hf_x11_xf86vidmode_DeleteModeLine_flags_mask_HSkew,
16234  &hf_x11_xf86vidmode_DeleteModeLine_flags_mask_Broadcast,
16235  &hf_x11_xf86vidmode_DeleteModeLine_flags_mask_Pixmux,
16236  &hf_x11_xf86vidmode_DeleteModeLine_flags_mask_Double_Clock,
16237  &hf_x11_xf86vidmode_DeleteModeLine_flags_mask_Half_Clock,
16238  NULL
16239  };
16240  proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_xf86vidmode_DeleteModeLine_flags, ett_x11_rectangle, flags_bits, byte_order);
16241  }
16242  *offsetp += 4;
16243  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 12, ENC_NA);
16244  *offsetp += 12;
16245  f_privsize = tvb_get_guint32(tvb, *offsetp, byte_order);
16246  proto_tree_add_item(t, hf_x11_xf86vidmode_DeleteModeLine_privsize, tvb, *offsetp, 4, byte_order);
16247  *offsetp += 4;
16248  listOfByte(tvb, offsetp, t, hf_x11_xf86vidmode_DeleteModeLine_private, f_privsize, byte_order);
16249  length -= f_privsize * 1;
16250 }
16251 
16252 static void xf86vidmodeValidateModeLine(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
16253 {
16254  int f_privsize;
16255  proto_tree_add_item(t, hf_x11_xf86vidmode_ValidateModeLine_screen, tvb, *offsetp, 4, byte_order);
16256  *offsetp += 4;
16257  proto_tree_add_item(t, hf_x11_xf86vidmode_ValidateModeLine_dotclock, tvb, *offsetp, 4, byte_order);
16258  *offsetp += 4;
16259  proto_tree_add_item(t, hf_x11_xf86vidmode_ValidateModeLine_hdisplay, tvb, *offsetp, 2, byte_order);
16260  *offsetp += 2;
16261  proto_tree_add_item(t, hf_x11_xf86vidmode_ValidateModeLine_hsyncstart, tvb, *offsetp, 2, byte_order);
16262  *offsetp += 2;
16263  proto_tree_add_item(t, hf_x11_xf86vidmode_ValidateModeLine_hsyncend, tvb, *offsetp, 2, byte_order);
16264  *offsetp += 2;
16265  proto_tree_add_item(t, hf_x11_xf86vidmode_ValidateModeLine_htotal, tvb, *offsetp, 2, byte_order);
16266  *offsetp += 2;
16267  proto_tree_add_item(t, hf_x11_xf86vidmode_ValidateModeLine_hskew, tvb, *offsetp, 2, byte_order);
16268  *offsetp += 2;
16269  proto_tree_add_item(t, hf_x11_xf86vidmode_ValidateModeLine_vdisplay, tvb, *offsetp, 2, byte_order);
16270  *offsetp += 2;
16271  proto_tree_add_item(t, hf_x11_xf86vidmode_ValidateModeLine_vsyncstart, tvb, *offsetp, 2, byte_order);
16272  *offsetp += 2;
16273  proto_tree_add_item(t, hf_x11_xf86vidmode_ValidateModeLine_vsyncend, tvb, *offsetp, 2, byte_order);
16274  *offsetp += 2;
16275  proto_tree_add_item(t, hf_x11_xf86vidmode_ValidateModeLine_vtotal, tvb, *offsetp, 2, byte_order);
16276  *offsetp += 2;
16277  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 2, ENC_NA);
16278  *offsetp += 2;
16279  {
16280  int* const flags_bits [] = {
16281  &hf_x11_xf86vidmode_ValidateModeLine_flags_mask_Positive_HSync,
16282  &hf_x11_xf86vidmode_ValidateModeLine_flags_mask_Negative_HSync,
16283  &hf_x11_xf86vidmode_ValidateModeLine_flags_mask_Positive_VSync,
16284  &hf_x11_xf86vidmode_ValidateModeLine_flags_mask_Negative_VSync,
16285  &hf_x11_xf86vidmode_ValidateModeLine_flags_mask_Interlace,
16286  &hf_x11_xf86vidmode_ValidateModeLine_flags_mask_Composite_Sync,
16287  &hf_x11_xf86vidmode_ValidateModeLine_flags_mask_Positive_CSync,
16288  &hf_x11_xf86vidmode_ValidateModeLine_flags_mask_Negative_CSync,
16289  &hf_x11_xf86vidmode_ValidateModeLine_flags_mask_HSkew,
16290  &hf_x11_xf86vidmode_ValidateModeLine_flags_mask_Broadcast,
16291  &hf_x11_xf86vidmode_ValidateModeLine_flags_mask_Pixmux,
16292  &hf_x11_xf86vidmode_ValidateModeLine_flags_mask_Double_Clock,
16293  &hf_x11_xf86vidmode_ValidateModeLine_flags_mask_Half_Clock,
16294  NULL
16295  };
16296  proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_xf86vidmode_ValidateModeLine_flags, ett_x11_rectangle, flags_bits, byte_order);
16297  }
16298  *offsetp += 4;
16299  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 12, ENC_NA);
16300  *offsetp += 12;
16301  f_privsize = tvb_get_guint32(tvb, *offsetp, byte_order);
16302  proto_tree_add_item(t, hf_x11_xf86vidmode_ValidateModeLine_privsize, tvb, *offsetp, 4, byte_order);
16303  *offsetp += 4;
16304  listOfByte(tvb, offsetp, t, hf_x11_xf86vidmode_ValidateModeLine_private, f_privsize, byte_order);
16305  length -= f_privsize * 1;
16306 }
16307 static void xf86vidmodeValidateModeLine_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
16308 {
16309  int sequence_number;
16310 
16311  col_append_fstr(pinfo->cinfo, COL_INFO, "-ValidateModeLine");
16312 
16313  REPLY(reply);
16314  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
16315  *offsetp += 1;
16316  sequence_number = tvb_get_guint16(tvb, *offsetp, byte_order);
16317  proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
16318  "%d (xf86vidmode-ValidateModeLine)", sequence_number);
16319  *offsetp += 2;
16320  proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
16321  *offsetp += 4;
16322  proto_tree_add_item(t, hf_x11_xf86vidmode_ValidateModeLine_reply_status, tvb, *offsetp, 4, byte_order);
16323  *offsetp += 4;
16324  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 20, ENC_NA);
16325  *offsetp += 20;
16326 }
16327 
16328 static void xf86vidmodeSwitchToMode(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
16329 {
16330  int f_privsize;
16331  proto_tree_add_item(t, hf_x11_xf86vidmode_SwitchToMode_screen, tvb, *offsetp, 4, byte_order);
16332  *offsetp += 4;
16333  proto_tree_add_item(t, hf_x11_xf86vidmode_SwitchToMode_dotclock, tvb, *offsetp, 4, byte_order);
16334  *offsetp += 4;
16335  proto_tree_add_item(t, hf_x11_xf86vidmode_SwitchToMode_hdisplay, tvb, *offsetp, 2, byte_order);
16336  *offsetp += 2;
16337  proto_tree_add_item(t, hf_x11_xf86vidmode_SwitchToMode_hsyncstart, tvb, *offsetp, 2, byte_order);
16338  *offsetp += 2;
16339  proto_tree_add_item(t, hf_x11_xf86vidmode_SwitchToMode_hsyncend, tvb, *offsetp, 2, byte_order);
16340  *offsetp += 2;
16341  proto_tree_add_item(t, hf_x11_xf86vidmode_SwitchToMode_htotal, tvb, *offsetp, 2, byte_order);
16342  *offsetp += 2;
16343  proto_tree_add_item(t, hf_x11_xf86vidmode_SwitchToMode_hskew, tvb, *offsetp, 2, byte_order);
16344  *offsetp += 2;
16345  proto_tree_add_item(t, hf_x11_xf86vidmode_SwitchToMode_vdisplay, tvb, *offsetp, 2, byte_order);
16346  *offsetp += 2;
16347  proto_tree_add_item(t, hf_x11_xf86vidmode_SwitchToMode_vsyncstart, tvb, *offsetp, 2, byte_order);
16348  *offsetp += 2;
16349  proto_tree_add_item(t, hf_x11_xf86vidmode_SwitchToMode_vsyncend, tvb, *offsetp, 2, byte_order);
16350  *offsetp += 2;
16351  proto_tree_add_item(t, hf_x11_xf86vidmode_SwitchToMode_vtotal, tvb, *offsetp, 2, byte_order);
16352  *offsetp += 2;
16353  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 2, ENC_NA);
16354  *offsetp += 2;
16355  {
16356  int* const flags_bits [] = {
16357  &hf_x11_xf86vidmode_SwitchToMode_flags_mask_Positive_HSync,
16358  &hf_x11_xf86vidmode_SwitchToMode_flags_mask_Negative_HSync,
16359  &hf_x11_xf86vidmode_SwitchToMode_flags_mask_Positive_VSync,
16360  &hf_x11_xf86vidmode_SwitchToMode_flags_mask_Negative_VSync,
16361  &hf_x11_xf86vidmode_SwitchToMode_flags_mask_Interlace,
16362  &hf_x11_xf86vidmode_SwitchToMode_flags_mask_Composite_Sync,
16363  &hf_x11_xf86vidmode_SwitchToMode_flags_mask_Positive_CSync,
16364  &hf_x11_xf86vidmode_SwitchToMode_flags_mask_Negative_CSync,
16365  &hf_x11_xf86vidmode_SwitchToMode_flags_mask_HSkew,
16366  &hf_x11_xf86vidmode_SwitchToMode_flags_mask_Broadcast,
16367  &hf_x11_xf86vidmode_SwitchToMode_flags_mask_Pixmux,
16368  &hf_x11_xf86vidmode_SwitchToMode_flags_mask_Double_Clock,
16369  &hf_x11_xf86vidmode_SwitchToMode_flags_mask_Half_Clock,
16370  NULL
16371  };
16372  proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_xf86vidmode_SwitchToMode_flags, ett_x11_rectangle, flags_bits, byte_order);
16373  }
16374  *offsetp += 4;
16375  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 12, ENC_NA);
16376  *offsetp += 12;
16377  f_privsize = tvb_get_guint32(tvb, *offsetp, byte_order);
16378  proto_tree_add_item(t, hf_x11_xf86vidmode_SwitchToMode_privsize, tvb, *offsetp, 4, byte_order);
16379  *offsetp += 4;
16380  listOfByte(tvb, offsetp, t, hf_x11_xf86vidmode_SwitchToMode_private, f_privsize, byte_order);
16381  length -= f_privsize * 1;
16382 }
16383 
16384 static void xf86vidmodeGetViewPort(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
16385 {
16386  proto_tree_add_item(t, hf_x11_xf86vidmode_GetViewPort_screen, tvb, *offsetp, 2, byte_order);
16387  *offsetp += 2;
16388  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 2, ENC_NA);
16389  *offsetp += 2;
16390 }
16391 static void xf86vidmodeGetViewPort_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
16392 {
16393  int sequence_number;
16394 
16395  col_append_fstr(pinfo->cinfo, COL_INFO, "-GetViewPort");
16396 
16397  REPLY(reply);
16398  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
16399  *offsetp += 1;
16400  sequence_number = tvb_get_guint16(tvb, *offsetp, byte_order);
16401  proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
16402  "%d (xf86vidmode-GetViewPort)", sequence_number);
16403  *offsetp += 2;
16404  proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
16405  *offsetp += 4;
16406  proto_tree_add_item(t, hf_x11_xf86vidmode_GetViewPort_reply_x, tvb, *offsetp, 4, byte_order);
16407  *offsetp += 4;
16408  proto_tree_add_item(t, hf_x11_xf86vidmode_GetViewPort_reply_y, tvb, *offsetp, 4, byte_order);
16409  *offsetp += 4;
16410  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 16, ENC_NA);
16411  *offsetp += 16;
16412 }
16413 
16414 static void xf86vidmodeSetViewPort(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
16415 {
16416  proto_tree_add_item(t, hf_x11_xf86vidmode_SetViewPort_screen, tvb, *offsetp, 2, byte_order);
16417  *offsetp += 2;
16418  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 2, ENC_NA);
16419  *offsetp += 2;
16420  proto_tree_add_item(t, hf_x11_xf86vidmode_SetViewPort_x, tvb, *offsetp, 4, byte_order);
16421  *offsetp += 4;
16422  proto_tree_add_item(t, hf_x11_xf86vidmode_SetViewPort_y, tvb, *offsetp, 4, byte_order);
16423  *offsetp += 4;
16424 }
16425 
16426 static void xf86vidmodeGetDotClocks(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
16427 {
16428  proto_tree_add_item(t, hf_x11_xf86vidmode_GetDotClocks_screen, tvb, *offsetp, 2, byte_order);
16429  *offsetp += 2;
16430  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 2, ENC_NA);
16431  *offsetp += 2;
16432 }
16433 static void xf86vidmodeGetDotClocks_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
16434 {
16435  int sequence_number;
16436  int f_flags;
16437  int f_clocks;
16438 
16439  col_append_fstr(pinfo->cinfo, COL_INFO, "-GetDotClocks");
16440 
16441  REPLY(reply);
16442  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
16443  *offsetp += 1;
16444  sequence_number = tvb_get_guint16(tvb, *offsetp, byte_order);
16445  proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
16446  "%d (xf86vidmode-GetDotClocks)", sequence_number);
16447  *offsetp += 2;
16448  proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
16449  *offsetp += 4;
16450  f_flags = tvb_get_guint32(tvb, *offsetp, byte_order);
16451  {
16452  int* const flags_bits [] = {
16453  &hf_x11_xf86vidmode_GetDotClocks_reply_flags_mask_Programable,
16454  NULL
16455  };
16456  proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_xf86vidmode_GetDotClocks_reply_flags, ett_x11_rectangle, flags_bits, byte_order);
16457  }
16458  *offsetp += 4;
16459  f_clocks = tvb_get_guint32(tvb, *offsetp, byte_order);
16460  proto_tree_add_item(t, hf_x11_xf86vidmode_GetDotClocks_reply_clocks, tvb, *offsetp, 4, byte_order);
16461  *offsetp += 4;
16462  proto_tree_add_item(t, hf_x11_xf86vidmode_GetDotClocks_reply_maxclocks, tvb, *offsetp, 4, byte_order);
16463  *offsetp += 4;
16464  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 12, ENC_NA);
16465  *offsetp += 12;
16466  listOfCard32(tvb, offsetp, t, hf_x11_xf86vidmode_GetDotClocks_reply_clock, hf_x11_xf86vidmode_GetDotClocks_reply_clock_item, ((1 - (f_flags & 1)) * f_clocks), byte_order);
16467 }
16468 
16469 static void xf86vidmodeSetClientVersion(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
16470 {
16471  proto_tree_add_item(t, hf_x11_xf86vidmode_SetClientVersion_major, tvb, *offsetp, 2, byte_order);
16472  *offsetp += 2;
16473  proto_tree_add_item(t, hf_x11_xf86vidmode_SetClientVersion_minor, tvb, *offsetp, 2, byte_order);
16474  *offsetp += 2;
16475 }
16476 
16477 static void xf86vidmodeSetGamma(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
16478 {
16479  proto_tree_add_item(t, hf_x11_xf86vidmode_SetGamma_screen, tvb, *offsetp, 2, byte_order);
16480  *offsetp += 2;
16481  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 2, ENC_NA);
16482  *offsetp += 2;
16483  proto_tree_add_item(t, hf_x11_xf86vidmode_SetGamma_red, tvb, *offsetp, 4, byte_order);
16484  *offsetp += 4;
16485  proto_tree_add_item(t, hf_x11_xf86vidmode_SetGamma_green, tvb, *offsetp, 4, byte_order);
16486  *offsetp += 4;
16487  proto_tree_add_item(t, hf_x11_xf86vidmode_SetGamma_blue, tvb, *offsetp, 4, byte_order);
16488  *offsetp += 4;
16489  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 12, ENC_NA);
16490  *offsetp += 12;
16491 }
16492 
16493 static void xf86vidmodeGetGamma(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
16494 {
16495  proto_tree_add_item(t, hf_x11_xf86vidmode_GetGamma_screen, tvb, *offsetp, 2, byte_order);
16496  *offsetp += 2;
16497  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 26, ENC_NA);
16498  *offsetp += 26;
16499 }
16500 static void xf86vidmodeGetGamma_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
16501 {
16502  int sequence_number;
16503 
16504  col_append_fstr(pinfo->cinfo, COL_INFO, "-GetGamma");
16505 
16506  REPLY(reply);
16507  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
16508  *offsetp += 1;
16509  sequence_number = tvb_get_guint16(tvb, *offsetp, byte_order);
16510  proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
16511  "%d (xf86vidmode-GetGamma)", sequence_number);
16512  *offsetp += 2;
16513  proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
16514  *offsetp += 4;
16515  proto_tree_add_item(t, hf_x11_xf86vidmode_GetGamma_reply_red, tvb, *offsetp, 4, byte_order);
16516  *offsetp += 4;
16517  proto_tree_add_item(t, hf_x11_xf86vidmode_GetGamma_reply_green, tvb, *offsetp, 4, byte_order);
16518  *offsetp += 4;
16519  proto_tree_add_item(t, hf_x11_xf86vidmode_GetGamma_reply_blue, tvb, *offsetp, 4, byte_order);
16520  *offsetp += 4;
16521  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 12, ENC_NA);
16522  *offsetp += 12;
16523 }
16524 
16525 static void xf86vidmodeGetGammaRamp(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
16526 {
16527  proto_tree_add_item(t, hf_x11_xf86vidmode_GetGammaRamp_screen, tvb, *offsetp, 2, byte_order);
16528  *offsetp += 2;
16529  proto_tree_add_item(t, hf_x11_xf86vidmode_GetGammaRamp_size, tvb, *offsetp, 2, byte_order);
16530  *offsetp += 2;
16531 }
16532 static void xf86vidmodeGetGammaRamp_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
16533 {
16534  int sequence_number;
16535  int f_size;
16536 
16537  col_append_fstr(pinfo->cinfo, COL_INFO, "-GetGammaRamp");
16538 
16539  REPLY(reply);
16540  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
16541  *offsetp += 1;
16542  sequence_number = tvb_get_guint16(tvb, *offsetp, byte_order);
16543  proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
16544  "%d (xf86vidmode-GetGammaRamp)", sequence_number);
16545  *offsetp += 2;
16546  proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
16547  *offsetp += 4;
16548  f_size = tvb_get_guint16(tvb, *offsetp, byte_order);
16549  proto_tree_add_item(t, hf_x11_xf86vidmode_GetGammaRamp_reply_size, tvb, *offsetp, 2, byte_order);
16550  *offsetp += 2;
16551  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 22, ENC_NA);
16552  *offsetp += 22;
16553  listOfCard16(tvb, offsetp, t, hf_x11_xf86vidmode_GetGammaRamp_reply_red, hf_x11_xf86vidmode_GetGammaRamp_reply_red_item, ((f_size + 1) & (~1)), byte_order);
16554  listOfCard16(tvb, offsetp, t, hf_x11_xf86vidmode_GetGammaRamp_reply_green, hf_x11_xf86vidmode_GetGammaRamp_reply_green_item, ((f_size + 1) & (~1)), byte_order);
16555  listOfCard16(tvb, offsetp, t, hf_x11_xf86vidmode_GetGammaRamp_reply_blue, hf_x11_xf86vidmode_GetGammaRamp_reply_blue_item, ((f_size + 1) & (~1)), byte_order);
16556 }
16557 
16558 static void xf86vidmodeSetGammaRamp(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
16559 {
16560  int f_size;
16561  proto_tree_add_item(t, hf_x11_xf86vidmode_SetGammaRamp_screen, tvb, *offsetp, 2, byte_order);
16562  *offsetp += 2;
16563  f_size = tvb_get_guint16(tvb, *offsetp, byte_order);
16564  proto_tree_add_item(t, hf_x11_xf86vidmode_SetGammaRamp_size, tvb, *offsetp, 2, byte_order);
16565  *offsetp += 2;
16566  listOfCard16(tvb, offsetp, t, hf_x11_xf86vidmode_SetGammaRamp_red, hf_x11_xf86vidmode_SetGammaRamp_red_item, ((f_size + 1) & (~1)), byte_order);
16567  length -= ((f_size + 1) & (~1)) * 2;
16568  listOfCard16(tvb, offsetp, t, hf_x11_xf86vidmode_SetGammaRamp_green, hf_x11_xf86vidmode_SetGammaRamp_green_item, ((f_size + 1) & (~1)), byte_order);
16569  length -= ((f_size + 1) & (~1)) * 2;
16570  listOfCard16(tvb, offsetp, t, hf_x11_xf86vidmode_SetGammaRamp_blue, hf_x11_xf86vidmode_SetGammaRamp_blue_item, ((f_size + 1) & (~1)), byte_order);
16571  length -= ((f_size + 1) & (~1)) * 2;
16572 }
16573 
16574 static void xf86vidmodeGetGammaRampSize(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
16575 {
16576  proto_tree_add_item(t, hf_x11_xf86vidmode_GetGammaRampSize_screen, tvb, *offsetp, 2, byte_order);
16577  *offsetp += 2;
16578  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 2, ENC_NA);
16579  *offsetp += 2;
16580 }
16581 static void xf86vidmodeGetGammaRampSize_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
16582 {
16583  int sequence_number;
16584 
16585  col_append_fstr(pinfo->cinfo, COL_INFO, "-GetGammaRampSize");
16586 
16587  REPLY(reply);
16588  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
16589  *offsetp += 1;
16590  sequence_number = tvb_get_guint16(tvb, *offsetp, byte_order);
16591  proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
16592  "%d (xf86vidmode-GetGammaRampSize)", sequence_number);
16593  *offsetp += 2;
16594  proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
16595  *offsetp += 4;
16596  proto_tree_add_item(t, hf_x11_xf86vidmode_GetGammaRampSize_reply_size, tvb, *offsetp, 2, byte_order);
16597  *offsetp += 2;
16598  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 22, ENC_NA);
16599  *offsetp += 22;
16600 }
16601 
16602 static void xf86vidmodeGetPermissions(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
16603 {
16604  proto_tree_add_item(t, hf_x11_xf86vidmode_GetPermissions_screen, tvb, *offsetp, 2, byte_order);
16605  *offsetp += 2;
16606  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 2, ENC_NA);
16607  *offsetp += 2;
16608 }
16609 static void xf86vidmodeGetPermissions_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
16610 {
16611  int sequence_number;
16612 
16613  col_append_fstr(pinfo->cinfo, COL_INFO, "-GetPermissions");
16614 
16615  REPLY(reply);
16616  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
16617  *offsetp += 1;
16618  sequence_number = tvb_get_guint16(tvb, *offsetp, byte_order);
16619  proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
16620  "%d (xf86vidmode-GetPermissions)", sequence_number);
16621  *offsetp += 2;
16622  proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
16623  *offsetp += 4;
16624  {
16625  int* const permissions_bits [] = {
16626  &hf_x11_xf86vidmode_GetPermissions_reply_permissions_mask_Read,
16627  &hf_x11_xf86vidmode_GetPermissions_reply_permissions_mask_Write,
16628  NULL
16629  };
16630  proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_xf86vidmode_GetPermissions_reply_permissions, ett_x11_rectangle, permissions_bits, byte_order);
16631  }
16632  *offsetp += 4;
16633  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 20, ENC_NA);
16634  *offsetp += 20;
16635 }
16636 static const value_string xf86vidmode_extension_minor[] = {
16637  { 0, "QueryVersion" },
16638  { 1, "GetModeLine" },
16639  { 2, "ModModeLine" },
16640  { 3, "SwitchMode" },
16641  { 4, "GetMonitor" },
16642  { 5, "LockModeSwitch" },
16643  { 6, "GetAllModeLines" },
16644  { 7, "AddModeLine" },
16645  { 8, "DeleteModeLine" },
16646  { 9, "ValidateModeLine" },
16647  { 10, "SwitchToMode" },
16648  { 11, "GetViewPort" },
16649  { 12, "SetViewPort" },
16650  { 13, "GetDotClocks" },
16651  { 14, "SetClientVersion" },
16652  { 15, "SetGamma" },
16653  { 16, "GetGamma" },
16654  { 17, "GetGammaRamp" },
16655  { 18, "SetGammaRamp" },
16656  { 19, "GetGammaRampSize" },
16657  { 20, "GetPermissions" },
16658  { 0, NULL }
16659 };
16660 const x11_event_info xf86vidmode_events[] = {
16661  { NULL, NULL }
16662 };
16663 static x11_reply_info xf86vidmode_replies[] = {
16664  { 0, xf86vidmodeQueryVersion_Reply },
16665  { 1, xf86vidmodeGetModeLine_Reply },
16666  { 4, xf86vidmodeGetMonitor_Reply },
16667  { 6, xf86vidmodeGetAllModeLines_Reply },
16668  { 9, xf86vidmodeValidateModeLine_Reply },
16669  { 11, xf86vidmodeGetViewPort_Reply },
16670  { 13, xf86vidmodeGetDotClocks_Reply },
16671  { 16, xf86vidmodeGetGamma_Reply },
16672  { 17, xf86vidmodeGetGammaRamp_Reply },
16673  { 19, xf86vidmodeGetGammaRampSize_Reply },
16674  { 20, xf86vidmodeGetPermissions_Reply },
16675  { 0, NULL }
16676 };
16677 
16678 static void dispatch_xf86vidmode(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
16679 {
16680  int minor, length;
16681  minor = CARD8(xf86vidmode_extension_minor);
16682  length = REQUEST_LENGTH();
16683 
16684  col_append_fstr(pinfo->cinfo, COL_INFO, "-%s",
16685  val_to_str(minor, xf86vidmode_extension_minor,
16686  "<Unknown opcode %d>"));
16687  switch (minor) {
16688  case 0:
16689  xf86vidmodeQueryVersion(tvb, pinfo, offsetp, t, byte_order, length);
16690  break;
16691  case 1:
16692  xf86vidmodeGetModeLine(tvb, pinfo, offsetp, t, byte_order, length);
16693  break;
16694  case 2:
16695  xf86vidmodeModModeLine(tvb, pinfo, offsetp, t, byte_order, length);
16696  break;
16697  case 3:
16698  xf86vidmodeSwitchMode(tvb, pinfo, offsetp, t, byte_order, length);
16699  break;
16700  case 4:
16701  xf86vidmodeGetMonitor(tvb, pinfo, offsetp, t, byte_order, length);
16702  break;
16703  case 5:
16704  xf86vidmodeLockModeSwitch(tvb, pinfo, offsetp, t, byte_order, length);
16705  break;
16706  case 6:
16707  xf86vidmodeGetAllModeLines(tvb, pinfo, offsetp, t, byte_order, length);
16708  break;
16709  case 7:
16710  xf86vidmodeAddModeLine(tvb, pinfo, offsetp, t, byte_order, length);
16711  break;
16712  case 8:
16713  xf86vidmodeDeleteModeLine(tvb, pinfo, offsetp, t, byte_order, length);
16714  break;
16715  case 9:
16716  xf86vidmodeValidateModeLine(tvb, pinfo, offsetp, t, byte_order, length);
16717  break;
16718  case 10:
16719  xf86vidmodeSwitchToMode(tvb, pinfo, offsetp, t, byte_order, length);
16720  break;
16721  case 11:
16722  xf86vidmodeGetViewPort(tvb, pinfo, offsetp, t, byte_order, length);
16723  break;
16724  case 12:
16725  xf86vidmodeSetViewPort(tvb, pinfo, offsetp, t, byte_order, length);
16726  break;
16727  case 13:
16728  xf86vidmodeGetDotClocks(tvb, pinfo, offsetp, t, byte_order, length);
16729  break;
16730  case 14:
16731  xf86vidmodeSetClientVersion(tvb, pinfo, offsetp, t, byte_order, length);
16732  break;
16733  case 15:
16734  xf86vidmodeSetGamma(tvb, pinfo, offsetp, t, byte_order, length);
16735  break;
16736  case 16:
16737  xf86vidmodeGetGamma(tvb, pinfo, offsetp, t, byte_order, length);
16738  break;
16739  case 17:
16740  xf86vidmodeGetGammaRamp(tvb, pinfo, offsetp, t, byte_order, length);
16741  break;
16742  case 18:
16743  xf86vidmodeSetGammaRamp(tvb, pinfo, offsetp, t, byte_order, length);
16744  break;
16745  case 19:
16746  xf86vidmodeGetGammaRampSize(tvb, pinfo, offsetp, t, byte_order, length);
16747  break;
16748  case 20:
16749  xf86vidmodeGetPermissions(tvb, pinfo, offsetp, t, byte_order, length);
16750  break;
16751  /* No need for a default case here, since Unknown is printed above,
16752  and UNDECODED() is taken care of by dissect_x11_request */
16753  }
16754 }
16755 
16756 static void register_xf86vidmode(void)
16757 {
16758  set_handler("XFree86-VidModeExtension", dispatch_xf86vidmode, xf86vidmode_errors, xf86vidmode_events, NULL, xf86vidmode_replies);
16759 }
16760 
16761 static void xfixesQueryVersion(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
16762 {
16763  proto_tree_add_item(t, hf_x11_xfixes_QueryVersion_client_major_version, tvb, *offsetp, 4, byte_order);
16764  *offsetp += 4;
16765  proto_tree_add_item(t, hf_x11_xfixes_QueryVersion_client_minor_version, tvb, *offsetp, 4, byte_order);
16766  *offsetp += 4;
16767 }
16768 static void xfixesQueryVersion_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
16769 {
16770  int sequence_number;
16771 
16772  col_append_fstr(pinfo->cinfo, COL_INFO, "-QueryVersion");
16773 
16774  REPLY(reply);
16775  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
16776  *offsetp += 1;
16777  sequence_number = tvb_get_guint16(tvb, *offsetp, byte_order);
16778  proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
16779  "%d (xfixes-QueryVersion)", sequence_number);
16780  *offsetp += 2;
16781  proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
16782  *offsetp += 4;
16783  proto_tree_add_item(t, hf_x11_xfixes_QueryVersion_reply_major_version, tvb, *offsetp, 4, byte_order);
16784  *offsetp += 4;
16785  proto_tree_add_item(t, hf_x11_xfixes_QueryVersion_reply_minor_version, tvb, *offsetp, 4, byte_order);
16786  *offsetp += 4;
16787  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 16, ENC_NA);
16788  *offsetp += 16;
16789 }
16790 
16791 static void xfixesChangeSaveSet(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
16792 {
16793  field8(tvb, offsetp, t, hf_x11_xfixes_ChangeSaveSet_mode, byte_order);
16794  field8(tvb, offsetp, t, hf_x11_xfixes_ChangeSaveSet_target, byte_order);
16795  field8(tvb, offsetp, t, hf_x11_xfixes_ChangeSaveSet_map, byte_order);
16796  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
16797  *offsetp += 1;
16798  proto_tree_add_item(t, hf_x11_xfixes_ChangeSaveSet_window, tvb, *offsetp, 4, byte_order);
16799  *offsetp += 4;
16800 }
16801 
16802 static void xfixesSelectSelectionInput(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
16803 {
16804  proto_tree_add_item(t, hf_x11_xfixes_SelectSelectionInput_window, tvb, *offsetp, 4, byte_order);
16805  *offsetp += 4;
16806  proto_tree_add_item(t, hf_x11_xfixes_SelectSelectionInput_selection, tvb, *offsetp, 4, byte_order);
16807  *offsetp += 4;
16808  {
16809  int* const event_mask_bits [] = {
16810  &hf_x11_xfixes_SelectSelectionInput_event_mask_mask_SetSelectionOwner,
16811  &hf_x11_xfixes_SelectSelectionInput_event_mask_mask_SelectionWindowDestroy,
16812  &hf_x11_xfixes_SelectSelectionInput_event_mask_mask_SelectionClientClose,
16813  NULL
16814  };
16815  proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_xfixes_SelectSelectionInput_event_mask, ett_x11_rectangle, event_mask_bits, byte_order);
16816  }
16817  *offsetp += 4;
16818 }
16819 
16820 static void xfixesCursorNotify(tvbuff_t *tvb, int *offsetp, proto_tree *t, guint byte_order)
16821 {
16822  field8(tvb, offsetp, t, hf_x11_xfixes_CursorNotify_subtype, byte_order);
16823  CARD16(event_sequencenumber);
16824  proto_tree_add_item(t, hf_x11_xfixes_CursorNotify_window, tvb, *offsetp, 4, byte_order);
16825  *offsetp += 4;
16826  proto_tree_add_item(t, hf_x11_xfixes_CursorNotify_cursor_serial, tvb, *offsetp, 4, byte_order);
16827  *offsetp += 4;
16828  proto_tree_add_item(t, hf_x11_xfixes_CursorNotify_timestamp, tvb, *offsetp, 4, byte_order);
16829  *offsetp += 4;
16830  field32(tvb, offsetp, t, hf_x11_xfixes_CursorNotify_name, byte_order);
16831  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 12, ENC_NA);
16832  *offsetp += 12;
16833 }
16834 
16835 
16836 static void xfixesSelectCursorInput(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
16837 {
16838  proto_tree_add_item(t, hf_x11_xfixes_SelectCursorInput_window, tvb, *offsetp, 4, byte_order);
16839  *offsetp += 4;
16840  {
16841  int* const event_mask_bits [] = {
16842  &hf_x11_xfixes_SelectCursorInput_event_mask_mask_DisplayCursor,
16843  NULL
16844  };
16845  proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_xfixes_SelectCursorInput_event_mask, ett_x11_rectangle, event_mask_bits, byte_order);
16846  }
16847  *offsetp += 4;
16848 }
16849 
16850 static void xfixesGetCursorImage(tvbuff_t *tvb _U_, packet_info *pinfo _U_, int *offsetp _U_, proto_tree *t _U_, guint byte_order _U_, int length _U_)
16851 {
16852 }
16853 static void xfixesGetCursorImage_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
16854 {
16855  int sequence_number;
16856  int f_width;
16857  int f_height;
16858 
16859  col_append_fstr(pinfo->cinfo, COL_INFO, "-GetCursorImage");
16860 
16861  REPLY(reply);
16862  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
16863  *offsetp += 1;
16864  sequence_number = tvb_get_guint16(tvb, *offsetp, byte_order);
16865  proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
16866  "%d (xfixes-GetCursorImage)", sequence_number);
16867  *offsetp += 2;
16868  proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
16869  *offsetp += 4;
16870  proto_tree_add_item(t, hf_x11_xfixes_GetCursorImage_reply_x, tvb, *offsetp, 2, byte_order);
16871  *offsetp += 2;
16872  proto_tree_add_item(t, hf_x11_xfixes_GetCursorImage_reply_y, tvb, *offsetp, 2, byte_order);
16873  *offsetp += 2;
16874  f_width = tvb_get_guint16(tvb, *offsetp, byte_order);
16875  proto_tree_add_item(t, hf_x11_xfixes_GetCursorImage_reply_width, tvb, *offsetp, 2, byte_order);
16876  *offsetp += 2;
16877  f_height = tvb_get_guint16(tvb, *offsetp, byte_order);
16878  proto_tree_add_item(t, hf_x11_xfixes_GetCursorImage_reply_height, tvb, *offsetp, 2, byte_order);
16879  *offsetp += 2;
16880  proto_tree_add_item(t, hf_x11_xfixes_GetCursorImage_reply_xhot, tvb, *offsetp, 2, byte_order);
16881  *offsetp += 2;
16882  proto_tree_add_item(t, hf_x11_xfixes_GetCursorImage_reply_yhot, tvb, *offsetp, 2, byte_order);
16883  *offsetp += 2;
16884  proto_tree_add_item(t, hf_x11_xfixes_GetCursorImage_reply_cursor_serial, tvb, *offsetp, 4, byte_order);
16885  *offsetp += 4;
16886  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 8, ENC_NA);
16887  *offsetp += 8;
16888  listOfCard32(tvb, offsetp, t, hf_x11_xfixes_GetCursorImage_reply_cursor_image, hf_x11_xfixes_GetCursorImage_reply_cursor_image_item, (f_width * f_height), byte_order);
16889 }
16890 
16891 static void xfixesCreateRegion(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
16892 {
16893  proto_tree_add_item(t, hf_x11_xfixes_CreateRegion_region, tvb, *offsetp, 4, byte_order);
16894  *offsetp += 4;
16895  struct_xproto_RECTANGLE(tvb, offsetp, t, byte_order, (length - 8) / 8);
16896 }
16897 
16898 static void xfixesCreateRegionFromBitmap(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
16899 {
16900  proto_tree_add_item(t, hf_x11_xfixes_CreateRegionFromBitmap_region, tvb, *offsetp, 4, byte_order);
16901  *offsetp += 4;
16902  proto_tree_add_item(t, hf_x11_xfixes_CreateRegionFromBitmap_bitmap, tvb, *offsetp, 4, byte_order);
16903  *offsetp += 4;
16904 }
16905 
16906 static void xfixesCreateRegionFromWindow(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
16907 {
16908  proto_tree_add_item(t, hf_x11_xfixes_CreateRegionFromWindow_region, tvb, *offsetp, 4, byte_order);
16909  *offsetp += 4;
16910  proto_tree_add_item(t, hf_x11_xfixes_CreateRegionFromWindow_window, tvb, *offsetp, 4, byte_order);
16911  *offsetp += 4;
16912  field8(tvb, offsetp, t, hf_x11_xfixes_CreateRegionFromWindow_kind, byte_order);
16913  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 3, ENC_NA);
16914  *offsetp += 3;
16915 }
16916 
16917 static void xfixesCreateRegionFromGC(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
16918 {
16919  proto_tree_add_item(t, hf_x11_xfixes_CreateRegionFromGC_region, tvb, *offsetp, 4, byte_order);
16920  *offsetp += 4;
16921  proto_tree_add_item(t, hf_x11_xfixes_CreateRegionFromGC_gc, tvb, *offsetp, 4, byte_order);
16922  *offsetp += 4;
16923 }
16924 
16925 static void xfixesCreateRegionFromPicture(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
16926 {
16927  proto_tree_add_item(t, hf_x11_xfixes_CreateRegionFromPicture_region, tvb, *offsetp, 4, byte_order);
16928  *offsetp += 4;
16929  proto_tree_add_item(t, hf_x11_xfixes_CreateRegionFromPicture_picture, tvb, *offsetp, 4, byte_order);
16930  *offsetp += 4;
16931 }
16932 
16933 static void xfixesDestroyRegion(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
16934 {
16935  proto_tree_add_item(t, hf_x11_xfixes_DestroyRegion_region, tvb, *offsetp, 4, byte_order);
16936  *offsetp += 4;
16937 }
16938 
16939 static void xfixesSetRegion(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
16940 {
16941  proto_tree_add_item(t, hf_x11_xfixes_SetRegion_region, tvb, *offsetp, 4, byte_order);
16942  *offsetp += 4;
16943  struct_xproto_RECTANGLE(tvb, offsetp, t, byte_order, (length - 8) / 8);
16944 }
16945 
16946 static void xfixesCopyRegion(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
16947 {
16948  proto_tree_add_item(t, hf_x11_xfixes_CopyRegion_source, tvb, *offsetp, 4, byte_order);
16949  *offsetp += 4;
16950  proto_tree_add_item(t, hf_x11_xfixes_CopyRegion_destination, tvb, *offsetp, 4, byte_order);
16951  *offsetp += 4;
16952 }
16953 
16954 static void xfixesUnionRegion(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
16955 {
16956  proto_tree_add_item(t, hf_x11_xfixes_UnionRegion_source1, tvb, *offsetp, 4, byte_order);
16957  *offsetp += 4;
16958  proto_tree_add_item(t, hf_x11_xfixes_UnionRegion_source2, tvb, *offsetp, 4, byte_order);
16959  *offsetp += 4;
16960  proto_tree_add_item(t, hf_x11_xfixes_UnionRegion_destination, tvb, *offsetp, 4, byte_order);
16961  *offsetp += 4;
16962 }
16963 
16964 static void xfixesIntersectRegion(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
16965 {
16966  proto_tree_add_item(t, hf_x11_xfixes_IntersectRegion_source1, tvb, *offsetp, 4, byte_order);
16967  *offsetp += 4;
16968  proto_tree_add_item(t, hf_x11_xfixes_IntersectRegion_source2, tvb, *offsetp, 4, byte_order);
16969  *offsetp += 4;
16970  proto_tree_add_item(t, hf_x11_xfixes_IntersectRegion_destination, tvb, *offsetp, 4, byte_order);
16971  *offsetp += 4;
16972 }
16973 
16974 static void xfixesSubtractRegion(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
16975 {
16976  proto_tree_add_item(t, hf_x11_xfixes_SubtractRegion_source1, tvb, *offsetp, 4, byte_order);
16977  *offsetp += 4;
16978  proto_tree_add_item(t, hf_x11_xfixes_SubtractRegion_source2, tvb, *offsetp, 4, byte_order);
16979  *offsetp += 4;
16980  proto_tree_add_item(t, hf_x11_xfixes_SubtractRegion_destination, tvb, *offsetp, 4, byte_order);
16981  *offsetp += 4;
16982 }
16983 
16984 static void xfixesInvertRegion(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
16985 {
16986  proto_tree_add_item(t, hf_x11_xfixes_InvertRegion_source, tvb, *offsetp, 4, byte_order);
16987  *offsetp += 4;
16988  struct_xproto_RECTANGLE(tvb, offsetp, t, byte_order, 1);
16989  proto_tree_add_item(t, hf_x11_xfixes_InvertRegion_destination, tvb, *offsetp, 4, byte_order);
16990  *offsetp += 4;
16991 }
16992 
16993 static void xfixesTranslateRegion(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
16994 {
16995  proto_tree_add_item(t, hf_x11_xfixes_TranslateRegion_region, tvb, *offsetp, 4, byte_order);
16996  *offsetp += 4;
16997  proto_tree_add_item(t, hf_x11_xfixes_TranslateRegion_dx, tvb, *offsetp, 2, byte_order);
16998  *offsetp += 2;
16999  proto_tree_add_item(t, hf_x11_xfixes_TranslateRegion_dy, tvb, *offsetp, 2, byte_order);
17000  *offsetp += 2;
17001 }
17002 
17003 static void xfixesRegionExtents(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
17004 {
17005  proto_tree_add_item(t, hf_x11_xfixes_RegionExtents_source, tvb, *offsetp, 4, byte_order);
17006  *offsetp += 4;
17007  proto_tree_add_item(t, hf_x11_xfixes_RegionExtents_destination, tvb, *offsetp, 4, byte_order);
17008  *offsetp += 4;
17009 }
17010 
17011 static void xfixesFetchRegion(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
17012 {
17013  proto_tree_add_item(t, hf_x11_xfixes_FetchRegion_region, tvb, *offsetp, 4, byte_order);
17014  *offsetp += 4;
17015 }
17016 static void xfixesFetchRegion_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
17017 {
17018  int sequence_number;
17019  int f_length;
17020 
17021  col_append_fstr(pinfo->cinfo, COL_INFO, "-FetchRegion");
17022 
17023  REPLY(reply);
17024  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
17025  *offsetp += 1;
17026  sequence_number = tvb_get_guint16(tvb, *offsetp, byte_order);
17027  proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
17028  "%d (xfixes-FetchRegion)", sequence_number);
17029  *offsetp += 2;
17030  f_length = tvb_get_guint32(tvb, *offsetp, byte_order);
17031  proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
17032  *offsetp += 4;
17033  struct_xproto_RECTANGLE(tvb, offsetp, t, byte_order, 1);
17034  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 16, ENC_NA);
17035  *offsetp += 16;
17036  struct_xproto_RECTANGLE(tvb, offsetp, t, byte_order, (f_length / 2));
17037 }
17038 
17039 static void xfixesSetGCClipRegion(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
17040 {
17041  proto_tree_add_item(t, hf_x11_xfixes_SetGCClipRegion_gc, tvb, *offsetp, 4, byte_order);
17042  *offsetp += 4;
17043  field32(tvb, offsetp, t, hf_x11_xfixes_SetGCClipRegion_region, byte_order);
17044  proto_tree_add_item(t, hf_x11_xfixes_SetGCClipRegion_x_origin, tvb, *offsetp, 2, byte_order);
17045  *offsetp += 2;
17046  proto_tree_add_item(t, hf_x11_xfixes_SetGCClipRegion_y_origin, tvb, *offsetp, 2, byte_order);
17047  *offsetp += 2;
17048 }
17049 
17050 static void xfixesSetWindowShapeRegion(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
17051 {
17052  proto_tree_add_item(t, hf_x11_xfixes_SetWindowShapeRegion_dest, tvb, *offsetp, 4, byte_order);
17053  *offsetp += 4;
17054  field8(tvb, offsetp, t, hf_x11_xfixes_SetWindowShapeRegion_dest_kind, byte_order);
17055  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 3, ENC_NA);
17056  *offsetp += 3;
17057  proto_tree_add_item(t, hf_x11_xfixes_SetWindowShapeRegion_x_offset, tvb, *offsetp, 2, byte_order);
17058  *offsetp += 2;
17059  proto_tree_add_item(t, hf_x11_xfixes_SetWindowShapeRegion_y_offset, tvb, *offsetp, 2, byte_order);
17060  *offsetp += 2;
17061  field32(tvb, offsetp, t, hf_x11_xfixes_SetWindowShapeRegion_region, byte_order);
17062 }
17063 
17064 static void xfixesSetPictureClipRegion(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
17065 {
17066  proto_tree_add_item(t, hf_x11_xfixes_SetPictureClipRegion_picture, tvb, *offsetp, 4, byte_order);
17067  *offsetp += 4;
17068  field32(tvb, offsetp, t, hf_x11_xfixes_SetPictureClipRegion_region, byte_order);
17069  proto_tree_add_item(t, hf_x11_xfixes_SetPictureClipRegion_x_origin, tvb, *offsetp, 2, byte_order);
17070  *offsetp += 2;
17071  proto_tree_add_item(t, hf_x11_xfixes_SetPictureClipRegion_y_origin, tvb, *offsetp, 2, byte_order);
17072  *offsetp += 2;
17073 }
17074 
17075 static void xfixesSetCursorName(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
17076 {
17077  int f_nbytes;
17078  proto_tree_add_item(t, hf_x11_xfixes_SetCursorName_cursor, tvb, *offsetp, 4, byte_order);
17079  *offsetp += 4;
17080  f_nbytes = tvb_get_guint16(tvb, *offsetp, byte_order);
17081  proto_tree_add_item(t, hf_x11_xfixes_SetCursorName_nbytes, tvb, *offsetp, 2, byte_order);
17082  *offsetp += 2;
17083  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 2, ENC_NA);
17084  *offsetp += 2;
17085  listOfByte(tvb, offsetp, t, hf_x11_xfixes_SetCursorName_name, f_nbytes, byte_order);
17086  length -= f_nbytes * 1;
17087 }
17088 
17089 static void xfixesGetCursorName(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
17090 {
17091  proto_tree_add_item(t, hf_x11_xfixes_GetCursorName_cursor, tvb, *offsetp, 4, byte_order);
17092  *offsetp += 4;
17093 }
17094 static void xfixesGetCursorName_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
17095 {
17096  int sequence_number;
17097  int f_nbytes;
17098 
17099  col_append_fstr(pinfo->cinfo, COL_INFO, "-GetCursorName");
17100 
17101  REPLY(reply);
17102  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
17103  *offsetp += 1;
17104  sequence_number = tvb_get_guint16(tvb, *offsetp, byte_order);
17105  proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
17106  "%d (xfixes-GetCursorName)", sequence_number);
17107  *offsetp += 2;
17108  proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
17109  *offsetp += 4;
17110  field32(tvb, offsetp, t, hf_x11_xfixes_GetCursorName_reply_atom, byte_order);
17111  f_nbytes = tvb_get_guint16(tvb, *offsetp, byte_order);
17112  proto_tree_add_item(t, hf_x11_xfixes_GetCursorName_reply_nbytes, tvb, *offsetp, 2, byte_order);
17113  *offsetp += 2;
17114  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 18, ENC_NA);
17115  *offsetp += 18;
17116  listOfByte(tvb, offsetp, t, hf_x11_xfixes_GetCursorName_reply_name, f_nbytes, byte_order);
17117 }
17118 
17119 static void xfixesGetCursorImageAndName(tvbuff_t *tvb _U_, packet_info *pinfo _U_, int *offsetp _U_, proto_tree *t _U_, guint byte_order _U_, int length _U_)
17120 {
17121 }
17122 static void xfixesGetCursorImageAndName_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
17123 {
17124  int sequence_number;
17125  int f_width;
17126  int f_height;
17127  int f_nbytes;
17128 
17129  col_append_fstr(pinfo->cinfo, COL_INFO, "-GetCursorImageAndName");
17130 
17131  REPLY(reply);
17132  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
17133  *offsetp += 1;
17134  sequence_number = tvb_get_guint16(tvb, *offsetp, byte_order);
17135  proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
17136  "%d (xfixes-GetCursorImageAndName)", sequence_number);
17137  *offsetp += 2;
17138  proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
17139  *offsetp += 4;
17140  proto_tree_add_item(t, hf_x11_xfixes_GetCursorImageAndName_reply_x, tvb, *offsetp, 2, byte_order);
17141  *offsetp += 2;
17142  proto_tree_add_item(t, hf_x11_xfixes_GetCursorImageAndName_reply_y, tvb, *offsetp, 2, byte_order);
17143  *offsetp += 2;
17144  f_width = tvb_get_guint16(tvb, *offsetp, byte_order);
17145  proto_tree_add_item(t, hf_x11_xfixes_GetCursorImageAndName_reply_width, tvb, *offsetp, 2, byte_order);
17146  *offsetp += 2;
17147  f_height = tvb_get_guint16(tvb, *offsetp, byte_order);
17148  proto_tree_add_item(t, hf_x11_xfixes_GetCursorImageAndName_reply_height, tvb, *offsetp, 2, byte_order);
17149  *offsetp += 2;
17150  proto_tree_add_item(t, hf_x11_xfixes_GetCursorImageAndName_reply_xhot, tvb, *offsetp, 2, byte_order);
17151  *offsetp += 2;
17152  proto_tree_add_item(t, hf_x11_xfixes_GetCursorImageAndName_reply_yhot, tvb, *offsetp, 2, byte_order);
17153  *offsetp += 2;
17154  proto_tree_add_item(t, hf_x11_xfixes_GetCursorImageAndName_reply_cursor_serial, tvb, *offsetp, 4, byte_order);
17155  *offsetp += 4;
17156  field32(tvb, offsetp, t, hf_x11_xfixes_GetCursorImageAndName_reply_cursor_atom, byte_order);
17157  f_nbytes = tvb_get_guint16(tvb, *offsetp, byte_order);
17158  proto_tree_add_item(t, hf_x11_xfixes_GetCursorImageAndName_reply_nbytes, tvb, *offsetp, 2, byte_order);
17159  *offsetp += 2;
17160  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 2, ENC_NA);
17161  *offsetp += 2;
17162  listOfCard32(tvb, offsetp, t, hf_x11_xfixes_GetCursorImageAndName_reply_cursor_image, hf_x11_xfixes_GetCursorImageAndName_reply_cursor_image_item, (f_width * f_height), byte_order);
17163  listOfByte(tvb, offsetp, t, hf_x11_xfixes_GetCursorImageAndName_reply_name, f_nbytes, byte_order);
17164 }
17165 
17166 static void xfixesChangeCursor(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
17167 {
17168  proto_tree_add_item(t, hf_x11_xfixes_ChangeCursor_source, tvb, *offsetp, 4, byte_order);
17169  *offsetp += 4;
17170  proto_tree_add_item(t, hf_x11_xfixes_ChangeCursor_destination, tvb, *offsetp, 4, byte_order);
17171  *offsetp += 4;
17172 }
17173 
17174 static void xfixesChangeCursorByName(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
17175 {
17176  int f_nbytes;
17177  proto_tree_add_item(t, hf_x11_xfixes_ChangeCursorByName_src, tvb, *offsetp, 4, byte_order);
17178  *offsetp += 4;
17179  f_nbytes = tvb_get_guint16(tvb, *offsetp, byte_order);
17180  proto_tree_add_item(t, hf_x11_xfixes_ChangeCursorByName_nbytes, tvb, *offsetp, 2, byte_order);
17181  *offsetp += 2;
17182  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 2, ENC_NA);
17183  *offsetp += 2;
17184  listOfByte(tvb, offsetp, t, hf_x11_xfixes_ChangeCursorByName_name, f_nbytes, byte_order);
17185  length -= f_nbytes * 1;
17186 }
17187 
17188 static void xfixesExpandRegion(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
17189 {
17190  proto_tree_add_item(t, hf_x11_xfixes_ExpandRegion_source, tvb, *offsetp, 4, byte_order);
17191  *offsetp += 4;
17192  proto_tree_add_item(t, hf_x11_xfixes_ExpandRegion_destination, tvb, *offsetp, 4, byte_order);
17193  *offsetp += 4;
17194  proto_tree_add_item(t, hf_x11_xfixes_ExpandRegion_left, tvb, *offsetp, 2, byte_order);
17195  *offsetp += 2;
17196  proto_tree_add_item(t, hf_x11_xfixes_ExpandRegion_right, tvb, *offsetp, 2, byte_order);
17197  *offsetp += 2;
17198  proto_tree_add_item(t, hf_x11_xfixes_ExpandRegion_top, tvb, *offsetp, 2, byte_order);
17199  *offsetp += 2;
17200  proto_tree_add_item(t, hf_x11_xfixes_ExpandRegion_bottom, tvb, *offsetp, 2, byte_order);
17201  *offsetp += 2;
17202 }
17203 
17204 static void xfixesHideCursor(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
17205 {
17206  proto_tree_add_item(t, hf_x11_xfixes_HideCursor_window, tvb, *offsetp, 4, byte_order);
17207  *offsetp += 4;
17208 }
17209 
17210 static void xfixesShowCursor(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
17211 {
17212  proto_tree_add_item(t, hf_x11_xfixes_ShowCursor_window, tvb, *offsetp, 4, byte_order);
17213  *offsetp += 4;
17214 }
17215 
17216 static void xfixesCreatePointerBarrier(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
17217 {
17218  int f_num_devices;
17219  proto_tree_add_item(t, hf_x11_xfixes_CreatePointerBarrier_barrier, tvb, *offsetp, 4, byte_order);
17220  *offsetp += 4;
17221  proto_tree_add_item(t, hf_x11_xfixes_CreatePointerBarrier_window, tvb, *offsetp, 4, byte_order);
17222  *offsetp += 4;
17223  proto_tree_add_item(t, hf_x11_xfixes_CreatePointerBarrier_x1, tvb, *offsetp, 2, byte_order);
17224  *offsetp += 2;
17225  proto_tree_add_item(t, hf_x11_xfixes_CreatePointerBarrier_y1, tvb, *offsetp, 2, byte_order);
17226  *offsetp += 2;
17227  proto_tree_add_item(t, hf_x11_xfixes_CreatePointerBarrier_x2, tvb, *offsetp, 2, byte_order);
17228  *offsetp += 2;
17229  proto_tree_add_item(t, hf_x11_xfixes_CreatePointerBarrier_y2, tvb, *offsetp, 2, byte_order);
17230  *offsetp += 2;
17231  {
17232  int* const directions_bits [] = {
17233  &hf_x11_xfixes_CreatePointerBarrier_directions_mask_PositiveX,
17234  &hf_x11_xfixes_CreatePointerBarrier_directions_mask_PositiveY,
17235  &hf_x11_xfixes_CreatePointerBarrier_directions_mask_NegativeX,
17236  &hf_x11_xfixes_CreatePointerBarrier_directions_mask_NegativeY,
17237  NULL
17238  };
17239  proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_xfixes_CreatePointerBarrier_directions, ett_x11_rectangle, directions_bits, byte_order);
17240  }
17241  *offsetp += 4;
17242  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 2, ENC_NA);
17243  *offsetp += 2;
17244  f_num_devices = tvb_get_guint16(tvb, *offsetp, byte_order);
17245  proto_tree_add_item(t, hf_x11_xfixes_CreatePointerBarrier_num_devices, tvb, *offsetp, 2, byte_order);
17246  *offsetp += 2;
17247  listOfCard16(tvb, offsetp, t, hf_x11_xfixes_CreatePointerBarrier_devices, hf_x11_xfixes_CreatePointerBarrier_devices_item, f_num_devices, byte_order);
17248  length -= f_num_devices * 2;
17249 }
17250 
17251 static void xfixesDeletePointerBarrier(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
17252 {
17253  proto_tree_add_item(t, hf_x11_xfixes_DeletePointerBarrier_barrier, tvb, *offsetp, 4, byte_order);
17254  *offsetp += 4;
17255 }
17256 static const value_string xfixes_extension_minor[] = {
17257  { 0, "QueryVersion" },
17258  { 1, "ChangeSaveSet" },
17259  { 2, "SelectSelectionInput" },
17260  { 3, "SelectCursorInput" },
17261  { 4, "GetCursorImage" },
17262  { 5, "CreateRegion" },
17263  { 6, "CreateRegionFromBitmap" },
17264  { 7, "CreateRegionFromWindow" },
17265  { 8, "CreateRegionFromGC" },
17266  { 9, "CreateRegionFromPicture" },
17267  { 10, "DestroyRegion" },
17268  { 11, "SetRegion" },
17269  { 12, "CopyRegion" },
17270  { 13, "UnionRegion" },
17271  { 14, "IntersectRegion" },
17272  { 15, "SubtractRegion" },
17273  { 16, "InvertRegion" },
17274  { 17, "TranslateRegion" },
17275  { 18, "RegionExtents" },
17276  { 19, "FetchRegion" },
17277  { 20, "SetGCClipRegion" },
17278  { 21, "SetWindowShapeRegion" },
17279  { 22, "SetPictureClipRegion" },
17280  { 23, "SetCursorName" },
17281  { 24, "GetCursorName" },
17282  { 25, "GetCursorImageAndName" },
17283  { 26, "ChangeCursor" },
17284  { 27, "ChangeCursorByName" },
17285  { 28, "ExpandRegion" },
17286  { 29, "HideCursor" },
17287  { 30, "ShowCursor" },
17288  { 31, "CreatePointerBarrier" },
17289  { 32, "DeletePointerBarrier" },
17290  { 0, NULL }
17291 };
17292 static const x11_event_info xfixes_events[] = {
17293  { "xfixes-CursorNotify", xfixesCursorNotify },
17294  { NULL, NULL }
17295 };
17296 static x11_reply_info xfixes_replies[] = {
17297  { 0, xfixesQueryVersion_Reply },
17298  { 4, xfixesGetCursorImage_Reply },
17299  { 19, xfixesFetchRegion_Reply },
17300  { 24, xfixesGetCursorName_Reply },
17301  { 25, xfixesGetCursorImageAndName_Reply },
17302  { 0, NULL }
17303 };
17304 
17305 static void dispatch_xfixes(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
17306 {
17307  int minor, length;
17308  minor = CARD8(xfixes_extension_minor);
17309  length = REQUEST_LENGTH();
17310 
17311  col_append_fstr(pinfo->cinfo, COL_INFO, "-%s",
17312  val_to_str(minor, xfixes_extension_minor,
17313  "<Unknown opcode %d>"));
17314  switch (minor) {
17315  case 0:
17316  xfixesQueryVersion(tvb, pinfo, offsetp, t, byte_order, length);
17317  break;
17318  case 1:
17319  xfixesChangeSaveSet(tvb, pinfo, offsetp, t, byte_order, length);
17320  break;
17321  case 2:
17322  xfixesSelectSelectionInput(tvb, pinfo, offsetp, t, byte_order, length);
17323  break;
17324  case 3:
17325  xfixesSelectCursorInput(tvb, pinfo, offsetp, t, byte_order, length);
17326  break;
17327  case 4:
17328  xfixesGetCursorImage(tvb, pinfo, offsetp, t, byte_order, length);
17329  break;
17330  case 5:
17331  xfixesCreateRegion(tvb, pinfo, offsetp, t, byte_order, length);
17332  break;
17333  case 6:
17334  xfixesCreateRegionFromBitmap(tvb, pinfo, offsetp, t, byte_order, length);
17335  break;
17336  case 7:
17337  xfixesCreateRegionFromWindow(tvb, pinfo, offsetp, t, byte_order, length);
17338  break;
17339  case 8:
17340  xfixesCreateRegionFromGC(tvb, pinfo, offsetp, t, byte_order, length);
17341  break;
17342  case 9:
17343  xfixesCreateRegionFromPicture(tvb, pinfo, offsetp, t, byte_order, length);
17344  break;
17345  case 10:
17346  xfixesDestroyRegion(tvb, pinfo, offsetp, t, byte_order, length);
17347  break;
17348  case 11:
17349  xfixesSetRegion(tvb, pinfo, offsetp, t, byte_order, length);
17350  break;
17351  case 12:
17352  xfixesCopyRegion(tvb, pinfo, offsetp, t, byte_order, length);
17353  break;
17354  case 13:
17355  xfixesUnionRegion(tvb, pinfo, offsetp, t, byte_order, length);
17356  break;
17357  case 14:
17358  xfixesIntersectRegion(tvb, pinfo, offsetp, t, byte_order, length);
17359  break;
17360  case 15:
17361  xfixesSubtractRegion(tvb, pinfo, offsetp, t, byte_order, length);
17362  break;
17363  case 16:
17364  xfixesInvertRegion(tvb, pinfo, offsetp, t, byte_order, length);
17365  break;
17366  case 17:
17367  xfixesTranslateRegion(tvb, pinfo, offsetp, t, byte_order, length);
17368  break;
17369  case 18:
17370  xfixesRegionExtents(tvb, pinfo, offsetp, t, byte_order, length);
17371  break;
17372  case 19:
17373  xfixesFetchRegion(tvb, pinfo, offsetp, t, byte_order, length);
17374  break;
17375  case 20:
17376  xfixesSetGCClipRegion(tvb, pinfo, offsetp, t, byte_order, length);
17377  break;
17378  case 21:
17379  xfixesSetWindowShapeRegion(tvb, pinfo, offsetp, t, byte_order, length);
17380  break;
17381  case 22:
17382  xfixesSetPictureClipRegion(tvb, pinfo, offsetp, t, byte_order, length);
17383  break;
17384  case 23:
17385  xfixesSetCursorName(tvb, pinfo, offsetp, t, byte_order, length);
17386  break;
17387  case 24:
17388  xfixesGetCursorName(tvb, pinfo, offsetp, t, byte_order, length);
17389  break;
17390  case 25:
17391  xfixesGetCursorImageAndName(tvb, pinfo, offsetp, t, byte_order, length);
17392  break;
17393  case 26:
17394  xfixesChangeCursor(tvb, pinfo, offsetp, t, byte_order, length);
17395  break;
17396  case 27:
17397  xfixesChangeCursorByName(tvb, pinfo, offsetp, t, byte_order, length);
17398  break;
17399  case 28:
17400  xfixesExpandRegion(tvb, pinfo, offsetp, t, byte_order, length);
17401  break;
17402  case 29:
17403  xfixesHideCursor(tvb, pinfo, offsetp, t, byte_order, length);
17404  break;
17405  case 30:
17406  xfixesShowCursor(tvb, pinfo, offsetp, t, byte_order, length);
17407  break;
17408  case 31:
17409  xfixesCreatePointerBarrier(tvb, pinfo, offsetp, t, byte_order, length);
17410  break;
17411  case 32:
17412  xfixesDeletePointerBarrier(tvb, pinfo, offsetp, t, byte_order, length);
17413  break;
17414  /* No need for a default case here, since Unknown is printed above,
17415  and UNDECODED() is taken care of by dissect_x11_request */
17416  }
17417 }
17418 
17419 static void register_xfixes(void)
17420 {
17421  set_handler("XFIXES", dispatch_xfixes, xfixes_errors, xfixes_events, NULL, xfixes_replies);
17422 }
17423 
17424 static void struct_xinerama_ScreenInfo(tvbuff_t *tvb, int *offsetp, proto_tree *root, guint byte_order _U_, int count)
17425 {
17426  int i;
17427  for (i = 0; i < count; i++) {
17428  proto_item *item;
17429  proto_tree *t;
17430 
17431  item = proto_tree_add_item(root, hf_x11_struct_xinerama_ScreenInfo, tvb, *offsetp, 8, ENC_NA);
17432  t = proto_item_add_subtree(item, ett_x11_rectangle);
17433  proto_tree_add_item(t, hf_x11_struct_xinerama_ScreenInfo_x_org, tvb, *offsetp, 2, byte_order);
17434  *offsetp += 2;
17435  proto_tree_add_item(t, hf_x11_struct_xinerama_ScreenInfo_y_org, tvb, *offsetp, 2, byte_order);
17436  *offsetp += 2;
17437  proto_tree_add_item(t, hf_x11_struct_xinerama_ScreenInfo_width, tvb, *offsetp, 2, byte_order);
17438  *offsetp += 2;
17439  proto_tree_add_item(t, hf_x11_struct_xinerama_ScreenInfo_height, tvb, *offsetp, 2, byte_order);
17440  *offsetp += 2;
17441  }
17442 }
17443 
17444 static void xineramaQueryVersion(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
17445 {
17446  proto_tree_add_item(t, hf_x11_xinerama_QueryVersion_major, tvb, *offsetp, 1, byte_order);
17447  *offsetp += 1;
17448  proto_tree_add_item(t, hf_x11_xinerama_QueryVersion_minor, tvb, *offsetp, 1, byte_order);
17449  *offsetp += 1;
17450 }
17451 static void xineramaQueryVersion_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
17452 {
17453  int sequence_number;
17454 
17455  col_append_fstr(pinfo->cinfo, COL_INFO, "-QueryVersion");
17456 
17457  REPLY(reply);
17458  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
17459  *offsetp += 1;
17460  sequence_number = tvb_get_guint16(tvb, *offsetp, byte_order);
17461  proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
17462  "%d (xinerama-QueryVersion)", sequence_number);
17463  *offsetp += 2;
17464  proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
17465  *offsetp += 4;
17466  proto_tree_add_item(t, hf_x11_xinerama_QueryVersion_reply_major, tvb, *offsetp, 2, byte_order);
17467  *offsetp += 2;
17468  proto_tree_add_item(t, hf_x11_xinerama_QueryVersion_reply_minor, tvb, *offsetp, 2, byte_order);
17469  *offsetp += 2;
17470 }
17471 
17472 static void xineramaGetState(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
17473 {
17474  proto_tree_add_item(t, hf_x11_xinerama_GetState_window, tvb, *offsetp, 4, byte_order);
17475  *offsetp += 4;
17476 }
17477 static void xineramaGetState_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
17478 {
17479  int sequence_number;
17480 
17481  col_append_fstr(pinfo->cinfo, COL_INFO, "-GetState");
17482 
17483  REPLY(reply);
17484  proto_tree_add_item(t, hf_x11_xinerama_GetState_reply_state, tvb, *offsetp, 1, ENC_NA);
17485  *offsetp += 1;
17486  sequence_number = tvb_get_guint16(tvb, *offsetp, byte_order);
17487  proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
17488  "%d (xinerama-GetState)", sequence_number);
17489  *offsetp += 2;
17490  proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
17491  *offsetp += 4;
17492  proto_tree_add_item(t, hf_x11_xinerama_GetState_reply_window, tvb, *offsetp, 4, byte_order);
17493  *offsetp += 4;
17494 }
17495 
17496 static void xineramaGetScreenCount(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
17497 {
17498  proto_tree_add_item(t, hf_x11_xinerama_GetScreenCount_window, tvb, *offsetp, 4, byte_order);
17499  *offsetp += 4;
17500 }
17501 static void xineramaGetScreenCount_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
17502 {
17503  int sequence_number;
17504 
17505  col_append_fstr(pinfo->cinfo, COL_INFO, "-GetScreenCount");
17506 
17507  REPLY(reply);
17508  proto_tree_add_item(t, hf_x11_xinerama_GetScreenCount_reply_screen_count, tvb, *offsetp, 1, ENC_NA);
17509  *offsetp += 1;
17510  sequence_number = tvb_get_guint16(tvb, *offsetp, byte_order);
17511  proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
17512  "%d (xinerama-GetScreenCount)", sequence_number);
17513  *offsetp += 2;
17514  proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
17515  *offsetp += 4;
17516  proto_tree_add_item(t, hf_x11_xinerama_GetScreenCount_reply_window, tvb, *offsetp, 4, byte_order);
17517  *offsetp += 4;
17518 }
17519 
17520 static void xineramaGetScreenSize(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
17521 {
17522  proto_tree_add_item(t, hf_x11_xinerama_GetScreenSize_window, tvb, *offsetp, 4, byte_order);
17523  *offsetp += 4;
17524  proto_tree_add_item(t, hf_x11_xinerama_GetScreenSize_screen, tvb, *offsetp, 4, byte_order);
17525  *offsetp += 4;
17526 }
17527 static void xineramaGetScreenSize_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
17528 {
17529  int sequence_number;
17530 
17531  col_append_fstr(pinfo->cinfo, COL_INFO, "-GetScreenSize");
17532 
17533  REPLY(reply);
17534  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
17535  *offsetp += 1;
17536  sequence_number = tvb_get_guint16(tvb, *offsetp, byte_order);
17537  proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
17538  "%d (xinerama-GetScreenSize)", sequence_number);
17539  *offsetp += 2;
17540  proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
17541  *offsetp += 4;
17542  proto_tree_add_item(t, hf_x11_xinerama_GetScreenSize_reply_width, tvb, *offsetp, 4, byte_order);
17543  *offsetp += 4;
17544  proto_tree_add_item(t, hf_x11_xinerama_GetScreenSize_reply_height, tvb, *offsetp, 4, byte_order);
17545  *offsetp += 4;
17546  proto_tree_add_item(t, hf_x11_xinerama_GetScreenSize_reply_window, tvb, *offsetp, 4, byte_order);
17547  *offsetp += 4;
17548  proto_tree_add_item(t, hf_x11_xinerama_GetScreenSize_reply_screen, tvb, *offsetp, 4, byte_order);
17549  *offsetp += 4;
17550 }
17551 
17552 static void xineramaIsActive(tvbuff_t *tvb _U_, packet_info *pinfo _U_, int *offsetp _U_, proto_tree *t _U_, guint byte_order _U_, int length _U_)
17553 {
17554 }
17555 static void xineramaIsActive_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
17556 {
17557  int sequence_number;
17558 
17559  col_append_fstr(pinfo->cinfo, COL_INFO, "-IsActive");
17560 
17561  REPLY(reply);
17562  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
17563  *offsetp += 1;
17564  sequence_number = tvb_get_guint16(tvb, *offsetp, byte_order);
17565  proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
17566  "%d (xinerama-IsActive)", sequence_number);
17567  *offsetp += 2;
17568  proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
17569  *offsetp += 4;
17570  proto_tree_add_item(t, hf_x11_xinerama_IsActive_reply_state, tvb, *offsetp, 4, byte_order);
17571  *offsetp += 4;
17572 }
17573 
17574 static void xineramaQueryScreens(tvbuff_t *tvb _U_, packet_info *pinfo _U_, int *offsetp _U_, proto_tree *t _U_, guint byte_order _U_, int length _U_)
17575 {
17576 }
17577 static void xineramaQueryScreens_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
17578 {
17579  int sequence_number;
17580  int f_number;
17581 
17582  col_append_fstr(pinfo->cinfo, COL_INFO, "-QueryScreens");
17583 
17584  REPLY(reply);
17585  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
17586  *offsetp += 1;
17587  sequence_number = tvb_get_guint16(tvb, *offsetp, byte_order);
17588  proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
17589  "%d (xinerama-QueryScreens)", sequence_number);
17590  *offsetp += 2;
17591  proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
17592  *offsetp += 4;
17593  f_number = tvb_get_guint32(tvb, *offsetp, byte_order);
17594  proto_tree_add_item(t, hf_x11_xinerama_QueryScreens_reply_number, tvb, *offsetp, 4, byte_order);
17595  *offsetp += 4;
17596  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 20, ENC_NA);
17597  *offsetp += 20;
17598  struct_xinerama_ScreenInfo(tvb, offsetp, t, byte_order, f_number);
17599 }
17600 static const value_string xinerama_extension_minor[] = {
17601  { 0, "QueryVersion" },
17602  { 1, "GetState" },
17603  { 2, "GetScreenCount" },
17604  { 3, "GetScreenSize" },
17605  { 4, "IsActive" },
17606  { 5, "QueryScreens" },
17607  { 0, NULL }
17608 };
17609 const x11_event_info xinerama_events[] = {
17610  { NULL, NULL }
17611 };
17612 static x11_reply_info xinerama_replies[] = {
17613  { 0, xineramaQueryVersion_Reply },
17614  { 1, xineramaGetState_Reply },
17615  { 2, xineramaGetScreenCount_Reply },
17616  { 3, xineramaGetScreenSize_Reply },
17617  { 4, xineramaIsActive_Reply },
17618  { 5, xineramaQueryScreens_Reply },
17619  { 0, NULL }
17620 };
17621 
17622 static void dispatch_xinerama(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
17623 {
17624  int minor, length;
17625  minor = CARD8(xinerama_extension_minor);
17626  length = REQUEST_LENGTH();
17627 
17628  col_append_fstr(pinfo->cinfo, COL_INFO, "-%s",
17629  val_to_str(minor, xinerama_extension_minor,
17630  "<Unknown opcode %d>"));
17631  switch (minor) {
17632  case 0:
17633  xineramaQueryVersion(tvb, pinfo, offsetp, t, byte_order, length);
17634  break;
17635  case 1:
17636  xineramaGetState(tvb, pinfo, offsetp, t, byte_order, length);
17637  break;
17638  case 2:
17639  xineramaGetScreenCount(tvb, pinfo, offsetp, t, byte_order, length);
17640  break;
17641  case 3:
17642  xineramaGetScreenSize(tvb, pinfo, offsetp, t, byte_order, length);
17643  break;
17644  case 4:
17645  xineramaIsActive(tvb, pinfo, offsetp, t, byte_order, length);
17646  break;
17647  case 5:
17648  xineramaQueryScreens(tvb, pinfo, offsetp, t, byte_order, length);
17649  break;
17650  /* No need for a default case here, since Unknown is printed above,
17651  and UNDECODED() is taken care of by dissect_x11_request */
17652  }
17653 }
17654 
17655 static void register_xinerama(void)
17656 {
17657  set_handler("XINERAMA", dispatch_xinerama, xinerama_errors, xinerama_events, NULL, xinerama_replies);
17658 }
17659 
17660 static void struct_xinput_FP3232(tvbuff_t *tvb, int *offsetp, proto_tree *root, guint byte_order _U_, int count)
17661 {
17662  int i;
17663  for (i = 0; i < count; i++) {
17664  proto_item *item;
17665  proto_tree *t;
17666 
17667  item = proto_tree_add_item(root, hf_x11_struct_xinput_FP3232, tvb, *offsetp, 8, ENC_NA);
17668  t = proto_item_add_subtree(item, ett_x11_rectangle);
17669  proto_tree_add_item(t, hf_x11_struct_xinput_FP3232_integral, tvb, *offsetp, 4, byte_order);
17670  *offsetp += 4;
17671  proto_tree_add_item(t, hf_x11_struct_xinput_FP3232_frac, tvb, *offsetp, 4, byte_order);
17672  *offsetp += 4;
17673  }
17674 }
17675 
17676 static void xinputGetExtensionVersion(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
17677 {
17678  int f_name_len;
17679  f_name_len = tvb_get_guint16(tvb, *offsetp, byte_order);
17680  proto_tree_add_item(t, hf_x11_xinput_GetExtensionVersion_name_len, tvb, *offsetp, 2, byte_order);
17681  *offsetp += 2;
17682  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 2, ENC_NA);
17683  *offsetp += 2;
17684  listOfByte(tvb, offsetp, t, hf_x11_xinput_GetExtensionVersion_name, f_name_len, byte_order);
17685  length -= f_name_len * 1;
17686 }
17687 static void xinputGetExtensionVersion_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
17688 {
17689  int sequence_number;
17690 
17691  col_append_fstr(pinfo->cinfo, COL_INFO, "-GetExtensionVersion");
17692 
17693  REPLY(reply);
17694  proto_tree_add_item(t, hf_x11_xinput_GetExtensionVersion_reply_xi_reply_type, tvb, *offsetp, 1, byte_order);
17695  *offsetp += 1;
17696  sequence_number = tvb_get_guint16(tvb, *offsetp, byte_order);
17697  proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
17698  "%d (xinput-GetExtensionVersion)", sequence_number);
17699  *offsetp += 2;
17700  proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
17701  *offsetp += 4;
17702  proto_tree_add_item(t, hf_x11_xinput_GetExtensionVersion_reply_server_major, tvb, *offsetp, 2, byte_order);
17703  *offsetp += 2;
17704  proto_tree_add_item(t, hf_x11_xinput_GetExtensionVersion_reply_server_minor, tvb, *offsetp, 2, byte_order);
17705  *offsetp += 2;
17706  proto_tree_add_item(t, hf_x11_xinput_GetExtensionVersion_reply_present, tvb, *offsetp, 1, byte_order);
17707  *offsetp += 1;
17708  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 19, ENC_NA);
17709  *offsetp += 19;
17710 }
17711 
17712 static void struct_xinput_DeviceInfo(tvbuff_t *tvb, int *offsetp, proto_tree *root, guint byte_order _U_, int count)
17713 {
17714  int i;
17715  for (i = 0; i < count; i++) {
17716  proto_item *item;
17717  proto_tree *t;
17718 
17719  item = proto_tree_add_item(root, hf_x11_struct_xinput_DeviceInfo, tvb, *offsetp, 8, ENC_NA);
17720  t = proto_item_add_subtree(item, ett_x11_rectangle);
17721  proto_tree_add_item(t, hf_x11_struct_xinput_DeviceInfo_device_type, tvb, *offsetp, 4, byte_order);
17722  *offsetp += 4;
17723  proto_tree_add_item(t, hf_x11_struct_xinput_DeviceInfo_device_id, tvb, *offsetp, 1, byte_order);
17724  *offsetp += 1;
17725  proto_tree_add_item(t, hf_x11_struct_xinput_DeviceInfo_num_class_info, tvb, *offsetp, 1, byte_order);
17726  *offsetp += 1;
17727  field8(tvb, offsetp, t, hf_x11_struct_xinput_DeviceInfo_device_use, byte_order);
17728  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
17729  *offsetp += 1;
17730  }
17731 }
17732 
17733 static void struct_xinput_AxisInfo(tvbuff_t *tvb, int *offsetp, proto_tree *root, guint byte_order _U_, int count)
17734 {
17735  int i;
17736  for (i = 0; i < count; i++) {
17737  proto_item *item;
17738  proto_tree *t;
17739 
17740  item = proto_tree_add_item(root, hf_x11_struct_xinput_AxisInfo, tvb, *offsetp, 12, ENC_NA);
17741  t = proto_item_add_subtree(item, ett_x11_rectangle);
17742  proto_tree_add_item(t, hf_x11_struct_xinput_AxisInfo_resolution, tvb, *offsetp, 4, byte_order);
17743  *offsetp += 4;
17744  proto_tree_add_item(t, hf_x11_struct_xinput_AxisInfo_minimum, tvb, *offsetp, 4, byte_order);
17745  *offsetp += 4;
17746  proto_tree_add_item(t, hf_x11_struct_xinput_AxisInfo_maximum, tvb, *offsetp, 4, byte_order);
17747  *offsetp += 4;
17748  }
17749 }
17750 
17751 static int struct_size_xinput_InputInfo(tvbuff_t *tvb _U_, int *offsetp _U_, guint byte_order _U_)
17752 {
17753  int size = 0;
17754  return size + 2;
17755 }
17756 
17757 static void struct_xinput_InputInfo(tvbuff_t *tvb, int *offsetp, proto_tree *root, guint byte_order _U_, int count)
17758 {
17759  int i;
17760  for (i = 0; i < count; i++) {
17761  proto_item *item;
17762  proto_tree *t;
17763  int f_class_id;
17764 
17765  item = proto_tree_add_item(root, hf_x11_struct_xinput_InputInfo, tvb, *offsetp, struct_size_xinput_InputInfo(tvb, offsetp, byte_order), ENC_NA);
17766  t = proto_item_add_subtree(item, ett_x11_rectangle);
17767  f_class_id = field8(tvb, offsetp, t, hf_x11_struct_xinput_InputInfo_class_id, byte_order);
17768  proto_tree_add_item(t, hf_x11_struct_xinput_InputInfo_len, tvb, *offsetp, 1, byte_order);
17769  *offsetp += 1;
17770  if (f_class_id == 0) {
17771  proto_tree_add_item(t, hf_x11_struct_xinput_InputInfo_Key_min_keycode, tvb, *offsetp, 1, byte_order);
17772  *offsetp += 1;
17773  proto_tree_add_item(t, hf_x11_struct_xinput_InputInfo_Key_max_keycode, tvb, *offsetp, 1, byte_order);
17774  *offsetp += 1;
17775  proto_tree_add_item(t, hf_x11_struct_xinput_InputInfo_Key_num_keys, tvb, *offsetp, 2, byte_order);
17776  *offsetp += 2;
17777  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 2, ENC_NA);
17778  *offsetp += 2;
17779  }
17780  if (f_class_id == 1) {
17781  proto_tree_add_item(t, hf_x11_struct_xinput_InputInfo_Button_num_buttons, tvb, *offsetp, 2, byte_order);
17782  *offsetp += 2;
17783  }
17784  if (f_class_id == 2) {
17785  int f_axes_len;
17786  f_axes_len = tvb_get_guint8(tvb, *offsetp);
17787  proto_tree_add_item(t, hf_x11_struct_xinput_InputInfo_Valuator_axes_len, tvb, *offsetp, 1, byte_order);
17788  *offsetp += 1;
17789  field8(tvb, offsetp, t, hf_x11_struct_xinput_InputInfo_Valuator_mode, byte_order);
17790  proto_tree_add_item(t, hf_x11_struct_xinput_InputInfo_Valuator_motion_size, tvb, *offsetp, 4, byte_order);
17791  *offsetp += 4;
17792  struct_xinput_AxisInfo(tvb, offsetp, t, byte_order, f_axes_len);
17793  }
17794  }
17795 }
17796 
17797 static void xinputListInputDevices(tvbuff_t *tvb _U_, packet_info *pinfo _U_, int *offsetp _U_, proto_tree *t _U_, guint byte_order _U_, int length _U_)
17798 {
17799 }
17800 static void xinputListInputDevices_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
17801 {
17802  int sequence_number;
17803  int f_devices_len;
17804  int sumof_devices = 0;
17805 
17806  col_append_fstr(pinfo->cinfo, COL_INFO, "-ListInputDevices");
17807 
17808  REPLY(reply);
17809  proto_tree_add_item(t, hf_x11_xinput_ListInputDevices_reply_xi_reply_type, tvb, *offsetp, 1, byte_order);
17810  *offsetp += 1;
17811  sequence_number = tvb_get_guint16(tvb, *offsetp, byte_order);
17812  proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
17813  "%d (xinput-ListInputDevices)", sequence_number);
17814  *offsetp += 2;
17815  proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
17816  *offsetp += 4;
17817  f_devices_len = tvb_get_guint8(tvb, *offsetp);
17818  proto_tree_add_item(t, hf_x11_xinput_ListInputDevices_reply_devices_len, tvb, *offsetp, 1, byte_order);
17819  *offsetp += 1;
17820  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 23, ENC_NA);
17821  *offsetp += 23;
17822  struct_xinput_DeviceInfo(tvb, offsetp, t, byte_order, f_devices_len);
17823  struct_xinput_InputInfo(tvb, offsetp, t, byte_order, sumof_devices);
17824  struct_xproto_STR(tvb, offsetp, t, byte_order, f_devices_len);
17825  if (*offsetp % 4) {
17826  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, (4 - *offsetp % 4), ENC_NA);
17827  *offsetp += (4 - *offsetp % 4);
17828  }
17829 }
17830 
17831 static void struct_xinput_InputClassInfo(tvbuff_t *tvb, int *offsetp, proto_tree *root, guint byte_order _U_, int count)
17832 {
17833  int i;
17834  for (i = 0; i < count; i++) {
17835  proto_item *item;
17836  proto_tree *t;
17837 
17838  item = proto_tree_add_item(root, hf_x11_struct_xinput_InputClassInfo, tvb, *offsetp, 2, ENC_NA);
17839  t = proto_item_add_subtree(item, ett_x11_rectangle);
17840  field8(tvb, offsetp, t, hf_x11_struct_xinput_InputClassInfo_class_id, byte_order);
17841  proto_tree_add_item(t, hf_x11_struct_xinput_InputClassInfo_event_type_base, tvb, *offsetp, 1, byte_order);
17842  *offsetp += 1;
17843  }
17844 }
17845 
17846 static void xinputOpenDevice(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
17847 {
17848  proto_tree_add_item(t, hf_x11_xinput_OpenDevice_device_id, tvb, *offsetp, 1, byte_order);
17849  *offsetp += 1;
17850  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 3, ENC_NA);
17851  *offsetp += 3;
17852 }
17853 static void xinputOpenDevice_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
17854 {
17855  int sequence_number;
17856  int f_num_classes;
17857 
17858  col_append_fstr(pinfo->cinfo, COL_INFO, "-OpenDevice");
17859 
17860  REPLY(reply);
17861  proto_tree_add_item(t, hf_x11_xinput_OpenDevice_reply_xi_reply_type, tvb, *offsetp, 1, byte_order);
17862  *offsetp += 1;
17863  sequence_number = tvb_get_guint16(tvb, *offsetp, byte_order);
17864  proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
17865  "%d (xinput-OpenDevice)", sequence_number);
17866  *offsetp += 2;
17867  proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
17868  *offsetp += 4;
17869  f_num_classes = tvb_get_guint8(tvb, *offsetp);
17870  proto_tree_add_item(t, hf_x11_xinput_OpenDevice_reply_num_classes, tvb, *offsetp, 1, byte_order);
17871  *offsetp += 1;
17872  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 23, ENC_NA);
17873  *offsetp += 23;
17874  struct_xinput_InputClassInfo(tvb, offsetp, t, byte_order, f_num_classes);
17875  if (*offsetp % 4) {
17876  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, (4 - *offsetp % 4), ENC_NA);
17877  *offsetp += (4 - *offsetp % 4);
17878  }
17879 }
17880 
17881 static void xinputCloseDevice(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
17882 {
17883  proto_tree_add_item(t, hf_x11_xinput_CloseDevice_device_id, tvb, *offsetp, 1, byte_order);
17884  *offsetp += 1;
17885  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 3, ENC_NA);
17886  *offsetp += 3;
17887 }
17888 
17889 static void xinputSetDeviceMode(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
17890 {
17891  proto_tree_add_item(t, hf_x11_xinput_SetDeviceMode_device_id, tvb, *offsetp, 1, byte_order);
17892  *offsetp += 1;
17893  field8(tvb, offsetp, t, hf_x11_xinput_SetDeviceMode_mode, byte_order);
17894  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 2, ENC_NA);
17895  *offsetp += 2;
17896 }
17897 static void xinputSetDeviceMode_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
17898 {
17899  int sequence_number;
17900 
17901  col_append_fstr(pinfo->cinfo, COL_INFO, "-SetDeviceMode");
17902 
17903  REPLY(reply);
17904  proto_tree_add_item(t, hf_x11_xinput_SetDeviceMode_reply_xi_reply_type, tvb, *offsetp, 1, byte_order);
17905  *offsetp += 1;
17906  sequence_number = tvb_get_guint16(tvb, *offsetp, byte_order);
17907  proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
17908  "%d (xinput-SetDeviceMode)", sequence_number);
17909  *offsetp += 2;
17910  proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
17911  *offsetp += 4;
17912  field8(tvb, offsetp, t, hf_x11_xinput_SetDeviceMode_reply_status, byte_order);
17913  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 23, ENC_NA);
17914  *offsetp += 23;
17915 }
17916 
17917 static void xinputSelectExtensionEvent(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
17918 {
17919  int f_num_classes;
17920  proto_tree_add_item(t, hf_x11_xinput_SelectExtensionEvent_window, tvb, *offsetp, 4, byte_order);
17921  *offsetp += 4;
17922  f_num_classes = tvb_get_guint16(tvb, *offsetp, byte_order);
17923  proto_tree_add_item(t, hf_x11_xinput_SelectExtensionEvent_num_classes, tvb, *offsetp, 2, byte_order);
17924  *offsetp += 2;
17925  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 2, ENC_NA);
17926  *offsetp += 2;
17927  listOfCard32(tvb, offsetp, t, hf_x11_xinput_SelectExtensionEvent_classes, hf_x11_xinput_SelectExtensionEvent_classes_item, f_num_classes, byte_order);
17928  length -= f_num_classes * 4;
17929 }
17930 
17931 static void xinputGetSelectedExtensionEvents(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
17932 {
17933  proto_tree_add_item(t, hf_x11_xinput_GetSelectedExtensionEvents_window, tvb, *offsetp, 4, byte_order);
17934  *offsetp += 4;
17935 }
17936 static void xinputGetSelectedExtensionEvents_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
17937 {
17938  int sequence_number;
17939  int f_num_this_classes;
17940  int f_num_all_classes;
17941 
17942  col_append_fstr(pinfo->cinfo, COL_INFO, "-GetSelectedExtensionEvents");
17943 
17944  REPLY(reply);
17945  proto_tree_add_item(t, hf_x11_xinput_GetSelectedExtensionEvents_reply_xi_reply_type, tvb, *offsetp, 1, byte_order);
17946  *offsetp += 1;
17947  sequence_number = tvb_get_guint16(tvb, *offsetp, byte_order);
17948  proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
17949  "%d (xinput-GetSelectedExtensionEvents)", sequence_number);
17950  *offsetp += 2;
17951  proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
17952  *offsetp += 4;
17953  f_num_this_classes = tvb_get_guint16(tvb, *offsetp, byte_order);
17954  proto_tree_add_item(t, hf_x11_xinput_GetSelectedExtensionEvents_reply_num_this_classes, tvb, *offsetp, 2, byte_order);
17955  *offsetp += 2;
17956  f_num_all_classes = tvb_get_guint16(tvb, *offsetp, byte_order);
17957  proto_tree_add_item(t, hf_x11_xinput_GetSelectedExtensionEvents_reply_num_all_classes, tvb, *offsetp, 2, byte_order);
17958  *offsetp += 2;
17959  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 20, ENC_NA);
17960  *offsetp += 20;
17961  listOfCard32(tvb, offsetp, t, hf_x11_xinput_GetSelectedExtensionEvents_reply_this_classes, hf_x11_xinput_GetSelectedExtensionEvents_reply_this_classes_item, f_num_this_classes, byte_order);
17962  listOfCard32(tvb, offsetp, t, hf_x11_xinput_GetSelectedExtensionEvents_reply_all_classes, hf_x11_xinput_GetSelectedExtensionEvents_reply_all_classes_item, f_num_all_classes, byte_order);
17963 }
17964 
17965 static void xinputChangeDeviceDontPropagateList(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
17966 {
17967  int f_num_classes;
17968  proto_tree_add_item(t, hf_x11_xinput_ChangeDeviceDontPropagateList_window, tvb, *offsetp, 4, byte_order);
17969  *offsetp += 4;
17970  f_num_classes = tvb_get_guint16(tvb, *offsetp, byte_order);
17971  proto_tree_add_item(t, hf_x11_xinput_ChangeDeviceDontPropagateList_num_classes, tvb, *offsetp, 2, byte_order);
17972  *offsetp += 2;
17973  field8(tvb, offsetp, t, hf_x11_xinput_ChangeDeviceDontPropagateList_mode, byte_order);
17974  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
17975  *offsetp += 1;
17976  listOfCard32(tvb, offsetp, t, hf_x11_xinput_ChangeDeviceDontPropagateList_classes, hf_x11_xinput_ChangeDeviceDontPropagateList_classes_item, f_num_classes, byte_order);
17977  length -= f_num_classes * 4;
17978 }
17979 
17980 static void xinputGetDeviceDontPropagateList(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
17981 {
17982  proto_tree_add_item(t, hf_x11_xinput_GetDeviceDontPropagateList_window, tvb, *offsetp, 4, byte_order);
17983  *offsetp += 4;
17984 }
17985 static void xinputGetDeviceDontPropagateList_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
17986 {
17987  int sequence_number;
17988  int f_num_classes;
17989 
17990  col_append_fstr(pinfo->cinfo, COL_INFO, "-GetDeviceDontPropagateList");
17991 
17992  REPLY(reply);
17993  proto_tree_add_item(t, hf_x11_xinput_GetDeviceDontPropagateList_reply_xi_reply_type, tvb, *offsetp, 1, byte_order);
17994  *offsetp += 1;
17995  sequence_number = tvb_get_guint16(tvb, *offsetp, byte_order);
17996  proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
17997  "%d (xinput-GetDeviceDontPropagateList)", sequence_number);
17998  *offsetp += 2;
17999  proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
18000  *offsetp += 4;
18001  f_num_classes = tvb_get_guint16(tvb, *offsetp, byte_order);
18002  proto_tree_add_item(t, hf_x11_xinput_GetDeviceDontPropagateList_reply_num_classes, tvb, *offsetp, 2, byte_order);
18003  *offsetp += 2;
18004  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 22, ENC_NA);
18005  *offsetp += 22;
18006  listOfCard32(tvb, offsetp, t, hf_x11_xinput_GetDeviceDontPropagateList_reply_classes, hf_x11_xinput_GetDeviceDontPropagateList_reply_classes_item, f_num_classes, byte_order);
18007 }
18008 
18009 static int struct_size_xinput_DeviceTimeCoord(tvbuff_t *tvb _U_, int *offsetp _U_, guint byte_order _U_, int p_num_axes)
18010 {
18011  int size = 0;
18012  size += p_num_axes * 4;
18013  return size + 4;
18014 }
18015 
18016 static void struct_xinput_DeviceTimeCoord(tvbuff_t *tvb, int *offsetp, proto_tree *root, guint byte_order _U_, int count, int p_num_axes)
18017 {
18018  int i;
18019  for (i = 0; i < count; i++) {
18020  proto_item *item;
18021  proto_tree *t;
18022 
18023  item = proto_tree_add_item(root, hf_x11_struct_xinput_DeviceTimeCoord, tvb, *offsetp, struct_size_xinput_DeviceTimeCoord(tvb, offsetp, byte_order, p_num_axes), ENC_NA);
18024  t = proto_item_add_subtree(item, ett_x11_rectangle);
18025  proto_tree_add_item(t, hf_x11_struct_xinput_DeviceTimeCoord_time, tvb, *offsetp, 4, byte_order);
18026  *offsetp += 4;
18027  listOfInt32(tvb, offsetp, t, hf_x11_struct_xinput_DeviceTimeCoord_axisvalues, hf_x11_struct_xinput_DeviceTimeCoord_axisvalues_item, p_num_axes, byte_order);
18028  }
18029 }
18030 
18031 static void xinputGetDeviceMotionEvents(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
18032 {
18033  proto_tree_add_item(t, hf_x11_xinput_GetDeviceMotionEvents_start, tvb, *offsetp, 4, byte_order);
18034  *offsetp += 4;
18035  field32(tvb, offsetp, t, hf_x11_xinput_GetDeviceMotionEvents_stop, byte_order);
18036  proto_tree_add_item(t, hf_x11_xinput_GetDeviceMotionEvents_device_id, tvb, *offsetp, 1, byte_order);
18037  *offsetp += 1;
18038  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 3, ENC_NA);
18039  *offsetp += 3;
18040 }
18041 static void xinputGetDeviceMotionEvents_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
18042 {
18043  int sequence_number;
18044  int f_num_events;
18045  int f_num_axes;
18046 
18047  col_append_fstr(pinfo->cinfo, COL_INFO, "-GetDeviceMotionEvents");
18048 
18049  REPLY(reply);
18050  proto_tree_add_item(t, hf_x11_xinput_GetDeviceMotionEvents_reply_xi_reply_type, tvb, *offsetp, 1, byte_order);
18051  *offsetp += 1;
18052  sequence_number = tvb_get_guint16(tvb, *offsetp, byte_order);
18053  proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
18054  "%d (xinput-GetDeviceMotionEvents)", sequence_number);
18055  *offsetp += 2;
18056  proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
18057  *offsetp += 4;
18058  f_num_events = tvb_get_guint32(tvb, *offsetp, byte_order);
18059  proto_tree_add_item(t, hf_x11_xinput_GetDeviceMotionEvents_reply_num_events, tvb, *offsetp, 4, byte_order);
18060  *offsetp += 4;
18061  f_num_axes = tvb_get_guint8(tvb, *offsetp);
18062  proto_tree_add_item(t, hf_x11_xinput_GetDeviceMotionEvents_reply_num_axes, tvb, *offsetp, 1, byte_order);
18063  *offsetp += 1;
18064  field8(tvb, offsetp, t, hf_x11_xinput_GetDeviceMotionEvents_reply_device_mode, byte_order);
18065  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 18, ENC_NA);
18066  *offsetp += 18;
18067  struct_xinput_DeviceTimeCoord(tvb, offsetp, t, byte_order, f_num_events, f_num_axes);
18068 }
18069 
18070 static void xinputChangeKeyboardDevice(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
18071 {
18072  proto_tree_add_item(t, hf_x11_xinput_ChangeKeyboardDevice_device_id, tvb, *offsetp, 1, byte_order);
18073  *offsetp += 1;
18074  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 3, ENC_NA);
18075  *offsetp += 3;
18076 }
18077 static void xinputChangeKeyboardDevice_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
18078 {
18079  int sequence_number;
18080 
18081  col_append_fstr(pinfo->cinfo, COL_INFO, "-ChangeKeyboardDevice");
18082 
18083  REPLY(reply);
18084  proto_tree_add_item(t, hf_x11_xinput_ChangeKeyboardDevice_reply_xi_reply_type, tvb, *offsetp, 1, byte_order);
18085  *offsetp += 1;
18086  sequence_number = tvb_get_guint16(tvb, *offsetp, byte_order);
18087  proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
18088  "%d (xinput-ChangeKeyboardDevice)", sequence_number);
18089  *offsetp += 2;
18090  proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
18091  *offsetp += 4;
18092  field8(tvb, offsetp, t, hf_x11_xinput_ChangeKeyboardDevice_reply_status, byte_order);
18093  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 23, ENC_NA);
18094  *offsetp += 23;
18095 }
18096 
18097 static void xinputChangePointerDevice(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
18098 {
18099  proto_tree_add_item(t, hf_x11_xinput_ChangePointerDevice_x_axis, tvb, *offsetp, 1, byte_order);
18100  *offsetp += 1;
18101  proto_tree_add_item(t, hf_x11_xinput_ChangePointerDevice_y_axis, tvb, *offsetp, 1, byte_order);
18102  *offsetp += 1;
18103  proto_tree_add_item(t, hf_x11_xinput_ChangePointerDevice_device_id, tvb, *offsetp, 1, byte_order);
18104  *offsetp += 1;
18105  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
18106  *offsetp += 1;
18107 }
18108 static void xinputChangePointerDevice_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
18109 {
18110  int sequence_number;
18111 
18112  col_append_fstr(pinfo->cinfo, COL_INFO, "-ChangePointerDevice");
18113 
18114  REPLY(reply);
18115  proto_tree_add_item(t, hf_x11_xinput_ChangePointerDevice_reply_xi_reply_type, tvb, *offsetp, 1, byte_order);
18116  *offsetp += 1;
18117  sequence_number = tvb_get_guint16(tvb, *offsetp, byte_order);
18118  proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
18119  "%d (xinput-ChangePointerDevice)", sequence_number);
18120  *offsetp += 2;
18121  proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
18122  *offsetp += 4;
18123  field8(tvb, offsetp, t, hf_x11_xinput_ChangePointerDevice_reply_status, byte_order);
18124  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 23, ENC_NA);
18125  *offsetp += 23;
18126 }
18127 
18128 static void xinputGrabDevice(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
18129 {
18130  int f_num_classes;
18131  proto_tree_add_item(t, hf_x11_xinput_GrabDevice_grab_window, tvb, *offsetp, 4, byte_order);
18132  *offsetp += 4;
18133  field32(tvb, offsetp, t, hf_x11_xinput_GrabDevice_time, byte_order);
18134  f_num_classes = tvb_get_guint16(tvb, *offsetp, byte_order);
18135  proto_tree_add_item(t, hf_x11_xinput_GrabDevice_num_classes, tvb, *offsetp, 2, byte_order);
18136  *offsetp += 2;
18137  field8(tvb, offsetp, t, hf_x11_xinput_GrabDevice_this_device_mode, byte_order);
18138  field8(tvb, offsetp, t, hf_x11_xinput_GrabDevice_other_device_mode, byte_order);
18139  proto_tree_add_item(t, hf_x11_xinput_GrabDevice_owner_events, tvb, *offsetp, 1, byte_order);
18140  *offsetp += 1;
18141  proto_tree_add_item(t, hf_x11_xinput_GrabDevice_device_id, tvb, *offsetp, 1, byte_order);
18142  *offsetp += 1;
18143  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 2, ENC_NA);
18144  *offsetp += 2;
18145  listOfCard32(tvb, offsetp, t, hf_x11_xinput_GrabDevice_classes, hf_x11_xinput_GrabDevice_classes_item, f_num_classes, byte_order);
18146  length -= f_num_classes * 4;
18147 }
18148 static void xinputGrabDevice_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
18149 {
18150  int sequence_number;
18151 
18152  col_append_fstr(pinfo->cinfo, COL_INFO, "-GrabDevice");
18153 
18154  REPLY(reply);
18155  proto_tree_add_item(t, hf_x11_xinput_GrabDevice_reply_xi_reply_type, tvb, *offsetp, 1, byte_order);
18156  *offsetp += 1;
18157  sequence_number = tvb_get_guint16(tvb, *offsetp, byte_order);
18158  proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
18159  "%d (xinput-GrabDevice)", sequence_number);
18160  *offsetp += 2;
18161  proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
18162  *offsetp += 4;
18163  field8(tvb, offsetp, t, hf_x11_xinput_GrabDevice_reply_status, byte_order);
18164  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 23, ENC_NA);
18165  *offsetp += 23;
18166 }
18167 
18168 static void xinputUngrabDevice(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
18169 {
18170  field32(tvb, offsetp, t, hf_x11_xinput_UngrabDevice_time, byte_order);
18171  proto_tree_add_item(t, hf_x11_xinput_UngrabDevice_device_id, tvb, *offsetp, 1, byte_order);
18172  *offsetp += 1;
18173  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 3, ENC_NA);
18174  *offsetp += 3;
18175 }
18176 
18177 static void xinputGrabDeviceKey(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
18178 {
18179  int f_num_classes;
18180  proto_tree_add_item(t, hf_x11_xinput_GrabDeviceKey_grab_window, tvb, *offsetp, 4, byte_order);
18181  *offsetp += 4;
18182  f_num_classes = tvb_get_guint16(tvb, *offsetp, byte_order);
18183  proto_tree_add_item(t, hf_x11_xinput_GrabDeviceKey_num_classes, tvb, *offsetp, 2, byte_order);
18184  *offsetp += 2;
18185  {
18186  int* const modifiers_bits [] = {
18187  &hf_x11_xinput_GrabDeviceKey_modifiers_mask_Shift,
18188  &hf_x11_xinput_GrabDeviceKey_modifiers_mask_Lock,
18189  &hf_x11_xinput_GrabDeviceKey_modifiers_mask_Control,
18190  &hf_x11_xinput_GrabDeviceKey_modifiers_mask_1,
18191  &hf_x11_xinput_GrabDeviceKey_modifiers_mask_2,
18192  &hf_x11_xinput_GrabDeviceKey_modifiers_mask_3,
18193  &hf_x11_xinput_GrabDeviceKey_modifiers_mask_4,
18194  &hf_x11_xinput_GrabDeviceKey_modifiers_mask_5,
18195  &hf_x11_xinput_GrabDeviceKey_modifiers_mask_Any,
18196  NULL
18197  };
18198  proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_xinput_GrabDeviceKey_modifiers, ett_x11_rectangle, modifiers_bits, byte_order);
18199  }
18200  *offsetp += 2;
18201  field8(tvb, offsetp, t, hf_x11_xinput_GrabDeviceKey_modifier_device, byte_order);
18202  proto_tree_add_item(t, hf_x11_xinput_GrabDeviceKey_grabbed_device, tvb, *offsetp, 1, byte_order);
18203  *offsetp += 1;
18204  field8(tvb, offsetp, t, hf_x11_xinput_GrabDeviceKey_key, byte_order);
18205  field8(tvb, offsetp, t, hf_x11_xinput_GrabDeviceKey_this_device_mode, byte_order);
18206  field8(tvb, offsetp, t, hf_x11_xinput_GrabDeviceKey_other_device_mode, byte_order);
18207  proto_tree_add_item(t, hf_x11_xinput_GrabDeviceKey_owner_events, tvb, *offsetp, 1, byte_order);
18208  *offsetp += 1;
18209  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 2, ENC_NA);
18210  *offsetp += 2;
18211  listOfCard32(tvb, offsetp, t, hf_x11_xinput_GrabDeviceKey_classes, hf_x11_xinput_GrabDeviceKey_classes_item, f_num_classes, byte_order);
18212  length -= f_num_classes * 4;
18213 }
18214 
18215 static void xinputUngrabDeviceKey(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
18216 {
18217  proto_tree_add_item(t, hf_x11_xinput_UngrabDeviceKey_grabWindow, tvb, *offsetp, 4, byte_order);
18218  *offsetp += 4;
18219  {
18220  int* const modifiers_bits [] = {
18221  &hf_x11_xinput_UngrabDeviceKey_modifiers_mask_Shift,
18222  &hf_x11_xinput_UngrabDeviceKey_modifiers_mask_Lock,
18223  &hf_x11_xinput_UngrabDeviceKey_modifiers_mask_Control,
18224  &hf_x11_xinput_UngrabDeviceKey_modifiers_mask_1,
18225  &hf_x11_xinput_UngrabDeviceKey_modifiers_mask_2,
18226  &hf_x11_xinput_UngrabDeviceKey_modifiers_mask_3,
18227  &hf_x11_xinput_UngrabDeviceKey_modifiers_mask_4,
18228  &hf_x11_xinput_UngrabDeviceKey_modifiers_mask_5,
18229  &hf_x11_xinput_UngrabDeviceKey_modifiers_mask_Any,
18230  NULL
18231  };
18232  proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_xinput_UngrabDeviceKey_modifiers, ett_x11_rectangle, modifiers_bits, byte_order);
18233  }
18234  *offsetp += 2;
18235  field8(tvb, offsetp, t, hf_x11_xinput_UngrabDeviceKey_modifier_device, byte_order);
18236  field8(tvb, offsetp, t, hf_x11_xinput_UngrabDeviceKey_key, byte_order);
18237  proto_tree_add_item(t, hf_x11_xinput_UngrabDeviceKey_grabbed_device, tvb, *offsetp, 1, byte_order);
18238  *offsetp += 1;
18239 }
18240 
18241 static void xinputGrabDeviceButton(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
18242 {
18243  int f_num_classes;
18244  proto_tree_add_item(t, hf_x11_xinput_GrabDeviceButton_grab_window, tvb, *offsetp, 4, byte_order);
18245  *offsetp += 4;
18246  proto_tree_add_item(t, hf_x11_xinput_GrabDeviceButton_grabbed_device, tvb, *offsetp, 1, byte_order);
18247  *offsetp += 1;
18248  field8(tvb, offsetp, t, hf_x11_xinput_GrabDeviceButton_modifier_device, byte_order);
18249  f_num_classes = tvb_get_guint16(tvb, *offsetp, byte_order);
18250  proto_tree_add_item(t, hf_x11_xinput_GrabDeviceButton_num_classes, tvb, *offsetp, 2, byte_order);
18251  *offsetp += 2;
18252  {
18253  int* const modifiers_bits [] = {
18254  &hf_x11_xinput_GrabDeviceButton_modifiers_mask_Shift,
18255  &hf_x11_xinput_GrabDeviceButton_modifiers_mask_Lock,
18256  &hf_x11_xinput_GrabDeviceButton_modifiers_mask_Control,
18257  &hf_x11_xinput_GrabDeviceButton_modifiers_mask_1,
18258  &hf_x11_xinput_GrabDeviceButton_modifiers_mask_2,
18259  &hf_x11_xinput_GrabDeviceButton_modifiers_mask_3,
18260  &hf_x11_xinput_GrabDeviceButton_modifiers_mask_4,
18261  &hf_x11_xinput_GrabDeviceButton_modifiers_mask_5,
18262  &hf_x11_xinput_GrabDeviceButton_modifiers_mask_Any,
18263  NULL
18264  };
18265  proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_xinput_GrabDeviceButton_modifiers, ett_x11_rectangle, modifiers_bits, byte_order);
18266  }
18267  *offsetp += 2;
18268  field8(tvb, offsetp, t, hf_x11_xinput_GrabDeviceButton_this_device_mode, byte_order);
18269  field8(tvb, offsetp, t, hf_x11_xinput_GrabDeviceButton_other_device_mode, byte_order);
18270  field8(tvb, offsetp, t, hf_x11_xinput_GrabDeviceButton_button, byte_order);
18271  proto_tree_add_item(t, hf_x11_xinput_GrabDeviceButton_owner_events, tvb, *offsetp, 1, byte_order);
18272  *offsetp += 1;
18273  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 2, ENC_NA);
18274  *offsetp += 2;
18275  listOfCard32(tvb, offsetp, t, hf_x11_xinput_GrabDeviceButton_classes, hf_x11_xinput_GrabDeviceButton_classes_item, f_num_classes, byte_order);
18276  length -= f_num_classes * 4;
18277 }
18278 
18279 static void xinputUngrabDeviceButton(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
18280 {
18281  proto_tree_add_item(t, hf_x11_xinput_UngrabDeviceButton_grab_window, tvb, *offsetp, 4, byte_order);
18282  *offsetp += 4;
18283  {
18284  int* const modifiers_bits [] = {
18285  &hf_x11_xinput_UngrabDeviceButton_modifiers_mask_Shift,
18286  &hf_x11_xinput_UngrabDeviceButton_modifiers_mask_Lock,
18287  &hf_x11_xinput_UngrabDeviceButton_modifiers_mask_Control,
18288  &hf_x11_xinput_UngrabDeviceButton_modifiers_mask_1,
18289  &hf_x11_xinput_UngrabDeviceButton_modifiers_mask_2,
18290  &hf_x11_xinput_UngrabDeviceButton_modifiers_mask_3,
18291  &hf_x11_xinput_UngrabDeviceButton_modifiers_mask_4,
18292  &hf_x11_xinput_UngrabDeviceButton_modifiers_mask_5,
18293  &hf_x11_xinput_UngrabDeviceButton_modifiers_mask_Any,
18294  NULL
18295  };
18296  proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_xinput_UngrabDeviceButton_modifiers, ett_x11_rectangle, modifiers_bits, byte_order);
18297  }
18298  *offsetp += 2;
18299  field8(tvb, offsetp, t, hf_x11_xinput_UngrabDeviceButton_modifier_device, byte_order);
18300  field8(tvb, offsetp, t, hf_x11_xinput_UngrabDeviceButton_button, byte_order);
18301  proto_tree_add_item(t, hf_x11_xinput_UngrabDeviceButton_grabbed_device, tvb, *offsetp, 1, byte_order);
18302  *offsetp += 1;
18303  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 3, ENC_NA);
18304  *offsetp += 3;
18305 }
18306 
18307 static void xinputAllowDeviceEvents(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
18308 {
18309  field32(tvb, offsetp, t, hf_x11_xinput_AllowDeviceEvents_time, byte_order);
18310  field8(tvb, offsetp, t, hf_x11_xinput_AllowDeviceEvents_mode, byte_order);
18311  proto_tree_add_item(t, hf_x11_xinput_AllowDeviceEvents_device_id, tvb, *offsetp, 1, byte_order);
18312  *offsetp += 1;
18313  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 2, ENC_NA);
18314  *offsetp += 2;
18315 }
18316 
18317 static void xinputGetDeviceFocus(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
18318 {
18319  proto_tree_add_item(t, hf_x11_xinput_GetDeviceFocus_device_id, tvb, *offsetp, 1, byte_order);
18320  *offsetp += 1;
18321  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 3, ENC_NA);
18322  *offsetp += 3;
18323 }
18324 static void xinputGetDeviceFocus_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
18325 {
18326  int sequence_number;
18327 
18328  col_append_fstr(pinfo->cinfo, COL_INFO, "-GetDeviceFocus");
18329 
18330  REPLY(reply);
18331  proto_tree_add_item(t, hf_x11_xinput_GetDeviceFocus_reply_xi_reply_type, tvb, *offsetp, 1, byte_order);
18332  *offsetp += 1;
18333  sequence_number = tvb_get_guint16(tvb, *offsetp, byte_order);
18334  proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
18335  "%d (xinput-GetDeviceFocus)", sequence_number);
18336  *offsetp += 2;
18337  proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
18338  *offsetp += 4;
18339  field32(tvb, offsetp, t, hf_x11_xinput_GetDeviceFocus_reply_focus, byte_order);
18340  proto_tree_add_item(t, hf_x11_xinput_GetDeviceFocus_reply_time, tvb, *offsetp, 4, byte_order);
18341  *offsetp += 4;
18342  field8(tvb, offsetp, t, hf_x11_xinput_GetDeviceFocus_reply_revert_to, byte_order);
18343  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 15, ENC_NA);
18344  *offsetp += 15;
18345 }
18346 
18347 static void xinputSetDeviceFocus(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
18348 {
18349  field32(tvb, offsetp, t, hf_x11_xinput_SetDeviceFocus_focus, byte_order);
18350  field32(tvb, offsetp, t, hf_x11_xinput_SetDeviceFocus_time, byte_order);
18351  field8(tvb, offsetp, t, hf_x11_xinput_SetDeviceFocus_revert_to, byte_order);
18352  proto_tree_add_item(t, hf_x11_xinput_SetDeviceFocus_device_id, tvb, *offsetp, 1, byte_order);
18353  *offsetp += 1;
18354  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 2, ENC_NA);
18355  *offsetp += 2;
18356 }
18357 
18358 static int struct_size_xinput_FeedbackState(tvbuff_t *tvb _U_, int *offsetp _U_, guint byte_order _U_)
18359 {
18360  int size = 0;
18361  return size + 4;
18362 }
18363 
18364 static void struct_xinput_FeedbackState(tvbuff_t *tvb, int *offsetp, proto_tree *root, guint byte_order _U_, int count)
18365 {
18366  int i;
18367  for (i = 0; i < count; i++) {
18368  proto_item *item;
18369  proto_tree *t;
18370  int f_class_id;
18371 
18372  item = proto_tree_add_item(root, hf_x11_struct_xinput_FeedbackState, tvb, *offsetp, struct_size_xinput_FeedbackState(tvb, offsetp, byte_order), ENC_NA);
18373  t = proto_item_add_subtree(item, ett_x11_rectangle);
18374  f_class_id = field8(tvb, offsetp, t, hf_x11_struct_xinput_FeedbackState_class_id, byte_order);
18375  proto_tree_add_item(t, hf_x11_struct_xinput_FeedbackState_feedback_id, tvb, *offsetp, 1, byte_order);
18376  *offsetp += 1;
18377  proto_tree_add_item(t, hf_x11_struct_xinput_FeedbackState_len, tvb, *offsetp, 2, byte_order);
18378  *offsetp += 2;
18379  if (f_class_id == 0) {
18380  proto_tree_add_item(t, hf_x11_struct_xinput_FeedbackState_Keyboard_pitch, tvb, *offsetp, 2, byte_order);
18381  *offsetp += 2;
18382  proto_tree_add_item(t, hf_x11_struct_xinput_FeedbackState_Keyboard_duration, tvb, *offsetp, 2, byte_order);
18383  *offsetp += 2;
18384  proto_tree_add_item(t, hf_x11_struct_xinput_FeedbackState_Keyboard_led_mask, tvb, *offsetp, 4, byte_order);
18385  *offsetp += 4;
18386  proto_tree_add_item(t, hf_x11_struct_xinput_FeedbackState_Keyboard_led_values, tvb, *offsetp, 4, byte_order);
18387  *offsetp += 4;
18388  proto_tree_add_item(t, hf_x11_struct_xinput_FeedbackState_Keyboard_global_auto_repeat, tvb, *offsetp, 1, byte_order);
18389  *offsetp += 1;
18390  proto_tree_add_item(t, hf_x11_struct_xinput_FeedbackState_Keyboard_click, tvb, *offsetp, 1, byte_order);
18391  *offsetp += 1;
18392  proto_tree_add_item(t, hf_x11_struct_xinput_FeedbackState_Keyboard_percent, tvb, *offsetp, 1, byte_order);
18393  *offsetp += 1;
18394  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
18395  *offsetp += 1;
18396  listOfByte(tvb, offsetp, t, hf_x11_struct_xinput_FeedbackState_Keyboard_auto_repeats, 32, byte_order);
18397  }
18398  if (f_class_id == 1) {
18399  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 2, ENC_NA);
18400  *offsetp += 2;
18401  proto_tree_add_item(t, hf_x11_struct_xinput_FeedbackState_Pointer_accel_num, tvb, *offsetp, 2, byte_order);
18402  *offsetp += 2;
18403  proto_tree_add_item(t, hf_x11_struct_xinput_FeedbackState_Pointer_accel_denom, tvb, *offsetp, 2, byte_order);
18404  *offsetp += 2;
18405  proto_tree_add_item(t, hf_x11_struct_xinput_FeedbackState_Pointer_threshold, tvb, *offsetp, 2, byte_order);
18406  *offsetp += 2;
18407  }
18408  if (f_class_id == 2) {
18409  int f_num_keysyms;
18410  proto_tree_add_item(t, hf_x11_struct_xinput_FeedbackState_String_max_symbols, tvb, *offsetp, 2, byte_order);
18411  *offsetp += 2;
18412  f_num_keysyms = tvb_get_guint16(tvb, *offsetp, byte_order);
18413  proto_tree_add_item(t, hf_x11_struct_xinput_FeedbackState_String_num_keysyms, tvb, *offsetp, 2, byte_order);
18414  *offsetp += 2;
18415  listOfCard32(tvb, offsetp, t, hf_x11_struct_xinput_FeedbackState_String_keysyms, hf_x11_struct_xinput_FeedbackState_String_keysyms_item, f_num_keysyms, byte_order);
18416  }
18417  if (f_class_id == 3) {
18418  proto_tree_add_item(t, hf_x11_struct_xinput_FeedbackState_Integer_resolution, tvb, *offsetp, 4, byte_order);
18419  *offsetp += 4;
18420  proto_tree_add_item(t, hf_x11_struct_xinput_FeedbackState_Integer_min_value, tvb, *offsetp, 4, byte_order);
18421  *offsetp += 4;
18422  proto_tree_add_item(t, hf_x11_struct_xinput_FeedbackState_Integer_max_value, tvb, *offsetp, 4, byte_order);
18423  *offsetp += 4;
18424  }
18425  if (f_class_id == 4) {
18426  proto_tree_add_item(t, hf_x11_struct_xinput_FeedbackState_Led_led_mask, tvb, *offsetp, 4, byte_order);
18427  *offsetp += 4;
18428  proto_tree_add_item(t, hf_x11_struct_xinput_FeedbackState_Led_led_values, tvb, *offsetp, 4, byte_order);
18429  *offsetp += 4;
18430  }
18431  if (f_class_id == 5) {
18432  proto_tree_add_item(t, hf_x11_struct_xinput_FeedbackState_Bell_percent, tvb, *offsetp, 1, byte_order);
18433  *offsetp += 1;
18434  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 3, ENC_NA);
18435  *offsetp += 3;
18436  proto_tree_add_item(t, hf_x11_struct_xinput_FeedbackState_Bell_pitch, tvb, *offsetp, 2, byte_order);
18437  *offsetp += 2;
18438  proto_tree_add_item(t, hf_x11_struct_xinput_FeedbackState_Bell_duration, tvb, *offsetp, 2, byte_order);
18439  *offsetp += 2;
18440  }
18441  }
18442 }
18443 
18444 static void xinputGetFeedbackControl(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
18445 {
18446  proto_tree_add_item(t, hf_x11_xinput_GetFeedbackControl_device_id, tvb, *offsetp, 1, byte_order);
18447  *offsetp += 1;
18448  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 3, ENC_NA);
18449  *offsetp += 3;
18450 }
18451 static void xinputGetFeedbackControl_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
18452 {
18453  int sequence_number;
18454  int f_num_feedbacks;
18455 
18456  col_append_fstr(pinfo->cinfo, COL_INFO, "-GetFeedbackControl");
18457 
18458  REPLY(reply);
18459  proto_tree_add_item(t, hf_x11_xinput_GetFeedbackControl_reply_xi_reply_type, tvb, *offsetp, 1, byte_order);
18460  *offsetp += 1;
18461  sequence_number = tvb_get_guint16(tvb, *offsetp, byte_order);
18462  proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
18463  "%d (xinput-GetFeedbackControl)", sequence_number);
18464  *offsetp += 2;
18465  proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
18466  *offsetp += 4;
18467  f_num_feedbacks = tvb_get_guint16(tvb, *offsetp, byte_order);
18468  proto_tree_add_item(t, hf_x11_xinput_GetFeedbackControl_reply_num_feedbacks, tvb, *offsetp, 2, byte_order);
18469  *offsetp += 2;
18470  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 22, ENC_NA);
18471  *offsetp += 22;
18472  struct_xinput_FeedbackState(tvb, offsetp, t, byte_order, f_num_feedbacks);
18473 }
18474 
18475 static int struct_size_xinput_FeedbackCtl(tvbuff_t *tvb _U_, int *offsetp _U_, guint byte_order _U_)
18476 {
18477  int size = 0;
18478  return size + 4;
18479 }
18480 
18481 static void struct_xinput_FeedbackCtl(tvbuff_t *tvb, int *offsetp, proto_tree *root, guint byte_order _U_, int count)
18482 {
18483  int i;
18484  for (i = 0; i < count; i++) {
18485  proto_item *item;
18486  proto_tree *t;
18487  int f_class_id;
18488 
18489  item = proto_tree_add_item(root, hf_x11_struct_xinput_FeedbackCtl, tvb, *offsetp, struct_size_xinput_FeedbackCtl(tvb, offsetp, byte_order), ENC_NA);
18490  t = proto_item_add_subtree(item, ett_x11_rectangle);
18491  f_class_id = field8(tvb, offsetp, t, hf_x11_struct_xinput_FeedbackCtl_class_id, byte_order);
18492  proto_tree_add_item(t, hf_x11_struct_xinput_FeedbackCtl_feedback_id, tvb, *offsetp, 1, byte_order);
18493  *offsetp += 1;
18494  proto_tree_add_item(t, hf_x11_struct_xinput_FeedbackCtl_len, tvb, *offsetp, 2, byte_order);
18495  *offsetp += 2;
18496  if (f_class_id == 0) {
18497  proto_tree_add_item(t, hf_x11_struct_xinput_FeedbackCtl_Keyboard_key, tvb, *offsetp, 1, byte_order);
18498  *offsetp += 1;
18499  proto_tree_add_item(t, hf_x11_struct_xinput_FeedbackCtl_Keyboard_auto_repeat_mode, tvb, *offsetp, 1, byte_order);
18500  *offsetp += 1;
18501  proto_tree_add_item(t, hf_x11_struct_xinput_FeedbackCtl_Keyboard_key_click_percent, tvb, *offsetp, 1, byte_order);
18502  *offsetp += 1;
18503  proto_tree_add_item(t, hf_x11_struct_xinput_FeedbackCtl_Keyboard_bell_percent, tvb, *offsetp, 1, byte_order);
18504  *offsetp += 1;
18505  proto_tree_add_item(t, hf_x11_struct_xinput_FeedbackCtl_Keyboard_bell_pitch, tvb, *offsetp, 2, byte_order);
18506  *offsetp += 2;
18507  proto_tree_add_item(t, hf_x11_struct_xinput_FeedbackCtl_Keyboard_bell_duration, tvb, *offsetp, 2, byte_order);
18508  *offsetp += 2;
18509  proto_tree_add_item(t, hf_x11_struct_xinput_FeedbackCtl_Keyboard_led_mask, tvb, *offsetp, 4, byte_order);
18510  *offsetp += 4;
18511  proto_tree_add_item(t, hf_x11_struct_xinput_FeedbackCtl_Keyboard_led_values, tvb, *offsetp, 4, byte_order);
18512  *offsetp += 4;
18513  }
18514  if (f_class_id == 1) {
18515  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 2, ENC_NA);
18516  *offsetp += 2;
18517  proto_tree_add_item(t, hf_x11_struct_xinput_FeedbackCtl_Pointer_num, tvb, *offsetp, 2, byte_order);
18518  *offsetp += 2;
18519  proto_tree_add_item(t, hf_x11_struct_xinput_FeedbackCtl_Pointer_denom, tvb, *offsetp, 2, byte_order);
18520  *offsetp += 2;
18521  proto_tree_add_item(t, hf_x11_struct_xinput_FeedbackCtl_Pointer_threshold, tvb, *offsetp, 2, byte_order);
18522  *offsetp += 2;
18523  }
18524  if (f_class_id == 2) {
18525  int f_num_keysyms;
18526  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 2, ENC_NA);
18527  *offsetp += 2;
18528  f_num_keysyms = tvb_get_guint16(tvb, *offsetp, byte_order);
18529  proto_tree_add_item(t, hf_x11_struct_xinput_FeedbackCtl_String_num_keysyms, tvb, *offsetp, 2, byte_order);
18530  *offsetp += 2;
18531  listOfCard32(tvb, offsetp, t, hf_x11_struct_xinput_FeedbackCtl_String_keysyms, hf_x11_struct_xinput_FeedbackCtl_String_keysyms_item, f_num_keysyms, byte_order);
18532  }
18533  if (f_class_id == 3) {
18534  proto_tree_add_item(t, hf_x11_struct_xinput_FeedbackCtl_Integer_int_to_display, tvb, *offsetp, 4, byte_order);
18535  *offsetp += 4;
18536  }
18537  if (f_class_id == 4) {
18538  proto_tree_add_item(t, hf_x11_struct_xinput_FeedbackCtl_Led_led_mask, tvb, *offsetp, 4, byte_order);
18539  *offsetp += 4;
18540  proto_tree_add_item(t, hf_x11_struct_xinput_FeedbackCtl_Led_led_values, tvb, *offsetp, 4, byte_order);
18541  *offsetp += 4;
18542  }
18543  if (f_class_id == 5) {
18544  proto_tree_add_item(t, hf_x11_struct_xinput_FeedbackCtl_Bell_percent, tvb, *offsetp, 1, byte_order);
18545  *offsetp += 1;
18546  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 3, ENC_NA);
18547  *offsetp += 3;
18548  proto_tree_add_item(t, hf_x11_struct_xinput_FeedbackCtl_Bell_pitch, tvb, *offsetp, 2, byte_order);
18549  *offsetp += 2;
18550  proto_tree_add_item(t, hf_x11_struct_xinput_FeedbackCtl_Bell_duration, tvb, *offsetp, 2, byte_order);
18551  *offsetp += 2;
18552  }
18553  }
18554 }
18555 
18556 static void xinputChangeFeedbackControl(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
18557 {
18558  {
18559  int* const mask_bits [] = {
18560  &hf_x11_xinput_ChangeFeedbackControl_mask_mask_AccelNum,
18561  &hf_x11_xinput_ChangeFeedbackControl_mask_mask_AccelDenom,
18562  &hf_x11_xinput_ChangeFeedbackControl_mask_mask_Threshold,
18563  &hf_x11_xinput_ChangeFeedbackControl_mask_mask_Duration,
18564  &hf_x11_xinput_ChangeFeedbackControl_mask_mask_Led,
18565  &hf_x11_xinput_ChangeFeedbackControl_mask_mask_LedMode,
18566  &hf_x11_xinput_ChangeFeedbackControl_mask_mask_Key,
18567  &hf_x11_xinput_ChangeFeedbackControl_mask_mask_AutoRepeatMode,
18568  NULL
18569  };
18570  proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_xinput_ChangeFeedbackControl_mask, ett_x11_rectangle, mask_bits, byte_order);
18571  }
18572  *offsetp += 4;
18573  proto_tree_add_item(t, hf_x11_xinput_ChangeFeedbackControl_device_id, tvb, *offsetp, 1, byte_order);
18574  *offsetp += 1;
18575  proto_tree_add_item(t, hf_x11_xinput_ChangeFeedbackControl_feedback_id, tvb, *offsetp, 1, byte_order);
18576  *offsetp += 1;
18577  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 2, ENC_NA);
18578  *offsetp += 2;
18579  struct_xinput_FeedbackCtl(tvb, offsetp, t, byte_order, 1);
18580 }
18581 
18582 static void xinputGetDeviceKeyMapping(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
18583 {
18584  proto_tree_add_item(t, hf_x11_xinput_GetDeviceKeyMapping_device_id, tvb, *offsetp, 1, byte_order);
18585  *offsetp += 1;
18586  proto_tree_add_item(t, hf_x11_xinput_GetDeviceKeyMapping_first_keycode, tvb, *offsetp, 1, byte_order);
18587  *offsetp += 1;
18588  proto_tree_add_item(t, hf_x11_xinput_GetDeviceKeyMapping_count, tvb, *offsetp, 1, byte_order);
18589  *offsetp += 1;
18590  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
18591  *offsetp += 1;
18592 }
18593 static void xinputGetDeviceKeyMapping_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
18594 {
18595  int sequence_number;
18596  int f_length;
18597 
18598  col_append_fstr(pinfo->cinfo, COL_INFO, "-GetDeviceKeyMapping");
18599 
18600  REPLY(reply);
18601  proto_tree_add_item(t, hf_x11_xinput_GetDeviceKeyMapping_reply_xi_reply_type, tvb, *offsetp, 1, byte_order);
18602  *offsetp += 1;
18603  sequence_number = tvb_get_guint16(tvb, *offsetp, byte_order);
18604  proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
18605  "%d (xinput-GetDeviceKeyMapping)", sequence_number);
18606  *offsetp += 2;
18607  f_length = tvb_get_guint32(tvb, *offsetp, byte_order);
18608  proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
18609  *offsetp += 4;
18610  proto_tree_add_item(t, hf_x11_xinput_GetDeviceKeyMapping_reply_keysyms_per_keycode, tvb, *offsetp, 1, byte_order);
18611  *offsetp += 1;
18612  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 23, ENC_NA);
18613  *offsetp += 23;
18614  listOfCard32(tvb, offsetp, t, hf_x11_xinput_GetDeviceKeyMapping_reply_keysyms, hf_x11_xinput_GetDeviceKeyMapping_reply_keysyms_item, f_length, byte_order);
18615 }
18616 
18617 static void xinputChangeDeviceKeyMapping(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
18618 {
18619  int f_keysyms_per_keycode;
18620  int f_keycode_count;
18621  proto_tree_add_item(t, hf_x11_xinput_ChangeDeviceKeyMapping_device_id, tvb, *offsetp, 1, byte_order);
18622  *offsetp += 1;
18623  proto_tree_add_item(t, hf_x11_xinput_ChangeDeviceKeyMapping_first_keycode, tvb, *offsetp, 1, byte_order);
18624  *offsetp += 1;
18625  f_keysyms_per_keycode = tvb_get_guint8(tvb, *offsetp);
18626  proto_tree_add_item(t, hf_x11_xinput_ChangeDeviceKeyMapping_keysyms_per_keycode, tvb, *offsetp, 1, byte_order);
18627  *offsetp += 1;
18628  f_keycode_count = tvb_get_guint8(tvb, *offsetp);
18629  proto_tree_add_item(t, hf_x11_xinput_ChangeDeviceKeyMapping_keycode_count, tvb, *offsetp, 1, byte_order);
18630  *offsetp += 1;
18631  listOfCard32(tvb, offsetp, t, hf_x11_xinput_ChangeDeviceKeyMapping_keysyms, hf_x11_xinput_ChangeDeviceKeyMapping_keysyms_item, (f_keycode_count * f_keysyms_per_keycode), byte_order);
18632  length -= (f_keycode_count * f_keysyms_per_keycode) * 4;
18633 }
18634 
18635 static void xinputGetDeviceModifierMapping(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
18636 {
18637  proto_tree_add_item(t, hf_x11_xinput_GetDeviceModifierMapping_device_id, tvb, *offsetp, 1, byte_order);
18638  *offsetp += 1;
18639  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 3, ENC_NA);
18640  *offsetp += 3;
18641 }
18642 static void xinputGetDeviceModifierMapping_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
18643 {
18644  int sequence_number;
18645  int f_keycodes_per_modifier;
18646 
18647  col_append_fstr(pinfo->cinfo, COL_INFO, "-GetDeviceModifierMapping");
18648 
18649  REPLY(reply);
18650  proto_tree_add_item(t, hf_x11_xinput_GetDeviceModifierMapping_reply_xi_reply_type, tvb, *offsetp, 1, byte_order);
18651  *offsetp += 1;
18652  sequence_number = tvb_get_guint16(tvb, *offsetp, byte_order);
18653  proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
18654  "%d (xinput-GetDeviceModifierMapping)", sequence_number);
18655  *offsetp += 2;
18656  proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
18657  *offsetp += 4;
18658  f_keycodes_per_modifier = tvb_get_guint8(tvb, *offsetp);
18659  proto_tree_add_item(t, hf_x11_xinput_GetDeviceModifierMapping_reply_keycodes_per_modifier, tvb, *offsetp, 1, byte_order);
18660  *offsetp += 1;
18661  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 23, ENC_NA);
18662  *offsetp += 23;
18663  listOfByte(tvb, offsetp, t, hf_x11_xinput_GetDeviceModifierMapping_reply_keymaps, (f_keycodes_per_modifier * 8), byte_order);
18664 }
18665 
18666 static void xinputSetDeviceModifierMapping(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
18667 {
18668  int f_keycodes_per_modifier;
18669  proto_tree_add_item(t, hf_x11_xinput_SetDeviceModifierMapping_device_id, tvb, *offsetp, 1, byte_order);
18670  *offsetp += 1;
18671  f_keycodes_per_modifier = tvb_get_guint8(tvb, *offsetp);
18672  proto_tree_add_item(t, hf_x11_xinput_SetDeviceModifierMapping_keycodes_per_modifier, tvb, *offsetp, 1, byte_order);
18673  *offsetp += 1;
18674  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 2, ENC_NA);
18675  *offsetp += 2;
18676  listOfByte(tvb, offsetp, t, hf_x11_xinput_SetDeviceModifierMapping_keymaps, (f_keycodes_per_modifier * 8), byte_order);
18677  length -= (f_keycodes_per_modifier * 8) * 1;
18678 }
18679 static void xinputSetDeviceModifierMapping_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
18680 {
18681  int sequence_number;
18682 
18683  col_append_fstr(pinfo->cinfo, COL_INFO, "-SetDeviceModifierMapping");
18684 
18685  REPLY(reply);
18686  proto_tree_add_item(t, hf_x11_xinput_SetDeviceModifierMapping_reply_xi_reply_type, tvb, *offsetp, 1, byte_order);
18687  *offsetp += 1;
18688  sequence_number = tvb_get_guint16(tvb, *offsetp, byte_order);
18689  proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
18690  "%d (xinput-SetDeviceModifierMapping)", sequence_number);
18691  *offsetp += 2;
18692  proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
18693  *offsetp += 4;
18694  field8(tvb, offsetp, t, hf_x11_xinput_SetDeviceModifierMapping_reply_status, byte_order);
18695  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 23, ENC_NA);
18696  *offsetp += 23;
18697 }
18698 
18699 static void xinputGetDeviceButtonMapping(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
18700 {
18701  proto_tree_add_item(t, hf_x11_xinput_GetDeviceButtonMapping_device_id, tvb, *offsetp, 1, byte_order);
18702  *offsetp += 1;
18703  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 3, ENC_NA);
18704  *offsetp += 3;
18705 }
18706 static void xinputGetDeviceButtonMapping_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
18707 {
18708  int sequence_number;
18709  int f_map_size;
18710 
18711  col_append_fstr(pinfo->cinfo, COL_INFO, "-GetDeviceButtonMapping");
18712 
18713  REPLY(reply);
18714  proto_tree_add_item(t, hf_x11_xinput_GetDeviceButtonMapping_reply_xi_reply_type, tvb, *offsetp, 1, byte_order);
18715  *offsetp += 1;
18716  sequence_number = tvb_get_guint16(tvb, *offsetp, byte_order);
18717  proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
18718  "%d (xinput-GetDeviceButtonMapping)", sequence_number);
18719  *offsetp += 2;
18720  proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
18721  *offsetp += 4;
18722  f_map_size = tvb_get_guint8(tvb, *offsetp);
18723  proto_tree_add_item(t, hf_x11_xinput_GetDeviceButtonMapping_reply_map_size, tvb, *offsetp, 1, byte_order);
18724  *offsetp += 1;
18725  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 23, ENC_NA);
18726  *offsetp += 23;
18727  listOfByte(tvb, offsetp, t, hf_x11_xinput_GetDeviceButtonMapping_reply_map, f_map_size, byte_order);
18728  if (*offsetp % 4) {
18729  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, (4 - *offsetp % 4), ENC_NA);
18730  *offsetp += (4 - *offsetp % 4);
18731  }
18732 }
18733 
18734 static void xinputSetDeviceButtonMapping(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
18735 {
18736  int f_map_size;
18737  proto_tree_add_item(t, hf_x11_xinput_SetDeviceButtonMapping_device_id, tvb, *offsetp, 1, byte_order);
18738  *offsetp += 1;
18739  f_map_size = tvb_get_guint8(tvb, *offsetp);
18740  proto_tree_add_item(t, hf_x11_xinput_SetDeviceButtonMapping_map_size, tvb, *offsetp, 1, byte_order);
18741  *offsetp += 1;
18742  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 2, ENC_NA);
18743  *offsetp += 2;
18744  listOfByte(tvb, offsetp, t, hf_x11_xinput_SetDeviceButtonMapping_map, f_map_size, byte_order);
18745  length -= f_map_size * 1;
18746 }
18747 static void xinputSetDeviceButtonMapping_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
18748 {
18749  int sequence_number;
18750 
18751  col_append_fstr(pinfo->cinfo, COL_INFO, "-SetDeviceButtonMapping");
18752 
18753  REPLY(reply);
18754  proto_tree_add_item(t, hf_x11_xinput_SetDeviceButtonMapping_reply_xi_reply_type, tvb, *offsetp, 1, byte_order);
18755  *offsetp += 1;
18756  sequence_number = tvb_get_guint16(tvb, *offsetp, byte_order);
18757  proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
18758  "%d (xinput-SetDeviceButtonMapping)", sequence_number);
18759  *offsetp += 2;
18760  proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
18761  *offsetp += 4;
18762  field8(tvb, offsetp, t, hf_x11_xinput_SetDeviceButtonMapping_reply_status, byte_order);
18763  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 23, ENC_NA);
18764  *offsetp += 23;
18765 }
18766 
18767 static int struct_size_xinput_InputState(tvbuff_t *tvb _U_, int *offsetp _U_, guint byte_order _U_)
18768 {
18769  int size = 0;
18770  return size + 2;
18771 }
18772 
18773 static void struct_xinput_InputState(tvbuff_t *tvb, int *offsetp, proto_tree *root, guint byte_order _U_, int count)
18774 {
18775  int i;
18776  for (i = 0; i < count; i++) {
18777  proto_item *item;
18778  proto_tree *t;
18779  int f_class_id;
18780 
18781  item = proto_tree_add_item(root, hf_x11_struct_xinput_InputState, tvb, *offsetp, struct_size_xinput_InputState(tvb, offsetp, byte_order), ENC_NA);
18782  t = proto_item_add_subtree(item, ett_x11_rectangle);
18783  f_class_id = field8(tvb, offsetp, t, hf_x11_struct_xinput_InputState_class_id, byte_order);
18784  proto_tree_add_item(t, hf_x11_struct_xinput_InputState_len, tvb, *offsetp, 1, byte_order);
18785  *offsetp += 1;
18786  if (f_class_id == 0) {
18787  proto_tree_add_item(t, hf_x11_struct_xinput_InputState_Key_num_keys, tvb, *offsetp, 1, byte_order);
18788  *offsetp += 1;
18789  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
18790  *offsetp += 1;
18791  listOfByte(tvb, offsetp, t, hf_x11_struct_xinput_InputState_Key_keys, 32, byte_order);
18792  }
18793  if (f_class_id == 1) {
18794  proto_tree_add_item(t, hf_x11_struct_xinput_InputState_Button_num_buttons, tvb, *offsetp, 1, byte_order);
18795  *offsetp += 1;
18796  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
18797  *offsetp += 1;
18798  listOfByte(tvb, offsetp, t, hf_x11_struct_xinput_InputState_Button_buttons, 32, byte_order);
18799  }
18800  if (f_class_id == 2) {
18801  int f_num_valuators;
18802  f_num_valuators = tvb_get_guint8(tvb, *offsetp);
18803  proto_tree_add_item(t, hf_x11_struct_xinput_InputState_Valuator_num_valuators, tvb, *offsetp, 1, byte_order);
18804  *offsetp += 1;
18805  {
18806  int* const mode_bits [] = {
18807  &hf_x11_struct_xinput_InputState_Valuator_mode_mask_DeviceModeAbsolute,
18808  &hf_x11_struct_xinput_InputState_Valuator_mode_mask_OutOfProximity,
18809  NULL
18810  };
18811  proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_struct_xinput_InputState_Valuator_mode, ett_x11_rectangle, mode_bits, byte_order);
18812  }
18813  *offsetp += 1;
18814  listOfInt32(tvb, offsetp, t, hf_x11_struct_xinput_InputState_Valuator_valuators, hf_x11_struct_xinput_InputState_Valuator_valuators_item, f_num_valuators, byte_order);
18815  }
18816  }
18817 }
18818 
18819 static void xinputQueryDeviceState(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
18820 {
18821  proto_tree_add_item(t, hf_x11_xinput_QueryDeviceState_device_id, tvb, *offsetp, 1, byte_order);
18822  *offsetp += 1;
18823  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 3, ENC_NA);
18824  *offsetp += 3;
18825 }
18826 static void xinputQueryDeviceState_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
18827 {
18828  int sequence_number;
18829  int f_num_classes;
18830 
18831  col_append_fstr(pinfo->cinfo, COL_INFO, "-QueryDeviceState");
18832 
18833  REPLY(reply);
18834  proto_tree_add_item(t, hf_x11_xinput_QueryDeviceState_reply_xi_reply_type, tvb, *offsetp, 1, byte_order);
18835  *offsetp += 1;
18836  sequence_number = tvb_get_guint16(tvb, *offsetp, byte_order);
18837  proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
18838  "%d (xinput-QueryDeviceState)", sequence_number);
18839  *offsetp += 2;
18840  proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
18841  *offsetp += 4;
18842  f_num_classes = tvb_get_guint8(tvb, *offsetp);
18843  proto_tree_add_item(t, hf_x11_xinput_QueryDeviceState_reply_num_classes, tvb, *offsetp, 1, byte_order);
18844  *offsetp += 1;
18845  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 23, ENC_NA);
18846  *offsetp += 23;
18847  struct_xinput_InputState(tvb, offsetp, t, byte_order, f_num_classes);
18848 }
18849 
18850 static void xinputDeviceBell(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
18851 {
18852  proto_tree_add_item(t, hf_x11_xinput_DeviceBell_device_id, tvb, *offsetp, 1, byte_order);
18853  *offsetp += 1;
18854  proto_tree_add_item(t, hf_x11_xinput_DeviceBell_feedback_id, tvb, *offsetp, 1, byte_order);
18855  *offsetp += 1;
18856  proto_tree_add_item(t, hf_x11_xinput_DeviceBell_feedback_class, tvb, *offsetp, 1, byte_order);
18857  *offsetp += 1;
18858  proto_tree_add_item(t, hf_x11_xinput_DeviceBell_percent, tvb, *offsetp, 1, byte_order);
18859  *offsetp += 1;
18860 }
18861 
18862 static void xinputSetDeviceValuators(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
18863 {
18864  int f_num_valuators;
18865  proto_tree_add_item(t, hf_x11_xinput_SetDeviceValuators_device_id, tvb, *offsetp, 1, byte_order);
18866  *offsetp += 1;
18867  proto_tree_add_item(t, hf_x11_xinput_SetDeviceValuators_first_valuator, tvb, *offsetp, 1, byte_order);
18868  *offsetp += 1;
18869  f_num_valuators = tvb_get_guint8(tvb, *offsetp);
18870  proto_tree_add_item(t, hf_x11_xinput_SetDeviceValuators_num_valuators, tvb, *offsetp, 1, byte_order);
18871  *offsetp += 1;
18872  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
18873  *offsetp += 1;
18874  listOfInt32(tvb, offsetp, t, hf_x11_xinput_SetDeviceValuators_valuators, hf_x11_xinput_SetDeviceValuators_valuators_item, f_num_valuators, byte_order);
18875  length -= f_num_valuators * 4;
18876 }
18877 static void xinputSetDeviceValuators_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
18878 {
18879  int sequence_number;
18880 
18881  col_append_fstr(pinfo->cinfo, COL_INFO, "-SetDeviceValuators");
18882 
18883  REPLY(reply);
18884  proto_tree_add_item(t, hf_x11_xinput_SetDeviceValuators_reply_xi_reply_type, tvb, *offsetp, 1, byte_order);
18885  *offsetp += 1;
18886  sequence_number = tvb_get_guint16(tvb, *offsetp, byte_order);
18887  proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
18888  "%d (xinput-SetDeviceValuators)", sequence_number);
18889  *offsetp += 2;
18890  proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
18891  *offsetp += 4;
18892  field8(tvb, offsetp, t, hf_x11_xinput_SetDeviceValuators_reply_status, byte_order);
18893  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 23, ENC_NA);
18894  *offsetp += 23;
18895 }
18896 
18897 static int struct_size_xinput_DeviceState(tvbuff_t *tvb _U_, int *offsetp _U_, guint byte_order _U_)
18898 {
18899  int size = 0;
18900  return size + 4;
18901 }
18902 
18903 static void struct_xinput_DeviceState(tvbuff_t *tvb, int *offsetp, proto_tree *root, guint byte_order _U_, int count)
18904 {
18905  int i;
18906  for (i = 0; i < count; i++) {
18907  proto_item *item;
18908  proto_tree *t;
18909  int f_control_id;
18910 
18911  item = proto_tree_add_item(root, hf_x11_struct_xinput_DeviceState, tvb, *offsetp, struct_size_xinput_DeviceState(tvb, offsetp, byte_order), ENC_NA);
18912  t = proto_item_add_subtree(item, ett_x11_rectangle);
18913  f_control_id = field16(tvb, offsetp, t, hf_x11_struct_xinput_DeviceState_control_id, byte_order);
18914  proto_tree_add_item(t, hf_x11_struct_xinput_DeviceState_len, tvb, *offsetp, 2, byte_order);
18915  *offsetp += 2;
18916  if (f_control_id == 1) {
18917  int f_num_valuators;
18918  f_num_valuators = tvb_get_guint32(tvb, *offsetp, byte_order);
18919  proto_tree_add_item(t, hf_x11_struct_xinput_DeviceState_resolution_num_valuators, tvb, *offsetp, 4, byte_order);
18920  *offsetp += 4;
18921  listOfCard32(tvb, offsetp, t, hf_x11_struct_xinput_DeviceState_resolution_resolution_values, hf_x11_struct_xinput_DeviceState_resolution_resolution_values_item, f_num_valuators, byte_order);
18922  listOfCard32(tvb, offsetp, t, hf_x11_struct_xinput_DeviceState_resolution_resolution_min, hf_x11_struct_xinput_DeviceState_resolution_resolution_min_item, f_num_valuators, byte_order);
18923  listOfCard32(tvb, offsetp, t, hf_x11_struct_xinput_DeviceState_resolution_resolution_max, hf_x11_struct_xinput_DeviceState_resolution_resolution_max_item, f_num_valuators, byte_order);
18924  }
18925  if (f_control_id == 2) {
18926  proto_tree_add_item(t, hf_x11_struct_xinput_DeviceState_abs_calib_min_x, tvb, *offsetp, 4, byte_order);
18927  *offsetp += 4;
18928  proto_tree_add_item(t, hf_x11_struct_xinput_DeviceState_abs_calib_max_x, tvb, *offsetp, 4, byte_order);
18929  *offsetp += 4;
18930  proto_tree_add_item(t, hf_x11_struct_xinput_DeviceState_abs_calib_min_y, tvb, *offsetp, 4, byte_order);
18931  *offsetp += 4;
18932  proto_tree_add_item(t, hf_x11_struct_xinput_DeviceState_abs_calib_max_y, tvb, *offsetp, 4, byte_order);
18933  *offsetp += 4;
18934  proto_tree_add_item(t, hf_x11_struct_xinput_DeviceState_abs_calib_flip_x, tvb, *offsetp, 4, byte_order);
18935  *offsetp += 4;
18936  proto_tree_add_item(t, hf_x11_struct_xinput_DeviceState_abs_calib_flip_y, tvb, *offsetp, 4, byte_order);
18937  *offsetp += 4;
18938  proto_tree_add_item(t, hf_x11_struct_xinput_DeviceState_abs_calib_rotation, tvb, *offsetp, 4, byte_order);
18939  *offsetp += 4;
18940  proto_tree_add_item(t, hf_x11_struct_xinput_DeviceState_abs_calib_button_threshold, tvb, *offsetp, 4, byte_order);
18941  *offsetp += 4;
18942  }
18943  if (f_control_id == 3) {
18944  proto_tree_add_item(t, hf_x11_struct_xinput_DeviceState_core_status, tvb, *offsetp, 1, byte_order);
18945  *offsetp += 1;
18946  proto_tree_add_item(t, hf_x11_struct_xinput_DeviceState_core_iscore, tvb, *offsetp, 1, byte_order);
18947  *offsetp += 1;
18948  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 2, ENC_NA);
18949  *offsetp += 2;
18950  }
18951  if (f_control_id == 4) {
18952  proto_tree_add_item(t, hf_x11_struct_xinput_DeviceState_enable_enable, tvb, *offsetp, 1, byte_order);
18953  *offsetp += 1;
18954  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 3, ENC_NA);
18955  *offsetp += 3;
18956  }
18957  if (f_control_id == 5) {
18958  proto_tree_add_item(t, hf_x11_struct_xinput_DeviceState_abs_area_offset_x, tvb, *offsetp, 4, byte_order);
18959  *offsetp += 4;
18960  proto_tree_add_item(t, hf_x11_struct_xinput_DeviceState_abs_area_offset_y, tvb, *offsetp, 4, byte_order);
18961  *offsetp += 4;
18962  proto_tree_add_item(t, hf_x11_struct_xinput_DeviceState_abs_area_width, tvb, *offsetp, 4, byte_order);
18963  *offsetp += 4;
18964  proto_tree_add_item(t, hf_x11_struct_xinput_DeviceState_abs_area_height, tvb, *offsetp, 4, byte_order);
18965  *offsetp += 4;
18966  proto_tree_add_item(t, hf_x11_struct_xinput_DeviceState_abs_area_screen, tvb, *offsetp, 4, byte_order);
18967  *offsetp += 4;
18968  proto_tree_add_item(t, hf_x11_struct_xinput_DeviceState_abs_area_following, tvb, *offsetp, 4, byte_order);
18969  *offsetp += 4;
18970  }
18971  }
18972 }
18973 
18974 static void xinputGetDeviceControl(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
18975 {
18976  field16(tvb, offsetp, t, hf_x11_xinput_GetDeviceControl_control_id, byte_order);
18977  proto_tree_add_item(t, hf_x11_xinput_GetDeviceControl_device_id, tvb, *offsetp, 1, byte_order);
18978  *offsetp += 1;
18979  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
18980  *offsetp += 1;
18981 }
18982 static void xinputGetDeviceControl_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
18983 {
18984  int sequence_number;
18985 
18986  col_append_fstr(pinfo->cinfo, COL_INFO, "-GetDeviceControl");
18987 
18988  REPLY(reply);
18989  proto_tree_add_item(t, hf_x11_xinput_GetDeviceControl_reply_xi_reply_type, tvb, *offsetp, 1, byte_order);
18990  *offsetp += 1;
18991  sequence_number = tvb_get_guint16(tvb, *offsetp, byte_order);
18992  proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
18993  "%d (xinput-GetDeviceControl)", sequence_number);
18994  *offsetp += 2;
18995  proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
18996  *offsetp += 4;
18997  field8(tvb, offsetp, t, hf_x11_xinput_GetDeviceControl_reply_status, byte_order);
18998  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 23, ENC_NA);
18999  *offsetp += 23;
19000  struct_xinput_DeviceState(tvb, offsetp, t, byte_order, 1);
19001 }
19002 
19003 static int struct_size_xinput_DeviceCtl(tvbuff_t *tvb _U_, int *offsetp _U_, guint byte_order _U_)
19004 {
19005  int size = 0;
19006  return size + 4;
19007 }
19008 
19009 static void struct_xinput_DeviceCtl(tvbuff_t *tvb, int *offsetp, proto_tree *root, guint byte_order _U_, int count)
19010 {
19011  int i;
19012  for (i = 0; i < count; i++) {
19013  proto_item *item;
19014  proto_tree *t;
19015  int f_control_id;
19016 
19017  item = proto_tree_add_item(root, hf_x11_struct_xinput_DeviceCtl, tvb, *offsetp, struct_size_xinput_DeviceCtl(tvb, offsetp, byte_order), ENC_NA);
19018  t = proto_item_add_subtree(item, ett_x11_rectangle);
19019  f_control_id = field16(tvb, offsetp, t, hf_x11_struct_xinput_DeviceCtl_control_id, byte_order);
19020  proto_tree_add_item(t, hf_x11_struct_xinput_DeviceCtl_len, tvb, *offsetp, 2, byte_order);
19021  *offsetp += 2;
19022  if (f_control_id == 1) {
19023  int f_num_valuators;
19024  proto_tree_add_item(t, hf_x11_struct_xinput_DeviceCtl_resolution_first_valuator, tvb, *offsetp, 1, byte_order);
19025  *offsetp += 1;
19026  f_num_valuators = tvb_get_guint8(tvb, *offsetp);
19027  proto_tree_add_item(t, hf_x11_struct_xinput_DeviceCtl_resolution_num_valuators, tvb, *offsetp, 1, byte_order);
19028  *offsetp += 1;
19029  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 2, ENC_NA);
19030  *offsetp += 2;
19031  listOfCard32(tvb, offsetp, t, hf_x11_struct_xinput_DeviceCtl_resolution_resolution_values, hf_x11_struct_xinput_DeviceCtl_resolution_resolution_values_item, f_num_valuators, byte_order);
19032  }
19033  if (f_control_id == 2) {
19034  proto_tree_add_item(t, hf_x11_struct_xinput_DeviceCtl_abs_calib_min_x, tvb, *offsetp, 4, byte_order);
19035  *offsetp += 4;
19036  proto_tree_add_item(t, hf_x11_struct_xinput_DeviceCtl_abs_calib_max_x, tvb, *offsetp, 4, byte_order);
19037  *offsetp += 4;
19038  proto_tree_add_item(t, hf_x11_struct_xinput_DeviceCtl_abs_calib_min_y, tvb, *offsetp, 4, byte_order);
19039  *offsetp += 4;
19040  proto_tree_add_item(t, hf_x11_struct_xinput_DeviceCtl_abs_calib_max_y, tvb, *offsetp, 4, byte_order);
19041  *offsetp += 4;
19042  proto_tree_add_item(t, hf_x11_struct_xinput_DeviceCtl_abs_calib_flip_x, tvb, *offsetp, 4, byte_order);
19043  *offsetp += 4;
19044  proto_tree_add_item(t, hf_x11_struct_xinput_DeviceCtl_abs_calib_flip_y, tvb, *offsetp, 4, byte_order);
19045  *offsetp += 4;
19046  proto_tree_add_item(t, hf_x11_struct_xinput_DeviceCtl_abs_calib_rotation, tvb, *offsetp, 4, byte_order);
19047  *offsetp += 4;
19048  proto_tree_add_item(t, hf_x11_struct_xinput_DeviceCtl_abs_calib_button_threshold, tvb, *offsetp, 4, byte_order);
19049  *offsetp += 4;
19050  }
19051  if (f_control_id == 3) {
19052  proto_tree_add_item(t, hf_x11_struct_xinput_DeviceCtl_core_status, tvb, *offsetp, 1, byte_order);
19053  *offsetp += 1;
19054  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 3, ENC_NA);
19055  *offsetp += 3;
19056  }
19057  if (f_control_id == 4) {
19058  proto_tree_add_item(t, hf_x11_struct_xinput_DeviceCtl_enable_enable, tvb, *offsetp, 1, byte_order);
19059  *offsetp += 1;
19060  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 3, ENC_NA);
19061  *offsetp += 3;
19062  }
19063  if (f_control_id == 5) {
19064  proto_tree_add_item(t, hf_x11_struct_xinput_DeviceCtl_abs_area_offset_x, tvb, *offsetp, 4, byte_order);
19065  *offsetp += 4;
19066  proto_tree_add_item(t, hf_x11_struct_xinput_DeviceCtl_abs_area_offset_y, tvb, *offsetp, 4, byte_order);
19067  *offsetp += 4;
19068  proto_tree_add_item(t, hf_x11_struct_xinput_DeviceCtl_abs_area_width, tvb, *offsetp, 4, byte_order);
19069  *offsetp += 4;
19070  proto_tree_add_item(t, hf_x11_struct_xinput_DeviceCtl_abs_area_height, tvb, *offsetp, 4, byte_order);
19071  *offsetp += 4;
19072  proto_tree_add_item(t, hf_x11_struct_xinput_DeviceCtl_abs_area_screen, tvb, *offsetp, 4, byte_order);
19073  *offsetp += 4;
19074  proto_tree_add_item(t, hf_x11_struct_xinput_DeviceCtl_abs_area_following, tvb, *offsetp, 4, byte_order);
19075  *offsetp += 4;
19076  }
19077  }
19078 }
19079 
19080 static void xinputChangeDeviceControl(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
19081 {
19082  field16(tvb, offsetp, t, hf_x11_xinput_ChangeDeviceControl_control_id, byte_order);
19083  proto_tree_add_item(t, hf_x11_xinput_ChangeDeviceControl_device_id, tvb, *offsetp, 1, byte_order);
19084  *offsetp += 1;
19085  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
19086  *offsetp += 1;
19087  struct_xinput_DeviceCtl(tvb, offsetp, t, byte_order, 1);
19088 }
19089 static void xinputChangeDeviceControl_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
19090 {
19091  int sequence_number;
19092 
19093  col_append_fstr(pinfo->cinfo, COL_INFO, "-ChangeDeviceControl");
19094 
19095  REPLY(reply);
19096  proto_tree_add_item(t, hf_x11_xinput_ChangeDeviceControl_reply_xi_reply_type, tvb, *offsetp, 1, byte_order);
19097  *offsetp += 1;
19098  sequence_number = tvb_get_guint16(tvb, *offsetp, byte_order);
19099  proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
19100  "%d (xinput-ChangeDeviceControl)", sequence_number);
19101  *offsetp += 2;
19102  proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
19103  *offsetp += 4;
19104  field8(tvb, offsetp, t, hf_x11_xinput_ChangeDeviceControl_reply_status, byte_order);
19105  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 23, ENC_NA);
19106  *offsetp += 23;
19107 }
19108 
19109 static void xinputListDeviceProperties(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
19110 {
19111  proto_tree_add_item(t, hf_x11_xinput_ListDeviceProperties_device_id, tvb, *offsetp, 1, byte_order);
19112  *offsetp += 1;
19113  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 3, ENC_NA);
19114  *offsetp += 3;
19115 }
19116 static void xinputListDeviceProperties_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
19117 {
19118  int sequence_number;
19119  int f_num_atoms;
19120 
19121  col_append_fstr(pinfo->cinfo, COL_INFO, "-ListDeviceProperties");
19122 
19123  REPLY(reply);
19124  proto_tree_add_item(t, hf_x11_xinput_ListDeviceProperties_reply_xi_reply_type, tvb, *offsetp, 1, byte_order);
19125  *offsetp += 1;
19126  sequence_number = tvb_get_guint16(tvb, *offsetp, byte_order);
19127  proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
19128  "%d (xinput-ListDeviceProperties)", sequence_number);
19129  *offsetp += 2;
19130  proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
19131  *offsetp += 4;
19132  f_num_atoms = tvb_get_guint16(tvb, *offsetp, byte_order);
19133  proto_tree_add_item(t, hf_x11_xinput_ListDeviceProperties_reply_num_atoms, tvb, *offsetp, 2, byte_order);
19134  *offsetp += 2;
19135  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 22, ENC_NA);
19136  *offsetp += 22;
19137  listOfCard32(tvb, offsetp, t, hf_x11_xinput_ListDeviceProperties_reply_atoms, hf_x11_xinput_ListDeviceProperties_reply_atoms_item, f_num_atoms, byte_order);
19138 }
19139 
19140 static void xinputChangeDeviceProperty(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
19141 {
19142  int f_format;
19143  int f_num_items;
19144  proto_tree_add_item(t, hf_x11_xinput_ChangeDeviceProperty_property, tvb, *offsetp, 4, byte_order);
19145  *offsetp += 4;
19146  proto_tree_add_item(t, hf_x11_xinput_ChangeDeviceProperty_type, tvb, *offsetp, 4, byte_order);
19147  *offsetp += 4;
19148  proto_tree_add_item(t, hf_x11_xinput_ChangeDeviceProperty_device_id, tvb, *offsetp, 1, byte_order);
19149  *offsetp += 1;
19150  f_format = field8(tvb, offsetp, t, hf_x11_xinput_ChangeDeviceProperty_format, byte_order);
19151  field8(tvb, offsetp, t, hf_x11_xinput_ChangeDeviceProperty_mode, byte_order);
19152  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
19153  *offsetp += 1;
19154  f_num_items = tvb_get_guint32(tvb, *offsetp, byte_order);
19155  proto_tree_add_item(t, hf_x11_xinput_ChangeDeviceProperty_num_items, tvb, *offsetp, 4, byte_order);
19156  *offsetp += 4;
19157  if (f_format == 8) {
19158  listOfByte(tvb, offsetp, t, hf_x11_xinput_ChangeDeviceProperty_8Bits_data8, f_num_items, byte_order);
19159  length -= f_num_items * 1;
19160  if (*offsetp % 4) {
19161  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, (4 - *offsetp % 4), ENC_NA);
19162  *offsetp += (4 - *offsetp % 4);
19163  }
19164  length = ((length + 3) & ~3);
19165  }
19166  if (f_format == 16) {
19167  listOfCard16(tvb, offsetp, t, hf_x11_xinput_ChangeDeviceProperty_16Bits_data16, hf_x11_xinput_ChangeDeviceProperty_16Bits_data16_item, f_num_items, byte_order);
19168  length -= f_num_items * 2;
19169  if (*offsetp % 4) {
19170  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, (4 - *offsetp % 4), ENC_NA);
19171  *offsetp += (4 - *offsetp % 4);
19172  }
19173  length = ((length + 3) & ~3);
19174  }
19175  if (f_format == 32) {
19176  listOfCard32(tvb, offsetp, t, hf_x11_xinput_ChangeDeviceProperty_32Bits_data32, hf_x11_xinput_ChangeDeviceProperty_32Bits_data32_item, f_num_items, byte_order);
19177  length -= f_num_items * 4;
19178  }
19179 }
19180 
19181 static void xinputDeleteDeviceProperty(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
19182 {
19183  proto_tree_add_item(t, hf_x11_xinput_DeleteDeviceProperty_property, tvb, *offsetp, 4, byte_order);
19184  *offsetp += 4;
19185  proto_tree_add_item(t, hf_x11_xinput_DeleteDeviceProperty_device_id, tvb, *offsetp, 1, byte_order);
19186  *offsetp += 1;
19187  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 3, ENC_NA);
19188  *offsetp += 3;
19189 }
19190 
19191 static void xinputGetDeviceProperty(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
19192 {
19193  proto_tree_add_item(t, hf_x11_xinput_GetDeviceProperty_property, tvb, *offsetp, 4, byte_order);
19194  *offsetp += 4;
19195  proto_tree_add_item(t, hf_x11_xinput_GetDeviceProperty_type, tvb, *offsetp, 4, byte_order);
19196  *offsetp += 4;
19197  proto_tree_add_item(t, hf_x11_xinput_GetDeviceProperty_offset, tvb, *offsetp, 4, byte_order);
19198  *offsetp += 4;
19199  proto_tree_add_item(t, hf_x11_xinput_GetDeviceProperty_len, tvb, *offsetp, 4, byte_order);
19200  *offsetp += 4;
19201  proto_tree_add_item(t, hf_x11_xinput_GetDeviceProperty_device_id, tvb, *offsetp, 1, byte_order);
19202  *offsetp += 1;
19203  proto_tree_add_item(t, hf_x11_xinput_GetDeviceProperty_delete, tvb, *offsetp, 1, byte_order);
19204  *offsetp += 1;
19205  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 2, ENC_NA);
19206  *offsetp += 2;
19207 }
19208 static void xinputGetDeviceProperty_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
19209 {
19210  int sequence_number;
19211  int f_num_items;
19212  int f_format;
19213 
19214  col_append_fstr(pinfo->cinfo, COL_INFO, "-GetDeviceProperty");
19215 
19216  REPLY(reply);
19217  proto_tree_add_item(t, hf_x11_xinput_GetDeviceProperty_reply_xi_reply_type, tvb, *offsetp, 1, byte_order);
19218  *offsetp += 1;
19219  sequence_number = tvb_get_guint16(tvb, *offsetp, byte_order);
19220  proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
19221  "%d (xinput-GetDeviceProperty)", sequence_number);
19222  *offsetp += 2;
19223  proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
19224  *offsetp += 4;
19225  proto_tree_add_item(t, hf_x11_xinput_GetDeviceProperty_reply_type, tvb, *offsetp, 4, byte_order);
19226  *offsetp += 4;
19227  proto_tree_add_item(t, hf_x11_xinput_GetDeviceProperty_reply_bytes_after, tvb, *offsetp, 4, byte_order);
19228  *offsetp += 4;
19229  f_num_items = tvb_get_guint32(tvb, *offsetp, byte_order);
19230  proto_tree_add_item(t, hf_x11_xinput_GetDeviceProperty_reply_num_items, tvb, *offsetp, 4, byte_order);
19231  *offsetp += 4;
19232  f_format = field8(tvb, offsetp, t, hf_x11_xinput_GetDeviceProperty_reply_format, byte_order);
19233  proto_tree_add_item(t, hf_x11_xinput_GetDeviceProperty_reply_device_id, tvb, *offsetp, 1, byte_order);
19234  *offsetp += 1;
19235  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 10, ENC_NA);
19236  *offsetp += 10;
19237  if (f_format == 8) {
19238  listOfByte(tvb, offsetp, t, hf_x11_xinput_GetDeviceProperty_reply_8Bits_data8, f_num_items, byte_order);
19239  if (*offsetp % 4) {
19240  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, (4 - *offsetp % 4), ENC_NA);
19241  *offsetp += (4 - *offsetp % 4);
19242  }
19243  }
19244  if (f_format == 16) {
19245  listOfCard16(tvb, offsetp, t, hf_x11_xinput_GetDeviceProperty_reply_16Bits_data16, hf_x11_xinput_GetDeviceProperty_reply_16Bits_data16_item, f_num_items, byte_order);
19246  if (*offsetp % 4) {
19247  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, (4 - *offsetp % 4), ENC_NA);
19248  *offsetp += (4 - *offsetp % 4);
19249  }
19250  }
19251  if (f_format == 32) {
19252  listOfCard32(tvb, offsetp, t, hf_x11_xinput_GetDeviceProperty_reply_32Bits_data32, hf_x11_xinput_GetDeviceProperty_reply_32Bits_data32_item, f_num_items, byte_order);
19253  }
19254 }
19255 
19256 static void struct_xinput_GroupInfo(tvbuff_t *tvb, int *offsetp, proto_tree *root, guint byte_order _U_, int count)
19257 {
19258  int i;
19259  for (i = 0; i < count; i++) {
19260  proto_item *item;
19261  proto_tree *t;
19262 
19263  item = proto_tree_add_item(root, hf_x11_struct_xinput_GroupInfo, tvb, *offsetp, 4, ENC_NA);
19264  t = proto_item_add_subtree(item, ett_x11_rectangle);
19265  proto_tree_add_item(t, hf_x11_struct_xinput_GroupInfo_base, tvb, *offsetp, 1, byte_order);
19266  *offsetp += 1;
19267  proto_tree_add_item(t, hf_x11_struct_xinput_GroupInfo_latched, tvb, *offsetp, 1, byte_order);
19268  *offsetp += 1;
19269  proto_tree_add_item(t, hf_x11_struct_xinput_GroupInfo_locked, tvb, *offsetp, 1, byte_order);
19270  *offsetp += 1;
19271  proto_tree_add_item(t, hf_x11_struct_xinput_GroupInfo_effective, tvb, *offsetp, 1, byte_order);
19272  *offsetp += 1;
19273  }
19274 }
19275 
19276 static void struct_xinput_ModifierInfo(tvbuff_t *tvb, int *offsetp, proto_tree *root, guint byte_order _U_, int count)
19277 {
19278  int i;
19279  for (i = 0; i < count; i++) {
19280  proto_item *item;
19281  proto_tree *t;
19282 
19283  item = proto_tree_add_item(root, hf_x11_struct_xinput_ModifierInfo, tvb, *offsetp, 16, ENC_NA);
19284  t = proto_item_add_subtree(item, ett_x11_rectangle);
19285  proto_tree_add_item(t, hf_x11_struct_xinput_ModifierInfo_base, tvb, *offsetp, 4, byte_order);
19286  *offsetp += 4;
19287  proto_tree_add_item(t, hf_x11_struct_xinput_ModifierInfo_latched, tvb, *offsetp, 4, byte_order);
19288  *offsetp += 4;
19289  proto_tree_add_item(t, hf_x11_struct_xinput_ModifierInfo_locked, tvb, *offsetp, 4, byte_order);
19290  *offsetp += 4;
19291  proto_tree_add_item(t, hf_x11_struct_xinput_ModifierInfo_effective, tvb, *offsetp, 4, byte_order);
19292  *offsetp += 4;
19293  }
19294 }
19295 
19296 static void xinputXIQueryPointer(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
19297 {
19298  proto_tree_add_item(t, hf_x11_xinput_XIQueryPointer_window, tvb, *offsetp, 4, byte_order);
19299  *offsetp += 4;
19300  field16(tvb, offsetp, t, hf_x11_xinput_XIQueryPointer_deviceid, byte_order);
19301  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 2, ENC_NA);
19302  *offsetp += 2;
19303 }
19304 static void xinputXIQueryPointer_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
19305 {
19306  int sequence_number;
19307  int f_buttons_len;
19308 
19309  col_append_fstr(pinfo->cinfo, COL_INFO, "-XIQueryPointer");
19310 
19311  REPLY(reply);
19312  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
19313  *offsetp += 1;
19314  sequence_number = tvb_get_guint16(tvb, *offsetp, byte_order);
19315  proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
19316  "%d (xinput-XIQueryPointer)", sequence_number);
19317  *offsetp += 2;
19318  proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
19319  *offsetp += 4;
19320  proto_tree_add_item(t, hf_x11_xinput_XIQueryPointer_reply_root, tvb, *offsetp, 4, byte_order);
19321  *offsetp += 4;
19322  proto_tree_add_item(t, hf_x11_xinput_XIQueryPointer_reply_child, tvb, *offsetp, 4, byte_order);
19323  *offsetp += 4;
19324  proto_tree_add_item(t, hf_x11_xinput_XIQueryPointer_reply_root_x, tvb, *offsetp, 4, byte_order);
19325  *offsetp += 4;
19326  proto_tree_add_item(t, hf_x11_xinput_XIQueryPointer_reply_root_y, tvb, *offsetp, 4, byte_order);
19327  *offsetp += 4;
19328  proto_tree_add_item(t, hf_x11_xinput_XIQueryPointer_reply_win_x, tvb, *offsetp, 4, byte_order);
19329  *offsetp += 4;
19330  proto_tree_add_item(t, hf_x11_xinput_XIQueryPointer_reply_win_y, tvb, *offsetp, 4, byte_order);
19331  *offsetp += 4;
19332  proto_tree_add_item(t, hf_x11_xinput_XIQueryPointer_reply_same_screen, tvb, *offsetp, 1, byte_order);
19333  *offsetp += 1;
19334  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
19335  *offsetp += 1;
19336  f_buttons_len = tvb_get_guint16(tvb, *offsetp, byte_order);
19337  proto_tree_add_item(t, hf_x11_xinput_XIQueryPointer_reply_buttons_len, tvb, *offsetp, 2, byte_order);
19338  *offsetp += 2;
19339  struct_xinput_ModifierInfo(tvb, offsetp, t, byte_order, 1);
19340  struct_xinput_GroupInfo(tvb, offsetp, t, byte_order, 1);
19341  listOfCard32(tvb, offsetp, t, hf_x11_xinput_XIQueryPointer_reply_buttons, hf_x11_xinput_XIQueryPointer_reply_buttons_item, f_buttons_len, byte_order);
19342 }
19343 
19344 static void xinputXIWarpPointer(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
19345 {
19346  proto_tree_add_item(t, hf_x11_xinput_XIWarpPointer_src_win, tvb, *offsetp, 4, byte_order);
19347  *offsetp += 4;
19348  proto_tree_add_item(t, hf_x11_xinput_XIWarpPointer_dst_win, tvb, *offsetp, 4, byte_order);
19349  *offsetp += 4;
19350  proto_tree_add_item(t, hf_x11_xinput_XIWarpPointer_src_x, tvb, *offsetp, 4, byte_order);
19351  *offsetp += 4;
19352  proto_tree_add_item(t, hf_x11_xinput_XIWarpPointer_src_y, tvb, *offsetp, 4, byte_order);
19353  *offsetp += 4;
19354  proto_tree_add_item(t, hf_x11_xinput_XIWarpPointer_src_width, tvb, *offsetp, 2, byte_order);
19355  *offsetp += 2;
19356  proto_tree_add_item(t, hf_x11_xinput_XIWarpPointer_src_height, tvb, *offsetp, 2, byte_order);
19357  *offsetp += 2;
19358  proto_tree_add_item(t, hf_x11_xinput_XIWarpPointer_dst_x, tvb, *offsetp, 4, byte_order);
19359  *offsetp += 4;
19360  proto_tree_add_item(t, hf_x11_xinput_XIWarpPointer_dst_y, tvb, *offsetp, 4, byte_order);
19361  *offsetp += 4;
19362  field16(tvb, offsetp, t, hf_x11_xinput_XIWarpPointer_deviceid, byte_order);
19363  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 2, ENC_NA);
19364  *offsetp += 2;
19365 }
19366 
19367 static void xinputXIChangeCursor(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
19368 {
19369  proto_tree_add_item(t, hf_x11_xinput_XIChangeCursor_window, tvb, *offsetp, 4, byte_order);
19370  *offsetp += 4;
19371  proto_tree_add_item(t, hf_x11_xinput_XIChangeCursor_cursor, tvb, *offsetp, 4, byte_order);
19372  *offsetp += 4;
19373  field16(tvb, offsetp, t, hf_x11_xinput_XIChangeCursor_deviceid, byte_order);
19374  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 2, ENC_NA);
19375  *offsetp += 2;
19376 }
19377 
19378 static int struct_size_xinput_HierarchyChange(tvbuff_t *tvb _U_, int *offsetp _U_, guint byte_order _U_)
19379 {
19380  int size = 0;
19381  return size + 4;
19382 }
19383 
19384 static void struct_xinput_HierarchyChange(tvbuff_t *tvb, int *offsetp, proto_tree *root, guint byte_order _U_, int count)
19385 {
19386  int i;
19387  for (i = 0; i < count; i++) {
19388  proto_item *item;
19389  proto_tree *t;
19390  int f_type;
19391 
19392  item = proto_tree_add_item(root, hf_x11_struct_xinput_HierarchyChange, tvb, *offsetp, struct_size_xinput_HierarchyChange(tvb, offsetp, byte_order), ENC_NA);
19393  t = proto_item_add_subtree(item, ett_x11_rectangle);
19394  f_type = field16(tvb, offsetp, t, hf_x11_struct_xinput_HierarchyChange_type, byte_order);
19395  proto_tree_add_item(t, hf_x11_struct_xinput_HierarchyChange_len, tvb, *offsetp, 2, byte_order);
19396  *offsetp += 2;
19397  if (f_type == 1) {
19398  int f_name_len;
19399  f_name_len = tvb_get_guint16(tvb, *offsetp, byte_order);
19400  proto_tree_add_item(t, hf_x11_struct_xinput_HierarchyChange_AddMaster_name_len, tvb, *offsetp, 2, byte_order);
19401  *offsetp += 2;
19402  proto_tree_add_item(t, hf_x11_struct_xinput_HierarchyChange_AddMaster_send_core, tvb, *offsetp, 1, byte_order);
19403  *offsetp += 1;
19404  proto_tree_add_item(t, hf_x11_struct_xinput_HierarchyChange_AddMaster_enable, tvb, *offsetp, 1, byte_order);
19405  *offsetp += 1;
19406  listOfByte(tvb, offsetp, t, hf_x11_struct_xinput_HierarchyChange_AddMaster_name, f_name_len, byte_order);
19407  if (*offsetp % 4) {
19408  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, (4 - *offsetp % 4), ENC_NA);
19409  *offsetp += (4 - *offsetp % 4);
19410  }
19411  }
19412  if (f_type == 2) {
19413  field16(tvb, offsetp, t, hf_x11_struct_xinput_HierarchyChange_RemoveMaster_deviceid, byte_order);
19414  field8(tvb, offsetp, t, hf_x11_struct_xinput_HierarchyChange_RemoveMaster_return_mode, byte_order);
19415  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
19416  *offsetp += 1;
19417  field16(tvb, offsetp, t, hf_x11_struct_xinput_HierarchyChange_RemoveMaster_return_pointer, byte_order);
19418  field16(tvb, offsetp, t, hf_x11_struct_xinput_HierarchyChange_RemoveMaster_return_keyboard, byte_order);
19419  }
19420  if (f_type == 3) {
19421  field16(tvb, offsetp, t, hf_x11_struct_xinput_HierarchyChange_AttachSlave_deviceid, byte_order);
19422  field16(tvb, offsetp, t, hf_x11_struct_xinput_HierarchyChange_AttachSlave_master, byte_order);
19423  }
19424  if (f_type == 4) {
19425  field16(tvb, offsetp, t, hf_x11_struct_xinput_HierarchyChange_DetachSlave_deviceid, byte_order);
19426  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 2, ENC_NA);
19427  *offsetp += 2;
19428  }
19429  }
19430 }
19431 
19432 static void xinputXIChangeHierarchy(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
19433 {
19434  int f_num_changes;
19435  f_num_changes = tvb_get_guint8(tvb, *offsetp);
19436  proto_tree_add_item(t, hf_x11_xinput_XIChangeHierarchy_num_changes, tvb, *offsetp, 1, byte_order);
19437  *offsetp += 1;
19438  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 3, ENC_NA);
19439  *offsetp += 3;
19440  struct_xinput_HierarchyChange(tvb, offsetp, t, byte_order, f_num_changes);
19441  length -= f_num_changes * 0;
19442 }
19443 
19444 static void xinputXISetClientPointer(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
19445 {
19446  proto_tree_add_item(t, hf_x11_xinput_XISetClientPointer_window, tvb, *offsetp, 4, byte_order);
19447  *offsetp += 4;
19448  field16(tvb, offsetp, t, hf_x11_xinput_XISetClientPointer_deviceid, byte_order);
19449  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 2, ENC_NA);
19450  *offsetp += 2;
19451 }
19452 
19453 static void xinputXIGetClientPointer(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
19454 {
19455  proto_tree_add_item(t, hf_x11_xinput_XIGetClientPointer_window, tvb, *offsetp, 4, byte_order);
19456  *offsetp += 4;
19457 }
19458 static void xinputXIGetClientPointer_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
19459 {
19460  int sequence_number;
19461 
19462  col_append_fstr(pinfo->cinfo, COL_INFO, "-XIGetClientPointer");
19463 
19464  REPLY(reply);
19465  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
19466  *offsetp += 1;
19467  sequence_number = tvb_get_guint16(tvb, *offsetp, byte_order);
19468  proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
19469  "%d (xinput-XIGetClientPointer)", sequence_number);
19470  *offsetp += 2;
19471  proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
19472  *offsetp += 4;
19473  proto_tree_add_item(t, hf_x11_xinput_XIGetClientPointer_reply_set, tvb, *offsetp, 1, byte_order);
19474  *offsetp += 1;
19475  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
19476  *offsetp += 1;
19477  field16(tvb, offsetp, t, hf_x11_xinput_XIGetClientPointer_reply_deviceid, byte_order);
19478  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 20, ENC_NA);
19479  *offsetp += 20;
19480 }
19481 
19482 static int struct_size_xinput_EventMask(tvbuff_t *tvb _U_, int *offsetp _U_, guint byte_order _U_)
19483 {
19484  int size = 0;
19485  int f_mask_len;
19486  f_mask_len = tvb_get_guint16(tvb, *offsetp + size + 2, byte_order);
19487  size += f_mask_len * 4;
19488  return size + 4;
19489 }
19490 
19491 static void struct_xinput_EventMask(tvbuff_t *tvb, int *offsetp, proto_tree *root, guint byte_order _U_, int count)
19492 {
19493  int i;
19494  for (i = 0; i < count; i++) {
19495  proto_item *item;
19496  proto_tree *t;
19497  int f_mask_len;
19498 
19499  item = proto_tree_add_item(root, hf_x11_struct_xinput_EventMask, tvb, *offsetp, struct_size_xinput_EventMask(tvb, offsetp, byte_order), ENC_NA);
19500  t = proto_item_add_subtree(item, ett_x11_rectangle);
19501  field16(tvb, offsetp, t, hf_x11_struct_xinput_EventMask_deviceid, byte_order);
19502  f_mask_len = tvb_get_guint16(tvb, *offsetp, byte_order);
19503  proto_tree_add_item(t, hf_x11_struct_xinput_EventMask_mask_len, tvb, *offsetp, 2, byte_order);
19504  *offsetp += 2;
19505  listOfCard32(tvb, offsetp, t, hf_x11_struct_xinput_EventMask_mask, hf_x11_struct_xinput_EventMask_mask_item, f_mask_len, byte_order);
19506  }
19507 }
19508 
19509 static void xinputXISelectEvents(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
19510 {
19511  int f_num_mask;
19512  proto_tree_add_item(t, hf_x11_xinput_XISelectEvents_window, tvb, *offsetp, 4, byte_order);
19513  *offsetp += 4;
19514  f_num_mask = tvb_get_guint16(tvb, *offsetp, byte_order);
19515  proto_tree_add_item(t, hf_x11_xinput_XISelectEvents_num_mask, tvb, *offsetp, 2, byte_order);
19516  *offsetp += 2;
19517  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 2, ENC_NA);
19518  *offsetp += 2;
19519  struct_xinput_EventMask(tvb, offsetp, t, byte_order, f_num_mask);
19520  length -= f_num_mask * 0;
19521 }
19522 
19523 static void xinputXIQueryVersion(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
19524 {
19525  proto_tree_add_item(t, hf_x11_xinput_XIQueryVersion_major_version, tvb, *offsetp, 2, byte_order);
19526  *offsetp += 2;
19527  proto_tree_add_item(t, hf_x11_xinput_XIQueryVersion_minor_version, tvb, *offsetp, 2, byte_order);
19528  *offsetp += 2;
19529 }
19530 static void xinputXIQueryVersion_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
19531 {
19532  int sequence_number;
19533 
19534  col_append_fstr(pinfo->cinfo, COL_INFO, "-XIQueryVersion");
19535 
19536  REPLY(reply);
19537  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
19538  *offsetp += 1;
19539  sequence_number = tvb_get_guint16(tvb, *offsetp, byte_order);
19540  proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
19541  "%d (xinput-XIQueryVersion)", sequence_number);
19542  *offsetp += 2;
19543  proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
19544  *offsetp += 4;
19545  proto_tree_add_item(t, hf_x11_xinput_XIQueryVersion_reply_major_version, tvb, *offsetp, 2, byte_order);
19546  *offsetp += 2;
19547  proto_tree_add_item(t, hf_x11_xinput_XIQueryVersion_reply_minor_version, tvb, *offsetp, 2, byte_order);
19548  *offsetp += 2;
19549  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 20, ENC_NA);
19550  *offsetp += 20;
19551 }
19552 
19553 static int struct_size_xinput_DeviceClass(tvbuff_t *tvb _U_, int *offsetp _U_, guint byte_order _U_)
19554 {
19555  int size = 0;
19556  return size + 6;
19557 }
19558 
19559 static void struct_xinput_DeviceClass(tvbuff_t *tvb, int *offsetp, proto_tree *root, guint byte_order _U_, int count)
19560 {
19561  int i;
19562  for (i = 0; i < count; i++) {
19563  proto_item *item;
19564  proto_tree *t;
19565  int f_type;
19566 
19567  item = proto_tree_add_item(root, hf_x11_struct_xinput_DeviceClass, tvb, *offsetp, struct_size_xinput_DeviceClass(tvb, offsetp, byte_order), ENC_NA);
19568  t = proto_item_add_subtree(item, ett_x11_rectangle);
19569  f_type = field16(tvb, offsetp, t, hf_x11_struct_xinput_DeviceClass_type, byte_order);
19570  proto_tree_add_item(t, hf_x11_struct_xinput_DeviceClass_len, tvb, *offsetp, 2, byte_order);
19571  *offsetp += 2;
19572  proto_tree_add_item(t, hf_x11_struct_xinput_DeviceClass_sourceid, tvb, *offsetp, 2, byte_order);
19573  *offsetp += 2;
19574  if (f_type == 0) {
19575  int f_num_keys;
19576  f_num_keys = tvb_get_guint16(tvb, *offsetp, byte_order);
19577  proto_tree_add_item(t, hf_x11_struct_xinput_DeviceClass_Key_num_keys, tvb, *offsetp, 2, byte_order);
19578  *offsetp += 2;
19579  listOfCard32(tvb, offsetp, t, hf_x11_struct_xinput_DeviceClass_Key_keys, hf_x11_struct_xinput_DeviceClass_Key_keys_item, f_num_keys, byte_order);
19580  }
19581  if (f_type == 1) {
19582  int f_num_buttons;
19583  f_num_buttons = tvb_get_guint16(tvb, *offsetp, byte_order);
19584  proto_tree_add_item(t, hf_x11_struct_xinput_DeviceClass_Button_num_buttons, tvb, *offsetp, 2, byte_order);
19585  *offsetp += 2;
19586  listOfCard32(tvb, offsetp, t, hf_x11_struct_xinput_DeviceClass_Button_state, hf_x11_struct_xinput_DeviceClass_Button_state_item, ((f_num_buttons + 31) / 32), byte_order);
19587  listOfCard32(tvb, offsetp, t, hf_x11_struct_xinput_DeviceClass_Button_labels, hf_x11_struct_xinput_DeviceClass_Button_labels_item, f_num_buttons, byte_order);
19588  }
19589  if (f_type == 2) {
19590  proto_tree_add_item(t, hf_x11_struct_xinput_DeviceClass_Valuator_number, tvb, *offsetp, 2, byte_order);
19591  *offsetp += 2;
19592  proto_tree_add_item(t, hf_x11_struct_xinput_DeviceClass_Valuator_label, tvb, *offsetp, 4, byte_order);
19593  *offsetp += 4;
19594  struct_xinput_FP3232(tvb, offsetp, t, byte_order, 1);
19595  struct_xinput_FP3232(tvb, offsetp, t, byte_order, 1);
19596  struct_xinput_FP3232(tvb, offsetp, t, byte_order, 1);
19597  proto_tree_add_item(t, hf_x11_struct_xinput_DeviceClass_Valuator_resolution, tvb, *offsetp, 4, byte_order);
19598  *offsetp += 4;
19599  field8(tvb, offsetp, t, hf_x11_struct_xinput_DeviceClass_Valuator_mode, byte_order);
19600  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 3, ENC_NA);
19601  *offsetp += 3;
19602  }
19603  if (f_type == 3) {
19604  proto_tree_add_item(t, hf_x11_struct_xinput_DeviceClass_Scroll_number, tvb, *offsetp, 2, byte_order);
19605  *offsetp += 2;
19606  field16(tvb, offsetp, t, hf_x11_struct_xinput_DeviceClass_Scroll_scroll_type, byte_order);
19607  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 2, ENC_NA);
19608  *offsetp += 2;
19609  {
19610  int* const flags_bits [] = {
19611  &hf_x11_struct_xinput_DeviceClass_Scroll_flags_mask_NoEmulation,
19612  &hf_x11_struct_xinput_DeviceClass_Scroll_flags_mask_Preferred,
19613  NULL
19614  };
19615  proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_struct_xinput_DeviceClass_Scroll_flags, ett_x11_rectangle, flags_bits, byte_order);
19616  }
19617  *offsetp += 4;
19618  struct_xinput_FP3232(tvb, offsetp, t, byte_order, 1);
19619  }
19620  if (f_type == 8) {
19621  field8(tvb, offsetp, t, hf_x11_struct_xinput_DeviceClass_Touch_mode, byte_order);
19622  proto_tree_add_item(t, hf_x11_struct_xinput_DeviceClass_Touch_num_touches, tvb, *offsetp, 1, byte_order);
19623  *offsetp += 1;
19624  }
19625  }
19626 }
19627 
19628 static int struct_size_xinput_XIDeviceInfo(tvbuff_t *tvb _U_, int *offsetp _U_, guint byte_order _U_)
19629 {
19630  int size = 0;
19631  int i, off;
19632  int f_name_len;
19633  int f_num_classes;
19634  f_num_classes = tvb_get_guint16(tvb, *offsetp + size + 6, byte_order);
19635  f_name_len = tvb_get_guint16(tvb, *offsetp + size + 8, byte_order);
19636  size += f_name_len * 1;
19637  size = (size + 3) & ~3;
19638  for (i = 0; i < f_num_classes; i++) {
19639  off = (*offsetp) + size + 12;
19640  size += struct_size_xinput_DeviceClass(tvb, &off, byte_order);
19641  }
19642  return size + 12;
19643 }
19644 
19645 static void struct_xinput_XIDeviceInfo(tvbuff_t *tvb, int *offsetp, proto_tree *root, guint byte_order _U_, int count)
19646 {
19647  int i;
19648  for (i = 0; i < count; i++) {
19649  proto_item *item;
19650  proto_tree *t;
19651  int f_num_classes;
19652  int f_name_len;
19653 
19654  item = proto_tree_add_item(root, hf_x11_struct_xinput_XIDeviceInfo, tvb, *offsetp, struct_size_xinput_XIDeviceInfo(tvb, offsetp, byte_order), ENC_NA);
19655  t = proto_item_add_subtree(item, ett_x11_rectangle);
19656  field16(tvb, offsetp, t, hf_x11_struct_xinput_XIDeviceInfo_deviceid, byte_order);
19657  field16(tvb, offsetp, t, hf_x11_struct_xinput_XIDeviceInfo_type, byte_order);
19658  field16(tvb, offsetp, t, hf_x11_struct_xinput_XIDeviceInfo_attachment, byte_order);
19659  f_num_classes = tvb_get_guint16(tvb, *offsetp, byte_order);
19660  proto_tree_add_item(t, hf_x11_struct_xinput_XIDeviceInfo_num_classes, tvb, *offsetp, 2, byte_order);
19661  *offsetp += 2;
19662  f_name_len = tvb_get_guint16(tvb, *offsetp, byte_order);
19663  proto_tree_add_item(t, hf_x11_struct_xinput_XIDeviceInfo_name_len, tvb, *offsetp, 2, byte_order);
19664  *offsetp += 2;
19665  proto_tree_add_item(t, hf_x11_struct_xinput_XIDeviceInfo_enabled, tvb, *offsetp, 1, byte_order);
19666  *offsetp += 1;
19667  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
19668  *offsetp += 1;
19669  listOfByte(tvb, offsetp, t, hf_x11_struct_xinput_XIDeviceInfo_name, f_name_len, byte_order);
19670  if (*offsetp % 4) {
19671  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, (4 - *offsetp % 4), ENC_NA);
19672  *offsetp += (4 - *offsetp % 4);
19673  }
19674  struct_xinput_DeviceClass(tvb, offsetp, t, byte_order, f_num_classes);
19675  }
19676 }
19677 
19678 static void xinputXIQueryDevice(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
19679 {
19680  field16(tvb, offsetp, t, hf_x11_xinput_XIQueryDevice_deviceid, byte_order);
19681  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 2, ENC_NA);
19682  *offsetp += 2;
19683 }
19684 static void xinputXIQueryDevice_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
19685 {
19686  int sequence_number;
19687  int f_num_infos;
19688 
19689  col_append_fstr(pinfo->cinfo, COL_INFO, "-XIQueryDevice");
19690 
19691  REPLY(reply);
19692  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
19693  *offsetp += 1;
19694  sequence_number = tvb_get_guint16(tvb, *offsetp, byte_order);
19695  proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
19696  "%d (xinput-XIQueryDevice)", sequence_number);
19697  *offsetp += 2;
19698  proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
19699  *offsetp += 4;
19700  f_num_infos = tvb_get_guint16(tvb, *offsetp, byte_order);
19701  proto_tree_add_item(t, hf_x11_xinput_XIQueryDevice_reply_num_infos, tvb, *offsetp, 2, byte_order);
19702  *offsetp += 2;
19703  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 22, ENC_NA);
19704  *offsetp += 22;
19705  struct_xinput_XIDeviceInfo(tvb, offsetp, t, byte_order, f_num_infos);
19706 }
19707 
19708 static void xinputXISetFocus(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
19709 {
19710  proto_tree_add_item(t, hf_x11_xinput_XISetFocus_window, tvb, *offsetp, 4, byte_order);
19711  *offsetp += 4;
19712  field32(tvb, offsetp, t, hf_x11_xinput_XISetFocus_time, byte_order);
19713  field16(tvb, offsetp, t, hf_x11_xinput_XISetFocus_deviceid, byte_order);
19714  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 2, ENC_NA);
19715  *offsetp += 2;
19716 }
19717 
19718 static void xinputXIGetFocus(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
19719 {
19720  field16(tvb, offsetp, t, hf_x11_xinput_XIGetFocus_deviceid, byte_order);
19721  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 2, ENC_NA);
19722  *offsetp += 2;
19723 }
19724 static void xinputXIGetFocus_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
19725 {
19726  int sequence_number;
19727 
19728  col_append_fstr(pinfo->cinfo, COL_INFO, "-XIGetFocus");
19729 
19730  REPLY(reply);
19731  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
19732  *offsetp += 1;
19733  sequence_number = tvb_get_guint16(tvb, *offsetp, byte_order);
19734  proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
19735  "%d (xinput-XIGetFocus)", sequence_number);
19736  *offsetp += 2;
19737  proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
19738  *offsetp += 4;
19739  proto_tree_add_item(t, hf_x11_xinput_XIGetFocus_reply_focus, tvb, *offsetp, 4, byte_order);
19740  *offsetp += 4;
19741  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 20, ENC_NA);
19742  *offsetp += 20;
19743 }
19744 
19745 static void xinputXIGrabDevice(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
19746 {
19747  int f_mask_len;
19748  proto_tree_add_item(t, hf_x11_xinput_XIGrabDevice_window, tvb, *offsetp, 4, byte_order);
19749  *offsetp += 4;
19750  field32(tvb, offsetp, t, hf_x11_xinput_XIGrabDevice_time, byte_order);
19751  proto_tree_add_item(t, hf_x11_xinput_XIGrabDevice_cursor, tvb, *offsetp, 4, byte_order);
19752  *offsetp += 4;
19753  field16(tvb, offsetp, t, hf_x11_xinput_XIGrabDevice_deviceid, byte_order);
19754  field8(tvb, offsetp, t, hf_x11_xinput_XIGrabDevice_mode, byte_order);
19755  field8(tvb, offsetp, t, hf_x11_xinput_XIGrabDevice_paired_device_mode, byte_order);
19756  field8(tvb, offsetp, t, hf_x11_xinput_XIGrabDevice_owner_events, byte_order);
19757  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
19758  *offsetp += 1;
19759  f_mask_len = tvb_get_guint16(tvb, *offsetp, byte_order);
19760  proto_tree_add_item(t, hf_x11_xinput_XIGrabDevice_mask_len, tvb, *offsetp, 2, byte_order);
19761  *offsetp += 2;
19762  listOfCard32(tvb, offsetp, t, hf_x11_xinput_XIGrabDevice_mask, hf_x11_xinput_XIGrabDevice_mask_item, f_mask_len, byte_order);
19763  length -= f_mask_len * 4;
19764 }
19765 static void xinputXIGrabDevice_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
19766 {
19767  int sequence_number;
19768 
19769  col_append_fstr(pinfo->cinfo, COL_INFO, "-XIGrabDevice");
19770 
19771  REPLY(reply);
19772  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
19773  *offsetp += 1;
19774  sequence_number = tvb_get_guint16(tvb, *offsetp, byte_order);
19775  proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
19776  "%d (xinput-XIGrabDevice)", sequence_number);
19777  *offsetp += 2;
19778  proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
19779  *offsetp += 4;
19780  field8(tvb, offsetp, t, hf_x11_xinput_XIGrabDevice_reply_status, byte_order);
19781  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 23, ENC_NA);
19782  *offsetp += 23;
19783 }
19784 
19785 static void xinputXIUngrabDevice(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
19786 {
19787  field32(tvb, offsetp, t, hf_x11_xinput_XIUngrabDevice_time, byte_order);
19788  field16(tvb, offsetp, t, hf_x11_xinput_XIUngrabDevice_deviceid, byte_order);
19789  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 2, ENC_NA);
19790  *offsetp += 2;
19791 }
19792 
19793 static void xinputXIAllowEvents(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
19794 {
19795  field32(tvb, offsetp, t, hf_x11_xinput_XIAllowEvents_time, byte_order);
19796  field16(tvb, offsetp, t, hf_x11_xinput_XIAllowEvents_deviceid, byte_order);
19797  field8(tvb, offsetp, t, hf_x11_xinput_XIAllowEvents_event_mode, byte_order);
19798  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
19799  *offsetp += 1;
19800  proto_tree_add_item(t, hf_x11_xinput_XIAllowEvents_touchid, tvb, *offsetp, 4, byte_order);
19801  *offsetp += 4;
19802  proto_tree_add_item(t, hf_x11_xinput_XIAllowEvents_grab_window, tvb, *offsetp, 4, byte_order);
19803  *offsetp += 4;
19804 }
19805 
19806 static void struct_xinput_GrabModifierInfo(tvbuff_t *tvb, int *offsetp, proto_tree *root, guint byte_order _U_, int count)
19807 {
19808  int i;
19809  for (i = 0; i < count; i++) {
19810  proto_item *item;
19811  proto_tree *t;
19812 
19813  item = proto_tree_add_item(root, hf_x11_struct_xinput_GrabModifierInfo, tvb, *offsetp, 8, ENC_NA);
19814  t = proto_item_add_subtree(item, ett_x11_rectangle);
19815  field32(tvb, offsetp, t, hf_x11_struct_xinput_GrabModifierInfo_modifiers, byte_order);
19816  field8(tvb, offsetp, t, hf_x11_struct_xinput_GrabModifierInfo_status, byte_order);
19817  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 3, ENC_NA);
19818  *offsetp += 3;
19819  }
19820 }
19821 
19822 static void xinputXIPassiveGrabDevice(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
19823 {
19824  int f_num_modifiers;
19825  int f_mask_len;
19826  field32(tvb, offsetp, t, hf_x11_xinput_XIPassiveGrabDevice_time, byte_order);
19827  proto_tree_add_item(t, hf_x11_xinput_XIPassiveGrabDevice_grab_window, tvb, *offsetp, 4, byte_order);
19828  *offsetp += 4;
19829  proto_tree_add_item(t, hf_x11_xinput_XIPassiveGrabDevice_cursor, tvb, *offsetp, 4, byte_order);
19830  *offsetp += 4;
19831  proto_tree_add_item(t, hf_x11_xinput_XIPassiveGrabDevice_detail, tvb, *offsetp, 4, byte_order);
19832  *offsetp += 4;
19833  field16(tvb, offsetp, t, hf_x11_xinput_XIPassiveGrabDevice_deviceid, byte_order);
19834  f_num_modifiers = tvb_get_guint16(tvb, *offsetp, byte_order);
19835  proto_tree_add_item(t, hf_x11_xinput_XIPassiveGrabDevice_num_modifiers, tvb, *offsetp, 2, byte_order);
19836  *offsetp += 2;
19837  f_mask_len = tvb_get_guint16(tvb, *offsetp, byte_order);
19838  proto_tree_add_item(t, hf_x11_xinput_XIPassiveGrabDevice_mask_len, tvb, *offsetp, 2, byte_order);
19839  *offsetp += 2;
19840  field8(tvb, offsetp, t, hf_x11_xinput_XIPassiveGrabDevice_grab_type, byte_order);
19841  field8(tvb, offsetp, t, hf_x11_xinput_XIPassiveGrabDevice_grab_mode, byte_order);
19842  field8(tvb, offsetp, t, hf_x11_xinput_XIPassiveGrabDevice_paired_device_mode, byte_order);
19843  field8(tvb, offsetp, t, hf_x11_xinput_XIPassiveGrabDevice_owner_events, byte_order);
19844  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 2, ENC_NA);
19845  *offsetp += 2;
19846  listOfCard32(tvb, offsetp, t, hf_x11_xinput_XIPassiveGrabDevice_mask, hf_x11_xinput_XIPassiveGrabDevice_mask_item, f_mask_len, byte_order);
19847  length -= f_mask_len * 4;
19848  listOfCard32(tvb, offsetp, t, hf_x11_xinput_XIPassiveGrabDevice_modifiers, hf_x11_xinput_XIPassiveGrabDevice_modifiers_item, f_num_modifiers, byte_order);
19849  length -= f_num_modifiers * 4;
19850 }
19851 static void xinputXIPassiveGrabDevice_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
19852 {
19853  int sequence_number;
19854  int f_num_modifiers;
19855 
19856  col_append_fstr(pinfo->cinfo, COL_INFO, "-XIPassiveGrabDevice");
19857 
19858  REPLY(reply);
19859  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
19860  *offsetp += 1;
19861  sequence_number = tvb_get_guint16(tvb, *offsetp, byte_order);
19862  proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
19863  "%d (xinput-XIPassiveGrabDevice)", sequence_number);
19864  *offsetp += 2;
19865  proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
19866  *offsetp += 4;
19867  f_num_modifiers = tvb_get_guint16(tvb, *offsetp, byte_order);
19868  proto_tree_add_item(t, hf_x11_xinput_XIPassiveGrabDevice_reply_num_modifiers, tvb, *offsetp, 2, byte_order);
19869  *offsetp += 2;
19870  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 22, ENC_NA);
19871  *offsetp += 22;
19872  struct_xinput_GrabModifierInfo(tvb, offsetp, t, byte_order, f_num_modifiers);
19873 }
19874 
19875 static void xinputXIPassiveUngrabDevice(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
19876 {
19877  int f_num_modifiers;
19878  proto_tree_add_item(t, hf_x11_xinput_XIPassiveUngrabDevice_grab_window, tvb, *offsetp, 4, byte_order);
19879  *offsetp += 4;
19880  proto_tree_add_item(t, hf_x11_xinput_XIPassiveUngrabDevice_detail, tvb, *offsetp, 4, byte_order);
19881  *offsetp += 4;
19882  field16(tvb, offsetp, t, hf_x11_xinput_XIPassiveUngrabDevice_deviceid, byte_order);
19883  f_num_modifiers = tvb_get_guint16(tvb, *offsetp, byte_order);
19884  proto_tree_add_item(t, hf_x11_xinput_XIPassiveUngrabDevice_num_modifiers, tvb, *offsetp, 2, byte_order);
19885  *offsetp += 2;
19886  field8(tvb, offsetp, t, hf_x11_xinput_XIPassiveUngrabDevice_grab_type, byte_order);
19887  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 3, ENC_NA);
19888  *offsetp += 3;
19889  listOfCard32(tvb, offsetp, t, hf_x11_xinput_XIPassiveUngrabDevice_modifiers, hf_x11_xinput_XIPassiveUngrabDevice_modifiers_item, f_num_modifiers, byte_order);
19890  length -= f_num_modifiers * 4;
19891 }
19892 
19893 static void xinputXIListProperties(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
19894 {
19895  field16(tvb, offsetp, t, hf_x11_xinput_XIListProperties_deviceid, byte_order);
19896  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 2, ENC_NA);
19897  *offsetp += 2;
19898 }
19899 static void xinputXIListProperties_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
19900 {
19901  int sequence_number;
19902  int f_num_properties;
19903 
19904  col_append_fstr(pinfo->cinfo, COL_INFO, "-XIListProperties");
19905 
19906  REPLY(reply);
19907  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
19908  *offsetp += 1;
19909  sequence_number = tvb_get_guint16(tvb, *offsetp, byte_order);
19910  proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
19911  "%d (xinput-XIListProperties)", sequence_number);
19912  *offsetp += 2;
19913  proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
19914  *offsetp += 4;
19915  f_num_properties = tvb_get_guint16(tvb, *offsetp, byte_order);
19916  proto_tree_add_item(t, hf_x11_xinput_XIListProperties_reply_num_properties, tvb, *offsetp, 2, byte_order);
19917  *offsetp += 2;
19918  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 22, ENC_NA);
19919  *offsetp += 22;
19920  listOfCard32(tvb, offsetp, t, hf_x11_xinput_XIListProperties_reply_properties, hf_x11_xinput_XIListProperties_reply_properties_item, f_num_properties, byte_order);
19921 }
19922 
19923 static void xinputXIChangeProperty(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
19924 {
19925  int f_format;
19926  int f_num_items;
19927  field16(tvb, offsetp, t, hf_x11_xinput_XIChangeProperty_deviceid, byte_order);
19928  field8(tvb, offsetp, t, hf_x11_xinput_XIChangeProperty_mode, byte_order);
19929  f_format = field8(tvb, offsetp, t, hf_x11_xinput_XIChangeProperty_format, byte_order);
19930  proto_tree_add_item(t, hf_x11_xinput_XIChangeProperty_property, tvb, *offsetp, 4, byte_order);
19931  *offsetp += 4;
19932  proto_tree_add_item(t, hf_x11_xinput_XIChangeProperty_type, tvb, *offsetp, 4, byte_order);
19933  *offsetp += 4;
19934  f_num_items = tvb_get_guint32(tvb, *offsetp, byte_order);
19935  proto_tree_add_item(t, hf_x11_xinput_XIChangeProperty_num_items, tvb, *offsetp, 4, byte_order);
19936  *offsetp += 4;
19937  if (f_format == 8) {
19938  listOfByte(tvb, offsetp, t, hf_x11_xinput_XIChangeProperty_8Bits_data8, f_num_items, byte_order);
19939  length -= f_num_items * 1;
19940  if (*offsetp % 4) {
19941  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, (4 - *offsetp % 4), ENC_NA);
19942  *offsetp += (4 - *offsetp % 4);
19943  }
19944  length = ((length + 3) & ~3);
19945  }
19946  if (f_format == 16) {
19947  listOfCard16(tvb, offsetp, t, hf_x11_xinput_XIChangeProperty_16Bits_data16, hf_x11_xinput_XIChangeProperty_16Bits_data16_item, f_num_items, byte_order);
19948  length -= f_num_items * 2;
19949  if (*offsetp % 4) {
19950  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, (4 - *offsetp % 4), ENC_NA);
19951  *offsetp += (4 - *offsetp % 4);
19952  }
19953  length = ((length + 3) & ~3);
19954  }
19955  if (f_format == 32) {
19956  listOfCard32(tvb, offsetp, t, hf_x11_xinput_XIChangeProperty_32Bits_data32, hf_x11_xinput_XIChangeProperty_32Bits_data32_item, f_num_items, byte_order);
19957  length -= f_num_items * 4;
19958  }
19959 }
19960 
19961 static void xinputXIDeleteProperty(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
19962 {
19963  field16(tvb, offsetp, t, hf_x11_xinput_XIDeleteProperty_deviceid, byte_order);
19964  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 2, ENC_NA);
19965  *offsetp += 2;
19966  proto_tree_add_item(t, hf_x11_xinput_XIDeleteProperty_property, tvb, *offsetp, 4, byte_order);
19967  *offsetp += 4;
19968 }
19969 
19970 static void xinputXIGetProperty(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
19971 {
19972  field16(tvb, offsetp, t, hf_x11_xinput_XIGetProperty_deviceid, byte_order);
19973  proto_tree_add_item(t, hf_x11_xinput_XIGetProperty_delete, tvb, *offsetp, 1, byte_order);
19974  *offsetp += 1;
19975  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
19976  *offsetp += 1;
19977  proto_tree_add_item(t, hf_x11_xinput_XIGetProperty_property, tvb, *offsetp, 4, byte_order);
19978  *offsetp += 4;
19979  proto_tree_add_item(t, hf_x11_xinput_XIGetProperty_type, tvb, *offsetp, 4, byte_order);
19980  *offsetp += 4;
19981  proto_tree_add_item(t, hf_x11_xinput_XIGetProperty_offset, tvb, *offsetp, 4, byte_order);
19982  *offsetp += 4;
19983  proto_tree_add_item(t, hf_x11_xinput_XIGetProperty_len, tvb, *offsetp, 4, byte_order);
19984  *offsetp += 4;
19985 }
19986 static void xinputXIGetProperty_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
19987 {
19988  int sequence_number;
19989  int f_num_items;
19990  int f_format;
19991 
19992  col_append_fstr(pinfo->cinfo, COL_INFO, "-XIGetProperty");
19993 
19994  REPLY(reply);
19995  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
19996  *offsetp += 1;
19997  sequence_number = tvb_get_guint16(tvb, *offsetp, byte_order);
19998  proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
19999  "%d (xinput-XIGetProperty)", sequence_number);
20000  *offsetp += 2;
20001  proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
20002  *offsetp += 4;
20003  proto_tree_add_item(t, hf_x11_xinput_XIGetProperty_reply_type, tvb, *offsetp, 4, byte_order);
20004  *offsetp += 4;
20005  proto_tree_add_item(t, hf_x11_xinput_XIGetProperty_reply_bytes_after, tvb, *offsetp, 4, byte_order);
20006  *offsetp += 4;
20007  f_num_items = tvb_get_guint32(tvb, *offsetp, byte_order);
20008  proto_tree_add_item(t, hf_x11_xinput_XIGetProperty_reply_num_items, tvb, *offsetp, 4, byte_order);
20009  *offsetp += 4;
20010  f_format = field8(tvb, offsetp, t, hf_x11_xinput_XIGetProperty_reply_format, byte_order);
20011  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 11, ENC_NA);
20012  *offsetp += 11;
20013  if (f_format == 8) {
20014  listOfByte(tvb, offsetp, t, hf_x11_xinput_XIGetProperty_reply_8Bits_data8, f_num_items, byte_order);
20015  if (*offsetp % 4) {
20016  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, (4 - *offsetp % 4), ENC_NA);
20017  *offsetp += (4 - *offsetp % 4);
20018  }
20019  }
20020  if (f_format == 16) {
20021  listOfCard16(tvb, offsetp, t, hf_x11_xinput_XIGetProperty_reply_16Bits_data16, hf_x11_xinput_XIGetProperty_reply_16Bits_data16_item, f_num_items, byte_order);
20022  if (*offsetp % 4) {
20023  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, (4 - *offsetp % 4), ENC_NA);
20024  *offsetp += (4 - *offsetp % 4);
20025  }
20026  }
20027  if (f_format == 32) {
20028  listOfCard32(tvb, offsetp, t, hf_x11_xinput_XIGetProperty_reply_32Bits_data32, hf_x11_xinput_XIGetProperty_reply_32Bits_data32_item, f_num_items, byte_order);
20029  }
20030 }
20031 
20032 static void xinputXIGetSelectedEvents(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
20033 {
20034  proto_tree_add_item(t, hf_x11_xinput_XIGetSelectedEvents_window, tvb, *offsetp, 4, byte_order);
20035  *offsetp += 4;
20036 }
20037 static void xinputXIGetSelectedEvents_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
20038 {
20039  int sequence_number;
20040  int f_num_masks;
20041 
20042  col_append_fstr(pinfo->cinfo, COL_INFO, "-XIGetSelectedEvents");
20043 
20044  REPLY(reply);
20045  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
20046  *offsetp += 1;
20047  sequence_number = tvb_get_guint16(tvb, *offsetp, byte_order);
20048  proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
20049  "%d (xinput-XIGetSelectedEvents)", sequence_number);
20050  *offsetp += 2;
20051  proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
20052  *offsetp += 4;
20053  f_num_masks = tvb_get_guint16(tvb, *offsetp, byte_order);
20054  proto_tree_add_item(t, hf_x11_xinput_XIGetSelectedEvents_reply_num_masks, tvb, *offsetp, 2, byte_order);
20055  *offsetp += 2;
20056  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 22, ENC_NA);
20057  *offsetp += 22;
20058  struct_xinput_EventMask(tvb, offsetp, t, byte_order, f_num_masks);
20059 }
20060 
20061 static void struct_xinput_BarrierReleasePointerInfo(tvbuff_t *tvb, int *offsetp, proto_tree *root, guint byte_order _U_, int count)
20062 {
20063  int i;
20064  for (i = 0; i < count; i++) {
20065  proto_item *item;
20066  proto_tree *t;
20067 
20068  item = proto_tree_add_item(root, hf_x11_struct_xinput_BarrierReleasePointerInfo, tvb, *offsetp, 12, ENC_NA);
20069  t = proto_item_add_subtree(item, ett_x11_rectangle);
20070  proto_tree_add_item(t, hf_x11_struct_xinput_BarrierReleasePointerInfo_deviceid, tvb, *offsetp, 2, byte_order);
20071  *offsetp += 2;
20072  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 2, ENC_NA);
20073  *offsetp += 2;
20074  proto_tree_add_item(t, hf_x11_struct_xinput_BarrierReleasePointerInfo_barrier, tvb, *offsetp, 4, byte_order);
20075  *offsetp += 4;
20076  proto_tree_add_item(t, hf_x11_struct_xinput_BarrierReleasePointerInfo_eventid, tvb, *offsetp, 4, byte_order);
20077  *offsetp += 4;
20078  }
20079 }
20080 
20081 static void xinputXIBarrierReleasePointer(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
20082 {
20083  int f_num_barriers;
20084  f_num_barriers = tvb_get_guint32(tvb, *offsetp, byte_order);
20085  proto_tree_add_item(t, hf_x11_xinput_XIBarrierReleasePointer_num_barriers, tvb, *offsetp, 4, byte_order);
20086  *offsetp += 4;
20087  struct_xinput_BarrierReleasePointerInfo(tvb, offsetp, t, byte_order, f_num_barriers);
20088  length -= f_num_barriers * 12;
20089 }
20090 
20091 static void xinputDeviceKeyPress(tvbuff_t *tvb, int *offsetp, proto_tree *t, guint byte_order)
20092 {
20093  proto_tree_add_item(t, hf_x11_xinput_DeviceKeyPress_detail, tvb, *offsetp, 1, ENC_NA);
20094  *offsetp += 1;
20095  CARD16(event_sequencenumber);
20096  proto_tree_add_item(t, hf_x11_xinput_DeviceKeyPress_time, tvb, *offsetp, 4, byte_order);
20097  *offsetp += 4;
20098  proto_tree_add_item(t, hf_x11_xinput_DeviceKeyPress_root, tvb, *offsetp, 4, byte_order);
20099  *offsetp += 4;
20100  proto_tree_add_item(t, hf_x11_xinput_DeviceKeyPress_event, tvb, *offsetp, 4, byte_order);
20101  *offsetp += 4;
20102  field32(tvb, offsetp, t, hf_x11_xinput_DeviceKeyPress_child, byte_order);
20103  proto_tree_add_item(t, hf_x11_xinput_DeviceKeyPress_root_x, tvb, *offsetp, 2, byte_order);
20104  *offsetp += 2;
20105  proto_tree_add_item(t, hf_x11_xinput_DeviceKeyPress_root_y, tvb, *offsetp, 2, byte_order);
20106  *offsetp += 2;
20107  proto_tree_add_item(t, hf_x11_xinput_DeviceKeyPress_event_x, tvb, *offsetp, 2, byte_order);
20108  *offsetp += 2;
20109  proto_tree_add_item(t, hf_x11_xinput_DeviceKeyPress_event_y, tvb, *offsetp, 2, byte_order);
20110  *offsetp += 2;
20111  {
20112  int* const state_bits [] = {
20113  &hf_x11_xinput_DeviceKeyPress_state_mask_Shift,
20114  &hf_x11_xinput_DeviceKeyPress_state_mask_Lock,
20115  &hf_x11_xinput_DeviceKeyPress_state_mask_Control,
20116  &hf_x11_xinput_DeviceKeyPress_state_mask_Mod1,
20117  &hf_x11_xinput_DeviceKeyPress_state_mask_Mod2,
20118  &hf_x11_xinput_DeviceKeyPress_state_mask_Mod3,
20119  &hf_x11_xinput_DeviceKeyPress_state_mask_Mod4,
20120  &hf_x11_xinput_DeviceKeyPress_state_mask_Mod5,
20121  &hf_x11_xinput_DeviceKeyPress_state_mask_Button1,
20122  &hf_x11_xinput_DeviceKeyPress_state_mask_Button2,
20123  &hf_x11_xinput_DeviceKeyPress_state_mask_Button3,
20124  &hf_x11_xinput_DeviceKeyPress_state_mask_Button4,
20125  &hf_x11_xinput_DeviceKeyPress_state_mask_Button5,
20126  NULL
20127  };
20128  proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_xinput_DeviceKeyPress_state, ett_x11_rectangle, state_bits, byte_order);
20129  }
20130  *offsetp += 2;
20131  proto_tree_add_item(t, hf_x11_xinput_DeviceKeyPress_same_screen, tvb, *offsetp, 1, byte_order);
20132  *offsetp += 1;
20133  proto_tree_add_item(t, hf_x11_xinput_DeviceKeyPress_device_id, tvb, *offsetp, 1, byte_order);
20134  *offsetp += 1;
20135 }
20136 
20137 
20138 static void xinputDeviceFocusIn(tvbuff_t *tvb, int *offsetp, proto_tree *t, guint byte_order)
20139 {
20140  field8(tvb, offsetp, t, hf_x11_xinput_DeviceFocusIn_detail, byte_order);
20141  CARD16(event_sequencenumber);
20142  proto_tree_add_item(t, hf_x11_xinput_DeviceFocusIn_time, tvb, *offsetp, 4, byte_order);
20143  *offsetp += 4;
20144  proto_tree_add_item(t, hf_x11_xinput_DeviceFocusIn_window, tvb, *offsetp, 4, byte_order);
20145  *offsetp += 4;
20146  field8(tvb, offsetp, t, hf_x11_xinput_DeviceFocusIn_mode, byte_order);
20147  proto_tree_add_item(t, hf_x11_xinput_DeviceFocusIn_device_id, tvb, *offsetp, 1, byte_order);
20148  *offsetp += 1;
20149  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 18, ENC_NA);
20150  *offsetp += 18;
20151 }
20152 
20153 
20154 static void xinputDeviceStateNotify(tvbuff_t *tvb, int *offsetp, proto_tree *t, guint byte_order)
20155 {
20156  proto_tree_add_item(t, hf_x11_xinput_DeviceStateNotify_device_id, tvb, *offsetp, 1, ENC_NA);
20157  *offsetp += 1;
20158  CARD16(event_sequencenumber);
20159  proto_tree_add_item(t, hf_x11_xinput_DeviceStateNotify_time, tvb, *offsetp, 4, byte_order);
20160  *offsetp += 4;
20161  proto_tree_add_item(t, hf_x11_xinput_DeviceStateNotify_num_keys, tvb, *offsetp, 1, byte_order);
20162  *offsetp += 1;
20163  proto_tree_add_item(t, hf_x11_xinput_DeviceStateNotify_num_buttons, tvb, *offsetp, 1, byte_order);
20164  *offsetp += 1;
20165  proto_tree_add_item(t, hf_x11_xinput_DeviceStateNotify_num_valuators, tvb, *offsetp, 1, byte_order);
20166  *offsetp += 1;
20167  {
20168  int* const classes_reported_bits [] = {
20169  &hf_x11_xinput_DeviceStateNotify_classes_reported_mask_ReportingKeys,
20170  &hf_x11_xinput_DeviceStateNotify_classes_reported_mask_ReportingButtons,
20171  &hf_x11_xinput_DeviceStateNotify_classes_reported_mask_ReportingValuators,
20172  &hf_x11_xinput_DeviceStateNotify_classes_reported_mask_DeviceModeAbsolute,
20173  &hf_x11_xinput_DeviceStateNotify_classes_reported_mask_OutOfProximity,
20174  NULL
20175  };
20176  proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_xinput_DeviceStateNotify_classes_reported, ett_x11_rectangle, classes_reported_bits, byte_order);
20177  }
20178  *offsetp += 1;
20179  listOfByte(tvb, offsetp, t, hf_x11_xinput_DeviceStateNotify_buttons, 4, byte_order);
20180  listOfByte(tvb, offsetp, t, hf_x11_xinput_DeviceStateNotify_keys, 4, byte_order);
20181  listOfCard32(tvb, offsetp, t, hf_x11_xinput_DeviceStateNotify_valuators, hf_x11_xinput_DeviceStateNotify_valuators_item, 3, byte_order);
20182 }
20183 
20184 
20185 static void xinputDeviceMappingNotify(tvbuff_t *tvb, int *offsetp, proto_tree *t, guint byte_order)
20186 {
20187  proto_tree_add_item(t, hf_x11_xinput_DeviceMappingNotify_device_id, tvb, *offsetp, 1, ENC_NA);
20188  *offsetp += 1;
20189  CARD16(event_sequencenumber);
20190  field8(tvb, offsetp, t, hf_x11_xinput_DeviceMappingNotify_request, byte_order);
20191  proto_tree_add_item(t, hf_x11_xinput_DeviceMappingNotify_first_keycode, tvb, *offsetp, 1, byte_order);
20192  *offsetp += 1;
20193  proto_tree_add_item(t, hf_x11_xinput_DeviceMappingNotify_count, tvb, *offsetp, 1, byte_order);
20194  *offsetp += 1;
20195  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
20196  *offsetp += 1;
20197  proto_tree_add_item(t, hf_x11_xinput_DeviceMappingNotify_time, tvb, *offsetp, 4, byte_order);
20198  *offsetp += 4;
20199  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 20, ENC_NA);
20200  *offsetp += 20;
20201 }
20202 
20203 
20204 static void xinputChangeDeviceNotify(tvbuff_t *tvb, int *offsetp, proto_tree *t, guint byte_order)
20205 {
20206  proto_tree_add_item(t, hf_x11_xinput_ChangeDeviceNotify_device_id, tvb, *offsetp, 1, ENC_NA);
20207  *offsetp += 1;
20208  CARD16(event_sequencenumber);
20209  proto_tree_add_item(t, hf_x11_xinput_ChangeDeviceNotify_time, tvb, *offsetp, 4, byte_order);
20210  *offsetp += 4;
20211  field8(tvb, offsetp, t, hf_x11_xinput_ChangeDeviceNotify_request, byte_order);
20212  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 23, ENC_NA);
20213  *offsetp += 23;
20214 }
20215 
20216 
20217 static void xinputDeviceKeyStateNotify(tvbuff_t *tvb, int *offsetp, proto_tree *t, guint byte_order)
20218 {
20219  proto_tree_add_item(t, hf_x11_xinput_DeviceKeyStateNotify_device_id, tvb, *offsetp, 1, ENC_NA);
20220  *offsetp += 1;
20221  CARD16(event_sequencenumber);
20222  listOfByte(tvb, offsetp, t, hf_x11_xinput_DeviceKeyStateNotify_keys, 28, byte_order);
20223 }
20224 
20225 
20226 static void xinputDeviceButtonStateNotify(tvbuff_t *tvb, int *offsetp, proto_tree *t, guint byte_order)
20227 {
20228  proto_tree_add_item(t, hf_x11_xinput_DeviceButtonStateNotify_device_id, tvb, *offsetp, 1, ENC_NA);
20229  *offsetp += 1;
20230  CARD16(event_sequencenumber);
20231  listOfByte(tvb, offsetp, t, hf_x11_xinput_DeviceButtonStateNotify_buttons, 28, byte_order);
20232 }
20233 
20234 
20235 static void xinputDevicePresenceNotify(tvbuff_t *tvb, int *offsetp, proto_tree *t, guint byte_order)
20236 {
20237  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
20238  *offsetp += 1;
20239  CARD16(event_sequencenumber);
20240  proto_tree_add_item(t, hf_x11_xinput_DevicePresenceNotify_time, tvb, *offsetp, 4, byte_order);
20241  *offsetp += 4;
20242  field8(tvb, offsetp, t, hf_x11_xinput_DevicePresenceNotify_devchange, byte_order);
20243  proto_tree_add_item(t, hf_x11_xinput_DevicePresenceNotify_device_id, tvb, *offsetp, 1, ENC_NA);
20244  *offsetp += 1;
20245  proto_tree_add_item(t, hf_x11_xinput_DevicePresenceNotify_control, tvb, *offsetp, 2, byte_order);
20246  *offsetp += 2;
20247  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 20, ENC_NA);
20248  *offsetp += 20;
20249 }
20250 
20251 
20252 static void xinputDevicePropertyNotify(tvbuff_t *tvb, int *offsetp, proto_tree *t, guint byte_order)
20253 {
20254  field8(tvb, offsetp, t, hf_x11_xinput_DevicePropertyNotify_state, byte_order);
20255  CARD16(event_sequencenumber);
20256  proto_tree_add_item(t, hf_x11_xinput_DevicePropertyNotify_time, tvb, *offsetp, 4, byte_order);
20257  *offsetp += 4;
20258  proto_tree_add_item(t, hf_x11_xinput_DevicePropertyNotify_property, tvb, *offsetp, 4, byte_order);
20259  *offsetp += 4;
20260  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 19, ENC_NA);
20261  *offsetp += 19;
20262  proto_tree_add_item(t, hf_x11_xinput_DevicePropertyNotify_device_id, tvb, *offsetp, 1, byte_order);
20263  *offsetp += 1;
20264 }
20265 
20266 
20267 static void xinputDeviceChanged(tvbuff_t *tvb, int length _U_, int *offsetp, proto_tree *t, guint byte_order)
20268 {
20269  int f_num_classes;
20270  proto_tree_add_uint_format_value(t, hf_x11_minor_opcode, tvb, *offsetp, 2, 1,
20271  "DeviceChanged (1)");
20272  field16(tvb, offsetp, t, hf_x11_xinput_DeviceChanged_deviceid, byte_order);
20273  field32(tvb, offsetp, t, hf_x11_xinput_DeviceChanged_time, byte_order);
20274  f_num_classes = tvb_get_guint16(tvb, *offsetp, byte_order);
20275  proto_tree_add_item(t, hf_x11_xinput_DeviceChanged_num_classes, tvb, *offsetp, 2, byte_order);
20276  *offsetp += 2;
20277  field16(tvb, offsetp, t, hf_x11_xinput_DeviceChanged_sourceid, byte_order);
20278  field8(tvb, offsetp, t, hf_x11_xinput_DeviceChanged_reason, byte_order);
20279  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 11, ENC_NA);
20280  *offsetp += 11;
20281  struct_xinput_DeviceClass(tvb, offsetp, t, byte_order, f_num_classes);
20282 }
20283 
20284 
20285 static void xinputKeyPress(tvbuff_t *tvb, int length _U_, int *offsetp, proto_tree *t, guint byte_order)
20286 {
20287  int f_buttons_len;
20288  int f_valuators_len;
20289  int sumof_valuator_mask = 0;
20290  proto_tree_add_uint_format_value(t, hf_x11_minor_opcode, tvb, *offsetp, 2, 2,
20291  "KeyPress (2)");
20292  field16(tvb, offsetp, t, hf_x11_xinput_KeyPress_deviceid, byte_order);
20293  field32(tvb, offsetp, t, hf_x11_xinput_KeyPress_time, byte_order);
20294  proto_tree_add_item(t, hf_x11_xinput_KeyPress_detail, tvb, *offsetp, 4, byte_order);
20295  *offsetp += 4;
20296  proto_tree_add_item(t, hf_x11_xinput_KeyPress_root, tvb, *offsetp, 4, byte_order);
20297  *offsetp += 4;
20298  proto_tree_add_item(t, hf_x11_xinput_KeyPress_event, tvb, *offsetp, 4, byte_order);
20299  *offsetp += 4;
20300  proto_tree_add_item(t, hf_x11_xinput_KeyPress_child, tvb, *offsetp, 4, byte_order);
20301  *offsetp += 4;
20302  proto_tree_add_item(t, hf_x11_xinput_KeyPress_root_x, tvb, *offsetp, 4, byte_order);
20303  *offsetp += 4;
20304  proto_tree_add_item(t, hf_x11_xinput_KeyPress_root_y, tvb, *offsetp, 4, byte_order);
20305  *offsetp += 4;
20306  proto_tree_add_item(t, hf_x11_xinput_KeyPress_event_x, tvb, *offsetp, 4, byte_order);
20307  *offsetp += 4;
20308  proto_tree_add_item(t, hf_x11_xinput_KeyPress_event_y, tvb, *offsetp, 4, byte_order);
20309  *offsetp += 4;
20310  f_buttons_len = tvb_get_guint16(tvb, *offsetp, byte_order);
20311  proto_tree_add_item(t, hf_x11_xinput_KeyPress_buttons_len, tvb, *offsetp, 2, byte_order);
20312  *offsetp += 2;
20313  f_valuators_len = tvb_get_guint16(tvb, *offsetp, byte_order);
20314  proto_tree_add_item(t, hf_x11_xinput_KeyPress_valuators_len, tvb, *offsetp, 2, byte_order);
20315  *offsetp += 2;
20316  field16(tvb, offsetp, t, hf_x11_xinput_KeyPress_sourceid, byte_order);
20317  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 2, ENC_NA);
20318  *offsetp += 2;
20319  {
20320  int* const flags_bits [] = {
20321  &hf_x11_xinput_KeyPress_flags_mask_KeyRepeat,
20322  NULL
20323  };
20324  proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_xinput_KeyPress_flags, ett_x11_rectangle, flags_bits, byte_order);
20325  }
20326  *offsetp += 4;
20327  struct_xinput_ModifierInfo(tvb, offsetp, t, byte_order, 1);
20328  struct_xinput_GroupInfo(tvb, offsetp, t, byte_order, 1);
20329  listOfCard32(tvb, offsetp, t, hf_x11_xinput_KeyPress_button_mask, hf_x11_xinput_KeyPress_button_mask_item, f_buttons_len, byte_order);
20330  {
20331  int i;
20332  for (i = 0; i < f_valuators_len; i++) {
20333  sumof_valuator_mask += tvb_get_guint32(tvb, *offsetp + i * 4, byte_order);
20334  }
20335  }
20336  listOfCard32(tvb, offsetp, t, hf_x11_xinput_KeyPress_valuator_mask, hf_x11_xinput_KeyPress_valuator_mask_item, f_valuators_len, byte_order);
20337  struct_xinput_FP3232(tvb, offsetp, t, byte_order, sumof_valuator_mask);
20338 }
20339 
20340 
20341 static void xinputButtonPress(tvbuff_t *tvb, int length _U_, int *offsetp, proto_tree *t, guint byte_order)
20342 {
20343  int f_buttons_len;
20344  int f_valuators_len;
20345  int sumof_valuator_mask = 0;
20346  proto_tree_add_uint_format_value(t, hf_x11_minor_opcode, tvb, *offsetp, 2, 4,
20347  "ButtonPress (4)");
20348  field16(tvb, offsetp, t, hf_x11_xinput_ButtonPress_deviceid, byte_order);
20349  field32(tvb, offsetp, t, hf_x11_xinput_ButtonPress_time, byte_order);
20350  proto_tree_add_item(t, hf_x11_xinput_ButtonPress_detail, tvb, *offsetp, 4, byte_order);
20351  *offsetp += 4;
20352  proto_tree_add_item(t, hf_x11_xinput_ButtonPress_root, tvb, *offsetp, 4, byte_order);
20353  *offsetp += 4;
20354  proto_tree_add_item(t, hf_x11_xinput_ButtonPress_event, tvb, *offsetp, 4, byte_order);
20355  *offsetp += 4;
20356  proto_tree_add_item(t, hf_x11_xinput_ButtonPress_child, tvb, *offsetp, 4, byte_order);
20357  *offsetp += 4;
20358  proto_tree_add_item(t, hf_x11_xinput_ButtonPress_root_x, tvb, *offsetp, 4, byte_order);
20359  *offsetp += 4;
20360  proto_tree_add_item(t, hf_x11_xinput_ButtonPress_root_y, tvb, *offsetp, 4, byte_order);
20361  *offsetp += 4;
20362  proto_tree_add_item(t, hf_x11_xinput_ButtonPress_event_x, tvb, *offsetp, 4, byte_order);
20363  *offsetp += 4;
20364  proto_tree_add_item(t, hf_x11_xinput_ButtonPress_event_y, tvb, *offsetp, 4, byte_order);
20365  *offsetp += 4;
20366  f_buttons_len = tvb_get_guint16(tvb, *offsetp, byte_order);
20367  proto_tree_add_item(t, hf_x11_xinput_ButtonPress_buttons_len, tvb, *offsetp, 2, byte_order);
20368  *offsetp += 2;
20369  f_valuators_len = tvb_get_guint16(tvb, *offsetp, byte_order);
20370  proto_tree_add_item(t, hf_x11_xinput_ButtonPress_valuators_len, tvb, *offsetp, 2, byte_order);
20371  *offsetp += 2;
20372  field16(tvb, offsetp, t, hf_x11_xinput_ButtonPress_sourceid, byte_order);
20373  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 2, ENC_NA);
20374  *offsetp += 2;
20375  {
20376  int* const flags_bits [] = {
20377  &hf_x11_xinput_ButtonPress_flags_mask_PointerEmulated,
20378  NULL
20379  };
20380  proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_xinput_ButtonPress_flags, ett_x11_rectangle, flags_bits, byte_order);
20381  }
20382  *offsetp += 4;
20383  struct_xinput_ModifierInfo(tvb, offsetp, t, byte_order, 1);
20384  struct_xinput_GroupInfo(tvb, offsetp, t, byte_order, 1);
20385  listOfCard32(tvb, offsetp, t, hf_x11_xinput_ButtonPress_button_mask, hf_x11_xinput_ButtonPress_button_mask_item, f_buttons_len, byte_order);
20386  {
20387  int i;
20388  for (i = 0; i < f_valuators_len; i++) {
20389  sumof_valuator_mask += tvb_get_guint32(tvb, *offsetp + i * 4, byte_order);
20390  }
20391  }
20392  listOfCard32(tvb, offsetp, t, hf_x11_xinput_ButtonPress_valuator_mask, hf_x11_xinput_ButtonPress_valuator_mask_item, f_valuators_len, byte_order);
20393  struct_xinput_FP3232(tvb, offsetp, t, byte_order, sumof_valuator_mask);
20394 }
20395 
20396 
20397 static void xinputEnter(tvbuff_t *tvb, int length _U_, int *offsetp, proto_tree *t, guint byte_order)
20398 {
20399  int f_buttons_len;
20400  proto_tree_add_uint_format_value(t, hf_x11_minor_opcode, tvb, *offsetp, 2, 7,
20401  "Enter (7)");
20402  field16(tvb, offsetp, t, hf_x11_xinput_Enter_deviceid, byte_order);
20403  field32(tvb, offsetp, t, hf_x11_xinput_Enter_time, byte_order);
20404  field16(tvb, offsetp, t, hf_x11_xinput_Enter_sourceid, byte_order);
20405  field8(tvb, offsetp, t, hf_x11_xinput_Enter_mode, byte_order);
20406  field8(tvb, offsetp, t, hf_x11_xinput_Enter_detail, byte_order);
20407  proto_tree_add_item(t, hf_x11_xinput_Enter_root, tvb, *offsetp, 4, byte_order);
20408  *offsetp += 4;
20409  proto_tree_add_item(t, hf_x11_xinput_Enter_event, tvb, *offsetp, 4, byte_order);
20410  *offsetp += 4;
20411  proto_tree_add_item(t, hf_x11_xinput_Enter_child, tvb, *offsetp, 4, byte_order);
20412  *offsetp += 4;
20413  proto_tree_add_item(t, hf_x11_xinput_Enter_root_x, tvb, *offsetp, 4, byte_order);
20414  *offsetp += 4;
20415  proto_tree_add_item(t, hf_x11_xinput_Enter_root_y, tvb, *offsetp, 4, byte_order);
20416  *offsetp += 4;
20417  proto_tree_add_item(t, hf_x11_xinput_Enter_event_x, tvb, *offsetp, 4, byte_order);
20418  *offsetp += 4;
20419  proto_tree_add_item(t, hf_x11_xinput_Enter_event_y, tvb, *offsetp, 4, byte_order);
20420  *offsetp += 4;
20421  proto_tree_add_item(t, hf_x11_xinput_Enter_same_screen, tvb, *offsetp, 1, byte_order);
20422  *offsetp += 1;
20423  proto_tree_add_item(t, hf_x11_xinput_Enter_focus, tvb, *offsetp, 1, byte_order);
20424  *offsetp += 1;
20425  f_buttons_len = tvb_get_guint16(tvb, *offsetp, byte_order);
20426  proto_tree_add_item(t, hf_x11_xinput_Enter_buttons_len, tvb, *offsetp, 2, byte_order);
20427  *offsetp += 2;
20428  struct_xinput_ModifierInfo(tvb, offsetp, t, byte_order, 1);
20429  struct_xinput_GroupInfo(tvb, offsetp, t, byte_order, 1);
20430  listOfCard32(tvb, offsetp, t, hf_x11_xinput_Enter_buttons, hf_x11_xinput_Enter_buttons_item, f_buttons_len, byte_order);
20431 }
20432 
20433 
20434 static void struct_xinput_HierarchyInfo(tvbuff_t *tvb, int *offsetp, proto_tree *root, guint byte_order _U_, int count)
20435 {
20436  int i;
20437  for (i = 0; i < count; i++) {
20438  proto_item *item;
20439  proto_tree *t;
20440 
20441  item = proto_tree_add_item(root, hf_x11_struct_xinput_HierarchyInfo, tvb, *offsetp, 12, ENC_NA);
20442  t = proto_item_add_subtree(item, ett_x11_rectangle);
20443  field16(tvb, offsetp, t, hf_x11_struct_xinput_HierarchyInfo_deviceid, byte_order);
20444  field16(tvb, offsetp, t, hf_x11_struct_xinput_HierarchyInfo_attachment, byte_order);
20445  field8(tvb, offsetp, t, hf_x11_struct_xinput_HierarchyInfo_type, byte_order);
20446  proto_tree_add_item(t, hf_x11_struct_xinput_HierarchyInfo_enabled, tvb, *offsetp, 1, byte_order);
20447  *offsetp += 1;
20448  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 2, ENC_NA);
20449  *offsetp += 2;
20450  {
20451  int* const flags_bits [] = {
20452  &hf_x11_struct_xinput_HierarchyInfo_flags_mask_MasterAdded,
20453  &hf_x11_struct_xinput_HierarchyInfo_flags_mask_MasterRemoved,
20454  &hf_x11_struct_xinput_HierarchyInfo_flags_mask_SlaveAdded,
20455  &hf_x11_struct_xinput_HierarchyInfo_flags_mask_SlaveRemoved,
20456  &hf_x11_struct_xinput_HierarchyInfo_flags_mask_SlaveAttached,
20457  &hf_x11_struct_xinput_HierarchyInfo_flags_mask_SlaveDetached,
20458  &hf_x11_struct_xinput_HierarchyInfo_flags_mask_DeviceEnabled,
20459  &hf_x11_struct_xinput_HierarchyInfo_flags_mask_DeviceDisabled,
20460  NULL
20461  };
20462  proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_struct_xinput_HierarchyInfo_flags, ett_x11_rectangle, flags_bits, byte_order);
20463  }
20464  *offsetp += 4;
20465  }
20466 }
20467 
20468 static void xinputHierarchy(tvbuff_t *tvb, int length _U_, int *offsetp, proto_tree *t, guint byte_order)
20469 {
20470  int f_num_infos;
20471  proto_tree_add_uint_format_value(t, hf_x11_minor_opcode, tvb, *offsetp, 2, 11,
20472  "Hierarchy (11)");
20473  field16(tvb, offsetp, t, hf_x11_xinput_Hierarchy_deviceid, byte_order);
20474  field32(tvb, offsetp, t, hf_x11_xinput_Hierarchy_time, byte_order);
20475  {
20476  int* const flags_bits [] = {
20477  &hf_x11_xinput_Hierarchy_flags_mask_MasterAdded,
20478  &hf_x11_xinput_Hierarchy_flags_mask_MasterRemoved,
20479  &hf_x11_xinput_Hierarchy_flags_mask_SlaveAdded,
20480  &hf_x11_xinput_Hierarchy_flags_mask_SlaveRemoved,
20481  &hf_x11_xinput_Hierarchy_flags_mask_SlaveAttached,
20482  &hf_x11_xinput_Hierarchy_flags_mask_SlaveDetached,
20483  &hf_x11_xinput_Hierarchy_flags_mask_DeviceEnabled,
20484  &hf_x11_xinput_Hierarchy_flags_mask_DeviceDisabled,
20485  NULL
20486  };
20487  proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_xinput_Hierarchy_flags, ett_x11_rectangle, flags_bits, byte_order);
20488  }
20489  *offsetp += 4;
20490  f_num_infos = tvb_get_guint16(tvb, *offsetp, byte_order);
20491  proto_tree_add_item(t, hf_x11_xinput_Hierarchy_num_infos, tvb, *offsetp, 2, byte_order);
20492  *offsetp += 2;
20493  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 10, ENC_NA);
20494  *offsetp += 10;
20495  struct_xinput_HierarchyInfo(tvb, offsetp, t, byte_order, f_num_infos);
20496 }
20497 
20498 
20499 static void xinputProperty(tvbuff_t *tvb, int length _U_, int *offsetp, proto_tree *t, guint byte_order)
20500 {
20501  proto_tree_add_uint_format_value(t, hf_x11_minor_opcode, tvb, *offsetp, 2, 12,
20502  "Property (12)");
20503  field16(tvb, offsetp, t, hf_x11_xinput_Property_deviceid, byte_order);
20504  field32(tvb, offsetp, t, hf_x11_xinput_Property_time, byte_order);
20505  proto_tree_add_item(t, hf_x11_xinput_Property_property, tvb, *offsetp, 4, byte_order);
20506  *offsetp += 4;
20507  field8(tvb, offsetp, t, hf_x11_xinput_Property_what, byte_order);
20508  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 11, ENC_NA);
20509  *offsetp += 11;
20510 }
20511 
20512 
20513 static void xinputRawKeyPress(tvbuff_t *tvb, int length _U_, int *offsetp, proto_tree *t, guint byte_order)
20514 {
20515  int f_valuators_len;
20516  int sumof_valuator_mask = 0;
20517  proto_tree_add_uint_format_value(t, hf_x11_minor_opcode, tvb, *offsetp, 2, 13,
20518  "RawKeyPress (13)");
20519  field16(tvb, offsetp, t, hf_x11_xinput_RawKeyPress_deviceid, byte_order);
20520  field32(tvb, offsetp, t, hf_x11_xinput_RawKeyPress_time, byte_order);
20521  proto_tree_add_item(t, hf_x11_xinput_RawKeyPress_detail, tvb, *offsetp, 4, byte_order);
20522  *offsetp += 4;
20523  proto_tree_add_item(t, hf_x11_xinput_RawKeyPress_sourceid, tvb, *offsetp, 2, byte_order);
20524  *offsetp += 2;
20525  f_valuators_len = tvb_get_guint16(tvb, *offsetp, byte_order);
20526  proto_tree_add_item(t, hf_x11_xinput_RawKeyPress_valuators_len, tvb, *offsetp, 2, byte_order);
20527  *offsetp += 2;
20528  {
20529  int* const flags_bits [] = {
20530  &hf_x11_xinput_RawKeyPress_flags_mask_KeyRepeat,
20531  NULL
20532  };
20533  proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_xinput_RawKeyPress_flags, ett_x11_rectangle, flags_bits, byte_order);
20534  }
20535  *offsetp += 4;
20536  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 4, ENC_NA);
20537  *offsetp += 4;
20538  {
20539  int i;
20540  for (i = 0; i < f_valuators_len; i++) {
20541  sumof_valuator_mask += tvb_get_guint32(tvb, *offsetp + i * 4, byte_order);
20542  }
20543  }
20544  listOfCard32(tvb, offsetp, t, hf_x11_xinput_RawKeyPress_valuator_mask, hf_x11_xinput_RawKeyPress_valuator_mask_item, f_valuators_len, byte_order);
20545  struct_xinput_FP3232(tvb, offsetp, t, byte_order, sumof_valuator_mask);
20546  struct_xinput_FP3232(tvb, offsetp, t, byte_order, sumof_valuator_mask);
20547 }
20548 
20549 
20550 static void xinputRawButtonPress(tvbuff_t *tvb, int length _U_, int *offsetp, proto_tree *t, guint byte_order)
20551 {
20552  int f_valuators_len;
20553  int sumof_valuator_mask = 0;
20554  proto_tree_add_uint_format_value(t, hf_x11_minor_opcode, tvb, *offsetp, 2, 15,
20555  "RawButtonPress (15)");
20556  field16(tvb, offsetp, t, hf_x11_xinput_RawButtonPress_deviceid, byte_order);
20557  field32(tvb, offsetp, t, hf_x11_xinput_RawButtonPress_time, byte_order);
20558  proto_tree_add_item(t, hf_x11_xinput_RawButtonPress_detail, tvb, *offsetp, 4, byte_order);
20559  *offsetp += 4;
20560  proto_tree_add_item(t, hf_x11_xinput_RawButtonPress_sourceid, tvb, *offsetp, 2, byte_order);
20561  *offsetp += 2;
20562  f_valuators_len = tvb_get_guint16(tvb, *offsetp, byte_order);
20563  proto_tree_add_item(t, hf_x11_xinput_RawButtonPress_valuators_len, tvb, *offsetp, 2, byte_order);
20564  *offsetp += 2;
20565  {
20566  int* const flags_bits [] = {
20567  &hf_x11_xinput_RawButtonPress_flags_mask_PointerEmulated,
20568  NULL
20569  };
20570  proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_xinput_RawButtonPress_flags, ett_x11_rectangle, flags_bits, byte_order);
20571  }
20572  *offsetp += 4;
20573  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 4, ENC_NA);
20574  *offsetp += 4;
20575  {
20576  int i;
20577  for (i = 0; i < f_valuators_len; i++) {
20578  sumof_valuator_mask += tvb_get_guint32(tvb, *offsetp + i * 4, byte_order);
20579  }
20580  }
20581  listOfCard32(tvb, offsetp, t, hf_x11_xinput_RawButtonPress_valuator_mask, hf_x11_xinput_RawButtonPress_valuator_mask_item, f_valuators_len, byte_order);
20582  struct_xinput_FP3232(tvb, offsetp, t, byte_order, sumof_valuator_mask);
20583  struct_xinput_FP3232(tvb, offsetp, t, byte_order, sumof_valuator_mask);
20584 }
20585 
20586 
20587 static void xinputTouchBegin(tvbuff_t *tvb, int length _U_, int *offsetp, proto_tree *t, guint byte_order)
20588 {
20589  int f_buttons_len;
20590  int f_valuators_len;
20591  int sumof_valuator_mask = 0;
20592  proto_tree_add_uint_format_value(t, hf_x11_minor_opcode, tvb, *offsetp, 2, 18,
20593  "TouchBegin (18)");
20594  field16(tvb, offsetp, t, hf_x11_xinput_TouchBegin_deviceid, byte_order);
20595  field32(tvb, offsetp, t, hf_x11_xinput_TouchBegin_time, byte_order);
20596  proto_tree_add_item(t, hf_x11_xinput_TouchBegin_detail, tvb, *offsetp, 4, byte_order);
20597  *offsetp += 4;
20598  proto_tree_add_item(t, hf_x11_xinput_TouchBegin_root, tvb, *offsetp, 4, byte_order);
20599  *offsetp += 4;
20600  proto_tree_add_item(t, hf_x11_xinput_TouchBegin_event, tvb, *offsetp, 4, byte_order);
20601  *offsetp += 4;
20602  proto_tree_add_item(t, hf_x11_xinput_TouchBegin_child, tvb, *offsetp, 4, byte_order);
20603  *offsetp += 4;
20604  proto_tree_add_item(t, hf_x11_xinput_TouchBegin_root_x, tvb, *offsetp, 4, byte_order);
20605  *offsetp += 4;
20606  proto_tree_add_item(t, hf_x11_xinput_TouchBegin_root_y, tvb, *offsetp, 4, byte_order);
20607  *offsetp += 4;
20608  proto_tree_add_item(t, hf_x11_xinput_TouchBegin_event_x, tvb, *offsetp, 4, byte_order);
20609  *offsetp += 4;
20610  proto_tree_add_item(t, hf_x11_xinput_TouchBegin_event_y, tvb, *offsetp, 4, byte_order);
20611  *offsetp += 4;
20612  f_buttons_len = tvb_get_guint16(tvb, *offsetp, byte_order);
20613  proto_tree_add_item(t, hf_x11_xinput_TouchBegin_buttons_len, tvb, *offsetp, 2, byte_order);
20614  *offsetp += 2;
20615  f_valuators_len = tvb_get_guint16(tvb, *offsetp, byte_order);
20616  proto_tree_add_item(t, hf_x11_xinput_TouchBegin_valuators_len, tvb, *offsetp, 2, byte_order);
20617  *offsetp += 2;
20618  field16(tvb, offsetp, t, hf_x11_xinput_TouchBegin_sourceid, byte_order);
20619  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 2, ENC_NA);
20620  *offsetp += 2;
20621  {
20622  int* const flags_bits [] = {
20623  &hf_x11_xinput_TouchBegin_flags_mask_TouchPendingEnd,
20624  &hf_x11_xinput_TouchBegin_flags_mask_TouchEmulatingPointer,
20625  NULL
20626  };
20627  proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_xinput_TouchBegin_flags, ett_x11_rectangle, flags_bits, byte_order);
20628  }
20629  *offsetp += 4;
20630  struct_xinput_ModifierInfo(tvb, offsetp, t, byte_order, 1);
20631  struct_xinput_GroupInfo(tvb, offsetp, t, byte_order, 1);
20632  listOfCard32(tvb, offsetp, t, hf_x11_xinput_TouchBegin_button_mask, hf_x11_xinput_TouchBegin_button_mask_item, f_buttons_len, byte_order);
20633  {
20634  int i;
20635  for (i = 0; i < f_valuators_len; i++) {
20636  sumof_valuator_mask += tvb_get_guint32(tvb, *offsetp + i * 4, byte_order);
20637  }
20638  }
20639  listOfCard32(tvb, offsetp, t, hf_x11_xinput_TouchBegin_valuator_mask, hf_x11_xinput_TouchBegin_valuator_mask_item, f_valuators_len, byte_order);
20640  struct_xinput_FP3232(tvb, offsetp, t, byte_order, sumof_valuator_mask);
20641 }
20642 
20643 
20644 static void xinputTouchOwnership(tvbuff_t *tvb, int length _U_, int *offsetp, proto_tree *t, guint byte_order)
20645 {
20646  proto_tree_add_uint_format_value(t, hf_x11_minor_opcode, tvb, *offsetp, 2, 21,
20647  "TouchOwnership (21)");
20648  field16(tvb, offsetp, t, hf_x11_xinput_TouchOwnership_deviceid, byte_order);
20649  field32(tvb, offsetp, t, hf_x11_xinput_TouchOwnership_time, byte_order);
20650  proto_tree_add_item(t, hf_x11_xinput_TouchOwnership_touchid, tvb, *offsetp, 4, byte_order);
20651  *offsetp += 4;
20652  proto_tree_add_item(t, hf_x11_xinput_TouchOwnership_root, tvb, *offsetp, 4, byte_order);
20653  *offsetp += 4;
20654  proto_tree_add_item(t, hf_x11_xinput_TouchOwnership_event, tvb, *offsetp, 4, byte_order);
20655  *offsetp += 4;
20656  proto_tree_add_item(t, hf_x11_xinput_TouchOwnership_child, tvb, *offsetp, 4, byte_order);
20657  *offsetp += 4;
20658  field16(tvb, offsetp, t, hf_x11_xinput_TouchOwnership_sourceid, byte_order);
20659  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 2, ENC_NA);
20660  *offsetp += 2;
20661  field32(tvb, offsetp, t, hf_x11_xinput_TouchOwnership_flags, byte_order);
20662  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 8, ENC_NA);
20663  *offsetp += 8;
20664 }
20665 
20666 
20667 static void xinputRawTouchBegin(tvbuff_t *tvb, int length _U_, int *offsetp, proto_tree *t, guint byte_order)
20668 {
20669  int f_valuators_len;
20670  int sumof_valuator_mask = 0;
20671  proto_tree_add_uint_format_value(t, hf_x11_minor_opcode, tvb, *offsetp, 2, 22,
20672  "RawTouchBegin (22)");
20673  field16(tvb, offsetp, t, hf_x11_xinput_RawTouchBegin_deviceid, byte_order);
20674  field32(tvb, offsetp, t, hf_x11_xinput_RawTouchBegin_time, byte_order);
20675  proto_tree_add_item(t, hf_x11_xinput_RawTouchBegin_detail, tvb, *offsetp, 4, byte_order);
20676  *offsetp += 4;
20677  proto_tree_add_item(t, hf_x11_xinput_RawTouchBegin_sourceid, tvb, *offsetp, 2, byte_order);
20678  *offsetp += 2;
20679  f_valuators_len = tvb_get_guint16(tvb, *offsetp, byte_order);
20680  proto_tree_add_item(t, hf_x11_xinput_RawTouchBegin_valuators_len, tvb, *offsetp, 2, byte_order);
20681  *offsetp += 2;
20682  {
20683  int* const flags_bits [] = {
20684  &hf_x11_xinput_RawTouchBegin_flags_mask_TouchPendingEnd,
20685  &hf_x11_xinput_RawTouchBegin_flags_mask_TouchEmulatingPointer,
20686  NULL
20687  };
20688  proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_xinput_RawTouchBegin_flags, ett_x11_rectangle, flags_bits, byte_order);
20689  }
20690  *offsetp += 4;
20691  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 4, ENC_NA);
20692  *offsetp += 4;
20693  {
20694  int i;
20695  for (i = 0; i < f_valuators_len; i++) {
20696  sumof_valuator_mask += tvb_get_guint32(tvb, *offsetp + i * 4, byte_order);
20697  }
20698  }
20699  listOfCard32(tvb, offsetp, t, hf_x11_xinput_RawTouchBegin_valuator_mask, hf_x11_xinput_RawTouchBegin_valuator_mask_item, f_valuators_len, byte_order);
20700  struct_xinput_FP3232(tvb, offsetp, t, byte_order, sumof_valuator_mask);
20701  struct_xinput_FP3232(tvb, offsetp, t, byte_order, sumof_valuator_mask);
20702 }
20703 
20704 
20705 static void xinputBarrierHit(tvbuff_t *tvb, int length _U_, int *offsetp, proto_tree *t, guint byte_order)
20706 {
20707  proto_tree_add_uint_format_value(t, hf_x11_minor_opcode, tvb, *offsetp, 2, 25,
20708  "BarrierHit (25)");
20709  field16(tvb, offsetp, t, hf_x11_xinput_BarrierHit_deviceid, byte_order);
20710  field32(tvb, offsetp, t, hf_x11_xinput_BarrierHit_time, byte_order);
20711  proto_tree_add_item(t, hf_x11_xinput_BarrierHit_eventid, tvb, *offsetp, 4, byte_order);
20712  *offsetp += 4;
20713  proto_tree_add_item(t, hf_x11_xinput_BarrierHit_root, tvb, *offsetp, 4, byte_order);
20714  *offsetp += 4;
20715  proto_tree_add_item(t, hf_x11_xinput_BarrierHit_event, tvb, *offsetp, 4, byte_order);
20716  *offsetp += 4;
20717  proto_tree_add_item(t, hf_x11_xinput_BarrierHit_barrier, tvb, *offsetp, 4, byte_order);
20718  *offsetp += 4;
20719  proto_tree_add_item(t, hf_x11_xinput_BarrierHit_dtime, tvb, *offsetp, 4, byte_order);
20720  *offsetp += 4;
20721  {
20722  int* const flags_bits [] = {
20723  &hf_x11_xinput_BarrierHit_flags_mask_PointerReleased,
20724  &hf_x11_xinput_BarrierHit_flags_mask_DeviceIsGrabbed,
20725  NULL
20726  };
20727  proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_xinput_BarrierHit_flags, ett_x11_rectangle, flags_bits, byte_order);
20728  }
20729  *offsetp += 4;
20730  field16(tvb, offsetp, t, hf_x11_xinput_BarrierHit_sourceid, byte_order);
20731  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 2, ENC_NA);
20732  *offsetp += 2;
20733  proto_tree_add_item(t, hf_x11_xinput_BarrierHit_root_x, tvb, *offsetp, 4, byte_order);
20734  *offsetp += 4;
20735  proto_tree_add_item(t, hf_x11_xinput_BarrierHit_root_y, tvb, *offsetp, 4, byte_order);
20736  *offsetp += 4;
20737  struct_xinput_FP3232(tvb, offsetp, t, byte_order, 1);
20738  struct_xinput_FP3232(tvb, offsetp, t, byte_order, 1);
20739 }
20740 
20741 
20742 static void xinputSendExtensionEvent(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
20743 {
20744  int f_num_classes;
20745  int f_num_events;
20746  proto_tree_add_item(t, hf_x11_xinput_SendExtensionEvent_destination, tvb, *offsetp, 4, byte_order);
20747  *offsetp += 4;
20748  proto_tree_add_item(t, hf_x11_xinput_SendExtensionEvent_device_id, tvb, *offsetp, 1, byte_order);
20749  *offsetp += 1;
20750  proto_tree_add_item(t, hf_x11_xinput_SendExtensionEvent_propagate, tvb, *offsetp, 1, byte_order);
20751  *offsetp += 1;
20752  f_num_classes = tvb_get_guint16(tvb, *offsetp, byte_order);
20753  proto_tree_add_item(t, hf_x11_xinput_SendExtensionEvent_num_classes, tvb, *offsetp, 2, byte_order);
20754  *offsetp += 2;
20755  f_num_events = tvb_get_guint8(tvb, *offsetp);
20756  proto_tree_add_item(t, hf_x11_xinput_SendExtensionEvent_num_events, tvb, *offsetp, 1, byte_order);
20757  *offsetp += 1;
20758  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 3, ENC_NA);
20759  *offsetp += 3;
20760  length -= f_num_events * 1;
20761  listOfCard32(tvb, offsetp, t, hf_x11_xinput_SendExtensionEvent_classes, hf_x11_xinput_SendExtensionEvent_classes_item, f_num_classes, byte_order);
20762  length -= f_num_classes * 4;
20763 }
20764 static const value_string xinput_extension_minor[] = {
20765  { 1, "GetExtensionVersion" },
20766  { 2, "ListInputDevices" },
20767  { 3, "OpenDevice" },
20768  { 4, "CloseDevice" },
20769  { 5, "SetDeviceMode" },
20770  { 6, "SelectExtensionEvent" },
20771  { 7, "GetSelectedExtensionEvents" },
20772  { 8, "ChangeDeviceDontPropagateList" },
20773  { 9, "GetDeviceDontPropagateList" },
20774  { 10, "GetDeviceMotionEvents" },
20775  { 11, "ChangeKeyboardDevice" },
20776  { 12, "ChangePointerDevice" },
20777  { 13, "GrabDevice" },
20778  { 14, "UngrabDevice" },
20779  { 15, "GrabDeviceKey" },
20780  { 16, "UngrabDeviceKey" },
20781  { 17, "GrabDeviceButton" },
20782  { 18, "UngrabDeviceButton" },
20783  { 19, "AllowDeviceEvents" },
20784  { 20, "GetDeviceFocus" },
20785  { 21, "SetDeviceFocus" },
20786  { 22, "GetFeedbackControl" },
20787  { 23, "ChangeFeedbackControl" },
20788  { 24, "GetDeviceKeyMapping" },
20789  { 25, "ChangeDeviceKeyMapping" },
20790  { 26, "GetDeviceModifierMapping" },
20791  { 27, "SetDeviceModifierMapping" },
20792  { 28, "GetDeviceButtonMapping" },
20793  { 29, "SetDeviceButtonMapping" },
20794  { 30, "QueryDeviceState" },
20795  { 31, "SendExtensionEvent" },
20796  { 32, "DeviceBell" },
20797  { 33, "SetDeviceValuators" },
20798  { 34, "GetDeviceControl" },
20799  { 35, "ChangeDeviceControl" },
20800  { 36, "ListDeviceProperties" },
20801  { 37, "ChangeDeviceProperty" },
20802  { 38, "DeleteDeviceProperty" },
20803  { 39, "GetDeviceProperty" },
20804  { 40, "XIQueryPointer" },
20805  { 41, "XIWarpPointer" },
20806  { 42, "XIChangeCursor" },
20807  { 43, "XIChangeHierarchy" },
20808  { 44, "XISetClientPointer" },
20809  { 45, "XIGetClientPointer" },
20810  { 46, "XISelectEvents" },
20811  { 47, "XIQueryVersion" },
20812  { 48, "XIQueryDevice" },
20813  { 49, "XISetFocus" },
20814  { 50, "XIGetFocus" },
20815  { 51, "XIGrabDevice" },
20816  { 52, "XIUngrabDevice" },
20817  { 53, "XIAllowEvents" },
20818  { 54, "XIPassiveGrabDevice" },
20819  { 55, "XIPassiveUngrabDevice" },
20820  { 56, "XIListProperties" },
20821  { 57, "XIChangeProperty" },
20822  { 58, "XIDeleteProperty" },
20823  { 59, "XIGetProperty" },
20824  { 60, "XIGetSelectedEvents" },
20825  { 61, "XIBarrierReleasePointer" },
20826  { 0, NULL }
20827 };
20828 static const x11_event_info xinput_events[] = {
20829  { "xinput-DeviceKeyPress", xinputDeviceKeyPress },
20830  { "xinput-DeviceFocusIn", xinputDeviceFocusIn },
20831  { "xinput-DeviceStateNotify", xinputDeviceStateNotify },
20832  { "xinput-DeviceMappingNotify", xinputDeviceMappingNotify },
20833  { "xinput-ChangeDeviceNotify", xinputChangeDeviceNotify },
20834  { "xinput-DeviceKeyStateNotify", xinputDeviceKeyStateNotify },
20835  { "xinput-DeviceButtonStateNotify", xinputDeviceButtonStateNotify },
20836  { "xinput-DevicePresenceNotify", xinputDevicePresenceNotify },
20837  { "xinput-DevicePropertyNotify", xinputDevicePropertyNotify },
20838  { NULL, NULL }
20839 };
20840 static const x11_generic_event_info xinput_generic_events[] = {
20841  { 1, xinputDeviceChanged },
20842  { 2, xinputKeyPress },
20843  { 4, xinputButtonPress },
20844  { 7, xinputEnter },
20845  { 11, xinputHierarchy },
20846  { 12, xinputProperty },
20847  { 13, xinputRawKeyPress },
20848  { 15, xinputRawButtonPress },
20849  { 18, xinputTouchBegin },
20850  { 21, xinputTouchOwnership },
20851  { 22, xinputRawTouchBegin },
20852  { 25, xinputBarrierHit },
20853  { 0, NULL },
20854 };
20855 
20856 static x11_reply_info xinput_replies[] = {
20857  { 1, xinputGetExtensionVersion_Reply },
20858  { 2, xinputListInputDevices_Reply },
20859  { 3, xinputOpenDevice_Reply },
20860  { 5, xinputSetDeviceMode_Reply },
20861  { 7, xinputGetSelectedExtensionEvents_Reply },
20862  { 9, xinputGetDeviceDontPropagateList_Reply },
20863  { 10, xinputGetDeviceMotionEvents_Reply },
20864  { 11, xinputChangeKeyboardDevice_Reply },
20865  { 12, xinputChangePointerDevice_Reply },
20866  { 13, xinputGrabDevice_Reply },
20867  { 20, xinputGetDeviceFocus_Reply },
20868  { 22, xinputGetFeedbackControl_Reply },
20869  { 24, xinputGetDeviceKeyMapping_Reply },
20870  { 26, xinputGetDeviceModifierMapping_Reply },
20871  { 27, xinputSetDeviceModifierMapping_Reply },
20872  { 28, xinputGetDeviceButtonMapping_Reply },
20873  { 29, xinputSetDeviceButtonMapping_Reply },
20874  { 30, xinputQueryDeviceState_Reply },
20875  { 33, xinputSetDeviceValuators_Reply },
20876  { 34, xinputGetDeviceControl_Reply },
20877  { 35, xinputChangeDeviceControl_Reply },
20878  { 36, xinputListDeviceProperties_Reply },
20879  { 39, xinputGetDeviceProperty_Reply },
20880  { 40, xinputXIQueryPointer_Reply },
20881  { 45, xinputXIGetClientPointer_Reply },
20882  { 47, xinputXIQueryVersion_Reply },
20883  { 48, xinputXIQueryDevice_Reply },
20884  { 50, xinputXIGetFocus_Reply },
20885  { 51, xinputXIGrabDevice_Reply },
20886  { 54, xinputXIPassiveGrabDevice_Reply },
20887  { 56, xinputXIListProperties_Reply },
20888  { 59, xinputXIGetProperty_Reply },
20889  { 60, xinputXIGetSelectedEvents_Reply },
20890  { 0, NULL }
20891 };
20892 
20893 static void dispatch_xinput(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
20894 {
20895  int minor, length;
20896  minor = CARD8(xinput_extension_minor);
20897  length = REQUEST_LENGTH();
20898 
20899  col_append_fstr(pinfo->cinfo, COL_INFO, "-%s",
20900  val_to_str(minor, xinput_extension_minor,
20901  "<Unknown opcode %d>"));
20902  switch (minor) {
20903  case 1:
20904  xinputGetExtensionVersion(tvb, pinfo, offsetp, t, byte_order, length);
20905  break;
20906  case 2:
20907  xinputListInputDevices(tvb, pinfo, offsetp, t, byte_order, length);
20908  break;
20909  case 3:
20910  xinputOpenDevice(tvb, pinfo, offsetp, t, byte_order, length);
20911  break;
20912  case 4:
20913  xinputCloseDevice(tvb, pinfo, offsetp, t, byte_order, length);
20914  break;
20915  case 5:
20916  xinputSetDeviceMode(tvb, pinfo, offsetp, t, byte_order, length);
20917  break;
20918  case 6:
20919  xinputSelectExtensionEvent(tvb, pinfo, offsetp, t, byte_order, length);
20920  break;
20921  case 7:
20922  xinputGetSelectedExtensionEvents(tvb, pinfo, offsetp, t, byte_order, length);
20923  break;
20924  case 8:
20925  xinputChangeDeviceDontPropagateList(tvb, pinfo, offsetp, t, byte_order, length);
20926  break;
20927  case 9:
20928  xinputGetDeviceDontPropagateList(tvb, pinfo, offsetp, t, byte_order, length);
20929  break;
20930  case 10:
20931  xinputGetDeviceMotionEvents(tvb, pinfo, offsetp, t, byte_order, length);
20932  break;
20933  case 11:
20934  xinputChangeKeyboardDevice(tvb, pinfo, offsetp, t, byte_order, length);
20935  break;
20936  case 12:
20937  xinputChangePointerDevice(tvb, pinfo, offsetp, t, byte_order, length);
20938  break;
20939  case 13:
20940  xinputGrabDevice(tvb, pinfo, offsetp, t, byte_order, length);
20941  break;
20942  case 14:
20943  xinputUngrabDevice(tvb, pinfo, offsetp, t, byte_order, length);
20944  break;
20945  case 15:
20946  xinputGrabDeviceKey(tvb, pinfo, offsetp, t, byte_order, length);
20947  break;
20948  case 16:
20949  xinputUngrabDeviceKey(tvb, pinfo, offsetp, t, byte_order, length);
20950  break;
20951  case 17:
20952  xinputGrabDeviceButton(tvb, pinfo, offsetp, t, byte_order, length);
20953  break;
20954  case 18:
20955  xinputUngrabDeviceButton(tvb, pinfo, offsetp, t, byte_order, length);
20956  break;
20957  case 19:
20958  xinputAllowDeviceEvents(tvb, pinfo, offsetp, t, byte_order, length);
20959  break;
20960  case 20:
20961  xinputGetDeviceFocus(tvb, pinfo, offsetp, t, byte_order, length);
20962  break;
20963  case 21:
20964  xinputSetDeviceFocus(tvb, pinfo, offsetp, t, byte_order, length);
20965  break;
20966  case 22:
20967  xinputGetFeedbackControl(tvb, pinfo, offsetp, t, byte_order, length);
20968  break;
20969  case 23:
20970  xinputChangeFeedbackControl(tvb, pinfo, offsetp, t, byte_order, length);
20971  break;
20972  case 24:
20973  xinputGetDeviceKeyMapping(tvb, pinfo, offsetp, t, byte_order, length);
20974  break;
20975  case 25:
20976  xinputChangeDeviceKeyMapping(tvb, pinfo, offsetp, t, byte_order, length);
20977  break;
20978  case 26:
20979  xinputGetDeviceModifierMapping(tvb, pinfo, offsetp, t, byte_order, length);
20980  break;
20981  case 27:
20982  xinputSetDeviceModifierMapping(tvb, pinfo, offsetp, t, byte_order, length);
20983  break;
20984  case 28:
20985  xinputGetDeviceButtonMapping(tvb, pinfo, offsetp, t, byte_order, length);
20986  break;
20987  case 29:
20988  xinputSetDeviceButtonMapping(tvb, pinfo, offsetp, t, byte_order, length);
20989  break;
20990  case 30:
20991  xinputQueryDeviceState(tvb, pinfo, offsetp, t, byte_order, length);
20992  break;
20993  case 31:
20994  xinputSendExtensionEvent(tvb, pinfo, offsetp, t, byte_order, length);
20995  break;
20996  case 32:
20997  xinputDeviceBell(tvb, pinfo, offsetp, t, byte_order, length);
20998  break;
20999  case 33:
21000  xinputSetDeviceValuators(tvb, pinfo, offsetp, t, byte_order, length);
21001  break;
21002  case 34:
21003  xinputGetDeviceControl(tvb, pinfo, offsetp, t, byte_order, length);
21004  break;
21005  case 35:
21006  xinputChangeDeviceControl(tvb, pinfo, offsetp, t, byte_order, length);
21007  break;
21008  case 36:
21009  xinputListDeviceProperties(tvb, pinfo, offsetp, t, byte_order, length);
21010  break;
21011  case 37:
21012  xinputChangeDeviceProperty(tvb, pinfo, offsetp, t, byte_order, length);
21013  break;
21014  case 38:
21015  xinputDeleteDeviceProperty(tvb, pinfo, offsetp, t, byte_order, length);
21016  break;
21017  case 39:
21018  xinputGetDeviceProperty(tvb, pinfo, offsetp, t, byte_order, length);
21019  break;
21020  case 40:
21021  xinputXIQueryPointer(tvb, pinfo, offsetp, t, byte_order, length);
21022  break;
21023  case 41:
21024  xinputXIWarpPointer(tvb, pinfo, offsetp, t, byte_order, length);
21025  break;
21026  case 42:
21027  xinputXIChangeCursor(tvb, pinfo, offsetp, t, byte_order, length);
21028  break;
21029  case 43:
21030  xinputXIChangeHierarchy(tvb, pinfo, offsetp, t, byte_order, length);
21031  break;
21032  case 44:
21033  xinputXISetClientPointer(tvb, pinfo, offsetp, t, byte_order, length);
21034  break;
21035  case 45:
21036  xinputXIGetClientPointer(tvb, pinfo, offsetp, t, byte_order, length);
21037  break;
21038  case 46:
21039  xinputXISelectEvents(tvb, pinfo, offsetp, t, byte_order, length);
21040  break;
21041  case 47:
21042  xinputXIQueryVersion(tvb, pinfo, offsetp, t, byte_order, length);
21043  break;
21044  case 48:
21045  xinputXIQueryDevice(tvb, pinfo, offsetp, t, byte_order, length);
21046  break;
21047  case 49:
21048  xinputXISetFocus(tvb, pinfo, offsetp, t, byte_order, length);
21049  break;
21050  case 50:
21051  xinputXIGetFocus(tvb, pinfo, offsetp, t, byte_order, length);
21052  break;
21053  case 51:
21054  xinputXIGrabDevice(tvb, pinfo, offsetp, t, byte_order, length);
21055  break;
21056  case 52:
21057  xinputXIUngrabDevice(tvb, pinfo, offsetp, t, byte_order, length);
21058  break;
21059  case 53:
21060  xinputXIAllowEvents(tvb, pinfo, offsetp, t, byte_order, length);
21061  break;
21062  case 54:
21063  xinputXIPassiveGrabDevice(tvb, pinfo, offsetp, t, byte_order, length);
21064  break;
21065  case 55:
21066  xinputXIPassiveUngrabDevice(tvb, pinfo, offsetp, t, byte_order, length);
21067  break;
21068  case 56:
21069  xinputXIListProperties(tvb, pinfo, offsetp, t, byte_order, length);
21070  break;
21071  case 57:
21072  xinputXIChangeProperty(tvb, pinfo, offsetp, t, byte_order, length);
21073  break;
21074  case 58:
21075  xinputXIDeleteProperty(tvb, pinfo, offsetp, t, byte_order, length);
21076  break;
21077  case 59:
21078  xinputXIGetProperty(tvb, pinfo, offsetp, t, byte_order, length);
21079  break;
21080  case 60:
21081  xinputXIGetSelectedEvents(tvb, pinfo, offsetp, t, byte_order, length);
21082  break;
21083  case 61:
21084  xinputXIBarrierReleasePointer(tvb, pinfo, offsetp, t, byte_order, length);
21085  break;
21086  /* No need for a default case here, since Unknown is printed above,
21087  and UNDECODED() is taken care of by dissect_x11_request */
21088  }
21089 }
21090 
21091 static void register_xinput(void)
21092 {
21093  set_handler("XInputExtension", dispatch_xinput, xinput_errors, xinput_events, xinput_generic_events, xinput_replies);
21094 }
21095 
21096 static void struct_xkb_IndicatorMap(tvbuff_t *tvb, int *offsetp, proto_tree *root, guint byte_order _U_, int count)
21097 {
21098  int i;
21099  for (i = 0; i < count; i++) {
21100  proto_item *item;
21101  proto_tree *t;
21102 
21103  item = proto_tree_add_item(root, hf_x11_struct_xkb_IndicatorMap, tvb, *offsetp, 12, ENC_NA);
21104  t = proto_item_add_subtree(item, ett_x11_rectangle);
21105  field8(tvb, offsetp, t, hf_x11_struct_xkb_IndicatorMap_flags, byte_order);
21106  field8(tvb, offsetp, t, hf_x11_struct_xkb_IndicatorMap_whichGroups, byte_order);
21107  field8(tvb, offsetp, t, hf_x11_struct_xkb_IndicatorMap_groups, byte_order);
21108  field8(tvb, offsetp, t, hf_x11_struct_xkb_IndicatorMap_whichMods, byte_order);
21109  {
21110  int* const mods_bits [] = {
21111  &hf_x11_struct_xkb_IndicatorMap_mods_mask_Shift,
21112  &hf_x11_struct_xkb_IndicatorMap_mods_mask_Lock,
21113  &hf_x11_struct_xkb_IndicatorMap_mods_mask_Control,
21114  &hf_x11_struct_xkb_IndicatorMap_mods_mask_1,
21115  &hf_x11_struct_xkb_IndicatorMap_mods_mask_2,
21116  &hf_x11_struct_xkb_IndicatorMap_mods_mask_3,
21117  &hf_x11_struct_xkb_IndicatorMap_mods_mask_4,
21118  &hf_x11_struct_xkb_IndicatorMap_mods_mask_5,
21119  &hf_x11_struct_xkb_IndicatorMap_mods_mask_Any,
21120  NULL
21121  };
21122  proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_struct_xkb_IndicatorMap_mods, ett_x11_rectangle, mods_bits, byte_order);
21123  }
21124  *offsetp += 1;
21125  {
21126  int* const realMods_bits [] = {
21127  &hf_x11_struct_xkb_IndicatorMap_realMods_mask_Shift,
21128  &hf_x11_struct_xkb_IndicatorMap_realMods_mask_Lock,
21129  &hf_x11_struct_xkb_IndicatorMap_realMods_mask_Control,
21130  &hf_x11_struct_xkb_IndicatorMap_realMods_mask_1,
21131  &hf_x11_struct_xkb_IndicatorMap_realMods_mask_2,
21132  &hf_x11_struct_xkb_IndicatorMap_realMods_mask_3,
21133  &hf_x11_struct_xkb_IndicatorMap_realMods_mask_4,
21134  &hf_x11_struct_xkb_IndicatorMap_realMods_mask_5,
21135  &hf_x11_struct_xkb_IndicatorMap_realMods_mask_Any,
21136  NULL
21137  };
21138  proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_struct_xkb_IndicatorMap_realMods, ett_x11_rectangle, realMods_bits, byte_order);
21139  }
21140  *offsetp += 1;
21141  {
21142  int* const vmods_bits [] = {
21143  &hf_x11_struct_xkb_IndicatorMap_vmods_mask_0,
21144  &hf_x11_struct_xkb_IndicatorMap_vmods_mask_1,
21145  &hf_x11_struct_xkb_IndicatorMap_vmods_mask_2,
21146  &hf_x11_struct_xkb_IndicatorMap_vmods_mask_3,
21147  &hf_x11_struct_xkb_IndicatorMap_vmods_mask_4,
21148  &hf_x11_struct_xkb_IndicatorMap_vmods_mask_5,
21149  &hf_x11_struct_xkb_IndicatorMap_vmods_mask_6,
21150  &hf_x11_struct_xkb_IndicatorMap_vmods_mask_7,
21151  &hf_x11_struct_xkb_IndicatorMap_vmods_mask_8,
21152  &hf_x11_struct_xkb_IndicatorMap_vmods_mask_9,
21153  &hf_x11_struct_xkb_IndicatorMap_vmods_mask_10,
21154  &hf_x11_struct_xkb_IndicatorMap_vmods_mask_11,
21155  &hf_x11_struct_xkb_IndicatorMap_vmods_mask_12,
21156  &hf_x11_struct_xkb_IndicatorMap_vmods_mask_13,
21157  &hf_x11_struct_xkb_IndicatorMap_vmods_mask_14,
21158  &hf_x11_struct_xkb_IndicatorMap_vmods_mask_15,
21159  NULL
21160  };
21161  proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_struct_xkb_IndicatorMap_vmods, ett_x11_rectangle, vmods_bits, byte_order);
21162  }
21163  *offsetp += 2;
21164  {
21165  int* const ctrls_bits [] = {
21166  &hf_x11_struct_xkb_IndicatorMap_ctrls_mask_RepeatKeys,
21167  &hf_x11_struct_xkb_IndicatorMap_ctrls_mask_SlowKeys,
21168  &hf_x11_struct_xkb_IndicatorMap_ctrls_mask_BounceKeys,
21169  &hf_x11_struct_xkb_IndicatorMap_ctrls_mask_StickyKeys,
21170  &hf_x11_struct_xkb_IndicatorMap_ctrls_mask_MouseKeys,
21171  &hf_x11_struct_xkb_IndicatorMap_ctrls_mask_MouseKeysAccel,
21172  &hf_x11_struct_xkb_IndicatorMap_ctrls_mask_AccessXKeys,
21173  &hf_x11_struct_xkb_IndicatorMap_ctrls_mask_AccessXTimeoutMask,
21174  &hf_x11_struct_xkb_IndicatorMap_ctrls_mask_AccessXFeedbackMask,
21175  &hf_x11_struct_xkb_IndicatorMap_ctrls_mask_AudibleBellMask,
21176  &hf_x11_struct_xkb_IndicatorMap_ctrls_mask_Overlay1Mask,
21177  &hf_x11_struct_xkb_IndicatorMap_ctrls_mask_Overlay2Mask,
21178  &hf_x11_struct_xkb_IndicatorMap_ctrls_mask_IgnoreGroupLockMask,
21179  NULL
21180  };
21181  proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_struct_xkb_IndicatorMap_ctrls, ett_x11_rectangle, ctrls_bits, byte_order);
21182  }
21183  *offsetp += 4;
21184  }
21185 }
21186 
21187 static void struct_xkb_ModDef(tvbuff_t *tvb, int *offsetp, proto_tree *root, guint byte_order _U_, int count)
21188 {
21189  int i;
21190  for (i = 0; i < count; i++) {
21191  proto_item *item;
21192  proto_tree *t;
21193 
21194  item = proto_tree_add_item(root, hf_x11_struct_xkb_ModDef, tvb, *offsetp, 4, ENC_NA);
21195  t = proto_item_add_subtree(item, ett_x11_rectangle);
21196  {
21197  int* const mask_bits [] = {
21198  &hf_x11_struct_xkb_ModDef_mask_mask_Shift,
21199  &hf_x11_struct_xkb_ModDef_mask_mask_Lock,
21200  &hf_x11_struct_xkb_ModDef_mask_mask_Control,
21201  &hf_x11_struct_xkb_ModDef_mask_mask_1,
21202  &hf_x11_struct_xkb_ModDef_mask_mask_2,
21203  &hf_x11_struct_xkb_ModDef_mask_mask_3,
21204  &hf_x11_struct_xkb_ModDef_mask_mask_4,
21205  &hf_x11_struct_xkb_ModDef_mask_mask_5,
21206  &hf_x11_struct_xkb_ModDef_mask_mask_Any,
21207  NULL
21208  };
21209  proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_struct_xkb_ModDef_mask, ett_x11_rectangle, mask_bits, byte_order);
21210  }
21211  *offsetp += 1;
21212  {
21213  int* const realMods_bits [] = {
21214  &hf_x11_struct_xkb_ModDef_realMods_mask_Shift,
21215  &hf_x11_struct_xkb_ModDef_realMods_mask_Lock,
21216  &hf_x11_struct_xkb_ModDef_realMods_mask_Control,
21217  &hf_x11_struct_xkb_ModDef_realMods_mask_1,
21218  &hf_x11_struct_xkb_ModDef_realMods_mask_2,
21219  &hf_x11_struct_xkb_ModDef_realMods_mask_3,
21220  &hf_x11_struct_xkb_ModDef_realMods_mask_4,
21221  &hf_x11_struct_xkb_ModDef_realMods_mask_5,
21222  &hf_x11_struct_xkb_ModDef_realMods_mask_Any,
21223  NULL
21224  };
21225  proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_struct_xkb_ModDef_realMods, ett_x11_rectangle, realMods_bits, byte_order);
21226  }
21227  *offsetp += 1;
21228  {
21229  int* const vmods_bits [] = {
21230  &hf_x11_struct_xkb_ModDef_vmods_mask_0,
21231  &hf_x11_struct_xkb_ModDef_vmods_mask_1,
21232  &hf_x11_struct_xkb_ModDef_vmods_mask_2,
21233  &hf_x11_struct_xkb_ModDef_vmods_mask_3,
21234  &hf_x11_struct_xkb_ModDef_vmods_mask_4,
21235  &hf_x11_struct_xkb_ModDef_vmods_mask_5,
21236  &hf_x11_struct_xkb_ModDef_vmods_mask_6,
21237  &hf_x11_struct_xkb_ModDef_vmods_mask_7,
21238  &hf_x11_struct_xkb_ModDef_vmods_mask_8,
21239  &hf_x11_struct_xkb_ModDef_vmods_mask_9,
21240  &hf_x11_struct_xkb_ModDef_vmods_mask_10,
21241  &hf_x11_struct_xkb_ModDef_vmods_mask_11,
21242  &hf_x11_struct_xkb_ModDef_vmods_mask_12,
21243  &hf_x11_struct_xkb_ModDef_vmods_mask_13,
21244  &hf_x11_struct_xkb_ModDef_vmods_mask_14,
21245  &hf_x11_struct_xkb_ModDef_vmods_mask_15,
21246  NULL
21247  };
21248  proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_struct_xkb_ModDef_vmods, ett_x11_rectangle, vmods_bits, byte_order);
21249  }
21250  *offsetp += 2;
21251  }
21252 }
21253 
21254 static void struct_xkb_KeyName(tvbuff_t *tvb, int *offsetp, proto_tree *root, guint byte_order _U_, int count)
21255 {
21256  int i;
21257  for (i = 0; i < count; i++) {
21258  proto_item *item;
21259  proto_tree *t;
21260 
21261  item = proto_tree_add_item(root, hf_x11_struct_xkb_KeyName, tvb, *offsetp, 4, ENC_NA);
21262  t = proto_item_add_subtree(item, ett_x11_rectangle);
21263  listOfByte(tvb, offsetp, t, hf_x11_struct_xkb_KeyName_name, 4, byte_order);
21264  }
21265 }
21266 
21267 static void struct_xkb_KeyAlias(tvbuff_t *tvb, int *offsetp, proto_tree *root, guint byte_order _U_, int count)
21268 {
21269  int i;
21270  for (i = 0; i < count; i++) {
21271  proto_item *item;
21272  proto_tree *t;
21273 
21274  item = proto_tree_add_item(root, hf_x11_struct_xkb_KeyAlias, tvb, *offsetp, 8, ENC_NA);
21275  t = proto_item_add_subtree(item, ett_x11_rectangle);
21276  listOfByte(tvb, offsetp, t, hf_x11_struct_xkb_KeyAlias_real, 4, byte_order);
21277  listOfByte(tvb, offsetp, t, hf_x11_struct_xkb_KeyAlias_alias, 4, byte_order);
21278  }
21279 }
21280 
21281 static int struct_size_xkb_CountedString16(tvbuff_t *tvb _U_, int *offsetp _U_, guint byte_order _U_)
21282 {
21283  int size = 0;
21284  int f_length;
21285  f_length = tvb_get_guint16(tvb, *offsetp + size + 0, byte_order);
21286  size += f_length * 1;
21287  size += (((f_length + 5) & (~3)) - (f_length + 2)) * 1;
21288  return size + 2;
21289 }
21290 
21291 static void struct_xkb_CountedString16(tvbuff_t *tvb, int *offsetp, proto_tree *root, guint byte_order _U_, int count)
21292 {
21293  int i;
21294  for (i = 0; i < count; i++) {
21295  proto_item *item;
21296  proto_tree *t;
21297  int f_length;
21298 
21299  item = proto_tree_add_item(root, hf_x11_struct_xkb_CountedString16, tvb, *offsetp, struct_size_xkb_CountedString16(tvb, offsetp, byte_order), ENC_NA);
21300  t = proto_item_add_subtree(item, ett_x11_rectangle);
21301  f_length = tvb_get_guint16(tvb, *offsetp, byte_order);
21302  proto_tree_add_item(t, hf_x11_struct_xkb_CountedString16_length, tvb, *offsetp, 2, byte_order);
21303  *offsetp += 2;
21304  listOfByte(tvb, offsetp, t, hf_x11_struct_xkb_CountedString16_string, f_length, byte_order);
21305  listOfByte(tvb, offsetp, t, hf_x11_struct_xkb_CountedString16_alignment_pad, (((f_length + 5) & (~3)) - (f_length + 2)), byte_order);
21306  }
21307 }
21308 
21309 static void struct_xkb_KTMapEntry(tvbuff_t *tvb, int *offsetp, proto_tree *root, guint byte_order _U_, int count)
21310 {
21311  int i;
21312  for (i = 0; i < count; i++) {
21313  proto_item *item;
21314  proto_tree *t;
21315 
21316  item = proto_tree_add_item(root, hf_x11_struct_xkb_KTMapEntry, tvb, *offsetp, 8, ENC_NA);
21317  t = proto_item_add_subtree(item, ett_x11_rectangle);
21318  proto_tree_add_item(t, hf_x11_struct_xkb_KTMapEntry_active, tvb, *offsetp, 1, byte_order);
21319  *offsetp += 1;
21320  {
21321  int* const mods_mask_bits [] = {
21322  &hf_x11_struct_xkb_KTMapEntry_mods_mask_mask_Shift,
21323  &hf_x11_struct_xkb_KTMapEntry_mods_mask_mask_Lock,
21324  &hf_x11_struct_xkb_KTMapEntry_mods_mask_mask_Control,
21325  &hf_x11_struct_xkb_KTMapEntry_mods_mask_mask_1,
21326  &hf_x11_struct_xkb_KTMapEntry_mods_mask_mask_2,
21327  &hf_x11_struct_xkb_KTMapEntry_mods_mask_mask_3,
21328  &hf_x11_struct_xkb_KTMapEntry_mods_mask_mask_4,
21329  &hf_x11_struct_xkb_KTMapEntry_mods_mask_mask_5,
21330  &hf_x11_struct_xkb_KTMapEntry_mods_mask_mask_Any,
21331  NULL
21332  };
21333  proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_struct_xkb_KTMapEntry_mods_mask, ett_x11_rectangle, mods_mask_bits, byte_order);
21334  }
21335  *offsetp += 1;
21336  proto_tree_add_item(t, hf_x11_struct_xkb_KTMapEntry_level, tvb, *offsetp, 1, byte_order);
21337  *offsetp += 1;
21338  {
21339  int* const mods_mods_bits [] = {
21340  &hf_x11_struct_xkb_KTMapEntry_mods_mods_mask_Shift,
21341  &hf_x11_struct_xkb_KTMapEntry_mods_mods_mask_Lock,
21342  &hf_x11_struct_xkb_KTMapEntry_mods_mods_mask_Control,
21343  &hf_x11_struct_xkb_KTMapEntry_mods_mods_mask_1,
21344  &hf_x11_struct_xkb_KTMapEntry_mods_mods_mask_2,
21345  &hf_x11_struct_xkb_KTMapEntry_mods_mods_mask_3,
21346  &hf_x11_struct_xkb_KTMapEntry_mods_mods_mask_4,
21347  &hf_x11_struct_xkb_KTMapEntry_mods_mods_mask_5,
21348  &hf_x11_struct_xkb_KTMapEntry_mods_mods_mask_Any,
21349  NULL
21350  };
21351  proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_struct_xkb_KTMapEntry_mods_mods, ett_x11_rectangle, mods_mods_bits, byte_order);
21352  }
21353  *offsetp += 1;
21354  {
21355  int* const mods_vmods_bits [] = {
21356  &hf_x11_struct_xkb_KTMapEntry_mods_vmods_mask_0,
21357  &hf_x11_struct_xkb_KTMapEntry_mods_vmods_mask_1,
21358  &hf_x11_struct_xkb_KTMapEntry_mods_vmods_mask_2,
21359  &hf_x11_struct_xkb_KTMapEntry_mods_vmods_mask_3,
21360  &hf_x11_struct_xkb_KTMapEntry_mods_vmods_mask_4,
21361  &hf_x11_struct_xkb_KTMapEntry_mods_vmods_mask_5,
21362  &hf_x11_struct_xkb_KTMapEntry_mods_vmods_mask_6,
21363  &hf_x11_struct_xkb_KTMapEntry_mods_vmods_mask_7,
21364  &hf_x11_struct_xkb_KTMapEntry_mods_vmods_mask_8,
21365  &hf_x11_struct_xkb_KTMapEntry_mods_vmods_mask_9,
21366  &hf_x11_struct_xkb_KTMapEntry_mods_vmods_mask_10,
21367  &hf_x11_struct_xkb_KTMapEntry_mods_vmods_mask_11,
21368  &hf_x11_struct_xkb_KTMapEntry_mods_vmods_mask_12,
21369  &hf_x11_struct_xkb_KTMapEntry_mods_vmods_mask_13,
21370  &hf_x11_struct_xkb_KTMapEntry_mods_vmods_mask_14,
21371  &hf_x11_struct_xkb_KTMapEntry_mods_vmods_mask_15,
21372  NULL
21373  };
21374  proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_struct_xkb_KTMapEntry_mods_vmods, ett_x11_rectangle, mods_vmods_bits, byte_order);
21375  }
21376  *offsetp += 2;
21377  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 2, ENC_NA);
21378  *offsetp += 2;
21379  }
21380 }
21381 
21382 static int struct_size_xkb_KeyType(tvbuff_t *tvb _U_, int *offsetp _U_, guint byte_order _U_)
21383 {
21384  int size = 0;
21385  int f_hasPreserve;
21386  int f_nMapEntries;
21387  f_nMapEntries = tvb_get_guint8(tvb, *offsetp + size + 5);
21388  f_hasPreserve = tvb_get_guint8(tvb, *offsetp + size + 6);
21389  size += f_nMapEntries * 8;
21390  size += (f_hasPreserve * f_nMapEntries) * 4;
21391  return size + 8;
21392 }
21393 
21394 static void struct_xkb_KeyType(tvbuff_t *tvb, int *offsetp, proto_tree *root, guint byte_order _U_, int count)
21395 {
21396  int i;
21397  for (i = 0; i < count; i++) {
21398  proto_item *item;
21399  proto_tree *t;
21400  int f_nMapEntries;
21401  int f_hasPreserve;
21402 
21403  item = proto_tree_add_item(root, hf_x11_struct_xkb_KeyType, tvb, *offsetp, struct_size_xkb_KeyType(tvb, offsetp, byte_order), ENC_NA);
21404  t = proto_item_add_subtree(item, ett_x11_rectangle);
21405  {
21406  int* const mods_mask_bits [] = {
21407  &hf_x11_struct_xkb_KeyType_mods_mask_mask_Shift,
21408  &hf_x11_struct_xkb_KeyType_mods_mask_mask_Lock,
21409  &hf_x11_struct_xkb_KeyType_mods_mask_mask_Control,
21410  &hf_x11_struct_xkb_KeyType_mods_mask_mask_1,
21411  &hf_x11_struct_xkb_KeyType_mods_mask_mask_2,
21412  &hf_x11_struct_xkb_KeyType_mods_mask_mask_3,
21413  &hf_x11_struct_xkb_KeyType_mods_mask_mask_4,
21414  &hf_x11_struct_xkb_KeyType_mods_mask_mask_5,
21415  &hf_x11_struct_xkb_KeyType_mods_mask_mask_Any,
21416  NULL
21417  };
21418  proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_struct_xkb_KeyType_mods_mask, ett_x11_rectangle, mods_mask_bits, byte_order);
21419  }
21420  *offsetp += 1;
21421  {
21422  int* const mods_mods_bits [] = {
21423  &hf_x11_struct_xkb_KeyType_mods_mods_mask_Shift,
21424  &hf_x11_struct_xkb_KeyType_mods_mods_mask_Lock,
21425  &hf_x11_struct_xkb_KeyType_mods_mods_mask_Control,
21426  &hf_x11_struct_xkb_KeyType_mods_mods_mask_1,
21427  &hf_x11_struct_xkb_KeyType_mods_mods_mask_2,
21428  &hf_x11_struct_xkb_KeyType_mods_mods_mask_3,
21429  &hf_x11_struct_xkb_KeyType_mods_mods_mask_4,
21430  &hf_x11_struct_xkb_KeyType_mods_mods_mask_5,
21431  &hf_x11_struct_xkb_KeyType_mods_mods_mask_Any,
21432  NULL
21433  };
21434  proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_struct_xkb_KeyType_mods_mods, ett_x11_rectangle, mods_mods_bits, byte_order);
21435  }
21436  *offsetp += 1;
21437  {
21438  int* const mods_vmods_bits [] = {
21439  &hf_x11_struct_xkb_KeyType_mods_vmods_mask_0,
21440  &hf_x11_struct_xkb_KeyType_mods_vmods_mask_1,
21441  &hf_x11_struct_xkb_KeyType_mods_vmods_mask_2,
21442  &hf_x11_struct_xkb_KeyType_mods_vmods_mask_3,
21443  &hf_x11_struct_xkb_KeyType_mods_vmods_mask_4,
21444  &hf_x11_struct_xkb_KeyType_mods_vmods_mask_5,
21445  &hf_x11_struct_xkb_KeyType_mods_vmods_mask_6,
21446  &hf_x11_struct_xkb_KeyType_mods_vmods_mask_7,
21447  &hf_x11_struct_xkb_KeyType_mods_vmods_mask_8,
21448  &hf_x11_struct_xkb_KeyType_mods_vmods_mask_9,
21449  &hf_x11_struct_xkb_KeyType_mods_vmods_mask_10,
21450  &hf_x11_struct_xkb_KeyType_mods_vmods_mask_11,
21451  &hf_x11_struct_xkb_KeyType_mods_vmods_mask_12,
21452  &hf_x11_struct_xkb_KeyType_mods_vmods_mask_13,
21453  &hf_x11_struct_xkb_KeyType_mods_vmods_mask_14,
21454  &hf_x11_struct_xkb_KeyType_mods_vmods_mask_15,
21455  NULL
21456  };
21457  proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_struct_xkb_KeyType_mods_vmods, ett_x11_rectangle, mods_vmods_bits, byte_order);
21458  }
21459  *offsetp += 2;
21460  proto_tree_add_item(t, hf_x11_struct_xkb_KeyType_numLevels, tvb, *offsetp, 1, byte_order);
21461  *offsetp += 1;
21462  f_nMapEntries = tvb_get_guint8(tvb, *offsetp);
21463  proto_tree_add_item(t, hf_x11_struct_xkb_KeyType_nMapEntries, tvb, *offsetp, 1, byte_order);
21464  *offsetp += 1;
21465  f_hasPreserve = tvb_get_guint8(tvb, *offsetp);
21466  proto_tree_add_item(t, hf_x11_struct_xkb_KeyType_hasPreserve, tvb, *offsetp, 1, byte_order);
21467  *offsetp += 1;
21468  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
21469  *offsetp += 1;
21470  struct_xkb_KTMapEntry(tvb, offsetp, t, byte_order, f_nMapEntries);
21471  struct_xkb_ModDef(tvb, offsetp, t, byte_order, (f_hasPreserve * f_nMapEntries));
21472  }
21473 }
21474 
21475 static int struct_size_xkb_KeySymMap(tvbuff_t *tvb _U_, int *offsetp _U_, guint byte_order _U_)
21476 {
21477  int size = 0;
21478  int f_nSyms;
21479  f_nSyms = tvb_get_guint16(tvb, *offsetp + size + 6, byte_order);
21480  size += f_nSyms * 4;
21481  return size + 8;
21482 }
21483 
21484 static void struct_xkb_KeySymMap(tvbuff_t *tvb, int *offsetp, proto_tree *root, guint byte_order _U_, int count)
21485 {
21486  int i;
21487  for (i = 0; i < count; i++) {
21488  proto_item *item;
21489  proto_tree *t;
21490  int f_nSyms;
21491 
21492  item = proto_tree_add_item(root, hf_x11_struct_xkb_KeySymMap, tvb, *offsetp, struct_size_xkb_KeySymMap(tvb, offsetp, byte_order), ENC_NA);
21493  t = proto_item_add_subtree(item, ett_x11_rectangle);
21494  listOfByte(tvb, offsetp, t, hf_x11_struct_xkb_KeySymMap_kt_index, 4, byte_order);
21495  proto_tree_add_item(t, hf_x11_struct_xkb_KeySymMap_groupInfo, tvb, *offsetp, 1, byte_order);
21496  *offsetp += 1;
21497  proto_tree_add_item(t, hf_x11_struct_xkb_KeySymMap_width, tvb, *offsetp, 1, byte_order);
21498  *offsetp += 1;
21499  f_nSyms = tvb_get_guint16(tvb, *offsetp, byte_order);
21500  proto_tree_add_item(t, hf_x11_struct_xkb_KeySymMap_nSyms, tvb, *offsetp, 2, byte_order);
21501  *offsetp += 2;
21502  listOfCard32(tvb, offsetp, t, hf_x11_struct_xkb_KeySymMap_syms, hf_x11_struct_xkb_KeySymMap_syms_item, f_nSyms, byte_order);
21503  }
21504 }
21505 
21506 static void struct_xkb_CommonBehavior(tvbuff_t *tvb, int *offsetp, proto_tree *root, guint byte_order _U_, int count)
21507 {
21508  int i;
21509  for (i = 0; i < count; i++) {
21510  proto_item *item;
21511  proto_tree *t;
21512 
21513  item = proto_tree_add_item(root, hf_x11_struct_xkb_CommonBehavior, tvb, *offsetp, 2, ENC_NA);
21514  t = proto_item_add_subtree(item, ett_x11_rectangle);
21515  proto_tree_add_item(t, hf_x11_struct_xkb_CommonBehavior_type, tvb, *offsetp, 1, byte_order);
21516  *offsetp += 1;
21517  proto_tree_add_item(t, hf_x11_struct_xkb_CommonBehavior_data, tvb, *offsetp, 1, byte_order);
21518  *offsetp += 1;
21519  }
21520 }
21521 
21522 static void struct_xkb_DefaultBehavior(tvbuff_t *tvb, int *offsetp, proto_tree *root, guint byte_order _U_, int count)
21523 {
21524  int i;
21525  for (i = 0; i < count; i++) {
21526  proto_item *item;
21527  proto_tree *t;
21528 
21529  item = proto_tree_add_item(root, hf_x11_struct_xkb_DefaultBehavior, tvb, *offsetp, 2, ENC_NA);
21530  t = proto_item_add_subtree(item, ett_x11_rectangle);
21531  proto_tree_add_item(t, hf_x11_struct_xkb_DefaultBehavior_type, tvb, *offsetp, 1, byte_order);
21532  *offsetp += 1;
21533  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
21534  *offsetp += 1;
21535  }
21536 }
21537 
21538 static void struct_xkb_RadioGroupBehavior(tvbuff_t *tvb, int *offsetp, proto_tree *root, guint byte_order _U_, int count)
21539 {
21540  int i;
21541  for (i = 0; i < count; i++) {
21542  proto_item *item;
21543  proto_tree *t;
21544 
21545  item = proto_tree_add_item(root, hf_x11_struct_xkb_RadioGroupBehavior, tvb, *offsetp, 2, ENC_NA);
21546  t = proto_item_add_subtree(item, ett_x11_rectangle);
21547  proto_tree_add_item(t, hf_x11_struct_xkb_RadioGroupBehavior_type, tvb, *offsetp, 1, byte_order);
21548  *offsetp += 1;
21549  proto_tree_add_item(t, hf_x11_struct_xkb_RadioGroupBehavior_group, tvb, *offsetp, 1, byte_order);
21550  *offsetp += 1;
21551  }
21552 }
21553 
21554 static void struct_xkb_OverlayBehavior(tvbuff_t *tvb, int *offsetp, proto_tree *root, guint byte_order _U_, int count)
21555 {
21556  int i;
21557  for (i = 0; i < count; i++) {
21558  proto_item *item;
21559  proto_tree *t;
21560 
21561  item = proto_tree_add_item(root, hf_x11_struct_xkb_OverlayBehavior, tvb, *offsetp, 2, ENC_NA);
21562  t = proto_item_add_subtree(item, ett_x11_rectangle);
21563  proto_tree_add_item(t, hf_x11_struct_xkb_OverlayBehavior_type, tvb, *offsetp, 1, byte_order);
21564  *offsetp += 1;
21565  proto_tree_add_item(t, hf_x11_struct_xkb_OverlayBehavior_key, tvb, *offsetp, 1, byte_order);
21566  *offsetp += 1;
21567  }
21568 }
21569 
21570 static void struct_xkb_Behavior(tvbuff_t *tvb, int *offsetp, proto_tree *root, guint byte_order, int count)
21571 {
21572  int i;
21573  int base = *offsetp;
21574  for (i = 0; i < count; i++) {
21575  proto_item *item;
21576  proto_tree *t;
21577  item = proto_tree_add_item(root, hf_x11_union_xkb_Behavior, tvb, base, 2, ENC_NA);
21578  t = proto_item_add_subtree(item, ett_x11_rectangle);
21579 
21580  *offsetp = base;
21581  struct_xkb_CommonBehavior(tvb, offsetp, t, byte_order, 1);
21582  *offsetp = base;
21583  struct_xkb_DefaultBehavior(tvb, offsetp, t, byte_order, 1);
21584  *offsetp = base;
21585  struct_xkb_DefaultBehavior(tvb, offsetp, t, byte_order, 1);
21586  *offsetp = base;
21587  struct_xkb_RadioGroupBehavior(tvb, offsetp, t, byte_order, 1);
21588  *offsetp = base;
21589  struct_xkb_OverlayBehavior(tvb, offsetp, t, byte_order, 1);
21590  *offsetp = base;
21591  struct_xkb_OverlayBehavior(tvb, offsetp, t, byte_order, 1);
21592  *offsetp = base;
21593  struct_xkb_DefaultBehavior(tvb, offsetp, t, byte_order, 1);
21594  *offsetp = base;
21595  struct_xkb_RadioGroupBehavior(tvb, offsetp, t, byte_order, 1);
21596  *offsetp = base;
21597  struct_xkb_OverlayBehavior(tvb, offsetp, t, byte_order, 1);
21598  *offsetp = base;
21599  struct_xkb_OverlayBehavior(tvb, offsetp, t, byte_order, 1);
21600  *offsetp = base;
21601  proto_tree_add_item(t, hf_x11_union_xkb_Behavior_type, tvb, *offsetp, 1, byte_order);
21602  *offsetp += 1;
21603  base += 2;
21604  }
21605  *offsetp = base;
21606 }
21607 
21608 static void struct_xkb_SetBehavior(tvbuff_t *tvb, int *offsetp, proto_tree *root, guint byte_order _U_, int count)
21609 {
21610  int i;
21611  for (i = 0; i < count; i++) {
21612  proto_item *item;
21613  proto_tree *t;
21614 
21615  item = proto_tree_add_item(root, hf_x11_struct_xkb_SetBehavior, tvb, *offsetp, 4, ENC_NA);
21616  t = proto_item_add_subtree(item, ett_x11_rectangle);
21617  proto_tree_add_item(t, hf_x11_struct_xkb_SetBehavior_keycode, tvb, *offsetp, 1, byte_order);
21618  *offsetp += 1;
21619  struct_xkb_Behavior(tvb, offsetp, t, byte_order, 1);
21620  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
21621  *offsetp += 1;
21622  }
21623 }
21624 
21625 static void struct_xkb_SetExplicit(tvbuff_t *tvb, int *offsetp, proto_tree *root, guint byte_order _U_, int count)
21626 {
21627  int i;
21628  for (i = 0; i < count; i++) {
21629  proto_item *item;
21630  proto_tree *t;
21631 
21632  item = proto_tree_add_item(root, hf_x11_struct_xkb_SetExplicit, tvb, *offsetp, 2, ENC_NA);
21633  t = proto_item_add_subtree(item, ett_x11_rectangle);
21634  proto_tree_add_item(t, hf_x11_struct_xkb_SetExplicit_keycode, tvb, *offsetp, 1, byte_order);
21635  *offsetp += 1;
21636  {
21637  int* const explicit_bits [] = {
21638  &hf_x11_struct_xkb_SetExplicit_explicit_mask_KeyType1,
21639  &hf_x11_struct_xkb_SetExplicit_explicit_mask_KeyType2,
21640  &hf_x11_struct_xkb_SetExplicit_explicit_mask_KeyType3,
21641  &hf_x11_struct_xkb_SetExplicit_explicit_mask_KeyType4,
21642  &hf_x11_struct_xkb_SetExplicit_explicit_mask_Interpret,
21643  &hf_x11_struct_xkb_SetExplicit_explicit_mask_AutoRepeat,
21644  &hf_x11_struct_xkb_SetExplicit_explicit_mask_Behavior,
21645  &hf_x11_struct_xkb_SetExplicit_explicit_mask_VModMap,
21646  NULL
21647  };
21648  proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_struct_xkb_SetExplicit_explicit, ett_x11_rectangle, explicit_bits, byte_order);
21649  }
21650  *offsetp += 1;
21651  }
21652 }
21653 
21654 static void struct_xkb_KeyModMap(tvbuff_t *tvb, int *offsetp, proto_tree *root, guint byte_order _U_, int count)
21655 {
21656  int i;
21657  for (i = 0; i < count; i++) {
21658  proto_item *item;
21659  proto_tree *t;
21660 
21661  item = proto_tree_add_item(root, hf_x11_struct_xkb_KeyModMap, tvb, *offsetp, 2, ENC_NA);
21662  t = proto_item_add_subtree(item, ett_x11_rectangle);
21663  proto_tree_add_item(t, hf_x11_struct_xkb_KeyModMap_keycode, tvb, *offsetp, 1, byte_order);
21664  *offsetp += 1;
21665  {
21666  int* const mods_bits [] = {
21667  &hf_x11_struct_xkb_KeyModMap_mods_mask_Shift,
21668  &hf_x11_struct_xkb_KeyModMap_mods_mask_Lock,
21669  &hf_x11_struct_xkb_KeyModMap_mods_mask_Control,
21670  &hf_x11_struct_xkb_KeyModMap_mods_mask_1,
21671  &hf_x11_struct_xkb_KeyModMap_mods_mask_2,
21672  &hf_x11_struct_xkb_KeyModMap_mods_mask_3,
21673  &hf_x11_struct_xkb_KeyModMap_mods_mask_4,
21674  &hf_x11_struct_xkb_KeyModMap_mods_mask_5,
21675  &hf_x11_struct_xkb_KeyModMap_mods_mask_Any,
21676  NULL
21677  };
21678  proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_struct_xkb_KeyModMap_mods, ett_x11_rectangle, mods_bits, byte_order);
21679  }
21680  *offsetp += 1;
21681  }
21682 }
21683 
21684 static void struct_xkb_KeyVModMap(tvbuff_t *tvb, int *offsetp, proto_tree *root, guint byte_order _U_, int count)
21685 {
21686  int i;
21687  for (i = 0; i < count; i++) {
21688  proto_item *item;
21689  proto_tree *t;
21690 
21691  item = proto_tree_add_item(root, hf_x11_struct_xkb_KeyVModMap, tvb, *offsetp, 4, ENC_NA);
21692  t = proto_item_add_subtree(item, ett_x11_rectangle);
21693  proto_tree_add_item(t, hf_x11_struct_xkb_KeyVModMap_keycode, tvb, *offsetp, 1, byte_order);
21694  *offsetp += 1;
21695  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
21696  *offsetp += 1;
21697  {
21698  int* const vmods_bits [] = {
21699  &hf_x11_struct_xkb_KeyVModMap_vmods_mask_0,
21700  &hf_x11_struct_xkb_KeyVModMap_vmods_mask_1,
21701  &hf_x11_struct_xkb_KeyVModMap_vmods_mask_2,
21702  &hf_x11_struct_xkb_KeyVModMap_vmods_mask_3,
21703  &hf_x11_struct_xkb_KeyVModMap_vmods_mask_4,
21704  &hf_x11_struct_xkb_KeyVModMap_vmods_mask_5,
21705  &hf_x11_struct_xkb_KeyVModMap_vmods_mask_6,
21706  &hf_x11_struct_xkb_KeyVModMap_vmods_mask_7,
21707  &hf_x11_struct_xkb_KeyVModMap_vmods_mask_8,
21708  &hf_x11_struct_xkb_KeyVModMap_vmods_mask_9,
21709  &hf_x11_struct_xkb_KeyVModMap_vmods_mask_10,
21710  &hf_x11_struct_xkb_KeyVModMap_vmods_mask_11,
21711  &hf_x11_struct_xkb_KeyVModMap_vmods_mask_12,
21712  &hf_x11_struct_xkb_KeyVModMap_vmods_mask_13,
21713  &hf_x11_struct_xkb_KeyVModMap_vmods_mask_14,
21714  &hf_x11_struct_xkb_KeyVModMap_vmods_mask_15,
21715  NULL
21716  };
21717  proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_struct_xkb_KeyVModMap_vmods, ett_x11_rectangle, vmods_bits, byte_order);
21718  }
21719  *offsetp += 2;
21720  }
21721 }
21722 
21723 static void struct_xkb_KTSetMapEntry(tvbuff_t *tvb, int *offsetp, proto_tree *root, guint byte_order _U_, int count)
21724 {
21725  int i;
21726  for (i = 0; i < count; i++) {
21727  proto_item *item;
21728  proto_tree *t;
21729 
21730  item = proto_tree_add_item(root, hf_x11_struct_xkb_KTSetMapEntry, tvb, *offsetp, 4, ENC_NA);
21731  t = proto_item_add_subtree(item, ett_x11_rectangle);
21732  proto_tree_add_item(t, hf_x11_struct_xkb_KTSetMapEntry_level, tvb, *offsetp, 1, byte_order);
21733  *offsetp += 1;
21734  {
21735  int* const realMods_bits [] = {
21736  &hf_x11_struct_xkb_KTSetMapEntry_realMods_mask_Shift,
21737  &hf_x11_struct_xkb_KTSetMapEntry_realMods_mask_Lock,
21738  &hf_x11_struct_xkb_KTSetMapEntry_realMods_mask_Control,
21739  &hf_x11_struct_xkb_KTSetMapEntry_realMods_mask_1,
21740  &hf_x11_struct_xkb_KTSetMapEntry_realMods_mask_2,
21741  &hf_x11_struct_xkb_KTSetMapEntry_realMods_mask_3,
21742  &hf_x11_struct_xkb_KTSetMapEntry_realMods_mask_4,
21743  &hf_x11_struct_xkb_KTSetMapEntry_realMods_mask_5,
21744  &hf_x11_struct_xkb_KTSetMapEntry_realMods_mask_Any,
21745  NULL
21746  };
21747  proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_struct_xkb_KTSetMapEntry_realMods, ett_x11_rectangle, realMods_bits, byte_order);
21748  }
21749  *offsetp += 1;
21750  {
21751  int* const virtualMods_bits [] = {
21752  &hf_x11_struct_xkb_KTSetMapEntry_virtualMods_mask_0,
21753  &hf_x11_struct_xkb_KTSetMapEntry_virtualMods_mask_1,
21754  &hf_x11_struct_xkb_KTSetMapEntry_virtualMods_mask_2,
21755  &hf_x11_struct_xkb_KTSetMapEntry_virtualMods_mask_3,
21756  &hf_x11_struct_xkb_KTSetMapEntry_virtualMods_mask_4,
21757  &hf_x11_struct_xkb_KTSetMapEntry_virtualMods_mask_5,
21758  &hf_x11_struct_xkb_KTSetMapEntry_virtualMods_mask_6,
21759  &hf_x11_struct_xkb_KTSetMapEntry_virtualMods_mask_7,
21760  &hf_x11_struct_xkb_KTSetMapEntry_virtualMods_mask_8,
21761  &hf_x11_struct_xkb_KTSetMapEntry_virtualMods_mask_9,
21762  &hf_x11_struct_xkb_KTSetMapEntry_virtualMods_mask_10,
21763  &hf_x11_struct_xkb_KTSetMapEntry_virtualMods_mask_11,
21764  &hf_x11_struct_xkb_KTSetMapEntry_virtualMods_mask_12,
21765  &hf_x11_struct_xkb_KTSetMapEntry_virtualMods_mask_13,
21766  &hf_x11_struct_xkb_KTSetMapEntry_virtualMods_mask_14,
21767  &hf_x11_struct_xkb_KTSetMapEntry_virtualMods_mask_15,
21768  NULL
21769  };
21770  proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_struct_xkb_KTSetMapEntry_virtualMods, ett_x11_rectangle, virtualMods_bits, byte_order);
21771  }
21772  *offsetp += 2;
21773  }
21774 }
21775 
21776 static int struct_size_xkb_SetKeyType(tvbuff_t *tvb _U_, int *offsetp _U_, guint byte_order _U_)
21777 {
21778  int size = 0;
21779  int f_nMapEntries;
21780  int f_preserve;
21781  f_nMapEntries = tvb_get_guint8(tvb, *offsetp + size + 5);
21782  f_preserve = tvb_get_guint8(tvb, *offsetp + size + 6);
21783  size += f_nMapEntries * 4;
21784  size += (f_preserve * f_nMapEntries) * 4;
21785  return size + 8;
21786 }
21787 
21788 static void struct_xkb_SetKeyType(tvbuff_t *tvb, int *offsetp, proto_tree *root, guint byte_order _U_, int count)
21789 {
21790  int i;
21791  for (i = 0; i < count; i++) {
21792  proto_item *item;
21793  proto_tree *t;
21794  int f_nMapEntries;
21795  int f_preserve;
21796 
21797  item = proto_tree_add_item(root, hf_x11_struct_xkb_SetKeyType, tvb, *offsetp, struct_size_xkb_SetKeyType(tvb, offsetp, byte_order), ENC_NA);
21798  t = proto_item_add_subtree(item, ett_x11_rectangle);
21799  {
21800  int* const mask_bits [] = {
21801  &hf_x11_struct_xkb_SetKeyType_mask_mask_Shift,
21802  &hf_x11_struct_xkb_SetKeyType_mask_mask_Lock,
21803  &hf_x11_struct_xkb_SetKeyType_mask_mask_Control,
21804  &hf_x11_struct_xkb_SetKeyType_mask_mask_1,
21805  &hf_x11_struct_xkb_SetKeyType_mask_mask_2,
21806  &hf_x11_struct_xkb_SetKeyType_mask_mask_3,
21807  &hf_x11_struct_xkb_SetKeyType_mask_mask_4,
21808  &hf_x11_struct_xkb_SetKeyType_mask_mask_5,
21809  &hf_x11_struct_xkb_SetKeyType_mask_mask_Any,
21810  NULL
21811  };
21812  proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_struct_xkb_SetKeyType_mask, ett_x11_rectangle, mask_bits, byte_order);
21813  }
21814  *offsetp += 1;
21815  {
21816  int* const realMods_bits [] = {
21817  &hf_x11_struct_xkb_SetKeyType_realMods_mask_Shift,
21818  &hf_x11_struct_xkb_SetKeyType_realMods_mask_Lock,
21819  &hf_x11_struct_xkb_SetKeyType_realMods_mask_Control,
21820  &hf_x11_struct_xkb_SetKeyType_realMods_mask_1,
21821  &hf_x11_struct_xkb_SetKeyType_realMods_mask_2,
21822  &hf_x11_struct_xkb_SetKeyType_realMods_mask_3,
21823  &hf_x11_struct_xkb_SetKeyType_realMods_mask_4,
21824  &hf_x11_struct_xkb_SetKeyType_realMods_mask_5,
21825  &hf_x11_struct_xkb_SetKeyType_realMods_mask_Any,
21826  NULL
21827  };
21828  proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_struct_xkb_SetKeyType_realMods, ett_x11_rectangle, realMods_bits, byte_order);
21829  }
21830  *offsetp += 1;
21831  {
21832  int* const virtualMods_bits [] = {
21833  &hf_x11_struct_xkb_SetKeyType_virtualMods_mask_0,
21834  &hf_x11_struct_xkb_SetKeyType_virtualMods_mask_1,
21835  &hf_x11_struct_xkb_SetKeyType_virtualMods_mask_2,
21836  &hf_x11_struct_xkb_SetKeyType_virtualMods_mask_3,
21837  &hf_x11_struct_xkb_SetKeyType_virtualMods_mask_4,
21838  &hf_x11_struct_xkb_SetKeyType_virtualMods_mask_5,
21839  &hf_x11_struct_xkb_SetKeyType_virtualMods_mask_6,
21840  &hf_x11_struct_xkb_SetKeyType_virtualMods_mask_7,
21841  &hf_x11_struct_xkb_SetKeyType_virtualMods_mask_8,
21842  &hf_x11_struct_xkb_SetKeyType_virtualMods_mask_9,
21843  &hf_x11_struct_xkb_SetKeyType_virtualMods_mask_10,
21844  &hf_x11_struct_xkb_SetKeyType_virtualMods_mask_11,
21845  &hf_x11_struct_xkb_SetKeyType_virtualMods_mask_12,
21846  &hf_x11_struct_xkb_SetKeyType_virtualMods_mask_13,
21847  &hf_x11_struct_xkb_SetKeyType_virtualMods_mask_14,
21848  &hf_x11_struct_xkb_SetKeyType_virtualMods_mask_15,
21849  NULL
21850  };
21851  proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_struct_xkb_SetKeyType_virtualMods, ett_x11_rectangle, virtualMods_bits, byte_order);
21852  }
21853  *offsetp += 2;
21854  proto_tree_add_item(t, hf_x11_struct_xkb_SetKeyType_numLevels, tvb, *offsetp, 1, byte_order);
21855  *offsetp += 1;
21856  f_nMapEntries = tvb_get_guint8(tvb, *offsetp);
21857  proto_tree_add_item(t, hf_x11_struct_xkb_SetKeyType_nMapEntries, tvb, *offsetp, 1, byte_order);
21858  *offsetp += 1;
21859  f_preserve = tvb_get_guint8(tvb, *offsetp);
21860  proto_tree_add_item(t, hf_x11_struct_xkb_SetKeyType_preserve, tvb, *offsetp, 1, byte_order);
21861  *offsetp += 1;
21862  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
21863  *offsetp += 1;
21864  struct_xkb_KTSetMapEntry(tvb, offsetp, t, byte_order, f_nMapEntries);
21865  struct_xkb_KTSetMapEntry(tvb, offsetp, t, byte_order, (f_preserve * f_nMapEntries));
21866  }
21867 }
21868 
21869 static int struct_size_xkb_Listing(tvbuff_t *tvb _U_, int *offsetp _U_, guint byte_order _U_)
21870 {
21871  int size = 0;
21872  int f_length;
21873  f_length = tvb_get_guint16(tvb, *offsetp + size + 2, byte_order);
21874  size += f_length * 1;
21875  size = (size + 1) & ~1;
21876  return size + 4;
21877 }
21878 
21879 static void struct_xkb_Listing(tvbuff_t *tvb, int *offsetp, proto_tree *root, guint byte_order _U_, int count)
21880 {
21881  int i;
21882  for (i = 0; i < count; i++) {
21883  proto_item *item;
21884  proto_tree *t;
21885  int f_length;
21886 
21887  item = proto_tree_add_item(root, hf_x11_struct_xkb_Listing, tvb, *offsetp, struct_size_xkb_Listing(tvb, offsetp, byte_order), ENC_NA);
21888  t = proto_item_add_subtree(item, ett_x11_rectangle);
21889  proto_tree_add_item(t, hf_x11_struct_xkb_Listing_flags, tvb, *offsetp, 2, byte_order);
21890  *offsetp += 2;
21891  f_length = tvb_get_guint16(tvb, *offsetp, byte_order);
21892  proto_tree_add_item(t, hf_x11_struct_xkb_Listing_length, tvb, *offsetp, 2, byte_order);
21893  *offsetp += 2;
21894  listOfByte(tvb, offsetp, t, hf_x11_struct_xkb_Listing_string, f_length, byte_order);
21895  if (*offsetp % 2) {
21896  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, (2 - *offsetp % 2), ENC_NA);
21897  *offsetp += (2 - *offsetp % 2);
21898  }
21899  }
21900 }
21901 
21902 static int struct_size_xkb_DeviceLedInfo(tvbuff_t *tvb _U_, int *offsetp _U_, guint byte_order _U_)
21903 {
21904  int size = 0;
21905  int f_mapsPresent;
21906  int f_namesPresent;
21907  f_namesPresent = tvb_get_guint32(tvb, *offsetp + size + 4, byte_order);
21908  f_mapsPresent = tvb_get_guint32(tvb, *offsetp + size + 8, byte_order);
21909  size += ws_count_ones(f_namesPresent) * 4;
21910  size += ws_count_ones(f_mapsPresent) * 12;
21911  return size + 20;
21912 }
21913 
21914 static void struct_xkb_DeviceLedInfo(tvbuff_t *tvb, int *offsetp, proto_tree *root, guint byte_order _U_, int count)
21915 {
21916  int i;
21917  for (i = 0; i < count; i++) {
21918  proto_item *item;
21919  proto_tree *t;
21920  int f_namesPresent;
21921  int f_mapsPresent;
21922 
21923  item = proto_tree_add_item(root, hf_x11_struct_xkb_DeviceLedInfo, tvb, *offsetp, struct_size_xkb_DeviceLedInfo(tvb, offsetp, byte_order), ENC_NA);
21924  t = proto_item_add_subtree(item, ett_x11_rectangle);
21925  field16(tvb, offsetp, t, hf_x11_struct_xkb_DeviceLedInfo_ledClass, byte_order);
21926  field16(tvb, offsetp, t, hf_x11_struct_xkb_DeviceLedInfo_ledID, byte_order);
21927  f_namesPresent = tvb_get_guint32(tvb, *offsetp, byte_order);
21928  proto_tree_add_item(t, hf_x11_struct_xkb_DeviceLedInfo_namesPresent, tvb, *offsetp, 4, byte_order);
21929  *offsetp += 4;
21930  f_mapsPresent = tvb_get_guint32(tvb, *offsetp, byte_order);
21931  proto_tree_add_item(t, hf_x11_struct_xkb_DeviceLedInfo_mapsPresent, tvb, *offsetp, 4, byte_order);
21932  *offsetp += 4;
21933  proto_tree_add_item(t, hf_x11_struct_xkb_DeviceLedInfo_physIndicators, tvb, *offsetp, 4, byte_order);
21934  *offsetp += 4;
21935  proto_tree_add_item(t, hf_x11_struct_xkb_DeviceLedInfo_state, tvb, *offsetp, 4, byte_order);
21936  *offsetp += 4;
21937  listOfCard32(tvb, offsetp, t, hf_x11_struct_xkb_DeviceLedInfo_names, hf_x11_struct_xkb_DeviceLedInfo_names_item, ws_count_ones(f_namesPresent), byte_order);
21938  struct_xkb_IndicatorMap(tvb, offsetp, t, byte_order, ws_count_ones(f_mapsPresent));
21939  }
21940 }
21941 
21942 static void struct_xkb_SANoAction(tvbuff_t *tvb, int *offsetp, proto_tree *root, guint byte_order _U_, int count)
21943 {
21944  int i;
21945  for (i = 0; i < count; i++) {
21946  proto_item *item;
21947  proto_tree *t;
21948 
21949  item = proto_tree_add_item(root, hf_x11_struct_xkb_SANoAction, tvb, *offsetp, 8, ENC_NA);
21950  t = proto_item_add_subtree(item, ett_x11_rectangle);
21951  field8(tvb, offsetp, t, hf_x11_struct_xkb_SANoAction_type, byte_order);
21952  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 7, ENC_NA);
21953  *offsetp += 7;
21954  }
21955 }
21956 
21957 static void struct_xkb_SASetMods(tvbuff_t *tvb, int *offsetp, proto_tree *root, guint byte_order _U_, int count)
21958 {
21959  int i;
21960  for (i = 0; i < count; i++) {
21961  proto_item *item;
21962  proto_tree *t;
21963 
21964  item = proto_tree_add_item(root, hf_x11_struct_xkb_SASetMods, tvb, *offsetp, 8, ENC_NA);
21965  t = proto_item_add_subtree(item, ett_x11_rectangle);
21966  field8(tvb, offsetp, t, hf_x11_struct_xkb_SASetMods_type, byte_order);
21967  {
21968  int* const flags_bits [] = {
21969  &hf_x11_struct_xkb_SASetMods_flags_mask_ClearLocks,
21970  &hf_x11_struct_xkb_SASetMods_flags_mask_LatchToLock,
21971  &hf_x11_struct_xkb_SASetMods_flags_mask_GroupAbsolute,
21972  NULL
21973  };
21974  proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_struct_xkb_SASetMods_flags, ett_x11_rectangle, flags_bits, byte_order);
21975  }
21976  *offsetp += 1;
21977  {
21978  int* const mask_bits [] = {
21979  &hf_x11_struct_xkb_SASetMods_mask_mask_Shift,
21980  &hf_x11_struct_xkb_SASetMods_mask_mask_Lock,
21981  &hf_x11_struct_xkb_SASetMods_mask_mask_Control,
21982  &hf_x11_struct_xkb_SASetMods_mask_mask_1,
21983  &hf_x11_struct_xkb_SASetMods_mask_mask_2,
21984  &hf_x11_struct_xkb_SASetMods_mask_mask_3,
21985  &hf_x11_struct_xkb_SASetMods_mask_mask_4,
21986  &hf_x11_struct_xkb_SASetMods_mask_mask_5,
21987  &hf_x11_struct_xkb_SASetMods_mask_mask_Any,
21988  NULL
21989  };
21990  proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_struct_xkb_SASetMods_mask, ett_x11_rectangle, mask_bits, byte_order);
21991  }
21992  *offsetp += 1;
21993  {
21994  int* const realMods_bits [] = {
21995  &hf_x11_struct_xkb_SASetMods_realMods_mask_Shift,
21996  &hf_x11_struct_xkb_SASetMods_realMods_mask_Lock,
21997  &hf_x11_struct_xkb_SASetMods_realMods_mask_Control,
21998  &hf_x11_struct_xkb_SASetMods_realMods_mask_1,
21999  &hf_x11_struct_xkb_SASetMods_realMods_mask_2,
22000  &hf_x11_struct_xkb_SASetMods_realMods_mask_3,
22001  &hf_x11_struct_xkb_SASetMods_realMods_mask_4,
22002  &hf_x11_struct_xkb_SASetMods_realMods_mask_5,
22003  &hf_x11_struct_xkb_SASetMods_realMods_mask_Any,
22004  NULL
22005  };
22006  proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_struct_xkb_SASetMods_realMods, ett_x11_rectangle, realMods_bits, byte_order);
22007  }
22008  *offsetp += 1;
22009  {
22010  int* const vmodsHigh_bits [] = {
22011  &hf_x11_struct_xkb_SASetMods_vmodsHigh_mask_8,
22012  &hf_x11_struct_xkb_SASetMods_vmodsHigh_mask_9,
22013  &hf_x11_struct_xkb_SASetMods_vmodsHigh_mask_10,
22014  &hf_x11_struct_xkb_SASetMods_vmodsHigh_mask_11,
22015  &hf_x11_struct_xkb_SASetMods_vmodsHigh_mask_12,
22016  &hf_x11_struct_xkb_SASetMods_vmodsHigh_mask_13,
22017  &hf_x11_struct_xkb_SASetMods_vmodsHigh_mask_14,
22018  &hf_x11_struct_xkb_SASetMods_vmodsHigh_mask_15,
22019  NULL
22020  };
22021  proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_struct_xkb_SASetMods_vmodsHigh, ett_x11_rectangle, vmodsHigh_bits, byte_order);
22022  }
22023  *offsetp += 1;
22024  {
22025  int* const vmodsLow_bits [] = {
22026  &hf_x11_struct_xkb_SASetMods_vmodsLow_mask_0,
22027  &hf_x11_struct_xkb_SASetMods_vmodsLow_mask_1,
22028  &hf_x11_struct_xkb_SASetMods_vmodsLow_mask_2,
22029  &hf_x11_struct_xkb_SASetMods_vmodsLow_mask_3,
22030  &hf_x11_struct_xkb_SASetMods_vmodsLow_mask_4,
22031  &hf_x11_struct_xkb_SASetMods_vmodsLow_mask_5,
22032  &hf_x11_struct_xkb_SASetMods_vmodsLow_mask_6,
22033  &hf_x11_struct_xkb_SASetMods_vmodsLow_mask_7,
22034  NULL
22035  };
22036  proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_struct_xkb_SASetMods_vmodsLow, ett_x11_rectangle, vmodsLow_bits, byte_order);
22037  }
22038  *offsetp += 1;
22039  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 2, ENC_NA);
22040  *offsetp += 2;
22041  }
22042 }
22043 
22044 static void struct_xkb_SASetGroup(tvbuff_t *tvb, int *offsetp, proto_tree *root, guint byte_order _U_, int count)
22045 {
22046  int i;
22047  for (i = 0; i < count; i++) {
22048  proto_item *item;
22049  proto_tree *t;
22050 
22051  item = proto_tree_add_item(root, hf_x11_struct_xkb_SASetGroup, tvb, *offsetp, 8, ENC_NA);
22052  t = proto_item_add_subtree(item, ett_x11_rectangle);
22053  field8(tvb, offsetp, t, hf_x11_struct_xkb_SASetGroup_type, byte_order);
22054  {
22055  int* const flags_bits [] = {
22056  &hf_x11_struct_xkb_SASetGroup_flags_mask_ClearLocks,
22057  &hf_x11_struct_xkb_SASetGroup_flags_mask_LatchToLock,
22058  &hf_x11_struct_xkb_SASetGroup_flags_mask_GroupAbsolute,
22059  NULL
22060  };
22061  proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_struct_xkb_SASetGroup_flags, ett_x11_rectangle, flags_bits, byte_order);
22062  }
22063  *offsetp += 1;
22064  proto_tree_add_item(t, hf_x11_struct_xkb_SASetGroup_group, tvb, *offsetp, 1, byte_order);
22065  *offsetp += 1;
22066  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 5, ENC_NA);
22067  *offsetp += 5;
22068  }
22069 }
22070 
22071 static void struct_xkb_SAMovePtr(tvbuff_t *tvb, int *offsetp, proto_tree *root, guint byte_order _U_, int count)
22072 {
22073  int i;
22074  for (i = 0; i < count; i++) {
22075  proto_item *item;
22076  proto_tree *t;
22077 
22078  item = proto_tree_add_item(root, hf_x11_struct_xkb_SAMovePtr, tvb, *offsetp, 8, ENC_NA);
22079  t = proto_item_add_subtree(item, ett_x11_rectangle);
22080  field8(tvb, offsetp, t, hf_x11_struct_xkb_SAMovePtr_type, byte_order);
22081  {
22082  int* const flags_bits [] = {
22083  &hf_x11_struct_xkb_SAMovePtr_flags_mask_NoAcceleration,
22084  &hf_x11_struct_xkb_SAMovePtr_flags_mask_MoveAbsoluteX,
22085  &hf_x11_struct_xkb_SAMovePtr_flags_mask_MoveAbsoluteY,
22086  NULL
22087  };
22088  proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_struct_xkb_SAMovePtr_flags, ett_x11_rectangle, flags_bits, byte_order);
22089  }
22090  *offsetp += 1;
22091  proto_tree_add_item(t, hf_x11_struct_xkb_SAMovePtr_xHigh, tvb, *offsetp, 1, byte_order);
22092  *offsetp += 1;
22093  proto_tree_add_item(t, hf_x11_struct_xkb_SAMovePtr_xLow, tvb, *offsetp, 1, byte_order);
22094  *offsetp += 1;
22095  proto_tree_add_item(t, hf_x11_struct_xkb_SAMovePtr_yHigh, tvb, *offsetp, 1, byte_order);
22096  *offsetp += 1;
22097  proto_tree_add_item(t, hf_x11_struct_xkb_SAMovePtr_yLow, tvb, *offsetp, 1, byte_order);
22098  *offsetp += 1;
22099  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 2, ENC_NA);
22100  *offsetp += 2;
22101  }
22102 }
22103 
22104 static void struct_xkb_SAPtrBtn(tvbuff_t *tvb, int *offsetp, proto_tree *root, guint byte_order _U_, int count)
22105 {
22106  int i;
22107  for (i = 0; i < count; i++) {
22108  proto_item *item;
22109  proto_tree *t;
22110 
22111  item = proto_tree_add_item(root, hf_x11_struct_xkb_SAPtrBtn, tvb, *offsetp, 8, ENC_NA);
22112  t = proto_item_add_subtree(item, ett_x11_rectangle);
22113  field8(tvb, offsetp, t, hf_x11_struct_xkb_SAPtrBtn_type, byte_order);
22114  proto_tree_add_item(t, hf_x11_struct_xkb_SAPtrBtn_flags, tvb, *offsetp, 1, byte_order);
22115  *offsetp += 1;
22116  proto_tree_add_item(t, hf_x11_struct_xkb_SAPtrBtn_count, tvb, *offsetp, 1, byte_order);
22117  *offsetp += 1;
22118  proto_tree_add_item(t, hf_x11_struct_xkb_SAPtrBtn_button, tvb, *offsetp, 1, byte_order);
22119  *offsetp += 1;
22120  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 4, ENC_NA);
22121  *offsetp += 4;
22122  }
22123 }
22124 
22125 static void struct_xkb_SALockPtrBtn(tvbuff_t *tvb, int *offsetp, proto_tree *root, guint byte_order _U_, int count)
22126 {
22127  int i;
22128  for (i = 0; i < count; i++) {
22129  proto_item *item;
22130  proto_tree *t;
22131 
22132  item = proto_tree_add_item(root, hf_x11_struct_xkb_SALockPtrBtn, tvb, *offsetp, 8, ENC_NA);
22133  t = proto_item_add_subtree(item, ett_x11_rectangle);
22134  field8(tvb, offsetp, t, hf_x11_struct_xkb_SALockPtrBtn_type, byte_order);
22135  proto_tree_add_item(t, hf_x11_struct_xkb_SALockPtrBtn_flags, tvb, *offsetp, 1, byte_order);
22136  *offsetp += 1;
22137  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
22138  *offsetp += 1;
22139  proto_tree_add_item(t, hf_x11_struct_xkb_SALockPtrBtn_button, tvb, *offsetp, 1, byte_order);
22140  *offsetp += 1;
22141  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 4, ENC_NA);
22142  *offsetp += 4;
22143  }
22144 }
22145 
22146 static void struct_xkb_SASetPtrDflt(tvbuff_t *tvb, int *offsetp, proto_tree *root, guint byte_order _U_, int count)
22147 {
22148  int i;
22149  for (i = 0; i < count; i++) {
22150  proto_item *item;
22151  proto_tree *t;
22152 
22153  item = proto_tree_add_item(root, hf_x11_struct_xkb_SASetPtrDflt, tvb, *offsetp, 8, ENC_NA);
22154  t = proto_item_add_subtree(item, ett_x11_rectangle);
22155  field8(tvb, offsetp, t, hf_x11_struct_xkb_SASetPtrDflt_type, byte_order);
22156  {
22157  int* const flags_bits [] = {
22158  &hf_x11_struct_xkb_SASetPtrDflt_flags_mask_AffectDfltButton,
22159  &hf_x11_struct_xkb_SASetPtrDflt_flags_mask_DfltBtnAbsolute,
22160  NULL
22161  };
22162  proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_struct_xkb_SASetPtrDflt_flags, ett_x11_rectangle, flags_bits, byte_order);
22163  }
22164  *offsetp += 1;
22165  {
22166  int* const affect_bits [] = {
22167  &hf_x11_struct_xkb_SASetPtrDflt_affect_mask_AffectDfltButton,
22168  &hf_x11_struct_xkb_SASetPtrDflt_affect_mask_DfltBtnAbsolute,
22169  NULL
22170  };
22171  proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_struct_xkb_SASetPtrDflt_affect, ett_x11_rectangle, affect_bits, byte_order);
22172  }
22173  *offsetp += 1;
22174  proto_tree_add_item(t, hf_x11_struct_xkb_SASetPtrDflt_value, tvb, *offsetp, 1, byte_order);
22175  *offsetp += 1;
22176  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 4, ENC_NA);
22177  *offsetp += 4;
22178  }
22179 }
22180 
22181 static void struct_xkb_SAIsoLock(tvbuff_t *tvb, int *offsetp, proto_tree *root, guint byte_order _U_, int count)
22182 {
22183  int i;
22184  for (i = 0; i < count; i++) {
22185  proto_item *item;
22186  proto_tree *t;
22187 
22188  item = proto_tree_add_item(root, hf_x11_struct_xkb_SAIsoLock, tvb, *offsetp, 8, ENC_NA);
22189  t = proto_item_add_subtree(item, ett_x11_rectangle);
22190  field8(tvb, offsetp, t, hf_x11_struct_xkb_SAIsoLock_type, byte_order);
22191  {
22192  int* const flags_bits [] = {
22193  &hf_x11_struct_xkb_SAIsoLock_flags_mask_NoLock,
22194  &hf_x11_struct_xkb_SAIsoLock_flags_mask_NoUnlock,
22195  &hf_x11_struct_xkb_SAIsoLock_flags_mask_GroupAbsolute,
22196  &hf_x11_struct_xkb_SAIsoLock_flags_mask_ISODfltIsGroup,
22197  NULL
22198  };
22199  proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_struct_xkb_SAIsoLock_flags, ett_x11_rectangle, flags_bits, byte_order);
22200  }
22201  *offsetp += 1;
22202  {
22203  int* const mask_bits [] = {
22204  &hf_x11_struct_xkb_SAIsoLock_mask_mask_Shift,
22205  &hf_x11_struct_xkb_SAIsoLock_mask_mask_Lock,
22206  &hf_x11_struct_xkb_SAIsoLock_mask_mask_Control,
22207  &hf_x11_struct_xkb_SAIsoLock_mask_mask_1,
22208  &hf_x11_struct_xkb_SAIsoLock_mask_mask_2,
22209  &hf_x11_struct_xkb_SAIsoLock_mask_mask_3,
22210  &hf_x11_struct_xkb_SAIsoLock_mask_mask_4,
22211  &hf_x11_struct_xkb_SAIsoLock_mask_mask_5,
22212  &hf_x11_struct_xkb_SAIsoLock_mask_mask_Any,
22213  NULL
22214  };
22215  proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_struct_xkb_SAIsoLock_mask, ett_x11_rectangle, mask_bits, byte_order);
22216  }
22217  *offsetp += 1;
22218  {
22219  int* const realMods_bits [] = {
22220  &hf_x11_struct_xkb_SAIsoLock_realMods_mask_Shift,
22221  &hf_x11_struct_xkb_SAIsoLock_realMods_mask_Lock,
22222  &hf_x11_struct_xkb_SAIsoLock_realMods_mask_Control,
22223  &hf_x11_struct_xkb_SAIsoLock_realMods_mask_1,
22224  &hf_x11_struct_xkb_SAIsoLock_realMods_mask_2,
22225  &hf_x11_struct_xkb_SAIsoLock_realMods_mask_3,
22226  &hf_x11_struct_xkb_SAIsoLock_realMods_mask_4,
22227  &hf_x11_struct_xkb_SAIsoLock_realMods_mask_5,
22228  &hf_x11_struct_xkb_SAIsoLock_realMods_mask_Any,
22229  NULL
22230  };
22231  proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_struct_xkb_SAIsoLock_realMods, ett_x11_rectangle, realMods_bits, byte_order);
22232  }
22233  *offsetp += 1;
22234  proto_tree_add_item(t, hf_x11_struct_xkb_SAIsoLock_group, tvb, *offsetp, 1, byte_order);
22235  *offsetp += 1;
22236  {
22237  int* const affect_bits [] = {
22238  &hf_x11_struct_xkb_SAIsoLock_affect_mask_Ctrls,
22239  &hf_x11_struct_xkb_SAIsoLock_affect_mask_Ptr,
22240  &hf_x11_struct_xkb_SAIsoLock_affect_mask_Group,
22241  &hf_x11_struct_xkb_SAIsoLock_affect_mask_Mods,
22242  NULL
22243  };
22244  proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_struct_xkb_SAIsoLock_affect, ett_x11_rectangle, affect_bits, byte_order);
22245  }
22246  *offsetp += 1;
22247  {
22248  int* const vmodsHigh_bits [] = {
22249  &hf_x11_struct_xkb_SAIsoLock_vmodsHigh_mask_8,
22250  &hf_x11_struct_xkb_SAIsoLock_vmodsHigh_mask_9,
22251  &hf_x11_struct_xkb_SAIsoLock_vmodsHigh_mask_10,
22252  &hf_x11_struct_xkb_SAIsoLock_vmodsHigh_mask_11,
22253  &hf_x11_struct_xkb_SAIsoLock_vmodsHigh_mask_12,
22254  &hf_x11_struct_xkb_SAIsoLock_vmodsHigh_mask_13,
22255  &hf_x11_struct_xkb_SAIsoLock_vmodsHigh_mask_14,
22256  &hf_x11_struct_xkb_SAIsoLock_vmodsHigh_mask_15,
22257  NULL
22258  };
22259  proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_struct_xkb_SAIsoLock_vmodsHigh, ett_x11_rectangle, vmodsHigh_bits, byte_order);
22260  }
22261  *offsetp += 1;
22262  {
22263  int* const vmodsLow_bits [] = {
22264  &hf_x11_struct_xkb_SAIsoLock_vmodsLow_mask_0,
22265  &hf_x11_struct_xkb_SAIsoLock_vmodsLow_mask_1,
22266  &hf_x11_struct_xkb_SAIsoLock_vmodsLow_mask_2,
22267  &hf_x11_struct_xkb_SAIsoLock_vmodsLow_mask_3,
22268  &hf_x11_struct_xkb_SAIsoLock_vmodsLow_mask_4,
22269  &hf_x11_struct_xkb_SAIsoLock_vmodsLow_mask_5,
22270  &hf_x11_struct_xkb_SAIsoLock_vmodsLow_mask_6,
22271  &hf_x11_struct_xkb_SAIsoLock_vmodsLow_mask_7,
22272  NULL
22273  };
22274  proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_struct_xkb_SAIsoLock_vmodsLow, ett_x11_rectangle, vmodsLow_bits, byte_order);
22275  }
22276  *offsetp += 1;
22277  }
22278 }
22279 
22280 static void struct_xkb_SATerminate(tvbuff_t *tvb, int *offsetp, proto_tree *root, guint byte_order _U_, int count)
22281 {
22282  int i;
22283  for (i = 0; i < count; i++) {
22284  proto_item *item;
22285  proto_tree *t;
22286 
22287  item = proto_tree_add_item(root, hf_x11_struct_xkb_SATerminate, tvb, *offsetp, 8, ENC_NA);
22288  t = proto_item_add_subtree(item, ett_x11_rectangle);
22289  field8(tvb, offsetp, t, hf_x11_struct_xkb_SATerminate_type, byte_order);
22290  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 7, ENC_NA);
22291  *offsetp += 7;
22292  }
22293 }
22294 
22295 static void struct_xkb_SASwitchScreen(tvbuff_t *tvb, int *offsetp, proto_tree *root, guint byte_order _U_, int count)
22296 {
22297  int i;
22298  for (i = 0; i < count; i++) {
22299  proto_item *item;
22300  proto_tree *t;
22301 
22302  item = proto_tree_add_item(root, hf_x11_struct_xkb_SASwitchScreen, tvb, *offsetp, 8, ENC_NA);
22303  t = proto_item_add_subtree(item, ett_x11_rectangle);
22304  field8(tvb, offsetp, t, hf_x11_struct_xkb_SASwitchScreen_type, byte_order);
22305  proto_tree_add_item(t, hf_x11_struct_xkb_SASwitchScreen_flags, tvb, *offsetp, 1, byte_order);
22306  *offsetp += 1;
22307  proto_tree_add_item(t, hf_x11_struct_xkb_SASwitchScreen_newScreen, tvb, *offsetp, 1, byte_order);
22308  *offsetp += 1;
22309  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 5, ENC_NA);
22310  *offsetp += 5;
22311  }
22312 }
22313 
22314 static void struct_xkb_SASetControls(tvbuff_t *tvb, int *offsetp, proto_tree *root, guint byte_order _U_, int count)
22315 {
22316  int i;
22317  for (i = 0; i < count; i++) {
22318  proto_item *item;
22319  proto_tree *t;
22320 
22321  item = proto_tree_add_item(root, hf_x11_struct_xkb_SASetControls, tvb, *offsetp, 8, ENC_NA);
22322  t = proto_item_add_subtree(item, ett_x11_rectangle);
22323  field8(tvb, offsetp, t, hf_x11_struct_xkb_SASetControls_type, byte_order);
22324  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 3, ENC_NA);
22325  *offsetp += 3;
22326  {
22327  int* const boolCtrlsHigh_bits [] = {
22328  &hf_x11_struct_xkb_SASetControls_boolCtrlsHigh_mask_AccessXFeedback,
22329  &hf_x11_struct_xkb_SASetControls_boolCtrlsHigh_mask_AudibleBell,
22330  &hf_x11_struct_xkb_SASetControls_boolCtrlsHigh_mask_Overlay1,
22331  &hf_x11_struct_xkb_SASetControls_boolCtrlsHigh_mask_Overlay2,
22332  &hf_x11_struct_xkb_SASetControls_boolCtrlsHigh_mask_IgnoreGroupLock,
22333  NULL
22334  };
22335  proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_struct_xkb_SASetControls_boolCtrlsHigh, ett_x11_rectangle, boolCtrlsHigh_bits, byte_order);
22336  }
22337  *offsetp += 1;
22338  {
22339  int* const boolCtrlsLow_bits [] = {
22340  &hf_x11_struct_xkb_SASetControls_boolCtrlsLow_mask_RepeatKeys,
22341  &hf_x11_struct_xkb_SASetControls_boolCtrlsLow_mask_SlowKeys,
22342  &hf_x11_struct_xkb_SASetControls_boolCtrlsLow_mask_BounceKeys,
22343  &hf_x11_struct_xkb_SASetControls_boolCtrlsLow_mask_StickyKeys,
22344  &hf_x11_struct_xkb_SASetControls_boolCtrlsLow_mask_MouseKeys,
22345  &hf_x11_struct_xkb_SASetControls_boolCtrlsLow_mask_MouseKeysAccel,
22346  &hf_x11_struct_xkb_SASetControls_boolCtrlsLow_mask_AccessXKeys,
22347  &hf_x11_struct_xkb_SASetControls_boolCtrlsLow_mask_AccessXTimeout,
22348  NULL
22349  };
22350  proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_struct_xkb_SASetControls_boolCtrlsLow, ett_x11_rectangle, boolCtrlsLow_bits, byte_order);
22351  }
22352  *offsetp += 1;
22353  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 2, ENC_NA);
22354  *offsetp += 2;
22355  }
22356 }
22357 
22358 static void struct_xkb_SAActionMessage(tvbuff_t *tvb, int *offsetp, proto_tree *root, guint byte_order _U_, int count)
22359 {
22360  int i;
22361  for (i = 0; i < count; i++) {
22362  proto_item *item;
22363  proto_tree *t;
22364 
22365  item = proto_tree_add_item(root, hf_x11_struct_xkb_SAActionMessage, tvb, *offsetp, 8, ENC_NA);
22366  t = proto_item_add_subtree(item, ett_x11_rectangle);
22367  field8(tvb, offsetp, t, hf_x11_struct_xkb_SAActionMessage_type, byte_order);
22368  {
22369  int* const flags_bits [] = {
22370  &hf_x11_struct_xkb_SAActionMessage_flags_mask_OnPress,
22371  &hf_x11_struct_xkb_SAActionMessage_flags_mask_OnRelease,
22372  &hf_x11_struct_xkb_SAActionMessage_flags_mask_GenKeyEvent,
22373  NULL
22374  };
22375  proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_struct_xkb_SAActionMessage_flags, ett_x11_rectangle, flags_bits, byte_order);
22376  }
22377  *offsetp += 1;
22378  listOfByte(tvb, offsetp, t, hf_x11_struct_xkb_SAActionMessage_message, 6, byte_order);
22379  }
22380 }
22381 
22382 static void struct_xkb_SARedirectKey(tvbuff_t *tvb, int *offsetp, proto_tree *root, guint byte_order _U_, int count)
22383 {
22384  int i;
22385  for (i = 0; i < count; i++) {
22386  proto_item *item;
22387  proto_tree *t;
22388 
22389  item = proto_tree_add_item(root, hf_x11_struct_xkb_SARedirectKey, tvb, *offsetp, 8, ENC_NA);
22390  t = proto_item_add_subtree(item, ett_x11_rectangle);
22391  field8(tvb, offsetp, t, hf_x11_struct_xkb_SARedirectKey_type, byte_order);
22392  proto_tree_add_item(t, hf_x11_struct_xkb_SARedirectKey_newkey, tvb, *offsetp, 1, byte_order);
22393  *offsetp += 1;
22394  {
22395  int* const mask_bits [] = {
22396  &hf_x11_struct_xkb_SARedirectKey_mask_mask_Shift,
22397  &hf_x11_struct_xkb_SARedirectKey_mask_mask_Lock,
22398  &hf_x11_struct_xkb_SARedirectKey_mask_mask_Control,
22399  &hf_x11_struct_xkb_SARedirectKey_mask_mask_1,
22400  &hf_x11_struct_xkb_SARedirectKey_mask_mask_2,
22401  &hf_x11_struct_xkb_SARedirectKey_mask_mask_3,
22402  &hf_x11_struct_xkb_SARedirectKey_mask_mask_4,
22403  &hf_x11_struct_xkb_SARedirectKey_mask_mask_5,
22404  &hf_x11_struct_xkb_SARedirectKey_mask_mask_Any,
22405  NULL
22406  };
22407  proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_struct_xkb_SARedirectKey_mask, ett_x11_rectangle, mask_bits, byte_order);
22408  }
22409  *offsetp += 1;
22410  {
22411  int* const realModifiers_bits [] = {
22412  &hf_x11_struct_xkb_SARedirectKey_realModifiers_mask_Shift,
22413  &hf_x11_struct_xkb_SARedirectKey_realModifiers_mask_Lock,
22414  &hf_x11_struct_xkb_SARedirectKey_realModifiers_mask_Control,
22415  &hf_x11_struct_xkb_SARedirectKey_realModifiers_mask_1,
22416  &hf_x11_struct_xkb_SARedirectKey_realModifiers_mask_2,
22417  &hf_x11_struct_xkb_SARedirectKey_realModifiers_mask_3,
22418  &hf_x11_struct_xkb_SARedirectKey_realModifiers_mask_4,
22419  &hf_x11_struct_xkb_SARedirectKey_realModifiers_mask_5,
22420  &hf_x11_struct_xkb_SARedirectKey_realModifiers_mask_Any,
22421  NULL
22422  };
22423  proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_struct_xkb_SARedirectKey_realModifiers, ett_x11_rectangle, realModifiers_bits, byte_order);
22424  }
22425  *offsetp += 1;
22426  {
22427  int* const vmodsMaskHigh_bits [] = {
22428  &hf_x11_struct_xkb_SARedirectKey_vmodsMaskHigh_mask_8,
22429  &hf_x11_struct_xkb_SARedirectKey_vmodsMaskHigh_mask_9,
22430  &hf_x11_struct_xkb_SARedirectKey_vmodsMaskHigh_mask_10,
22431  &hf_x11_struct_xkb_SARedirectKey_vmodsMaskHigh_mask_11,
22432  &hf_x11_struct_xkb_SARedirectKey_vmodsMaskHigh_mask_12,
22433  &hf_x11_struct_xkb_SARedirectKey_vmodsMaskHigh_mask_13,
22434  &hf_x11_struct_xkb_SARedirectKey_vmodsMaskHigh_mask_14,
22435  &hf_x11_struct_xkb_SARedirectKey_vmodsMaskHigh_mask_15,
22436  NULL
22437  };
22438  proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_struct_xkb_SARedirectKey_vmodsMaskHigh, ett_x11_rectangle, vmodsMaskHigh_bits, byte_order);
22439  }
22440  *offsetp += 1;
22441  {
22442  int* const vmodsMaskLow_bits [] = {
22443  &hf_x11_struct_xkb_SARedirectKey_vmodsMaskLow_mask_0,
22444  &hf_x11_struct_xkb_SARedirectKey_vmodsMaskLow_mask_1,
22445  &hf_x11_struct_xkb_SARedirectKey_vmodsMaskLow_mask_2,
22446  &hf_x11_struct_xkb_SARedirectKey_vmodsMaskLow_mask_3,
22447  &hf_x11_struct_xkb_SARedirectKey_vmodsMaskLow_mask_4,
22448  &hf_x11_struct_xkb_SARedirectKey_vmodsMaskLow_mask_5,
22449  &hf_x11_struct_xkb_SARedirectKey_vmodsMaskLow_mask_6,
22450  &hf_x11_struct_xkb_SARedirectKey_vmodsMaskLow_mask_7,
22451  NULL
22452  };
22453  proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_struct_xkb_SARedirectKey_vmodsMaskLow, ett_x11_rectangle, vmodsMaskLow_bits, byte_order);
22454  }
22455  *offsetp += 1;
22456  {
22457  int* const vmodsHigh_bits [] = {
22458  &hf_x11_struct_xkb_SARedirectKey_vmodsHigh_mask_8,
22459  &hf_x11_struct_xkb_SARedirectKey_vmodsHigh_mask_9,
22460  &hf_x11_struct_xkb_SARedirectKey_vmodsHigh_mask_10,
22461  &hf_x11_struct_xkb_SARedirectKey_vmodsHigh_mask_11,
22462  &hf_x11_struct_xkb_SARedirectKey_vmodsHigh_mask_12,
22463  &hf_x11_struct_xkb_SARedirectKey_vmodsHigh_mask_13,
22464  &hf_x11_struct_xkb_SARedirectKey_vmodsHigh_mask_14,
22465  &hf_x11_struct_xkb_SARedirectKey_vmodsHigh_mask_15,
22466  NULL
22467  };
22468  proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_struct_xkb_SARedirectKey_vmodsHigh, ett_x11_rectangle, vmodsHigh_bits, byte_order);
22469  }
22470  *offsetp += 1;
22471  {
22472  int* const vmodsLow_bits [] = {
22473  &hf_x11_struct_xkb_SARedirectKey_vmodsLow_mask_0,
22474  &hf_x11_struct_xkb_SARedirectKey_vmodsLow_mask_1,
22475  &hf_x11_struct_xkb_SARedirectKey_vmodsLow_mask_2,
22476  &hf_x11_struct_xkb_SARedirectKey_vmodsLow_mask_3,
22477  &hf_x11_struct_xkb_SARedirectKey_vmodsLow_mask_4,
22478  &hf_x11_struct_xkb_SARedirectKey_vmodsLow_mask_5,
22479  &hf_x11_struct_xkb_SARedirectKey_vmodsLow_mask_6,
22480  &hf_x11_struct_xkb_SARedirectKey_vmodsLow_mask_7,
22481  NULL
22482  };
22483  proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_struct_xkb_SARedirectKey_vmodsLow, ett_x11_rectangle, vmodsLow_bits, byte_order);
22484  }
22485  *offsetp += 1;
22486  }
22487 }
22488 
22489 static void struct_xkb_SADeviceBtn(tvbuff_t *tvb, int *offsetp, proto_tree *root, guint byte_order _U_, int count)
22490 {
22491  int i;
22492  for (i = 0; i < count; i++) {
22493  proto_item *item;
22494  proto_tree *t;
22495 
22496  item = proto_tree_add_item(root, hf_x11_struct_xkb_SADeviceBtn, tvb, *offsetp, 8, ENC_NA);
22497  t = proto_item_add_subtree(item, ett_x11_rectangle);
22498  field8(tvb, offsetp, t, hf_x11_struct_xkb_SADeviceBtn_type, byte_order);
22499  proto_tree_add_item(t, hf_x11_struct_xkb_SADeviceBtn_flags, tvb, *offsetp, 1, byte_order);
22500  *offsetp += 1;
22501  proto_tree_add_item(t, hf_x11_struct_xkb_SADeviceBtn_count, tvb, *offsetp, 1, byte_order);
22502  *offsetp += 1;
22503  proto_tree_add_item(t, hf_x11_struct_xkb_SADeviceBtn_button, tvb, *offsetp, 1, byte_order);
22504  *offsetp += 1;
22505  proto_tree_add_item(t, hf_x11_struct_xkb_SADeviceBtn_device, tvb, *offsetp, 1, byte_order);
22506  *offsetp += 1;
22507  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 3, ENC_NA);
22508  *offsetp += 3;
22509  }
22510 }
22511 
22512 static void struct_xkb_SALockDeviceBtn(tvbuff_t *tvb, int *offsetp, proto_tree *root, guint byte_order _U_, int count)
22513 {
22514  int i;
22515  for (i = 0; i < count; i++) {
22516  proto_item *item;
22517  proto_tree *t;
22518 
22519  item = proto_tree_add_item(root, hf_x11_struct_xkb_SALockDeviceBtn, tvb, *offsetp, 8, ENC_NA);
22520  t = proto_item_add_subtree(item, ett_x11_rectangle);
22521  field8(tvb, offsetp, t, hf_x11_struct_xkb_SALockDeviceBtn_type, byte_order);
22522  {
22523  int* const flags_bits [] = {
22524  &hf_x11_struct_xkb_SALockDeviceBtn_flags_mask_NoLock,
22525  &hf_x11_struct_xkb_SALockDeviceBtn_flags_mask_NoUnlock,
22526  NULL
22527  };
22528  proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_struct_xkb_SALockDeviceBtn_flags, ett_x11_rectangle, flags_bits, byte_order);
22529  }
22530  *offsetp += 1;
22531  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
22532  *offsetp += 1;
22533  proto_tree_add_item(t, hf_x11_struct_xkb_SALockDeviceBtn_button, tvb, *offsetp, 1, byte_order);
22534  *offsetp += 1;
22535  proto_tree_add_item(t, hf_x11_struct_xkb_SALockDeviceBtn_device, tvb, *offsetp, 1, byte_order);
22536  *offsetp += 1;
22537  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 3, ENC_NA);
22538  *offsetp += 3;
22539  }
22540 }
22541 
22542 static void struct_xkb_SADeviceValuator(tvbuff_t *tvb, int *offsetp, proto_tree *root, guint byte_order _U_, int count)
22543 {
22544  int i;
22545  for (i = 0; i < count; i++) {
22546  proto_item *item;
22547  proto_tree *t;
22548 
22549  item = proto_tree_add_item(root, hf_x11_struct_xkb_SADeviceValuator, tvb, *offsetp, 8, ENC_NA);
22550  t = proto_item_add_subtree(item, ett_x11_rectangle);
22551  field8(tvb, offsetp, t, hf_x11_struct_xkb_SADeviceValuator_type, byte_order);
22552  proto_tree_add_item(t, hf_x11_struct_xkb_SADeviceValuator_device, tvb, *offsetp, 1, byte_order);
22553  *offsetp += 1;
22554  field8(tvb, offsetp, t, hf_x11_struct_xkb_SADeviceValuator_val1what, byte_order);
22555  proto_tree_add_item(t, hf_x11_struct_xkb_SADeviceValuator_val1index, tvb, *offsetp, 1, byte_order);
22556  *offsetp += 1;
22557  proto_tree_add_item(t, hf_x11_struct_xkb_SADeviceValuator_val1value, tvb, *offsetp, 1, byte_order);
22558  *offsetp += 1;
22559  field8(tvb, offsetp, t, hf_x11_struct_xkb_SADeviceValuator_val2what, byte_order);
22560  proto_tree_add_item(t, hf_x11_struct_xkb_SADeviceValuator_val2index, tvb, *offsetp, 1, byte_order);
22561  *offsetp += 1;
22562  proto_tree_add_item(t, hf_x11_struct_xkb_SADeviceValuator_val2value, tvb, *offsetp, 1, byte_order);
22563  *offsetp += 1;
22564  }
22565 }
22566 
22567 static void struct_xkb_SIAction(tvbuff_t *tvb, int *offsetp, proto_tree *root, guint byte_order _U_, int count)
22568 {
22569  int i;
22570  for (i = 0; i < count; i++) {
22571  proto_item *item;
22572  proto_tree *t;
22573 
22574  item = proto_tree_add_item(root, hf_x11_struct_xkb_SIAction, tvb, *offsetp, 8, ENC_NA);
22575  t = proto_item_add_subtree(item, ett_x11_rectangle);
22576  field8(tvb, offsetp, t, hf_x11_struct_xkb_SIAction_type, byte_order);
22577  listOfByte(tvb, offsetp, t, hf_x11_struct_xkb_SIAction_data, 7, byte_order);
22578  }
22579 }
22580 
22581 static void struct_xkb_SymInterpret(tvbuff_t *tvb, int *offsetp, proto_tree *root, guint byte_order _U_, int count)
22582 {
22583  int i;
22584  for (i = 0; i < count; i++) {
22585  proto_item *item;
22586  proto_tree *t;
22587 
22588  item = proto_tree_add_item(root, hf_x11_struct_xkb_SymInterpret, tvb, *offsetp, 16, ENC_NA);
22589  t = proto_item_add_subtree(item, ett_x11_rectangle);
22590  proto_tree_add_item(t, hf_x11_struct_xkb_SymInterpret_sym, tvb, *offsetp, 4, byte_order);
22591  *offsetp += 4;
22592  {
22593  int* const mods_bits [] = {
22594  &hf_x11_struct_xkb_SymInterpret_mods_mask_Shift,
22595  &hf_x11_struct_xkb_SymInterpret_mods_mask_Lock,
22596  &hf_x11_struct_xkb_SymInterpret_mods_mask_Control,
22597  &hf_x11_struct_xkb_SymInterpret_mods_mask_1,
22598  &hf_x11_struct_xkb_SymInterpret_mods_mask_2,
22599  &hf_x11_struct_xkb_SymInterpret_mods_mask_3,
22600  &hf_x11_struct_xkb_SymInterpret_mods_mask_4,
22601  &hf_x11_struct_xkb_SymInterpret_mods_mask_5,
22602  &hf_x11_struct_xkb_SymInterpret_mods_mask_Any,
22603  NULL
22604  };
22605  proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_struct_xkb_SymInterpret_mods, ett_x11_rectangle, mods_bits, byte_order);
22606  }
22607  *offsetp += 1;
22608  field8(tvb, offsetp, t, hf_x11_struct_xkb_SymInterpret_match, byte_order);
22609  {
22610  int* const virtualMod_bits [] = {
22611  &hf_x11_struct_xkb_SymInterpret_virtualMod_mask_0,
22612  &hf_x11_struct_xkb_SymInterpret_virtualMod_mask_1,
22613  &hf_x11_struct_xkb_SymInterpret_virtualMod_mask_2,
22614  &hf_x11_struct_xkb_SymInterpret_virtualMod_mask_3,
22615  &hf_x11_struct_xkb_SymInterpret_virtualMod_mask_4,
22616  &hf_x11_struct_xkb_SymInterpret_virtualMod_mask_5,
22617  &hf_x11_struct_xkb_SymInterpret_virtualMod_mask_6,
22618  &hf_x11_struct_xkb_SymInterpret_virtualMod_mask_7,
22619  NULL
22620  };
22621  proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_struct_xkb_SymInterpret_virtualMod, ett_x11_rectangle, virtualMod_bits, byte_order);
22622  }
22623  *offsetp += 1;
22624  proto_tree_add_item(t, hf_x11_struct_xkb_SymInterpret_flags, tvb, *offsetp, 1, byte_order);
22625  *offsetp += 1;
22626  struct_xkb_SIAction(tvb, offsetp, t, byte_order, 1);
22627  }
22628 }
22629 
22630 static void struct_xkb_Action(tvbuff_t *tvb, int *offsetp, proto_tree *root, guint byte_order, int count)
22631 {
22632  int i;
22633  int base = *offsetp;
22634  for (i = 0; i < count; i++) {
22635  proto_item *item;
22636  proto_tree *t;
22637  item = proto_tree_add_item(root, hf_x11_union_xkb_Action, tvb, base, 8, ENC_NA);
22638  t = proto_item_add_subtree(item, ett_x11_rectangle);
22639 
22640  *offsetp = base;
22641  struct_xkb_SANoAction(tvb, offsetp, t, byte_order, 1);
22642  *offsetp = base;
22643  struct_xkb_SASetMods(tvb, offsetp, t, byte_order, 1);
22644  *offsetp = base;
22645  struct_xkb_SASetMods(tvb, offsetp, t, byte_order, 1);
22646  *offsetp = base;
22647  struct_xkb_SASetMods(tvb, offsetp, t, byte_order, 1);
22648  *offsetp = base;
22649  struct_xkb_SASetGroup(tvb, offsetp, t, byte_order, 1);
22650  *offsetp = base;
22651  struct_xkb_SASetGroup(tvb, offsetp, t, byte_order, 1);
22652  *offsetp = base;
22653  struct_xkb_SASetGroup(tvb, offsetp, t, byte_order, 1);
22654  *offsetp = base;
22655  struct_xkb_SAMovePtr(tvb, offsetp, t, byte_order, 1);
22656  *offsetp = base;
22657  struct_xkb_SAPtrBtn(tvb, offsetp, t, byte_order, 1);
22658  *offsetp = base;
22659  struct_xkb_SALockPtrBtn(tvb, offsetp, t, byte_order, 1);
22660  *offsetp = base;
22661  struct_xkb_SASetPtrDflt(tvb, offsetp, t, byte_order, 1);
22662  *offsetp = base;
22663  struct_xkb_SAIsoLock(tvb, offsetp, t, byte_order, 1);
22664  *offsetp = base;
22665  struct_xkb_SATerminate(tvb, offsetp, t, byte_order, 1);
22666  *offsetp = base;
22667  struct_xkb_SASwitchScreen(tvb, offsetp, t, byte_order, 1);
22668  *offsetp = base;
22669  struct_xkb_SASetControls(tvb, offsetp, t, byte_order, 1);
22670  *offsetp = base;
22671  struct_xkb_SASetControls(tvb, offsetp, t, byte_order, 1);
22672  *offsetp = base;
22673  struct_xkb_SAActionMessage(tvb, offsetp, t, byte_order, 1);
22674  *offsetp = base;
22675  struct_xkb_SARedirectKey(tvb, offsetp, t, byte_order, 1);
22676  *offsetp = base;
22677  struct_xkb_SADeviceBtn(tvb, offsetp, t, byte_order, 1);
22678  *offsetp = base;
22679  struct_xkb_SALockDeviceBtn(tvb, offsetp, t, byte_order, 1);
22680  *offsetp = base;
22681  struct_xkb_SADeviceValuator(tvb, offsetp, t, byte_order, 1);
22682  *offsetp = base;
22683  field8(tvb, offsetp, t, hf_x11_union_xkb_Action_type, byte_order);
22684  base += 8;
22685  }
22686  *offsetp = base;
22687 }
22688 
22689 static void xkbUseExtension(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
22690 {
22691  proto_tree_add_item(t, hf_x11_xkb_UseExtension_wantedMajor, tvb, *offsetp, 2, byte_order);
22692  *offsetp += 2;
22693  proto_tree_add_item(t, hf_x11_xkb_UseExtension_wantedMinor, tvb, *offsetp, 2, byte_order);
22694  *offsetp += 2;
22695 }
22696 static void xkbUseExtension_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
22697 {
22698  int sequence_number;
22699 
22700  col_append_fstr(pinfo->cinfo, COL_INFO, "-UseExtension");
22701 
22702  REPLY(reply);
22703  proto_tree_add_item(t, hf_x11_xkb_UseExtension_reply_supported, tvb, *offsetp, 1, byte_order);
22704  *offsetp += 1;
22705  sequence_number = tvb_get_guint16(tvb, *offsetp, byte_order);
22706  proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
22707  "%d (xkb-UseExtension)", sequence_number);
22708  *offsetp += 2;
22709  proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
22710  *offsetp += 4;
22711  proto_tree_add_item(t, hf_x11_xkb_UseExtension_reply_serverMajor, tvb, *offsetp, 2, byte_order);
22712  *offsetp += 2;
22713  proto_tree_add_item(t, hf_x11_xkb_UseExtension_reply_serverMinor, tvb, *offsetp, 2, byte_order);
22714  *offsetp += 2;
22715  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 20, ENC_NA);
22716  *offsetp += 20;
22717 }
22718 
22719 static void xkbSelectEvents(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
22720 {
22721  int f_affectWhich;
22722  int f_clear;
22723  int f_selectAll;
22724  proto_tree_add_item(t, hf_x11_xkb_SelectEvents_deviceSpec, tvb, *offsetp, 2, byte_order);
22725  *offsetp += 2;
22726  f_affectWhich = tvb_get_guint16(tvb, *offsetp, byte_order);
22727  {
22728  int* const affectWhich_bits [] = {
22729  &hf_x11_xkb_SelectEvents_affectWhich_mask_NewKeyboardNotify,
22730  &hf_x11_xkb_SelectEvents_affectWhich_mask_MapNotify,
22731  &hf_x11_xkb_SelectEvents_affectWhich_mask_StateNotify,
22732  &hf_x11_xkb_SelectEvents_affectWhich_mask_ControlsNotify,
22733  &hf_x11_xkb_SelectEvents_affectWhich_mask_IndicatorStateNotify,
22734  &hf_x11_xkb_SelectEvents_affectWhich_mask_IndicatorMapNotify,
22735  &hf_x11_xkb_SelectEvents_affectWhich_mask_NamesNotify,
22736  &hf_x11_xkb_SelectEvents_affectWhich_mask_CompatMapNotify,
22737  &hf_x11_xkb_SelectEvents_affectWhich_mask_BellNotify,
22738  &hf_x11_xkb_SelectEvents_affectWhich_mask_ActionMessage,
22739  &hf_x11_xkb_SelectEvents_affectWhich_mask_AccessXNotify,
22740  &hf_x11_xkb_SelectEvents_affectWhich_mask_ExtensionDeviceNotify,
22741  NULL
22742  };
22743  proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_xkb_SelectEvents_affectWhich, ett_x11_rectangle, affectWhich_bits, byte_order);
22744  }
22745  *offsetp += 2;
22746  f_clear = tvb_get_guint16(tvb, *offsetp, byte_order);
22747  {
22748  int* const clear_bits [] = {
22749  &hf_x11_xkb_SelectEvents_clear_mask_NewKeyboardNotify,
22750  &hf_x11_xkb_SelectEvents_clear_mask_MapNotify,
22751  &hf_x11_xkb_SelectEvents_clear_mask_StateNotify,
22752  &hf_x11_xkb_SelectEvents_clear_mask_ControlsNotify,
22753  &hf_x11_xkb_SelectEvents_clear_mask_IndicatorStateNotify,
22754  &hf_x11_xkb_SelectEvents_clear_mask_IndicatorMapNotify,
22755  &hf_x11_xkb_SelectEvents_clear_mask_NamesNotify,
22756  &hf_x11_xkb_SelectEvents_clear_mask_CompatMapNotify,
22757  &hf_x11_xkb_SelectEvents_clear_mask_BellNotify,
22758  &hf_x11_xkb_SelectEvents_clear_mask_ActionMessage,
22759  &hf_x11_xkb_SelectEvents_clear_mask_AccessXNotify,
22760  &hf_x11_xkb_SelectEvents_clear_mask_ExtensionDeviceNotify,
22761  NULL
22762  };
22763  proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_xkb_SelectEvents_clear, ett_x11_rectangle, clear_bits, byte_order);
22764  }
22765  *offsetp += 2;
22766  f_selectAll = tvb_get_guint16(tvb, *offsetp, byte_order);
22767  {
22768  int* const selectAll_bits [] = {
22769  &hf_x11_xkb_SelectEvents_selectAll_mask_NewKeyboardNotify,
22770  &hf_x11_xkb_SelectEvents_selectAll_mask_MapNotify,
22771  &hf_x11_xkb_SelectEvents_selectAll_mask_StateNotify,
22772  &hf_x11_xkb_SelectEvents_selectAll_mask_ControlsNotify,
22773  &hf_x11_xkb_SelectEvents_selectAll_mask_IndicatorStateNotify,
22774  &hf_x11_xkb_SelectEvents_selectAll_mask_IndicatorMapNotify,
22775  &hf_x11_xkb_SelectEvents_selectAll_mask_NamesNotify,
22776  &hf_x11_xkb_SelectEvents_selectAll_mask_CompatMapNotify,
22777  &hf_x11_xkb_SelectEvents_selectAll_mask_BellNotify,
22778  &hf_x11_xkb_SelectEvents_selectAll_mask_ActionMessage,
22779  &hf_x11_xkb_SelectEvents_selectAll_mask_AccessXNotify,
22780  &hf_x11_xkb_SelectEvents_selectAll_mask_ExtensionDeviceNotify,
22781  NULL
22782  };
22783  proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_xkb_SelectEvents_selectAll, ett_x11_rectangle, selectAll_bits, byte_order);
22784  }
22785  *offsetp += 2;
22786  {
22787  int* const affectMap_bits [] = {
22788  &hf_x11_xkb_SelectEvents_affectMap_mask_KeyTypes,
22789  &hf_x11_xkb_SelectEvents_affectMap_mask_KeySyms,
22790  &hf_x11_xkb_SelectEvents_affectMap_mask_ModifierMap,
22791  &hf_x11_xkb_SelectEvents_affectMap_mask_ExplicitComponents,
22792  &hf_x11_xkb_SelectEvents_affectMap_mask_KeyActions,
22793  &hf_x11_xkb_SelectEvents_affectMap_mask_KeyBehaviors,
22794  &hf_x11_xkb_SelectEvents_affectMap_mask_VirtualMods,
22795  &hf_x11_xkb_SelectEvents_affectMap_mask_VirtualModMap,
22796  NULL
22797  };
22798  proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_xkb_SelectEvents_affectMap, ett_x11_rectangle, affectMap_bits, byte_order);
22799  }
22800  *offsetp += 2;
22801  {
22802  int* const map_bits [] = {
22803  &hf_x11_xkb_SelectEvents_map_mask_KeyTypes,
22804  &hf_x11_xkb_SelectEvents_map_mask_KeySyms,
22805  &hf_x11_xkb_SelectEvents_map_mask_ModifierMap,
22806  &hf_x11_xkb_SelectEvents_map_mask_ExplicitComponents,
22807  &hf_x11_xkb_SelectEvents_map_mask_KeyActions,
22808  &hf_x11_xkb_SelectEvents_map_mask_KeyBehaviors,
22809  &hf_x11_xkb_SelectEvents_map_mask_VirtualMods,
22810  &hf_x11_xkb_SelectEvents_map_mask_VirtualModMap,
22811  NULL
22812  };
22813  proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_xkb_SelectEvents_map, ett_x11_rectangle, map_bits, byte_order);
22814  }
22815  *offsetp += 2;
22816  if ((f_affectWhich & ((~f_clear) & (~f_selectAll))) & (1U << 0)) {
22817  {
22818  int* const affectNewKeyboard_bits [] = {
22819  &hf_x11_xkb_SelectEvents_NewKeyboardNotify_affectNewKeyboard_mask_Keycodes,
22820  &hf_x11_xkb_SelectEvents_NewKeyboardNotify_affectNewKeyboard_mask_Geometry,
22821  &hf_x11_xkb_SelectEvents_NewKeyboardNotify_affectNewKeyboard_mask_DeviceID,
22822  NULL
22823  };
22824  proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_xkb_SelectEvents_NewKeyboardNotify_affectNewKeyboard, ett_x11_rectangle, affectNewKeyboard_bits, byte_order);
22825  }
22826  *offsetp += 2;
22827  {
22828  int* const newKeyboardDetails_bits [] = {
22829  &hf_x11_xkb_SelectEvents_NewKeyboardNotify_newKeyboardDetails_mask_Keycodes,
22830  &hf_x11_xkb_SelectEvents_NewKeyboardNotify_newKeyboardDetails_mask_Geometry,
22831  &hf_x11_xkb_SelectEvents_NewKeyboardNotify_newKeyboardDetails_mask_DeviceID,
22832  NULL
22833  };
22834  proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_xkb_SelectEvents_NewKeyboardNotify_newKeyboardDetails, ett_x11_rectangle, newKeyboardDetails_bits, byte_order);
22835  }
22836  *offsetp += 2;
22837  }
22838  if ((f_affectWhich & ((~f_clear) & (~f_selectAll))) & (1U << 2)) {
22839  {
22840  int* const affectState_bits [] = {
22841  &hf_x11_xkb_SelectEvents_StateNotify_affectState_mask_ModifierState,
22842  &hf_x11_xkb_SelectEvents_StateNotify_affectState_mask_ModifierBase,
22843  &hf_x11_xkb_SelectEvents_StateNotify_affectState_mask_ModifierLatch,
22844  &hf_x11_xkb_SelectEvents_StateNotify_affectState_mask_ModifierLock,
22845  &hf_x11_xkb_SelectEvents_StateNotify_affectState_mask_GroupState,
22846  &hf_x11_xkb_SelectEvents_StateNotify_affectState_mask_GroupBase,
22847  &hf_x11_xkb_SelectEvents_StateNotify_affectState_mask_GroupLatch,
22848  &hf_x11_xkb_SelectEvents_StateNotify_affectState_mask_GroupLock,
22849  &hf_x11_xkb_SelectEvents_StateNotify_affectState_mask_CompatState,
22850  &hf_x11_xkb_SelectEvents_StateNotify_affectState_mask_GrabMods,
22851  &hf_x11_xkb_SelectEvents_StateNotify_affectState_mask_CompatGrabMods,
22852  &hf_x11_xkb_SelectEvents_StateNotify_affectState_mask_LookupMods,
22853  &hf_x11_xkb_SelectEvents_StateNotify_affectState_mask_CompatLookupMods,
22854  &hf_x11_xkb_SelectEvents_StateNotify_affectState_mask_PointerButtons,
22855  NULL
22856  };
22857  proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_xkb_SelectEvents_StateNotify_affectState, ett_x11_rectangle, affectState_bits, byte_order);
22858  }
22859  *offsetp += 2;
22860  {
22861  int* const stateDetails_bits [] = {
22862  &hf_x11_xkb_SelectEvents_StateNotify_stateDetails_mask_ModifierState,
22863  &hf_x11_xkb_SelectEvents_StateNotify_stateDetails_mask_ModifierBase,
22864  &hf_x11_xkb_SelectEvents_StateNotify_stateDetails_mask_ModifierLatch,
22865  &hf_x11_xkb_SelectEvents_StateNotify_stateDetails_mask_ModifierLock,
22866  &hf_x11_xkb_SelectEvents_StateNotify_stateDetails_mask_GroupState,
22867  &hf_x11_xkb_SelectEvents_StateNotify_stateDetails_mask_GroupBase,
22868  &hf_x11_xkb_SelectEvents_StateNotify_stateDetails_mask_GroupLatch,
22869  &hf_x11_xkb_SelectEvents_StateNotify_stateDetails_mask_GroupLock,
22870  &hf_x11_xkb_SelectEvents_StateNotify_stateDetails_mask_CompatState,
22871  &hf_x11_xkb_SelectEvents_StateNotify_stateDetails_mask_GrabMods,
22872  &hf_x11_xkb_SelectEvents_StateNotify_stateDetails_mask_CompatGrabMods,
22873  &hf_x11_xkb_SelectEvents_StateNotify_stateDetails_mask_LookupMods,
22874  &hf_x11_xkb_SelectEvents_StateNotify_stateDetails_mask_CompatLookupMods,
22875  &hf_x11_xkb_SelectEvents_StateNotify_stateDetails_mask_PointerButtons,
22876  NULL
22877  };
22878  proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_xkb_SelectEvents_StateNotify_stateDetails, ett_x11_rectangle, stateDetails_bits, byte_order);
22879  }
22880  *offsetp += 2;
22881  }
22882  if ((f_affectWhich & ((~f_clear) & (~f_selectAll))) & (1U << 3)) {
22883  {
22884  int* const affectCtrls_bits [] = {
22885  &hf_x11_xkb_SelectEvents_ControlsNotify_affectCtrls_mask_GroupsWrap,
22886  &hf_x11_xkb_SelectEvents_ControlsNotify_affectCtrls_mask_InternalMods,
22887  &hf_x11_xkb_SelectEvents_ControlsNotify_affectCtrls_mask_IgnoreLockMods,
22888  &hf_x11_xkb_SelectEvents_ControlsNotify_affectCtrls_mask_PerKeyRepeat,
22889  &hf_x11_xkb_SelectEvents_ControlsNotify_affectCtrls_mask_ControlsEnabled,
22890  NULL
22891  };
22892  proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_xkb_SelectEvents_ControlsNotify_affectCtrls, ett_x11_rectangle, affectCtrls_bits, byte_order);
22893  }
22894  *offsetp += 4;
22895  {
22896  int* const ctrlDetails_bits [] = {
22897  &hf_x11_xkb_SelectEvents_ControlsNotify_ctrlDetails_mask_GroupsWrap,
22898  &hf_x11_xkb_SelectEvents_ControlsNotify_ctrlDetails_mask_InternalMods,
22899  &hf_x11_xkb_SelectEvents_ControlsNotify_ctrlDetails_mask_IgnoreLockMods,
22900  &hf_x11_xkb_SelectEvents_ControlsNotify_ctrlDetails_mask_PerKeyRepeat,
22901  &hf_x11_xkb_SelectEvents_ControlsNotify_ctrlDetails_mask_ControlsEnabled,
22902  NULL
22903  };
22904  proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_xkb_SelectEvents_ControlsNotify_ctrlDetails, ett_x11_rectangle, ctrlDetails_bits, byte_order);
22905  }
22906  *offsetp += 4;
22907  }
22908  if ((f_affectWhich & ((~f_clear) & (~f_selectAll))) & (1U << 4)) {
22909  proto_tree_add_item(t, hf_x11_xkb_SelectEvents_IndicatorStateNotify_affectIndicatorState, tvb, *offsetp, 4, byte_order);
22910  *offsetp += 4;
22911  proto_tree_add_item(t, hf_x11_xkb_SelectEvents_IndicatorStateNotify_indicatorStateDetails, tvb, *offsetp, 4, byte_order);
22912  *offsetp += 4;
22913  }
22914  if ((f_affectWhich & ((~f_clear) & (~f_selectAll))) & (1U << 5)) {
22915  proto_tree_add_item(t, hf_x11_xkb_SelectEvents_IndicatorMapNotify_affectIndicatorMap, tvb, *offsetp, 4, byte_order);
22916  *offsetp += 4;
22917  proto_tree_add_item(t, hf_x11_xkb_SelectEvents_IndicatorMapNotify_indicatorMapDetails, tvb, *offsetp, 4, byte_order);
22918  *offsetp += 4;
22919  }
22920  if ((f_affectWhich & ((~f_clear) & (~f_selectAll))) & (1U << 6)) {
22921  {
22922  int* const affectNames_bits [] = {
22923  &hf_x11_xkb_SelectEvents_NamesNotify_affectNames_mask_Keycodes,
22924  &hf_x11_xkb_SelectEvents_NamesNotify_affectNames_mask_Geometry,
22925  &hf_x11_xkb_SelectEvents_NamesNotify_affectNames_mask_Symbols,
22926  &hf_x11_xkb_SelectEvents_NamesNotify_affectNames_mask_PhysSymbols,
22927  &hf_x11_xkb_SelectEvents_NamesNotify_affectNames_mask_Types,
22928  &hf_x11_xkb_SelectEvents_NamesNotify_affectNames_mask_Compat,
22929  &hf_x11_xkb_SelectEvents_NamesNotify_affectNames_mask_KeyTypeNames,
22930  &hf_x11_xkb_SelectEvents_NamesNotify_affectNames_mask_KTLevelNames,
22931  &hf_x11_xkb_SelectEvents_NamesNotify_affectNames_mask_IndicatorNames,
22932  &hf_x11_xkb_SelectEvents_NamesNotify_affectNames_mask_KeyNames,
22933  &hf_x11_xkb_SelectEvents_NamesNotify_affectNames_mask_KeyAliases,
22934  &hf_x11_xkb_SelectEvents_NamesNotify_affectNames_mask_VirtualModNames,
22935  &hf_x11_xkb_SelectEvents_NamesNotify_affectNames_mask_GroupNames,
22936  &hf_x11_xkb_SelectEvents_NamesNotify_affectNames_mask_RGNames,
22937  NULL
22938  };
22939  proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_xkb_SelectEvents_NamesNotify_affectNames, ett_x11_rectangle, affectNames_bits, byte_order);
22940  }
22941  *offsetp += 2;
22942  {
22943  int* const namesDetails_bits [] = {
22944  &hf_x11_xkb_SelectEvents_NamesNotify_namesDetails_mask_Keycodes,
22945  &hf_x11_xkb_SelectEvents_NamesNotify_namesDetails_mask_Geometry,
22946  &hf_x11_xkb_SelectEvents_NamesNotify_namesDetails_mask_Symbols,
22947  &hf_x11_xkb_SelectEvents_NamesNotify_namesDetails_mask_PhysSymbols,
22948  &hf_x11_xkb_SelectEvents_NamesNotify_namesDetails_mask_Types,
22949  &hf_x11_xkb_SelectEvents_NamesNotify_namesDetails_mask_Compat,
22950  &hf_x11_xkb_SelectEvents_NamesNotify_namesDetails_mask_KeyTypeNames,
22951  &hf_x11_xkb_SelectEvents_NamesNotify_namesDetails_mask_KTLevelNames,
22952  &hf_x11_xkb_SelectEvents_NamesNotify_namesDetails_mask_IndicatorNames,
22953  &hf_x11_xkb_SelectEvents_NamesNotify_namesDetails_mask_KeyNames,
22954  &hf_x11_xkb_SelectEvents_NamesNotify_namesDetails_mask_KeyAliases,
22955  &hf_x11_xkb_SelectEvents_NamesNotify_namesDetails_mask_VirtualModNames,
22956  &hf_x11_xkb_SelectEvents_NamesNotify_namesDetails_mask_GroupNames,
22957  &hf_x11_xkb_SelectEvents_NamesNotify_namesDetails_mask_RGNames,
22958  NULL
22959  };
22960  proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_xkb_SelectEvents_NamesNotify_namesDetails, ett_x11_rectangle, namesDetails_bits, byte_order);
22961  }
22962  *offsetp += 2;
22963  }
22964  if ((f_affectWhich & ((~f_clear) & (~f_selectAll))) & (1U << 7)) {
22965  {
22966  int* const affectCompat_bits [] = {
22967  &hf_x11_xkb_SelectEvents_CompatMapNotify_affectCompat_mask_SymInterp,
22968  &hf_x11_xkb_SelectEvents_CompatMapNotify_affectCompat_mask_GroupCompat,
22969  NULL
22970  };
22971  proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_xkb_SelectEvents_CompatMapNotify_affectCompat, ett_x11_rectangle, affectCompat_bits, byte_order);
22972  }
22973  *offsetp += 1;
22974  {
22975  int* const compatDetails_bits [] = {
22976  &hf_x11_xkb_SelectEvents_CompatMapNotify_compatDetails_mask_SymInterp,
22977  &hf_x11_xkb_SelectEvents_CompatMapNotify_compatDetails_mask_GroupCompat,
22978  NULL
22979  };
22980  proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_xkb_SelectEvents_CompatMapNotify_compatDetails, ett_x11_rectangle, compatDetails_bits, byte_order);
22981  }
22982  *offsetp += 1;
22983  }
22984  if ((f_affectWhich & ((~f_clear) & (~f_selectAll))) & (1U << 8)) {
22985  proto_tree_add_item(t, hf_x11_xkb_SelectEvents_BellNotify_affectBell, tvb, *offsetp, 1, byte_order);
22986  *offsetp += 1;
22987  proto_tree_add_item(t, hf_x11_xkb_SelectEvents_BellNotify_bellDetails, tvb, *offsetp, 1, byte_order);
22988  *offsetp += 1;
22989  }
22990  if ((f_affectWhich & ((~f_clear) & (~f_selectAll))) & (1U << 9)) {
22991  proto_tree_add_item(t, hf_x11_xkb_SelectEvents_ActionMessage_affectMsgDetails, tvb, *offsetp, 1, byte_order);
22992  *offsetp += 1;
22993  proto_tree_add_item(t, hf_x11_xkb_SelectEvents_ActionMessage_msgDetails, tvb, *offsetp, 1, byte_order);
22994  *offsetp += 1;
22995  }
22996  if ((f_affectWhich & ((~f_clear) & (~f_selectAll))) & (1U << 10)) {
22997  {
22998  int* const affectAccessX_bits [] = {
22999  &hf_x11_xkb_SelectEvents_AccessXNotify_affectAccessX_mask_SKPress,
23000  &hf_x11_xkb_SelectEvents_AccessXNotify_affectAccessX_mask_SKAccept,
23001  &hf_x11_xkb_SelectEvents_AccessXNotify_affectAccessX_mask_SKReject,
23002  &hf_x11_xkb_SelectEvents_AccessXNotify_affectAccessX_mask_SKRelease,
23003  &hf_x11_xkb_SelectEvents_AccessXNotify_affectAccessX_mask_BKAccept,
23004  &hf_x11_xkb_SelectEvents_AccessXNotify_affectAccessX_mask_BKReject,
23005  &hf_x11_xkb_SelectEvents_AccessXNotify_affectAccessX_mask_AXKWarning,
23006  NULL
23007  };
23008  proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_xkb_SelectEvents_AccessXNotify_affectAccessX, ett_x11_rectangle, affectAccessX_bits, byte_order);
23009  }
23010  *offsetp += 2;
23011  {
23012  int* const accessXDetails_bits [] = {
23013  &hf_x11_xkb_SelectEvents_AccessXNotify_accessXDetails_mask_SKPress,
23014  &hf_x11_xkb_SelectEvents_AccessXNotify_accessXDetails_mask_SKAccept,
23015  &hf_x11_xkb_SelectEvents_AccessXNotify_accessXDetails_mask_SKReject,
23016  &hf_x11_xkb_SelectEvents_AccessXNotify_accessXDetails_mask_SKRelease,
23017  &hf_x11_xkb_SelectEvents_AccessXNotify_accessXDetails_mask_BKAccept,
23018  &hf_x11_xkb_SelectEvents_AccessXNotify_accessXDetails_mask_BKReject,
23019  &hf_x11_xkb_SelectEvents_AccessXNotify_accessXDetails_mask_AXKWarning,
23020  NULL
23021  };
23022  proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_xkb_SelectEvents_AccessXNotify_accessXDetails, ett_x11_rectangle, accessXDetails_bits, byte_order);
23023  }
23024  *offsetp += 2;
23025  }
23026  if ((f_affectWhich & ((~f_clear) & (~f_selectAll))) & (1U << 11)) {
23027  {
23028  int* const affectExtDev_bits [] = {
23029  &hf_x11_xkb_SelectEvents_ExtensionDeviceNotify_affectExtDev_mask_Keyboards,
23030  &hf_x11_xkb_SelectEvents_ExtensionDeviceNotify_affectExtDev_mask_ButtonActions,
23031  &hf_x11_xkb_SelectEvents_ExtensionDeviceNotify_affectExtDev_mask_IndicatorNames,
23032  &hf_x11_xkb_SelectEvents_ExtensionDeviceNotify_affectExtDev_mask_IndicatorMaps,
23033  &hf_x11_xkb_SelectEvents_ExtensionDeviceNotify_affectExtDev_mask_IndicatorState,
23034  NULL
23035  };
23036  proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_xkb_SelectEvents_ExtensionDeviceNotify_affectExtDev, ett_x11_rectangle, affectExtDev_bits, byte_order);
23037  }
23038  *offsetp += 2;
23039  {
23040  int* const extdevDetails_bits [] = {
23041  &hf_x11_xkb_SelectEvents_ExtensionDeviceNotify_extdevDetails_mask_Keyboards,
23042  &hf_x11_xkb_SelectEvents_ExtensionDeviceNotify_extdevDetails_mask_ButtonActions,
23043  &hf_x11_xkb_SelectEvents_ExtensionDeviceNotify_extdevDetails_mask_IndicatorNames,
23044  &hf_x11_xkb_SelectEvents_ExtensionDeviceNotify_extdevDetails_mask_IndicatorMaps,
23045  &hf_x11_xkb_SelectEvents_ExtensionDeviceNotify_extdevDetails_mask_IndicatorState,
23046  NULL
23047  };
23048  proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_xkb_SelectEvents_ExtensionDeviceNotify_extdevDetails, ett_x11_rectangle, extdevDetails_bits, byte_order);
23049  }
23050  *offsetp += 2;
23051  }
23052 }
23053 
23054 static void xkbBell(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
23055 {
23056  proto_tree_add_item(t, hf_x11_xkb_Bell_deviceSpec, tvb, *offsetp, 2, byte_order);
23057  *offsetp += 2;
23058  proto_tree_add_item(t, hf_x11_xkb_Bell_bellClass, tvb, *offsetp, 2, byte_order);
23059  *offsetp += 2;
23060  proto_tree_add_item(t, hf_x11_xkb_Bell_bellID, tvb, *offsetp, 2, byte_order);
23061  *offsetp += 2;
23062  proto_tree_add_item(t, hf_x11_xkb_Bell_percent, tvb, *offsetp, 1, byte_order);
23063  *offsetp += 1;
23064  proto_tree_add_item(t, hf_x11_xkb_Bell_forceSound, tvb, *offsetp, 1, byte_order);
23065  *offsetp += 1;
23066  proto_tree_add_item(t, hf_x11_xkb_Bell_eventOnly, tvb, *offsetp, 1, byte_order);
23067  *offsetp += 1;
23068  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
23069  *offsetp += 1;
23070  proto_tree_add_item(t, hf_x11_xkb_Bell_pitch, tvb, *offsetp, 2, byte_order);
23071  *offsetp += 2;
23072  proto_tree_add_item(t, hf_x11_xkb_Bell_duration, tvb, *offsetp, 2, byte_order);
23073  *offsetp += 2;
23074  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 2, ENC_NA);
23075  *offsetp += 2;
23076  proto_tree_add_item(t, hf_x11_xkb_Bell_name, tvb, *offsetp, 4, byte_order);
23077  *offsetp += 4;
23078  proto_tree_add_item(t, hf_x11_xkb_Bell_window, tvb, *offsetp, 4, byte_order);
23079  *offsetp += 4;
23080 }
23081 
23082 static void xkbGetState(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
23083 {
23084  proto_tree_add_item(t, hf_x11_xkb_GetState_deviceSpec, tvb, *offsetp, 2, byte_order);
23085  *offsetp += 2;
23086  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 2, ENC_NA);
23087  *offsetp += 2;
23088 }
23089 static void xkbGetState_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
23090 {
23091  int sequence_number;
23092 
23093  col_append_fstr(pinfo->cinfo, COL_INFO, "-GetState");
23094 
23095  REPLY(reply);
23096  proto_tree_add_item(t, hf_x11_xkb_GetState_reply_deviceID, tvb, *offsetp, 1, byte_order);
23097  *offsetp += 1;
23098  sequence_number = tvb_get_guint16(tvb, *offsetp, byte_order);
23099  proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
23100  "%d (xkb-GetState)", sequence_number);
23101  *offsetp += 2;
23102  proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
23103  *offsetp += 4;
23104  {
23105  int* const mods_bits [] = {
23106  &hf_x11_xkb_GetState_reply_mods_mask_Shift,
23107  &hf_x11_xkb_GetState_reply_mods_mask_Lock,
23108  &hf_x11_xkb_GetState_reply_mods_mask_Control,
23109  &hf_x11_xkb_GetState_reply_mods_mask_1,
23110  &hf_x11_xkb_GetState_reply_mods_mask_2,
23111  &hf_x11_xkb_GetState_reply_mods_mask_3,
23112  &hf_x11_xkb_GetState_reply_mods_mask_4,
23113  &hf_x11_xkb_GetState_reply_mods_mask_5,
23114  &hf_x11_xkb_GetState_reply_mods_mask_Any,
23115  NULL
23116  };
23117  proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_xkb_GetState_reply_mods, ett_x11_rectangle, mods_bits, byte_order);
23118  }
23119  *offsetp += 1;
23120  {
23121  int* const baseMods_bits [] = {
23122  &hf_x11_xkb_GetState_reply_baseMods_mask_Shift,
23123  &hf_x11_xkb_GetState_reply_baseMods_mask_Lock,
23124  &hf_x11_xkb_GetState_reply_baseMods_mask_Control,
23125  &hf_x11_xkb_GetState_reply_baseMods_mask_1,
23126  &hf_x11_xkb_GetState_reply_baseMods_mask_2,
23127  &hf_x11_xkb_GetState_reply_baseMods_mask_3,
23128  &hf_x11_xkb_GetState_reply_baseMods_mask_4,
23129  &hf_x11_xkb_GetState_reply_baseMods_mask_5,
23130  &hf_x11_xkb_GetState_reply_baseMods_mask_Any,
23131  NULL
23132  };
23133  proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_xkb_GetState_reply_baseMods, ett_x11_rectangle, baseMods_bits, byte_order);
23134  }
23135  *offsetp += 1;
23136  {
23137  int* const latchedMods_bits [] = {
23138  &hf_x11_xkb_GetState_reply_latchedMods_mask_Shift,
23139  &hf_x11_xkb_GetState_reply_latchedMods_mask_Lock,
23140  &hf_x11_xkb_GetState_reply_latchedMods_mask_Control,
23141  &hf_x11_xkb_GetState_reply_latchedMods_mask_1,
23142  &hf_x11_xkb_GetState_reply_latchedMods_mask_2,
23143  &hf_x11_xkb_GetState_reply_latchedMods_mask_3,
23144  &hf_x11_xkb_GetState_reply_latchedMods_mask_4,
23145  &hf_x11_xkb_GetState_reply_latchedMods_mask_5,
23146  &hf_x11_xkb_GetState_reply_latchedMods_mask_Any,
23147  NULL
23148  };
23149  proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_xkb_GetState_reply_latchedMods, ett_x11_rectangle, latchedMods_bits, byte_order);
23150  }
23151  *offsetp += 1;
23152  {
23153  int* const lockedMods_bits [] = {
23154  &hf_x11_xkb_GetState_reply_lockedMods_mask_Shift,
23155  &hf_x11_xkb_GetState_reply_lockedMods_mask_Lock,
23156  &hf_x11_xkb_GetState_reply_lockedMods_mask_Control,
23157  &hf_x11_xkb_GetState_reply_lockedMods_mask_1,
23158  &hf_x11_xkb_GetState_reply_lockedMods_mask_2,
23159  &hf_x11_xkb_GetState_reply_lockedMods_mask_3,
23160  &hf_x11_xkb_GetState_reply_lockedMods_mask_4,
23161  &hf_x11_xkb_GetState_reply_lockedMods_mask_5,
23162  &hf_x11_xkb_GetState_reply_lockedMods_mask_Any,
23163  NULL
23164  };
23165  proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_xkb_GetState_reply_lockedMods, ett_x11_rectangle, lockedMods_bits, byte_order);
23166  }
23167  *offsetp += 1;
23168  field8(tvb, offsetp, t, hf_x11_xkb_GetState_reply_group, byte_order);
23169  field8(tvb, offsetp, t, hf_x11_xkb_GetState_reply_lockedGroup, byte_order);
23170  proto_tree_add_item(t, hf_x11_xkb_GetState_reply_baseGroup, tvb, *offsetp, 2, byte_order);
23171  *offsetp += 2;
23172  proto_tree_add_item(t, hf_x11_xkb_GetState_reply_latchedGroup, tvb, *offsetp, 2, byte_order);
23173  *offsetp += 2;
23174  {
23175  int* const compatState_bits [] = {
23176  &hf_x11_xkb_GetState_reply_compatState_mask_Shift,
23177  &hf_x11_xkb_GetState_reply_compatState_mask_Lock,
23178  &hf_x11_xkb_GetState_reply_compatState_mask_Control,
23179  &hf_x11_xkb_GetState_reply_compatState_mask_1,
23180  &hf_x11_xkb_GetState_reply_compatState_mask_2,
23181  &hf_x11_xkb_GetState_reply_compatState_mask_3,
23182  &hf_x11_xkb_GetState_reply_compatState_mask_4,
23183  &hf_x11_xkb_GetState_reply_compatState_mask_5,
23184  &hf_x11_xkb_GetState_reply_compatState_mask_Any,
23185  NULL
23186  };
23187  proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_xkb_GetState_reply_compatState, ett_x11_rectangle, compatState_bits, byte_order);
23188  }
23189  *offsetp += 1;
23190  {
23191  int* const grabMods_bits [] = {
23192  &hf_x11_xkb_GetState_reply_grabMods_mask_Shift,
23193  &hf_x11_xkb_GetState_reply_grabMods_mask_Lock,
23194  &hf_x11_xkb_GetState_reply_grabMods_mask_Control,
23195  &hf_x11_xkb_GetState_reply_grabMods_mask_1,
23196  &hf_x11_xkb_GetState_reply_grabMods_mask_2,
23197  &hf_x11_xkb_GetState_reply_grabMods_mask_3,
23198  &hf_x11_xkb_GetState_reply_grabMods_mask_4,
23199  &hf_x11_xkb_GetState_reply_grabMods_mask_5,
23200  &hf_x11_xkb_GetState_reply_grabMods_mask_Any,
23201  NULL
23202  };
23203  proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_xkb_GetState_reply_grabMods, ett_x11_rectangle, grabMods_bits, byte_order);
23204  }
23205  *offsetp += 1;
23206  {
23207  int* const compatGrabMods_bits [] = {
23208  &hf_x11_xkb_GetState_reply_compatGrabMods_mask_Shift,
23209  &hf_x11_xkb_GetState_reply_compatGrabMods_mask_Lock,
23210  &hf_x11_xkb_GetState_reply_compatGrabMods_mask_Control,
23211  &hf_x11_xkb_GetState_reply_compatGrabMods_mask_1,
23212  &hf_x11_xkb_GetState_reply_compatGrabMods_mask_2,
23213  &hf_x11_xkb_GetState_reply_compatGrabMods_mask_3,
23214  &hf_x11_xkb_GetState_reply_compatGrabMods_mask_4,
23215  &hf_x11_xkb_GetState_reply_compatGrabMods_mask_5,
23216  &hf_x11_xkb_GetState_reply_compatGrabMods_mask_Any,
23217  NULL
23218  };
23219  proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_xkb_GetState_reply_compatGrabMods, ett_x11_rectangle, compatGrabMods_bits, byte_order);
23220  }
23221  *offsetp += 1;
23222  {
23223  int* const lookupMods_bits [] = {
23224  &hf_x11_xkb_GetState_reply_lookupMods_mask_Shift,
23225  &hf_x11_xkb_GetState_reply_lookupMods_mask_Lock,
23226  &hf_x11_xkb_GetState_reply_lookupMods_mask_Control,
23227  &hf_x11_xkb_GetState_reply_lookupMods_mask_1,
23228  &hf_x11_xkb_GetState_reply_lookupMods_mask_2,
23229  &hf_x11_xkb_GetState_reply_lookupMods_mask_3,
23230  &hf_x11_xkb_GetState_reply_lookupMods_mask_4,
23231  &hf_x11_xkb_GetState_reply_lookupMods_mask_5,
23232  &hf_x11_xkb_GetState_reply_lookupMods_mask_Any,
23233  NULL
23234  };
23235  proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_xkb_GetState_reply_lookupMods, ett_x11_rectangle, lookupMods_bits, byte_order);
23236  }
23237  *offsetp += 1;
23238  {
23239  int* const compatLookupMods_bits [] = {
23240  &hf_x11_xkb_GetState_reply_compatLookupMods_mask_Shift,
23241  &hf_x11_xkb_GetState_reply_compatLookupMods_mask_Lock,
23242  &hf_x11_xkb_GetState_reply_compatLookupMods_mask_Control,
23243  &hf_x11_xkb_GetState_reply_compatLookupMods_mask_1,
23244  &hf_x11_xkb_GetState_reply_compatLookupMods_mask_2,
23245  &hf_x11_xkb_GetState_reply_compatLookupMods_mask_3,
23246  &hf_x11_xkb_GetState_reply_compatLookupMods_mask_4,
23247  &hf_x11_xkb_GetState_reply_compatLookupMods_mask_5,
23248  &hf_x11_xkb_GetState_reply_compatLookupMods_mask_Any,
23249  NULL
23250  };
23251  proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_xkb_GetState_reply_compatLookupMods, ett_x11_rectangle, compatLookupMods_bits, byte_order);
23252  }
23253  *offsetp += 1;
23254  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
23255  *offsetp += 1;
23256  {
23257  int* const ptrBtnState_bits [] = {
23258  &hf_x11_xkb_GetState_reply_ptrBtnState_mask_Shift,
23259  &hf_x11_xkb_GetState_reply_ptrBtnState_mask_Lock,
23260  &hf_x11_xkb_GetState_reply_ptrBtnState_mask_Control,
23261  &hf_x11_xkb_GetState_reply_ptrBtnState_mask_Mod1,
23262  &hf_x11_xkb_GetState_reply_ptrBtnState_mask_Mod2,
23263  &hf_x11_xkb_GetState_reply_ptrBtnState_mask_Mod3,
23264  &hf_x11_xkb_GetState_reply_ptrBtnState_mask_Mod4,
23265  &hf_x11_xkb_GetState_reply_ptrBtnState_mask_Mod5,
23266  &hf_x11_xkb_GetState_reply_ptrBtnState_mask_Button1,
23267  &hf_x11_xkb_GetState_reply_ptrBtnState_mask_Button2,
23268  &hf_x11_xkb_GetState_reply_ptrBtnState_mask_Button3,
23269  &hf_x11_xkb_GetState_reply_ptrBtnState_mask_Button4,
23270  &hf_x11_xkb_GetState_reply_ptrBtnState_mask_Button5,
23271  NULL
23272  };
23273  proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_xkb_GetState_reply_ptrBtnState, ett_x11_rectangle, ptrBtnState_bits, byte_order);
23274  }
23275  *offsetp += 2;
23276  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 6, ENC_NA);
23277  *offsetp += 6;
23278 }
23279 
23280 static void xkbLatchLockState(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
23281 {
23282  proto_tree_add_item(t, hf_x11_xkb_LatchLockState_deviceSpec, tvb, *offsetp, 2, byte_order);
23283  *offsetp += 2;
23284  {
23285  int* const affectModLocks_bits [] = {
23286  &hf_x11_xkb_LatchLockState_affectModLocks_mask_Shift,
23287  &hf_x11_xkb_LatchLockState_affectModLocks_mask_Lock,
23288  &hf_x11_xkb_LatchLockState_affectModLocks_mask_Control,
23289  &hf_x11_xkb_LatchLockState_affectModLocks_mask_1,
23290  &hf_x11_xkb_LatchLockState_affectModLocks_mask_2,
23291  &hf_x11_xkb_LatchLockState_affectModLocks_mask_3,
23292  &hf_x11_xkb_LatchLockState_affectModLocks_mask_4,
23293  &hf_x11_xkb_LatchLockState_affectModLocks_mask_5,
23294  &hf_x11_xkb_LatchLockState_affectModLocks_mask_Any,
23295  NULL
23296  };
23297  proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_xkb_LatchLockState_affectModLocks, ett_x11_rectangle, affectModLocks_bits, byte_order);
23298  }
23299  *offsetp += 1;
23300  {
23301  int* const modLocks_bits [] = {
23302  &hf_x11_xkb_LatchLockState_modLocks_mask_Shift,
23303  &hf_x11_xkb_LatchLockState_modLocks_mask_Lock,
23304  &hf_x11_xkb_LatchLockState_modLocks_mask_Control,
23305  &hf_x11_xkb_LatchLockState_modLocks_mask_1,
23306  &hf_x11_xkb_LatchLockState_modLocks_mask_2,
23307  &hf_x11_xkb_LatchLockState_modLocks_mask_3,
23308  &hf_x11_xkb_LatchLockState_modLocks_mask_4,
23309  &hf_x11_xkb_LatchLockState_modLocks_mask_5,
23310  &hf_x11_xkb_LatchLockState_modLocks_mask_Any,
23311  NULL
23312  };
23313  proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_xkb_LatchLockState_modLocks, ett_x11_rectangle, modLocks_bits, byte_order);
23314  }
23315  *offsetp += 1;
23316  proto_tree_add_item(t, hf_x11_xkb_LatchLockState_lockGroup, tvb, *offsetp, 1, byte_order);
23317  *offsetp += 1;
23318  field8(tvb, offsetp, t, hf_x11_xkb_LatchLockState_groupLock, byte_order);
23319  {
23320  int* const affectModLatches_bits [] = {
23321  &hf_x11_xkb_LatchLockState_affectModLatches_mask_Shift,
23322  &hf_x11_xkb_LatchLockState_affectModLatches_mask_Lock,
23323  &hf_x11_xkb_LatchLockState_affectModLatches_mask_Control,
23324  &hf_x11_xkb_LatchLockState_affectModLatches_mask_1,
23325  &hf_x11_xkb_LatchLockState_affectModLatches_mask_2,
23326  &hf_x11_xkb_LatchLockState_affectModLatches_mask_3,
23327  &hf_x11_xkb_LatchLockState_affectModLatches_mask_4,
23328  &hf_x11_xkb_LatchLockState_affectModLatches_mask_5,
23329  &hf_x11_xkb_LatchLockState_affectModLatches_mask_Any,
23330  NULL
23331  };
23332  proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_xkb_LatchLockState_affectModLatches, ett_x11_rectangle, affectModLatches_bits, byte_order);
23333  }
23334  *offsetp += 1;
23335  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
23336  *offsetp += 1;
23337  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
23338  *offsetp += 1;
23339  proto_tree_add_item(t, hf_x11_xkb_LatchLockState_latchGroup, tvb, *offsetp, 1, byte_order);
23340  *offsetp += 1;
23341  proto_tree_add_item(t, hf_x11_xkb_LatchLockState_groupLatch, tvb, *offsetp, 2, byte_order);
23342  *offsetp += 2;
23343 }
23344 
23345 static void xkbGetControls(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
23346 {
23347  proto_tree_add_item(t, hf_x11_xkb_GetControls_deviceSpec, tvb, *offsetp, 2, byte_order);
23348  *offsetp += 2;
23349  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 2, ENC_NA);
23350  *offsetp += 2;
23351 }
23352 static void xkbGetControls_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
23353 {
23354  int sequence_number;
23355 
23356  col_append_fstr(pinfo->cinfo, COL_INFO, "-GetControls");
23357 
23358  REPLY(reply);
23359  proto_tree_add_item(t, hf_x11_xkb_GetControls_reply_deviceID, tvb, *offsetp, 1, byte_order);
23360  *offsetp += 1;
23361  sequence_number = tvb_get_guint16(tvb, *offsetp, byte_order);
23362  proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
23363  "%d (xkb-GetControls)", sequence_number);
23364  *offsetp += 2;
23365  proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
23366  *offsetp += 4;
23367  proto_tree_add_item(t, hf_x11_xkb_GetControls_reply_mouseKeysDfltBtn, tvb, *offsetp, 1, byte_order);
23368  *offsetp += 1;
23369  proto_tree_add_item(t, hf_x11_xkb_GetControls_reply_numGroups, tvb, *offsetp, 1, byte_order);
23370  *offsetp += 1;
23371  proto_tree_add_item(t, hf_x11_xkb_GetControls_reply_groupsWrap, tvb, *offsetp, 1, byte_order);
23372  *offsetp += 1;
23373  {
23374  int* const internalModsMask_bits [] = {
23375  &hf_x11_xkb_GetControls_reply_internalModsMask_mask_Shift,
23376  &hf_x11_xkb_GetControls_reply_internalModsMask_mask_Lock,
23377  &hf_x11_xkb_GetControls_reply_internalModsMask_mask_Control,
23378  &hf_x11_xkb_GetControls_reply_internalModsMask_mask_1,
23379  &hf_x11_xkb_GetControls_reply_internalModsMask_mask_2,
23380  &hf_x11_xkb_GetControls_reply_internalModsMask_mask_3,
23381  &hf_x11_xkb_GetControls_reply_internalModsMask_mask_4,
23382  &hf_x11_xkb_GetControls_reply_internalModsMask_mask_5,
23383  &hf_x11_xkb_GetControls_reply_internalModsMask_mask_Any,
23384  NULL
23385  };
23386  proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_xkb_GetControls_reply_internalModsMask, ett_x11_rectangle, internalModsMask_bits, byte_order);
23387  }
23388  *offsetp += 1;
23389  {
23390  int* const ignoreLockModsMask_bits [] = {
23391  &hf_x11_xkb_GetControls_reply_ignoreLockModsMask_mask_Shift,
23392  &hf_x11_xkb_GetControls_reply_ignoreLockModsMask_mask_Lock,
23393  &hf_x11_xkb_GetControls_reply_ignoreLockModsMask_mask_Control,
23394  &hf_x11_xkb_GetControls_reply_ignoreLockModsMask_mask_1,
23395  &hf_x11_xkb_GetControls_reply_ignoreLockModsMask_mask_2,
23396  &hf_x11_xkb_GetControls_reply_ignoreLockModsMask_mask_3,
23397  &hf_x11_xkb_GetControls_reply_ignoreLockModsMask_mask_4,
23398  &hf_x11_xkb_GetControls_reply_ignoreLockModsMask_mask_5,
23399  &hf_x11_xkb_GetControls_reply_ignoreLockModsMask_mask_Any,
23400  NULL
23401  };
23402  proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_xkb_GetControls_reply_ignoreLockModsMask, ett_x11_rectangle, ignoreLockModsMask_bits, byte_order);
23403  }
23404  *offsetp += 1;
23405  {
23406  int* const internalModsRealMods_bits [] = {
23407  &hf_x11_xkb_GetControls_reply_internalModsRealMods_mask_Shift,
23408  &hf_x11_xkb_GetControls_reply_internalModsRealMods_mask_Lock,
23409  &hf_x11_xkb_GetControls_reply_internalModsRealMods_mask_Control,
23410  &hf_x11_xkb_GetControls_reply_internalModsRealMods_mask_1,
23411  &hf_x11_xkb_GetControls_reply_internalModsRealMods_mask_2,
23412  &hf_x11_xkb_GetControls_reply_internalModsRealMods_mask_3,
23413  &hf_x11_xkb_GetControls_reply_internalModsRealMods_mask_4,
23414  &hf_x11_xkb_GetControls_reply_internalModsRealMods_mask_5,
23415  &hf_x11_xkb_GetControls_reply_internalModsRealMods_mask_Any,
23416  NULL
23417  };
23418  proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_xkb_GetControls_reply_internalModsRealMods, ett_x11_rectangle, internalModsRealMods_bits, byte_order);
23419  }
23420  *offsetp += 1;
23421  {
23422  int* const ignoreLockModsRealMods_bits [] = {
23423  &hf_x11_xkb_GetControls_reply_ignoreLockModsRealMods_mask_Shift,
23424  &hf_x11_xkb_GetControls_reply_ignoreLockModsRealMods_mask_Lock,
23425  &hf_x11_xkb_GetControls_reply_ignoreLockModsRealMods_mask_Control,
23426  &hf_x11_xkb_GetControls_reply_ignoreLockModsRealMods_mask_1,
23427  &hf_x11_xkb_GetControls_reply_ignoreLockModsRealMods_mask_2,
23428  &hf_x11_xkb_GetControls_reply_ignoreLockModsRealMods_mask_3,
23429  &hf_x11_xkb_GetControls_reply_ignoreLockModsRealMods_mask_4,
23430  &hf_x11_xkb_GetControls_reply_ignoreLockModsRealMods_mask_5,
23431  &hf_x11_xkb_GetControls_reply_ignoreLockModsRealMods_mask_Any,
23432  NULL
23433  };
23434  proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_xkb_GetControls_reply_ignoreLockModsRealMods, ett_x11_rectangle, ignoreLockModsRealMods_bits, byte_order);
23435  }
23436  *offsetp += 1;
23437  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
23438  *offsetp += 1;
23439  {
23440  int* const internalModsVmods_bits [] = {
23441  &hf_x11_xkb_GetControls_reply_internalModsVmods_mask_0,
23442  &hf_x11_xkb_GetControls_reply_internalModsVmods_mask_1,
23443  &hf_x11_xkb_GetControls_reply_internalModsVmods_mask_2,
23444  &hf_x11_xkb_GetControls_reply_internalModsVmods_mask_3,
23445  &hf_x11_xkb_GetControls_reply_internalModsVmods_mask_4,
23446  &hf_x11_xkb_GetControls_reply_internalModsVmods_mask_5,
23447  &hf_x11_xkb_GetControls_reply_internalModsVmods_mask_6,
23448  &hf_x11_xkb_GetControls_reply_internalModsVmods_mask_7,
23449  &hf_x11_xkb_GetControls_reply_internalModsVmods_mask_8,
23450  &hf_x11_xkb_GetControls_reply_internalModsVmods_mask_9,
23451  &hf_x11_xkb_GetControls_reply_internalModsVmods_mask_10,
23452  &hf_x11_xkb_GetControls_reply_internalModsVmods_mask_11,
23453  &hf_x11_xkb_GetControls_reply_internalModsVmods_mask_12,
23454  &hf_x11_xkb_GetControls_reply_internalModsVmods_mask_13,
23455  &hf_x11_xkb_GetControls_reply_internalModsVmods_mask_14,
23456  &hf_x11_xkb_GetControls_reply_internalModsVmods_mask_15,
23457  NULL
23458  };
23459  proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_xkb_GetControls_reply_internalModsVmods, ett_x11_rectangle, internalModsVmods_bits, byte_order);
23460  }
23461  *offsetp += 2;
23462  {
23463  int* const ignoreLockModsVmods_bits [] = {
23464  &hf_x11_xkb_GetControls_reply_ignoreLockModsVmods_mask_0,
23465  &hf_x11_xkb_GetControls_reply_ignoreLockModsVmods_mask_1,
23466  &hf_x11_xkb_GetControls_reply_ignoreLockModsVmods_mask_2,
23467  &hf_x11_xkb_GetControls_reply_ignoreLockModsVmods_mask_3,
23468  &hf_x11_xkb_GetControls_reply_ignoreLockModsVmods_mask_4,
23469  &hf_x11_xkb_GetControls_reply_ignoreLockModsVmods_mask_5,
23470  &hf_x11_xkb_GetControls_reply_ignoreLockModsVmods_mask_6,
23471  &hf_x11_xkb_GetControls_reply_ignoreLockModsVmods_mask_7,
23472  &hf_x11_xkb_GetControls_reply_ignoreLockModsVmods_mask_8,
23473  &hf_x11_xkb_GetControls_reply_ignoreLockModsVmods_mask_9,
23474  &hf_x11_xkb_GetControls_reply_ignoreLockModsVmods_mask_10,
23475  &hf_x11_xkb_GetControls_reply_ignoreLockModsVmods_mask_11,
23476  &hf_x11_xkb_GetControls_reply_ignoreLockModsVmods_mask_12,
23477  &hf_x11_xkb_GetControls_reply_ignoreLockModsVmods_mask_13,
23478  &hf_x11_xkb_GetControls_reply_ignoreLockModsVmods_mask_14,
23479  &hf_x11_xkb_GetControls_reply_ignoreLockModsVmods_mask_15,
23480  NULL
23481  };
23482  proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_xkb_GetControls_reply_ignoreLockModsVmods, ett_x11_rectangle, ignoreLockModsVmods_bits, byte_order);
23483  }
23484  *offsetp += 2;
23485  proto_tree_add_item(t, hf_x11_xkb_GetControls_reply_repeatDelay, tvb, *offsetp, 2, byte_order);
23486  *offsetp += 2;
23487  proto_tree_add_item(t, hf_x11_xkb_GetControls_reply_repeatInterval, tvb, *offsetp, 2, byte_order);
23488  *offsetp += 2;
23489  proto_tree_add_item(t, hf_x11_xkb_GetControls_reply_slowKeysDelay, tvb, *offsetp, 2, byte_order);
23490  *offsetp += 2;
23491  proto_tree_add_item(t, hf_x11_xkb_GetControls_reply_debounceDelay, tvb, *offsetp, 2, byte_order);
23492  *offsetp += 2;
23493  proto_tree_add_item(t, hf_x11_xkb_GetControls_reply_mouseKeysDelay, tvb, *offsetp, 2, byte_order);
23494  *offsetp += 2;
23495  proto_tree_add_item(t, hf_x11_xkb_GetControls_reply_mouseKeysInterval, tvb, *offsetp, 2, byte_order);
23496  *offsetp += 2;
23497  proto_tree_add_item(t, hf_x11_xkb_GetControls_reply_mouseKeysTimeToMax, tvb, *offsetp, 2, byte_order);
23498  *offsetp += 2;
23499  proto_tree_add_item(t, hf_x11_xkb_GetControls_reply_mouseKeysMaxSpeed, tvb, *offsetp, 2, byte_order);
23500  *offsetp += 2;
23501  proto_tree_add_item(t, hf_x11_xkb_GetControls_reply_mouseKeysCurve, tvb, *offsetp, 2, byte_order);
23502  *offsetp += 2;
23503  {
23504  int* const accessXOption_bits [] = {
23505  &hf_x11_xkb_GetControls_reply_accessXOption_mask_SKPressFB,
23506  &hf_x11_xkb_GetControls_reply_accessXOption_mask_SKAcceptFB,
23507  &hf_x11_xkb_GetControls_reply_accessXOption_mask_FeatureFB,
23508  &hf_x11_xkb_GetControls_reply_accessXOption_mask_SlowWarnFB,
23509  &hf_x11_xkb_GetControls_reply_accessXOption_mask_IndicatorFB,
23510  &hf_x11_xkb_GetControls_reply_accessXOption_mask_StickyKeysFB,
23511  &hf_x11_xkb_GetControls_reply_accessXOption_mask_TwoKeys,
23512  &hf_x11_xkb_GetControls_reply_accessXOption_mask_LatchToLock,
23513  &hf_x11_xkb_GetControls_reply_accessXOption_mask_SKReleaseFB,
23514  &hf_x11_xkb_GetControls_reply_accessXOption_mask_SKRejectFB,
23515  &hf_x11_xkb_GetControls_reply_accessXOption_mask_BKRejectFB,
23516  &hf_x11_xkb_GetControls_reply_accessXOption_mask_DumbBell,
23517  NULL
23518  };
23519  proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_xkb_GetControls_reply_accessXOption, ett_x11_rectangle, accessXOption_bits, byte_order);
23520  }
23521  *offsetp += 2;
23522  proto_tree_add_item(t, hf_x11_xkb_GetControls_reply_accessXTimeout, tvb, *offsetp, 2, byte_order);
23523  *offsetp += 2;
23524  {
23525  int* const accessXTimeoutOptionsMask_bits [] = {
23526  &hf_x11_xkb_GetControls_reply_accessXTimeoutOptionsMask_mask_SKPressFB,
23527  &hf_x11_xkb_GetControls_reply_accessXTimeoutOptionsMask_mask_SKAcceptFB,
23528  &hf_x11_xkb_GetControls_reply_accessXTimeoutOptionsMask_mask_FeatureFB,
23529  &hf_x11_xkb_GetControls_reply_accessXTimeoutOptionsMask_mask_SlowWarnFB,
23530  &hf_x11_xkb_GetControls_reply_accessXTimeoutOptionsMask_mask_IndicatorFB,
23531  &hf_x11_xkb_GetControls_reply_accessXTimeoutOptionsMask_mask_StickyKeysFB,
23532  &hf_x11_xkb_GetControls_reply_accessXTimeoutOptionsMask_mask_TwoKeys,
23533  &hf_x11_xkb_GetControls_reply_accessXTimeoutOptionsMask_mask_LatchToLock,
23534  &hf_x11_xkb_GetControls_reply_accessXTimeoutOptionsMask_mask_SKReleaseFB,
23535  &hf_x11_xkb_GetControls_reply_accessXTimeoutOptionsMask_mask_SKRejectFB,
23536  &hf_x11_xkb_GetControls_reply_accessXTimeoutOptionsMask_mask_BKRejectFB,
23537  &hf_x11_xkb_GetControls_reply_accessXTimeoutOptionsMask_mask_DumbBell,
23538  NULL
23539  };
23540  proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_xkb_GetControls_reply_accessXTimeoutOptionsMask, ett_x11_rectangle, accessXTimeoutOptionsMask_bits, byte_order);
23541  }
23542  *offsetp += 2;
23543  {
23544  int* const accessXTimeoutOptionsValues_bits [] = {
23545  &hf_x11_xkb_GetControls_reply_accessXTimeoutOptionsValues_mask_SKPressFB,
23546  &hf_x11_xkb_GetControls_reply_accessXTimeoutOptionsValues_mask_SKAcceptFB,
23547  &hf_x11_xkb_GetControls_reply_accessXTimeoutOptionsValues_mask_FeatureFB,
23548  &hf_x11_xkb_GetControls_reply_accessXTimeoutOptionsValues_mask_SlowWarnFB,
23549  &hf_x11_xkb_GetControls_reply_accessXTimeoutOptionsValues_mask_IndicatorFB,
23550  &hf_x11_xkb_GetControls_reply_accessXTimeoutOptionsValues_mask_StickyKeysFB,
23551  &hf_x11_xkb_GetControls_reply_accessXTimeoutOptionsValues_mask_TwoKeys,
23552  &hf_x11_xkb_GetControls_reply_accessXTimeoutOptionsValues_mask_LatchToLock,
23553  &hf_x11_xkb_GetControls_reply_accessXTimeoutOptionsValues_mask_SKReleaseFB,
23554  &hf_x11_xkb_GetControls_reply_accessXTimeoutOptionsValues_mask_SKRejectFB,
23555  &hf_x11_xkb_GetControls_reply_accessXTimeoutOptionsValues_mask_BKRejectFB,
23556  &hf_x11_xkb_GetControls_reply_accessXTimeoutOptionsValues_mask_DumbBell,
23557  NULL
23558  };
23559  proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_xkb_GetControls_reply_accessXTimeoutOptionsValues, ett_x11_rectangle, accessXTimeoutOptionsValues_bits, byte_order);
23560  }
23561  *offsetp += 2;
23562  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 2, ENC_NA);
23563  *offsetp += 2;
23564  {
23565  int* const accessXTimeoutMask_bits [] = {
23566  &hf_x11_xkb_GetControls_reply_accessXTimeoutMask_mask_RepeatKeys,
23567  &hf_x11_xkb_GetControls_reply_accessXTimeoutMask_mask_SlowKeys,
23568  &hf_x11_xkb_GetControls_reply_accessXTimeoutMask_mask_BounceKeys,
23569  &hf_x11_xkb_GetControls_reply_accessXTimeoutMask_mask_StickyKeys,
23570  &hf_x11_xkb_GetControls_reply_accessXTimeoutMask_mask_MouseKeys,
23571  &hf_x11_xkb_GetControls_reply_accessXTimeoutMask_mask_MouseKeysAccel,
23572  &hf_x11_xkb_GetControls_reply_accessXTimeoutMask_mask_AccessXKeys,
23573  &hf_x11_xkb_GetControls_reply_accessXTimeoutMask_mask_AccessXTimeoutMask,
23574  &hf_x11_xkb_GetControls_reply_accessXTimeoutMask_mask_AccessXFeedbackMask,
23575  &hf_x11_xkb_GetControls_reply_accessXTimeoutMask_mask_AudibleBellMask,
23576  &hf_x11_xkb_GetControls_reply_accessXTimeoutMask_mask_Overlay1Mask,
23577  &hf_x11_xkb_GetControls_reply_accessXTimeoutMask_mask_Overlay2Mask,
23578  &hf_x11_xkb_GetControls_reply_accessXTimeoutMask_mask_IgnoreGroupLockMask,
23579  NULL
23580  };
23581  proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_xkb_GetControls_reply_accessXTimeoutMask, ett_x11_rectangle, accessXTimeoutMask_bits, byte_order);
23582  }
23583  *offsetp += 4;
23584  {
23585  int* const accessXTimeoutValues_bits [] = {
23586  &hf_x11_xkb_GetControls_reply_accessXTimeoutValues_mask_RepeatKeys,
23587  &hf_x11_xkb_GetControls_reply_accessXTimeoutValues_mask_SlowKeys,
23588  &hf_x11_xkb_GetControls_reply_accessXTimeoutValues_mask_BounceKeys,
23589  &hf_x11_xkb_GetControls_reply_accessXTimeoutValues_mask_StickyKeys,
23590  &hf_x11_xkb_GetControls_reply_accessXTimeoutValues_mask_MouseKeys,
23591  &hf_x11_xkb_GetControls_reply_accessXTimeoutValues_mask_MouseKeysAccel,
23592  &hf_x11_xkb_GetControls_reply_accessXTimeoutValues_mask_AccessXKeys,
23593  &hf_x11_xkb_GetControls_reply_accessXTimeoutValues_mask_AccessXTimeoutMask,
23594  &hf_x11_xkb_GetControls_reply_accessXTimeoutValues_mask_AccessXFeedbackMask,
23595  &hf_x11_xkb_GetControls_reply_accessXTimeoutValues_mask_AudibleBellMask,
23596  &hf_x11_xkb_GetControls_reply_accessXTimeoutValues_mask_Overlay1Mask,
23597  &hf_x11_xkb_GetControls_reply_accessXTimeoutValues_mask_Overlay2Mask,
23598  &hf_x11_xkb_GetControls_reply_accessXTimeoutValues_mask_IgnoreGroupLockMask,
23599  NULL
23600  };
23601  proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_xkb_GetControls_reply_accessXTimeoutValues, ett_x11_rectangle, accessXTimeoutValues_bits, byte_order);
23602  }
23603  *offsetp += 4;
23604  {
23605  int* const enabledControls_bits [] = {
23606  &hf_x11_xkb_GetControls_reply_enabledControls_mask_RepeatKeys,
23607  &hf_x11_xkb_GetControls_reply_enabledControls_mask_SlowKeys,
23608  &hf_x11_xkb_GetControls_reply_enabledControls_mask_BounceKeys,
23609  &hf_x11_xkb_GetControls_reply_enabledControls_mask_StickyKeys,
23610  &hf_x11_xkb_GetControls_reply_enabledControls_mask_MouseKeys,
23611  &hf_x11_xkb_GetControls_reply_enabledControls_mask_MouseKeysAccel,
23612  &hf_x11_xkb_GetControls_reply_enabledControls_mask_AccessXKeys,
23613  &hf_x11_xkb_GetControls_reply_enabledControls_mask_AccessXTimeoutMask,
23614  &hf_x11_xkb_GetControls_reply_enabledControls_mask_AccessXFeedbackMask,
23615  &hf_x11_xkb_GetControls_reply_enabledControls_mask_AudibleBellMask,
23616  &hf_x11_xkb_GetControls_reply_enabledControls_mask_Overlay1Mask,
23617  &hf_x11_xkb_GetControls_reply_enabledControls_mask_Overlay2Mask,
23618  &hf_x11_xkb_GetControls_reply_enabledControls_mask_IgnoreGroupLockMask,
23619  NULL
23620  };
23621  proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_xkb_GetControls_reply_enabledControls, ett_x11_rectangle, enabledControls_bits, byte_order);
23622  }
23623  *offsetp += 4;
23624  listOfByte(tvb, offsetp, t, hf_x11_xkb_GetControls_reply_perKeyRepeat, 32, byte_order);
23625 }
23626 
23627 static void xkbSetControls(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
23628 {
23629  proto_tree_add_item(t, hf_x11_xkb_SetControls_deviceSpec, tvb, *offsetp, 2, byte_order);
23630  *offsetp += 2;
23631  {
23632  int* const affectInternalRealMods_bits [] = {
23633  &hf_x11_xkb_SetControls_affectInternalRealMods_mask_Shift,
23634  &hf_x11_xkb_SetControls_affectInternalRealMods_mask_Lock,
23635  &hf_x11_xkb_SetControls_affectInternalRealMods_mask_Control,
23636  &hf_x11_xkb_SetControls_affectInternalRealMods_mask_1,
23637  &hf_x11_xkb_SetControls_affectInternalRealMods_mask_2,
23638  &hf_x11_xkb_SetControls_affectInternalRealMods_mask_3,
23639  &hf_x11_xkb_SetControls_affectInternalRealMods_mask_4,
23640  &hf_x11_xkb_SetControls_affectInternalRealMods_mask_5,
23641  &hf_x11_xkb_SetControls_affectInternalRealMods_mask_Any,
23642  NULL
23643  };
23644  proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_xkb_SetControls_affectInternalRealMods, ett_x11_rectangle, affectInternalRealMods_bits, byte_order);
23645  }
23646  *offsetp += 1;
23647  {
23648  int* const internalRealMods_bits [] = {
23649  &hf_x11_xkb_SetControls_internalRealMods_mask_Shift,
23650  &hf_x11_xkb_SetControls_internalRealMods_mask_Lock,
23651  &hf_x11_xkb_SetControls_internalRealMods_mask_Control,
23652  &hf_x11_xkb_SetControls_internalRealMods_mask_1,
23653  &hf_x11_xkb_SetControls_internalRealMods_mask_2,
23654  &hf_x11_xkb_SetControls_internalRealMods_mask_3,
23655  &hf_x11_xkb_SetControls_internalRealMods_mask_4,
23656  &hf_x11_xkb_SetControls_internalRealMods_mask_5,
23657  &hf_x11_xkb_SetControls_internalRealMods_mask_Any,
23658  NULL
23659  };
23660  proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_xkb_SetControls_internalRealMods, ett_x11_rectangle, internalRealMods_bits, byte_order);
23661  }
23662  *offsetp += 1;
23663  {
23664  int* const affectIgnoreLockRealMods_bits [] = {
23665  &hf_x11_xkb_SetControls_affectIgnoreLockRealMods_mask_Shift,
23666  &hf_x11_xkb_SetControls_affectIgnoreLockRealMods_mask_Lock,
23667  &hf_x11_xkb_SetControls_affectIgnoreLockRealMods_mask_Control,
23668  &hf_x11_xkb_SetControls_affectIgnoreLockRealMods_mask_1,
23669  &hf_x11_xkb_SetControls_affectIgnoreLockRealMods_mask_2,
23670  &hf_x11_xkb_SetControls_affectIgnoreLockRealMods_mask_3,
23671  &hf_x11_xkb_SetControls_affectIgnoreLockRealMods_mask_4,
23672  &hf_x11_xkb_SetControls_affectIgnoreLockRealMods_mask_5,
23673  &hf_x11_xkb_SetControls_affectIgnoreLockRealMods_mask_Any,
23674  NULL
23675  };
23676  proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_xkb_SetControls_affectIgnoreLockRealMods, ett_x11_rectangle, affectIgnoreLockRealMods_bits, byte_order);
23677  }
23678  *offsetp += 1;
23679  {
23680  int* const ignoreLockRealMods_bits [] = {
23681  &hf_x11_xkb_SetControls_ignoreLockRealMods_mask_Shift,
23682  &hf_x11_xkb_SetControls_ignoreLockRealMods_mask_Lock,
23683  &hf_x11_xkb_SetControls_ignoreLockRealMods_mask_Control,
23684  &hf_x11_xkb_SetControls_ignoreLockRealMods_mask_1,
23685  &hf_x11_xkb_SetControls_ignoreLockRealMods_mask_2,
23686  &hf_x11_xkb_SetControls_ignoreLockRealMods_mask_3,
23687  &hf_x11_xkb_SetControls_ignoreLockRealMods_mask_4,
23688  &hf_x11_xkb_SetControls_ignoreLockRealMods_mask_5,
23689  &hf_x11_xkb_SetControls_ignoreLockRealMods_mask_Any,
23690  NULL
23691  };
23692  proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_xkb_SetControls_ignoreLockRealMods, ett_x11_rectangle, ignoreLockRealMods_bits, byte_order);
23693  }
23694  *offsetp += 1;
23695  {
23696  int* const affectInternalVirtualMods_bits [] = {
23697  &hf_x11_xkb_SetControls_affectInternalVirtualMods_mask_0,
23698  &hf_x11_xkb_SetControls_affectInternalVirtualMods_mask_1,
23699  &hf_x11_xkb_SetControls_affectInternalVirtualMods_mask_2,
23700  &hf_x11_xkb_SetControls_affectInternalVirtualMods_mask_3,
23701  &hf_x11_xkb_SetControls_affectInternalVirtualMods_mask_4,
23702  &hf_x11_xkb_SetControls_affectInternalVirtualMods_mask_5,
23703  &hf_x11_xkb_SetControls_affectInternalVirtualMods_mask_6,
23704  &hf_x11_xkb_SetControls_affectInternalVirtualMods_mask_7,
23705  &hf_x11_xkb_SetControls_affectInternalVirtualMods_mask_8,
23706  &hf_x11_xkb_SetControls_affectInternalVirtualMods_mask_9,
23707  &hf_x11_xkb_SetControls_affectInternalVirtualMods_mask_10,
23708  &hf_x11_xkb_SetControls_affectInternalVirtualMods_mask_11,
23709  &hf_x11_xkb_SetControls_affectInternalVirtualMods_mask_12,
23710  &hf_x11_xkb_SetControls_affectInternalVirtualMods_mask_13,
23711  &hf_x11_xkb_SetControls_affectInternalVirtualMods_mask_14,
23712  &hf_x11_xkb_SetControls_affectInternalVirtualMods_mask_15,
23713  NULL
23714  };
23715  proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_xkb_SetControls_affectInternalVirtualMods, ett_x11_rectangle, affectInternalVirtualMods_bits, byte_order);
23716  }
23717  *offsetp += 2;
23718  {
23719  int* const internalVirtualMods_bits [] = {
23720  &hf_x11_xkb_SetControls_internalVirtualMods_mask_0,
23721  &hf_x11_xkb_SetControls_internalVirtualMods_mask_1,
23722  &hf_x11_xkb_SetControls_internalVirtualMods_mask_2,
23723  &hf_x11_xkb_SetControls_internalVirtualMods_mask_3,
23724  &hf_x11_xkb_SetControls_internalVirtualMods_mask_4,
23725  &hf_x11_xkb_SetControls_internalVirtualMods_mask_5,
23726  &hf_x11_xkb_SetControls_internalVirtualMods_mask_6,
23727  &hf_x11_xkb_SetControls_internalVirtualMods_mask_7,
23728  &hf_x11_xkb_SetControls_internalVirtualMods_mask_8,
23729  &hf_x11_xkb_SetControls_internalVirtualMods_mask_9,
23730  &hf_x11_xkb_SetControls_internalVirtualMods_mask_10,
23731  &hf_x11_xkb_SetControls_internalVirtualMods_mask_11,
23732  &hf_x11_xkb_SetControls_internalVirtualMods_mask_12,
23733  &hf_x11_xkb_SetControls_internalVirtualMods_mask_13,
23734  &hf_x11_xkb_SetControls_internalVirtualMods_mask_14,
23735  &hf_x11_xkb_SetControls_internalVirtualMods_mask_15,
23736  NULL
23737  };
23738  proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_xkb_SetControls_internalVirtualMods, ett_x11_rectangle, internalVirtualMods_bits, byte_order);
23739  }
23740  *offsetp += 2;
23741  {
23742  int* const affectIgnoreLockVirtualMods_bits [] = {
23743  &hf_x11_xkb_SetControls_affectIgnoreLockVirtualMods_mask_0,
23744  &hf_x11_xkb_SetControls_affectIgnoreLockVirtualMods_mask_1,
23745  &hf_x11_xkb_SetControls_affectIgnoreLockVirtualMods_mask_2,
23746  &hf_x11_xkb_SetControls_affectIgnoreLockVirtualMods_mask_3,
23747  &hf_x11_xkb_SetControls_affectIgnoreLockVirtualMods_mask_4,
23748  &hf_x11_xkb_SetControls_affectIgnoreLockVirtualMods_mask_5,
23749  &hf_x11_xkb_SetControls_affectIgnoreLockVirtualMods_mask_6,
23750  &hf_x11_xkb_SetControls_affectIgnoreLockVirtualMods_mask_7,
23751  &hf_x11_xkb_SetControls_affectIgnoreLockVirtualMods_mask_8,
23752  &hf_x11_xkb_SetControls_affectIgnoreLockVirtualMods_mask_9,
23753  &hf_x11_xkb_SetControls_affectIgnoreLockVirtualMods_mask_10,
23754  &hf_x11_xkb_SetControls_affectIgnoreLockVirtualMods_mask_11,
23755  &hf_x11_xkb_SetControls_affectIgnoreLockVirtualMods_mask_12,
23756  &hf_x11_xkb_SetControls_affectIgnoreLockVirtualMods_mask_13,
23757  &hf_x11_xkb_SetControls_affectIgnoreLockVirtualMods_mask_14,
23758  &hf_x11_xkb_SetControls_affectIgnoreLockVirtualMods_mask_15,
23759  NULL
23760  };
23761  proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_xkb_SetControls_affectIgnoreLockVirtualMods, ett_x11_rectangle, affectIgnoreLockVirtualMods_bits, byte_order);
23762  }
23763  *offsetp += 2;
23764  {
23765  int* const ignoreLockVirtualMods_bits [] = {
23766  &hf_x11_xkb_SetControls_ignoreLockVirtualMods_mask_0,
23767  &hf_x11_xkb_SetControls_ignoreLockVirtualMods_mask_1,
23768  &hf_x11_xkb_SetControls_ignoreLockVirtualMods_mask_2,
23769  &hf_x11_xkb_SetControls_ignoreLockVirtualMods_mask_3,
23770  &hf_x11_xkb_SetControls_ignoreLockVirtualMods_mask_4,
23771  &hf_x11_xkb_SetControls_ignoreLockVirtualMods_mask_5,
23772  &hf_x11_xkb_SetControls_ignoreLockVirtualMods_mask_6,
23773  &hf_x11_xkb_SetControls_ignoreLockVirtualMods_mask_7,
23774  &hf_x11_xkb_SetControls_ignoreLockVirtualMods_mask_8,
23775  &hf_x11_xkb_SetControls_ignoreLockVirtualMods_mask_9,
23776  &hf_x11_xkb_SetControls_ignoreLockVirtualMods_mask_10,
23777  &hf_x11_xkb_SetControls_ignoreLockVirtualMods_mask_11,
23778  &hf_x11_xkb_SetControls_ignoreLockVirtualMods_mask_12,
23779  &hf_x11_xkb_SetControls_ignoreLockVirtualMods_mask_13,
23780  &hf_x11_xkb_SetControls_ignoreLockVirtualMods_mask_14,
23781  &hf_x11_xkb_SetControls_ignoreLockVirtualMods_mask_15,
23782  NULL
23783  };
23784  proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_xkb_SetControls_ignoreLockVirtualMods, ett_x11_rectangle, ignoreLockVirtualMods_bits, byte_order);
23785  }
23786  *offsetp += 2;
23787  proto_tree_add_item(t, hf_x11_xkb_SetControls_mouseKeysDfltBtn, tvb, *offsetp, 1, byte_order);
23788  *offsetp += 1;
23789  proto_tree_add_item(t, hf_x11_xkb_SetControls_groupsWrap, tvb, *offsetp, 1, byte_order);
23790  *offsetp += 1;
23791  {
23792  int* const accessXOptions_bits [] = {
23793  &hf_x11_xkb_SetControls_accessXOptions_mask_SKPressFB,
23794  &hf_x11_xkb_SetControls_accessXOptions_mask_SKAcceptFB,
23795  &hf_x11_xkb_SetControls_accessXOptions_mask_FeatureFB,
23796  &hf_x11_xkb_SetControls_accessXOptions_mask_SlowWarnFB,
23797  &hf_x11_xkb_SetControls_accessXOptions_mask_IndicatorFB,
23798  &hf_x11_xkb_SetControls_accessXOptions_mask_StickyKeysFB,
23799  &hf_x11_xkb_SetControls_accessXOptions_mask_TwoKeys,
23800  &hf_x11_xkb_SetControls_accessXOptions_mask_LatchToLock,
23801  &hf_x11_xkb_SetControls_accessXOptions_mask_SKReleaseFB,
23802  &hf_x11_xkb_SetControls_accessXOptions_mask_SKRejectFB,
23803  &hf_x11_xkb_SetControls_accessXOptions_mask_BKRejectFB,
23804  &hf_x11_xkb_SetControls_accessXOptions_mask_DumbBell,
23805  NULL
23806  };
23807  proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_xkb_SetControls_accessXOptions, ett_x11_rectangle, accessXOptions_bits, byte_order);
23808  }
23809  *offsetp += 2;
23810  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 2, ENC_NA);
23811  *offsetp += 2;
23812  {
23813  int* const affectEnabledControls_bits [] = {
23814  &hf_x11_xkb_SetControls_affectEnabledControls_mask_RepeatKeys,
23815  &hf_x11_xkb_SetControls_affectEnabledControls_mask_SlowKeys,
23816  &hf_x11_xkb_SetControls_affectEnabledControls_mask_BounceKeys,
23817  &hf_x11_xkb_SetControls_affectEnabledControls_mask_StickyKeys,
23818  &hf_x11_xkb_SetControls_affectEnabledControls_mask_MouseKeys,
23819  &hf_x11_xkb_SetControls_affectEnabledControls_mask_MouseKeysAccel,
23820  &hf_x11_xkb_SetControls_affectEnabledControls_mask_AccessXKeys,
23821  &hf_x11_xkb_SetControls_affectEnabledControls_mask_AccessXTimeoutMask,
23822  &hf_x11_xkb_SetControls_affectEnabledControls_mask_AccessXFeedbackMask,
23823  &hf_x11_xkb_SetControls_affectEnabledControls_mask_AudibleBellMask,
23824  &hf_x11_xkb_SetControls_affectEnabledControls_mask_Overlay1Mask,
23825  &hf_x11_xkb_SetControls_affectEnabledControls_mask_Overlay2Mask,
23826  &hf_x11_xkb_SetControls_affectEnabledControls_mask_IgnoreGroupLockMask,
23827  NULL
23828  };
23829  proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_xkb_SetControls_affectEnabledControls, ett_x11_rectangle, affectEnabledControls_bits, byte_order);
23830  }
23831  *offsetp += 4;
23832  {
23833  int* const enabledControls_bits [] = {
23834  &hf_x11_xkb_SetControls_enabledControls_mask_RepeatKeys,
23835  &hf_x11_xkb_SetControls_enabledControls_mask_SlowKeys,
23836  &hf_x11_xkb_SetControls_enabledControls_mask_BounceKeys,
23837  &hf_x11_xkb_SetControls_enabledControls_mask_StickyKeys,
23838  &hf_x11_xkb_SetControls_enabledControls_mask_MouseKeys,
23839  &hf_x11_xkb_SetControls_enabledControls_mask_MouseKeysAccel,
23840  &hf_x11_xkb_SetControls_enabledControls_mask_AccessXKeys,
23841  &hf_x11_xkb_SetControls_enabledControls_mask_AccessXTimeoutMask,
23842  &hf_x11_xkb_SetControls_enabledControls_mask_AccessXFeedbackMask,
23843  &hf_x11_xkb_SetControls_enabledControls_mask_AudibleBellMask,
23844  &hf_x11_xkb_SetControls_enabledControls_mask_Overlay1Mask,
23845  &hf_x11_xkb_SetControls_enabledControls_mask_Overlay2Mask,
23846  &hf_x11_xkb_SetControls_enabledControls_mask_IgnoreGroupLockMask,
23847  NULL
23848  };
23849  proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_xkb_SetControls_enabledControls, ett_x11_rectangle, enabledControls_bits, byte_order);
23850  }
23851  *offsetp += 4;
23852  {
23853  int* const changeControls_bits [] = {
23854  &hf_x11_xkb_SetControls_changeControls_mask_GroupsWrap,
23855  &hf_x11_xkb_SetControls_changeControls_mask_InternalMods,
23856  &hf_x11_xkb_SetControls_changeControls_mask_IgnoreLockMods,
23857  &hf_x11_xkb_SetControls_changeControls_mask_PerKeyRepeat,
23858  &hf_x11_xkb_SetControls_changeControls_mask_ControlsEnabled,
23859  NULL
23860  };
23861  proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_xkb_SetControls_changeControls, ett_x11_rectangle, changeControls_bits, byte_order);
23862  }
23863  *offsetp += 4;
23864  proto_tree_add_item(t, hf_x11_xkb_SetControls_repeatDelay, tvb, *offsetp, 2, byte_order);
23865  *offsetp += 2;
23866  proto_tree_add_item(t, hf_x11_xkb_SetControls_repeatInterval, tvb, *offsetp, 2, byte_order);
23867  *offsetp += 2;
23868  proto_tree_add_item(t, hf_x11_xkb_SetControls_slowKeysDelay, tvb, *offsetp, 2, byte_order);
23869  *offsetp += 2;
23870  proto_tree_add_item(t, hf_x11_xkb_SetControls_debounceDelay, tvb, *offsetp, 2, byte_order);
23871  *offsetp += 2;
23872  proto_tree_add_item(t, hf_x11_xkb_SetControls_mouseKeysDelay, tvb, *offsetp, 2, byte_order);
23873  *offsetp += 2;
23874  proto_tree_add_item(t, hf_x11_xkb_SetControls_mouseKeysInterval, tvb, *offsetp, 2, byte_order);
23875  *offsetp += 2;
23876  proto_tree_add_item(t, hf_x11_xkb_SetControls_mouseKeysTimeToMax, tvb, *offsetp, 2, byte_order);
23877  *offsetp += 2;
23878  proto_tree_add_item(t, hf_x11_xkb_SetControls_mouseKeysMaxSpeed, tvb, *offsetp, 2, byte_order);
23879  *offsetp += 2;
23880  proto_tree_add_item(t, hf_x11_xkb_SetControls_mouseKeysCurve, tvb, *offsetp, 2, byte_order);
23881  *offsetp += 2;
23882  proto_tree_add_item(t, hf_x11_xkb_SetControls_accessXTimeout, tvb, *offsetp, 2, byte_order);
23883  *offsetp += 2;
23884  {
23885  int* const accessXTimeoutMask_bits [] = {
23886  &hf_x11_xkb_SetControls_accessXTimeoutMask_mask_RepeatKeys,
23887  &hf_x11_xkb_SetControls_accessXTimeoutMask_mask_SlowKeys,
23888  &hf_x11_xkb_SetControls_accessXTimeoutMask_mask_BounceKeys,
23889  &hf_x11_xkb_SetControls_accessXTimeoutMask_mask_StickyKeys,
23890  &hf_x11_xkb_SetControls_accessXTimeoutMask_mask_MouseKeys,
23891  &hf_x11_xkb_SetControls_accessXTimeoutMask_mask_MouseKeysAccel,
23892  &hf_x11_xkb_SetControls_accessXTimeoutMask_mask_AccessXKeys,
23893  &hf_x11_xkb_SetControls_accessXTimeoutMask_mask_AccessXTimeoutMask,
23894  &hf_x11_xkb_SetControls_accessXTimeoutMask_mask_AccessXFeedbackMask,
23895  &hf_x11_xkb_SetControls_accessXTimeoutMask_mask_AudibleBellMask,
23896  &hf_x11_xkb_SetControls_accessXTimeoutMask_mask_Overlay1Mask,
23897  &hf_x11_xkb_SetControls_accessXTimeoutMask_mask_Overlay2Mask,
23898  &hf_x11_xkb_SetControls_accessXTimeoutMask_mask_IgnoreGroupLockMask,
23899  NULL
23900  };
23901  proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_xkb_SetControls_accessXTimeoutMask, ett_x11_rectangle, accessXTimeoutMask_bits, byte_order);
23902  }
23903  *offsetp += 4;
23904  {
23905  int* const accessXTimeoutValues_bits [] = {
23906  &hf_x11_xkb_SetControls_accessXTimeoutValues_mask_RepeatKeys,
23907  &hf_x11_xkb_SetControls_accessXTimeoutValues_mask_SlowKeys,
23908  &hf_x11_xkb_SetControls_accessXTimeoutValues_mask_BounceKeys,
23909  &hf_x11_xkb_SetControls_accessXTimeoutValues_mask_StickyKeys,
23910  &hf_x11_xkb_SetControls_accessXTimeoutValues_mask_MouseKeys,
23911  &hf_x11_xkb_SetControls_accessXTimeoutValues_mask_MouseKeysAccel,
23912  &hf_x11_xkb_SetControls_accessXTimeoutValues_mask_AccessXKeys,
23913  &hf_x11_xkb_SetControls_accessXTimeoutValues_mask_AccessXTimeoutMask,
23914  &hf_x11_xkb_SetControls_accessXTimeoutValues_mask_AccessXFeedbackMask,
23915  &hf_x11_xkb_SetControls_accessXTimeoutValues_mask_AudibleBellMask,
23916  &hf_x11_xkb_SetControls_accessXTimeoutValues_mask_Overlay1Mask,
23917  &hf_x11_xkb_SetControls_accessXTimeoutValues_mask_Overlay2Mask,
23918  &hf_x11_xkb_SetControls_accessXTimeoutValues_mask_IgnoreGroupLockMask,
23919  NULL
23920  };
23921  proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_xkb_SetControls_accessXTimeoutValues, ett_x11_rectangle, accessXTimeoutValues_bits, byte_order);
23922  }
23923  *offsetp += 4;
23924  {
23925  int* const accessXTimeoutOptionsMask_bits [] = {
23926  &hf_x11_xkb_SetControls_accessXTimeoutOptionsMask_mask_SKPressFB,
23927  &hf_x11_xkb_SetControls_accessXTimeoutOptionsMask_mask_SKAcceptFB,
23928  &hf_x11_xkb_SetControls_accessXTimeoutOptionsMask_mask_FeatureFB,
23929  &hf_x11_xkb_SetControls_accessXTimeoutOptionsMask_mask_SlowWarnFB,
23930  &hf_x11_xkb_SetControls_accessXTimeoutOptionsMask_mask_IndicatorFB,
23931  &hf_x11_xkb_SetControls_accessXTimeoutOptionsMask_mask_StickyKeysFB,
23932  &hf_x11_xkb_SetControls_accessXTimeoutOptionsMask_mask_TwoKeys,
23933  &hf_x11_xkb_SetControls_accessXTimeoutOptionsMask_mask_LatchToLock,
23934  &hf_x11_xkb_SetControls_accessXTimeoutOptionsMask_mask_SKReleaseFB,
23935  &hf_x11_xkb_SetControls_accessXTimeoutOptionsMask_mask_SKRejectFB,
23936  &hf_x11_xkb_SetControls_accessXTimeoutOptionsMask_mask_BKRejectFB,
23937  &hf_x11_xkb_SetControls_accessXTimeoutOptionsMask_mask_DumbBell,
23938  NULL
23939  };
23940  proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_xkb_SetControls_accessXTimeoutOptionsMask, ett_x11_rectangle, accessXTimeoutOptionsMask_bits, byte_order);
23941  }
23942  *offsetp += 2;
23943  {
23944  int* const accessXTimeoutOptionsValues_bits [] = {
23945  &hf_x11_xkb_SetControls_accessXTimeoutOptionsValues_mask_SKPressFB,
23946  &hf_x11_xkb_SetControls_accessXTimeoutOptionsValues_mask_SKAcceptFB,
23947  &hf_x11_xkb_SetControls_accessXTimeoutOptionsValues_mask_FeatureFB,
23948  &hf_x11_xkb_SetControls_accessXTimeoutOptionsValues_mask_SlowWarnFB,
23949  &hf_x11_xkb_SetControls_accessXTimeoutOptionsValues_mask_IndicatorFB,
23950  &hf_x11_xkb_SetControls_accessXTimeoutOptionsValues_mask_StickyKeysFB,
23951  &hf_x11_xkb_SetControls_accessXTimeoutOptionsValues_mask_TwoKeys,
23952  &hf_x11_xkb_SetControls_accessXTimeoutOptionsValues_mask_LatchToLock,
23953  &hf_x11_xkb_SetControls_accessXTimeoutOptionsValues_mask_SKReleaseFB,
23954  &hf_x11_xkb_SetControls_accessXTimeoutOptionsValues_mask_SKRejectFB,
23955  &hf_x11_xkb_SetControls_accessXTimeoutOptionsValues_mask_BKRejectFB,
23956  &hf_x11_xkb_SetControls_accessXTimeoutOptionsValues_mask_DumbBell,
23957  NULL
23958  };
23959  proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_xkb_SetControls_accessXTimeoutOptionsValues, ett_x11_rectangle, accessXTimeoutOptionsValues_bits, byte_order);
23960  }
23961  *offsetp += 2;
23962  listOfByte(tvb, offsetp, t, hf_x11_xkb_SetControls_perKeyRepeat, 32, byte_order);
23963  length -= 32 * 1;
23964 }
23965 
23966 static void xkbGetMap(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
23967 {
23968  proto_tree_add_item(t, hf_x11_xkb_GetMap_deviceSpec, tvb, *offsetp, 2, byte_order);
23969  *offsetp += 2;
23970  {
23971  int* const full_bits [] = {
23972  &hf_x11_xkb_GetMap_full_mask_KeyTypes,
23973  &hf_x11_xkb_GetMap_full_mask_KeySyms,
23974  &hf_x11_xkb_GetMap_full_mask_ModifierMap,
23975  &hf_x11_xkb_GetMap_full_mask_ExplicitComponents,
23976  &hf_x11_xkb_GetMap_full_mask_KeyActions,
23977  &hf_x11_xkb_GetMap_full_mask_KeyBehaviors,
23978  &hf_x11_xkb_GetMap_full_mask_VirtualMods,
23979  &hf_x11_xkb_GetMap_full_mask_VirtualModMap,
23980  NULL
23981  };
23982  proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_xkb_GetMap_full, ett_x11_rectangle, full_bits, byte_order);
23983  }
23984  *offsetp += 2;
23985  {
23986  int* const partial_bits [] = {
23987  &hf_x11_xkb_GetMap_partial_mask_KeyTypes,
23988  &hf_x11_xkb_GetMap_partial_mask_KeySyms,
23989  &hf_x11_xkb_GetMap_partial_mask_ModifierMap,
23990  &hf_x11_xkb_GetMap_partial_mask_ExplicitComponents,
23991  &hf_x11_xkb_GetMap_partial_mask_KeyActions,
23992  &hf_x11_xkb_GetMap_partial_mask_KeyBehaviors,
23993  &hf_x11_xkb_GetMap_partial_mask_VirtualMods,
23994  &hf_x11_xkb_GetMap_partial_mask_VirtualModMap,
23995  NULL
23996  };
23997  proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_xkb_GetMap_partial, ett_x11_rectangle, partial_bits, byte_order);
23998  }
23999  *offsetp += 2;
24000  proto_tree_add_item(t, hf_x11_xkb_GetMap_firstType, tvb, *offsetp, 1, byte_order);
24001  *offsetp += 1;
24002  proto_tree_add_item(t, hf_x11_xkb_GetMap_nTypes, tvb, *offsetp, 1, byte_order);
24003  *offsetp += 1;
24004  proto_tree_add_item(t, hf_x11_xkb_GetMap_firstKeySym, tvb, *offsetp, 1, byte_order);
24005  *offsetp += 1;
24006  proto_tree_add_item(t, hf_x11_xkb_GetMap_nKeySyms, tvb, *offsetp, 1, byte_order);
24007  *offsetp += 1;
24008  proto_tree_add_item(t, hf_x11_xkb_GetMap_firstKeyAction, tvb, *offsetp, 1, byte_order);
24009  *offsetp += 1;
24010  proto_tree_add_item(t, hf_x11_xkb_GetMap_nKeyActions, tvb, *offsetp, 1, byte_order);
24011  *offsetp += 1;
24012  proto_tree_add_item(t, hf_x11_xkb_GetMap_firstKeyBehavior, tvb, *offsetp, 1, byte_order);
24013  *offsetp += 1;
24014  proto_tree_add_item(t, hf_x11_xkb_GetMap_nKeyBehaviors, tvb, *offsetp, 1, byte_order);
24015  *offsetp += 1;
24016  {
24017  int* const virtualMods_bits [] = {
24018  &hf_x11_xkb_GetMap_virtualMods_mask_0,
24019  &hf_x11_xkb_GetMap_virtualMods_mask_1,
24020  &hf_x11_xkb_GetMap_virtualMods_mask_2,
24021  &hf_x11_xkb_GetMap_virtualMods_mask_3,
24022  &hf_x11_xkb_GetMap_virtualMods_mask_4,
24023  &hf_x11_xkb_GetMap_virtualMods_mask_5,
24024  &hf_x11_xkb_GetMap_virtualMods_mask_6,
24025  &hf_x11_xkb_GetMap_virtualMods_mask_7,
24026  &hf_x11_xkb_GetMap_virtualMods_mask_8,
24027  &hf_x11_xkb_GetMap_virtualMods_mask_9,
24028  &hf_x11_xkb_GetMap_virtualMods_mask_10,
24029  &hf_x11_xkb_GetMap_virtualMods_mask_11,
24030  &hf_x11_xkb_GetMap_virtualMods_mask_12,
24031  &hf_x11_xkb_GetMap_virtualMods_mask_13,
24032  &hf_x11_xkb_GetMap_virtualMods_mask_14,
24033  &hf_x11_xkb_GetMap_virtualMods_mask_15,
24034  NULL
24035  };
24036  proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_xkb_GetMap_virtualMods, ett_x11_rectangle, virtualMods_bits, byte_order);
24037  }
24038  *offsetp += 2;
24039  proto_tree_add_item(t, hf_x11_xkb_GetMap_firstKeyExplicit, tvb, *offsetp, 1, byte_order);
24040  *offsetp += 1;
24041  proto_tree_add_item(t, hf_x11_xkb_GetMap_nKeyExplicit, tvb, *offsetp, 1, byte_order);
24042  *offsetp += 1;
24043  proto_tree_add_item(t, hf_x11_xkb_GetMap_firstModMapKey, tvb, *offsetp, 1, byte_order);
24044  *offsetp += 1;
24045  proto_tree_add_item(t, hf_x11_xkb_GetMap_nModMapKeys, tvb, *offsetp, 1, byte_order);
24046  *offsetp += 1;
24047  proto_tree_add_item(t, hf_x11_xkb_GetMap_firstVModMapKey, tvb, *offsetp, 1, byte_order);
24048  *offsetp += 1;
24049  proto_tree_add_item(t, hf_x11_xkb_GetMap_nVModMapKeys, tvb, *offsetp, 1, byte_order);
24050  *offsetp += 1;
24051  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 2, ENC_NA);
24052  *offsetp += 2;
24053 }
24054 static void xkbGetMap_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
24055 {
24056  int sequence_number;
24057  int f_present;
24058  int f_nTypes;
24059  int f_nKeySyms;
24060  int f_totalActions;
24061  int f_nKeyActions;
24062  int f_totalKeyBehaviors;
24063  int f_totalKeyExplicit;
24064  int f_totalModMapKeys;
24065  int f_totalVModMapKeys;
24066  int f_virtualMods;
24067 
24068  col_append_fstr(pinfo->cinfo, COL_INFO, "-GetMap");
24069 
24070  REPLY(reply);
24071  proto_tree_add_item(t, hf_x11_xkb_GetMap_reply_deviceID, tvb, *offsetp, 1, byte_order);
24072  *offsetp += 1;
24073  sequence_number = tvb_get_guint16(tvb, *offsetp, byte_order);
24074  proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
24075  "%d (xkb-GetMap)", sequence_number);
24076  *offsetp += 2;
24077  proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
24078  *offsetp += 4;
24079  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 2, ENC_NA);
24080  *offsetp += 2;
24081  proto_tree_add_item(t, hf_x11_xkb_GetMap_reply_minKeyCode, tvb, *offsetp, 1, byte_order);
24082  *offsetp += 1;
24083  proto_tree_add_item(t, hf_x11_xkb_GetMap_reply_maxKeyCode, tvb, *offsetp, 1, byte_order);
24084  *offsetp += 1;
24085  f_present = tvb_get_guint16(tvb, *offsetp, byte_order);
24086  {
24087  int* const present_bits [] = {
24088  &hf_x11_xkb_GetMap_reply_present_mask_KeyTypes,
24089  &hf_x11_xkb_GetMap_reply_present_mask_KeySyms,
24090  &hf_x11_xkb_GetMap_reply_present_mask_ModifierMap,
24091  &hf_x11_xkb_GetMap_reply_present_mask_ExplicitComponents,
24092  &hf_x11_xkb_GetMap_reply_present_mask_KeyActions,
24093  &hf_x11_xkb_GetMap_reply_present_mask_KeyBehaviors,
24094  &hf_x11_xkb_GetMap_reply_present_mask_VirtualMods,
24095  &hf_x11_xkb_GetMap_reply_present_mask_VirtualModMap,
24096  NULL
24097  };
24098  proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_xkb_GetMap_reply_present, ett_x11_rectangle, present_bits, byte_order);
24099  }
24100  *offsetp += 2;
24101  proto_tree_add_item(t, hf_x11_xkb_GetMap_reply_firstType, tvb, *offsetp, 1, byte_order);
24102  *offsetp += 1;
24103  f_nTypes = tvb_get_guint8(tvb, *offsetp);
24104  proto_tree_add_item(t, hf_x11_xkb_GetMap_reply_nTypes, tvb, *offsetp, 1, byte_order);
24105  *offsetp += 1;
24106  proto_tree_add_item(t, hf_x11_xkb_GetMap_reply_totalTypes, tvb, *offsetp, 1, byte_order);
24107  *offsetp += 1;
24108  proto_tree_add_item(t, hf_x11_xkb_GetMap_reply_firstKeySym, tvb, *offsetp, 1, byte_order);
24109  *offsetp += 1;
24110  proto_tree_add_item(t, hf_x11_xkb_GetMap_reply_totalSyms, tvb, *offsetp, 2, byte_order);
24111  *offsetp += 2;
24112  f_nKeySyms = tvb_get_guint8(tvb, *offsetp);
24113  proto_tree_add_item(t, hf_x11_xkb_GetMap_reply_nKeySyms, tvb, *offsetp, 1, byte_order);
24114  *offsetp += 1;
24115  proto_tree_add_item(t, hf_x11_xkb_GetMap_reply_firstKeyAction, tvb, *offsetp, 1, byte_order);
24116  *offsetp += 1;
24117  f_totalActions = tvb_get_guint16(tvb, *offsetp, byte_order);
24118  proto_tree_add_item(t, hf_x11_xkb_GetMap_reply_totalActions, tvb, *offsetp, 2, byte_order);
24119  *offsetp += 2;
24120  f_nKeyActions = tvb_get_guint8(tvb, *offsetp);
24121  proto_tree_add_item(t, hf_x11_xkb_GetMap_reply_nKeyActions, tvb, *offsetp, 1, byte_order);
24122  *offsetp += 1;
24123  proto_tree_add_item(t, hf_x11_xkb_GetMap_reply_firstKeyBehavior, tvb, *offsetp, 1, byte_order);
24124  *offsetp += 1;
24125  proto_tree_add_item(t, hf_x11_xkb_GetMap_reply_nKeyBehaviors, tvb, *offsetp, 1, byte_order);
24126  *offsetp += 1;
24127  f_totalKeyBehaviors = tvb_get_guint8(tvb, *offsetp);
24128  proto_tree_add_item(t, hf_x11_xkb_GetMap_reply_totalKeyBehaviors, tvb, *offsetp, 1, byte_order);
24129  *offsetp += 1;
24130  proto_tree_add_item(t, hf_x11_xkb_GetMap_reply_firstKeyExplicit, tvb, *offsetp, 1, byte_order);
24131  *offsetp += 1;
24132  proto_tree_add_item(t, hf_x11_xkb_GetMap_reply_nKeyExplicit, tvb, *offsetp, 1, byte_order);
24133  *offsetp += 1;
24134  f_totalKeyExplicit = tvb_get_guint8(tvb, *offsetp);
24135  proto_tree_add_item(t, hf_x11_xkb_GetMap_reply_totalKeyExplicit, tvb, *offsetp, 1, byte_order);
24136  *offsetp += 1;
24137  proto_tree_add_item(t, hf_x11_xkb_GetMap_reply_firstModMapKey, tvb, *offsetp, 1, byte_order);
24138  *offsetp += 1;
24139  proto_tree_add_item(t, hf_x11_xkb_GetMap_reply_nModMapKeys, tvb, *offsetp, 1, byte_order);
24140  *offsetp += 1;
24141  f_totalModMapKeys = tvb_get_guint8(tvb, *offsetp);
24142  proto_tree_add_item(t, hf_x11_xkb_GetMap_reply_totalModMapKeys, tvb, *offsetp, 1, byte_order);
24143  *offsetp += 1;
24144  proto_tree_add_item(t, hf_x11_xkb_GetMap_reply_firstVModMapKey, tvb, *offsetp, 1, byte_order);
24145  *offsetp += 1;
24146  proto_tree_add_item(t, hf_x11_xkb_GetMap_reply_nVModMapKeys, tvb, *offsetp, 1, byte_order);
24147  *offsetp += 1;
24148  f_totalVModMapKeys = tvb_get_guint8(tvb, *offsetp);
24149  proto_tree_add_item(t, hf_x11_xkb_GetMap_reply_totalVModMapKeys, tvb, *offsetp, 1, byte_order);
24150  *offsetp += 1;
24151  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
24152  *offsetp += 1;
24153  f_virtualMods = tvb_get_guint16(tvb, *offsetp, byte_order);
24154  {
24155  int* const virtualMods_bits [] = {
24156  &hf_x11_xkb_GetMap_reply_virtualMods_mask_0,
24157  &hf_x11_xkb_GetMap_reply_virtualMods_mask_1,
24158  &hf_x11_xkb_GetMap_reply_virtualMods_mask_2,
24159  &hf_x11_xkb_GetMap_reply_virtualMods_mask_3,
24160  &hf_x11_xkb_GetMap_reply_virtualMods_mask_4,
24161  &hf_x11_xkb_GetMap_reply_virtualMods_mask_5,
24162  &hf_x11_xkb_GetMap_reply_virtualMods_mask_6,
24163  &hf_x11_xkb_GetMap_reply_virtualMods_mask_7,
24164  &hf_x11_xkb_GetMap_reply_virtualMods_mask_8,
24165  &hf_x11_xkb_GetMap_reply_virtualMods_mask_9,
24166  &hf_x11_xkb_GetMap_reply_virtualMods_mask_10,
24167  &hf_x11_xkb_GetMap_reply_virtualMods_mask_11,
24168  &hf_x11_xkb_GetMap_reply_virtualMods_mask_12,
24169  &hf_x11_xkb_GetMap_reply_virtualMods_mask_13,
24170  &hf_x11_xkb_GetMap_reply_virtualMods_mask_14,
24171  &hf_x11_xkb_GetMap_reply_virtualMods_mask_15,
24172  NULL
24173  };
24174  proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_xkb_GetMap_reply_virtualMods, ett_x11_rectangle, virtualMods_bits, byte_order);
24175  }
24176  *offsetp += 2;
24177  if (f_present & (1U << 0)) {
24178  struct_xkb_KeyType(tvb, offsetp, t, byte_order, f_nTypes);
24179  }
24180  if (f_present & (1U << 1)) {
24181  struct_xkb_KeySymMap(tvb, offsetp, t, byte_order, f_nKeySyms);
24182  }
24183  if (f_present & (1U << 4)) {
24184  listOfByte(tvb, offsetp, t, hf_x11_xkb_GetMap_reply_KeyActions_acts_rtrn_count, f_nKeyActions, byte_order);
24185  if (*offsetp % 4) {
24186  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, (4 - *offsetp % 4), ENC_NA);
24187  *offsetp += (4 - *offsetp % 4);
24188  }
24189  struct_xkb_Action(tvb, offsetp, t, byte_order, f_totalActions);
24190  }
24191  if (f_present & (1U << 5)) {
24192  struct_xkb_SetBehavior(tvb, offsetp, t, byte_order, f_totalKeyBehaviors);
24193  }
24194  if (f_present & (1U << 6)) {
24195  listOfByte(tvb, offsetp, t, hf_x11_xkb_GetMap_reply_VirtualMods_vmods_rtrn, ws_count_ones(f_virtualMods), byte_order);
24196  if (*offsetp % 4) {
24197  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, (4 - *offsetp % 4), ENC_NA);
24198  *offsetp += (4 - *offsetp % 4);
24199  }
24200  }
24201  if (f_present & (1U << 3)) {
24202  struct_xkb_SetExplicit(tvb, offsetp, t, byte_order, f_totalKeyExplicit);
24203  if (*offsetp % 4) {
24204  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, (4 - *offsetp % 4), ENC_NA);
24205  *offsetp += (4 - *offsetp % 4);
24206  }
24207  }
24208  if (f_present & (1U << 2)) {
24209  struct_xkb_KeyModMap(tvb, offsetp, t, byte_order, f_totalModMapKeys);
24210  if (*offsetp % 4) {
24211  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, (4 - *offsetp % 4), ENC_NA);
24212  *offsetp += (4 - *offsetp % 4);
24213  }
24214  }
24215  if (f_present & (1U << 7)) {
24216  struct_xkb_KeyVModMap(tvb, offsetp, t, byte_order, f_totalVModMapKeys);
24217  }
24218 }
24219 
24220 static void xkbSetMap(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
24221 {
24222  int f_present;
24223  int f_nTypes;
24224  int f_nKeySyms;
24225  int f_nKeyActions;
24226  int f_totalActions;
24227  int f_totalKeyBehaviors;
24228  int f_totalKeyExplicit;
24229  int f_totalModMapKeys;
24230  int f_totalVModMapKeys;
24231  int f_virtualMods;
24232  proto_tree_add_item(t, hf_x11_xkb_SetMap_deviceSpec, tvb, *offsetp, 2, byte_order);
24233  *offsetp += 2;
24234  f_present = tvb_get_guint16(tvb, *offsetp, byte_order);
24235  {
24236  int* const present_bits [] = {
24237  &hf_x11_xkb_SetMap_present_mask_KeyTypes,
24238  &hf_x11_xkb_SetMap_present_mask_KeySyms,
24239  &hf_x11_xkb_SetMap_present_mask_ModifierMap,
24240  &hf_x11_xkb_SetMap_present_mask_ExplicitComponents,
24241  &hf_x11_xkb_SetMap_present_mask_KeyActions,
24242  &hf_x11_xkb_SetMap_present_mask_KeyBehaviors,
24243  &hf_x11_xkb_SetMap_present_mask_VirtualMods,
24244  &hf_x11_xkb_SetMap_present_mask_VirtualModMap,
24245  NULL
24246  };
24247  proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_xkb_SetMap_present, ett_x11_rectangle, present_bits, byte_order);
24248  }
24249  *offsetp += 2;
24250  {
24251  int* const flags_bits [] = {
24252  &hf_x11_xkb_SetMap_flags_mask_ResizeTypes,
24253  &hf_x11_xkb_SetMap_flags_mask_RecomputeActions,
24254  NULL
24255  };
24256  proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_xkb_SetMap_flags, ett_x11_rectangle, flags_bits, byte_order);
24257  }
24258  *offsetp += 2;
24259  proto_tree_add_item(t, hf_x11_xkb_SetMap_minKeyCode, tvb, *offsetp, 1, byte_order);
24260  *offsetp += 1;
24261  proto_tree_add_item(t, hf_x11_xkb_SetMap_maxKeyCode, tvb, *offsetp, 1, byte_order);
24262  *offsetp += 1;
24263  proto_tree_add_item(t, hf_x11_xkb_SetMap_firstType, tvb, *offsetp, 1, byte_order);
24264  *offsetp += 1;
24265  f_nTypes = tvb_get_guint8(tvb, *offsetp);
24266  proto_tree_add_item(t, hf_x11_xkb_SetMap_nTypes, tvb, *offsetp, 1, byte_order);
24267  *offsetp += 1;
24268  proto_tree_add_item(t, hf_x11_xkb_SetMap_firstKeySym, tvb, *offsetp, 1, byte_order);
24269  *offsetp += 1;
24270  f_nKeySyms = tvb_get_guint8(tvb, *offsetp);
24271  proto_tree_add_item(t, hf_x11_xkb_SetMap_nKeySyms, tvb, *offsetp, 1, byte_order);
24272  *offsetp += 1;
24273  proto_tree_add_item(t, hf_x11_xkb_SetMap_totalSyms, tvb, *offsetp, 2, byte_order);
24274  *offsetp += 2;
24275  proto_tree_add_item(t, hf_x11_xkb_SetMap_firstKeyAction, tvb, *offsetp, 1, byte_order);
24276  *offsetp += 1;
24277  f_nKeyActions = tvb_get_guint8(tvb, *offsetp);
24278  proto_tree_add_item(t, hf_x11_xkb_SetMap_nKeyActions, tvb, *offsetp, 1, byte_order);
24279  *offsetp += 1;
24280  f_totalActions = tvb_get_guint16(tvb, *offsetp, byte_order);
24281  proto_tree_add_item(t, hf_x11_xkb_SetMap_totalActions, tvb, *offsetp, 2, byte_order);
24282  *offsetp += 2;
24283  proto_tree_add_item(t, hf_x11_xkb_SetMap_firstKeyBehavior, tvb, *offsetp, 1, byte_order);
24284  *offsetp += 1;
24285  proto_tree_add_item(t, hf_x11_xkb_SetMap_nKeyBehaviors, tvb, *offsetp, 1, byte_order);
24286  *offsetp += 1;
24287  f_totalKeyBehaviors = tvb_get_guint8(tvb, *offsetp);
24288  proto_tree_add_item(t, hf_x11_xkb_SetMap_totalKeyBehaviors, tvb, *offsetp, 1, byte_order);
24289  *offsetp += 1;
24290  proto_tree_add_item(t, hf_x11_xkb_SetMap_firstKeyExplicit, tvb, *offsetp, 1, byte_order);
24291  *offsetp += 1;
24292  proto_tree_add_item(t, hf_x11_xkb_SetMap_nKeyExplicit, tvb, *offsetp, 1, byte_order);
24293  *offsetp += 1;
24294  f_totalKeyExplicit = tvb_get_guint8(tvb, *offsetp);
24295  proto_tree_add_item(t, hf_x11_xkb_SetMap_totalKeyExplicit, tvb, *offsetp, 1, byte_order);
24296  *offsetp += 1;
24297  proto_tree_add_item(t, hf_x11_xkb_SetMap_firstModMapKey, tvb, *offsetp, 1, byte_order);
24298  *offsetp += 1;
24299  proto_tree_add_item(t, hf_x11_xkb_SetMap_nModMapKeys, tvb, *offsetp, 1, byte_order);
24300  *offsetp += 1;
24301  f_totalModMapKeys = tvb_get_guint8(tvb, *offsetp);
24302  proto_tree_add_item(t, hf_x11_xkb_SetMap_totalModMapKeys, tvb, *offsetp, 1, byte_order);
24303  *offsetp += 1;
24304  proto_tree_add_item(t, hf_x11_xkb_SetMap_firstVModMapKey, tvb, *offsetp, 1, byte_order);
24305  *offsetp += 1;
24306  proto_tree_add_item(t, hf_x11_xkb_SetMap_nVModMapKeys, tvb, *offsetp, 1, byte_order);
24307  *offsetp += 1;
24308  f_totalVModMapKeys = tvb_get_guint8(tvb, *offsetp);
24309  proto_tree_add_item(t, hf_x11_xkb_SetMap_totalVModMapKeys, tvb, *offsetp, 1, byte_order);
24310  *offsetp += 1;
24311  f_virtualMods = tvb_get_guint16(tvb, *offsetp, byte_order);
24312  {
24313  int* const virtualMods_bits [] = {
24314  &hf_x11_xkb_SetMap_virtualMods_mask_0,
24315  &hf_x11_xkb_SetMap_virtualMods_mask_1,
24316  &hf_x11_xkb_SetMap_virtualMods_mask_2,
24317  &hf_x11_xkb_SetMap_virtualMods_mask_3,
24318  &hf_x11_xkb_SetMap_virtualMods_mask_4,
24319  &hf_x11_xkb_SetMap_virtualMods_mask_5,
24320  &hf_x11_xkb_SetMap_virtualMods_mask_6,
24321  &hf_x11_xkb_SetMap_virtualMods_mask_7,
24322  &hf_x11_xkb_SetMap_virtualMods_mask_8,
24323  &hf_x11_xkb_SetMap_virtualMods_mask_9,
24324  &hf_x11_xkb_SetMap_virtualMods_mask_10,
24325  &hf_x11_xkb_SetMap_virtualMods_mask_11,
24326  &hf_x11_xkb_SetMap_virtualMods_mask_12,
24327  &hf_x11_xkb_SetMap_virtualMods_mask_13,
24328  &hf_x11_xkb_SetMap_virtualMods_mask_14,
24329  &hf_x11_xkb_SetMap_virtualMods_mask_15,
24330  NULL
24331  };
24332  proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_xkb_SetMap_virtualMods, ett_x11_rectangle, virtualMods_bits, byte_order);
24333  }
24334  *offsetp += 2;
24335  if (f_present & (1U << 0)) {
24336  struct_xkb_SetKeyType(tvb, offsetp, t, byte_order, f_nTypes);
24337  length -= f_nTypes * 0;
24338  }
24339  if (f_present & (1U << 1)) {
24340  struct_xkb_KeySymMap(tvb, offsetp, t, byte_order, f_nKeySyms);
24341  length -= f_nKeySyms * 0;
24342  }
24343  if (f_present & (1U << 4)) {
24344  listOfByte(tvb, offsetp, t, hf_x11_xkb_SetMap_KeyActions_actionsCount, f_nKeyActions, byte_order);
24345  length -= f_nKeyActions * 1;
24346  if (*offsetp % 4) {
24347  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, (4 - *offsetp % 4), ENC_NA);
24348  *offsetp += (4 - *offsetp % 4);
24349  }
24350  length = ((length + 3) & ~3);
24351  struct_xkb_Action(tvb, offsetp, t, byte_order, f_totalActions);
24352  length -= f_totalActions * 8;
24353  }
24354  if (f_present & (1U << 5)) {
24355  struct_xkb_SetBehavior(tvb, offsetp, t, byte_order, f_totalKeyBehaviors);
24356  length -= f_totalKeyBehaviors * 4;
24357  }
24358  if (f_present & (1U << 6)) {
24359  listOfByte(tvb, offsetp, t, hf_x11_xkb_SetMap_VirtualMods_vmods, ws_count_ones(f_virtualMods), byte_order);
24360  length -= ws_count_ones(f_virtualMods) * 1;
24361  if (*offsetp % 4) {
24362  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, (4 - *offsetp % 4), ENC_NA);
24363  *offsetp += (4 - *offsetp % 4);
24364  }
24365  length = ((length + 3) & ~3);
24366  }
24367  if (f_present & (1U << 3)) {
24368  struct_xkb_SetExplicit(tvb, offsetp, t, byte_order, f_totalKeyExplicit);
24369  length -= f_totalKeyExplicit * 2;
24370  }
24371  if (f_present & (1U << 2)) {
24372  struct_xkb_KeyModMap(tvb, offsetp, t, byte_order, f_totalModMapKeys);
24373  length -= f_totalModMapKeys * 2;
24374  }
24375  if (f_present & (1U << 7)) {
24376  struct_xkb_KeyVModMap(tvb, offsetp, t, byte_order, f_totalVModMapKeys);
24377  length -= f_totalVModMapKeys * 4;
24378  }
24379 }
24380 
24381 static void xkbGetCompatMap(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
24382 {
24383  proto_tree_add_item(t, hf_x11_xkb_GetCompatMap_deviceSpec, tvb, *offsetp, 2, byte_order);
24384  *offsetp += 2;
24385  {
24386  int* const groups_bits [] = {
24387  &hf_x11_xkb_GetCompatMap_groups_mask_Group1,
24388  &hf_x11_xkb_GetCompatMap_groups_mask_Group2,
24389  &hf_x11_xkb_GetCompatMap_groups_mask_Group3,
24390  &hf_x11_xkb_GetCompatMap_groups_mask_Group4,
24391  NULL
24392  };
24393  proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_xkb_GetCompatMap_groups, ett_x11_rectangle, groups_bits, byte_order);
24394  }
24395  *offsetp += 1;
24396  proto_tree_add_item(t, hf_x11_xkb_GetCompatMap_getAllSI, tvb, *offsetp, 1, byte_order);
24397  *offsetp += 1;
24398  proto_tree_add_item(t, hf_x11_xkb_GetCompatMap_firstSI, tvb, *offsetp, 2, byte_order);
24399  *offsetp += 2;
24400  proto_tree_add_item(t, hf_x11_xkb_GetCompatMap_nSI, tvb, *offsetp, 2, byte_order);
24401  *offsetp += 2;
24402 }
24403 static void xkbGetCompatMap_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
24404 {
24405  int sequence_number;
24406  int f_groupsRtrn;
24407  int f_nSIRtrn;
24408 
24409  col_append_fstr(pinfo->cinfo, COL_INFO, "-GetCompatMap");
24410 
24411  REPLY(reply);
24412  proto_tree_add_item(t, hf_x11_xkb_GetCompatMap_reply_deviceID, tvb, *offsetp, 1, byte_order);
24413  *offsetp += 1;
24414  sequence_number = tvb_get_guint16(tvb, *offsetp, byte_order);
24415  proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
24416  "%d (xkb-GetCompatMap)", sequence_number);
24417  *offsetp += 2;
24418  proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
24419  *offsetp += 4;
24420  f_groupsRtrn = tvb_get_guint8(tvb, *offsetp);
24421  {
24422  int* const groupsRtrn_bits [] = {
24423  &hf_x11_xkb_GetCompatMap_reply_groupsRtrn_mask_Group1,
24424  &hf_x11_xkb_GetCompatMap_reply_groupsRtrn_mask_Group2,
24425  &hf_x11_xkb_GetCompatMap_reply_groupsRtrn_mask_Group3,
24426  &hf_x11_xkb_GetCompatMap_reply_groupsRtrn_mask_Group4,
24427  NULL
24428  };
24429  proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_xkb_GetCompatMap_reply_groupsRtrn, ett_x11_rectangle, groupsRtrn_bits, byte_order);
24430  }
24431  *offsetp += 1;
24432  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
24433  *offsetp += 1;
24434  proto_tree_add_item(t, hf_x11_xkb_GetCompatMap_reply_firstSIRtrn, tvb, *offsetp, 2, byte_order);
24435  *offsetp += 2;
24436  f_nSIRtrn = tvb_get_guint16(tvb, *offsetp, byte_order);
24437  proto_tree_add_item(t, hf_x11_xkb_GetCompatMap_reply_nSIRtrn, tvb, *offsetp, 2, byte_order);
24438  *offsetp += 2;
24439  proto_tree_add_item(t, hf_x11_xkb_GetCompatMap_reply_nTotalSI, tvb, *offsetp, 2, byte_order);
24440  *offsetp += 2;
24441  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 16, ENC_NA);
24442  *offsetp += 16;
24443  struct_xkb_SymInterpret(tvb, offsetp, t, byte_order, f_nSIRtrn);
24444  struct_xkb_ModDef(tvb, offsetp, t, byte_order, ws_count_ones(f_groupsRtrn));
24445 }
24446 
24447 static void xkbSetCompatMap(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
24448 {
24449  int f_groups;
24450  int f_nSI;
24451  proto_tree_add_item(t, hf_x11_xkb_SetCompatMap_deviceSpec, tvb, *offsetp, 2, byte_order);
24452  *offsetp += 2;
24453  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
24454  *offsetp += 1;
24455  proto_tree_add_item(t, hf_x11_xkb_SetCompatMap_recomputeActions, tvb, *offsetp, 1, byte_order);
24456  *offsetp += 1;
24457  proto_tree_add_item(t, hf_x11_xkb_SetCompatMap_truncateSI, tvb, *offsetp, 1, byte_order);
24458  *offsetp += 1;
24459  f_groups = tvb_get_guint8(tvb, *offsetp);
24460  {
24461  int* const groups_bits [] = {
24462  &hf_x11_xkb_SetCompatMap_groups_mask_Group1,
24463  &hf_x11_xkb_SetCompatMap_groups_mask_Group2,
24464  &hf_x11_xkb_SetCompatMap_groups_mask_Group3,
24465  &hf_x11_xkb_SetCompatMap_groups_mask_Group4,
24466  NULL
24467  };
24468  proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_xkb_SetCompatMap_groups, ett_x11_rectangle, groups_bits, byte_order);
24469  }
24470  *offsetp += 1;
24471  proto_tree_add_item(t, hf_x11_xkb_SetCompatMap_firstSI, tvb, *offsetp, 2, byte_order);
24472  *offsetp += 2;
24473  f_nSI = tvb_get_guint16(tvb, *offsetp, byte_order);
24474  proto_tree_add_item(t, hf_x11_xkb_SetCompatMap_nSI, tvb, *offsetp, 2, byte_order);
24475  *offsetp += 2;
24476  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 2, ENC_NA);
24477  *offsetp += 2;
24478  struct_xkb_SymInterpret(tvb, offsetp, t, byte_order, f_nSI);
24479  length -= f_nSI * 16;
24480  struct_xkb_ModDef(tvb, offsetp, t, byte_order, ws_count_ones(f_groups));
24481  length -= ws_count_ones(f_groups) * 4;
24482 }
24483 
24484 static void xkbGetIndicatorState(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
24485 {
24486  proto_tree_add_item(t, hf_x11_xkb_GetIndicatorState_deviceSpec, tvb, *offsetp, 2, byte_order);
24487  *offsetp += 2;
24488  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 2, ENC_NA);
24489  *offsetp += 2;
24490 }
24491 static void xkbGetIndicatorState_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
24492 {
24493  int sequence_number;
24494 
24495  col_append_fstr(pinfo->cinfo, COL_INFO, "-GetIndicatorState");
24496 
24497  REPLY(reply);
24498  proto_tree_add_item(t, hf_x11_xkb_GetIndicatorState_reply_deviceID, tvb, *offsetp, 1, byte_order);
24499  *offsetp += 1;
24500  sequence_number = tvb_get_guint16(tvb, *offsetp, byte_order);
24501  proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
24502  "%d (xkb-GetIndicatorState)", sequence_number);
24503  *offsetp += 2;
24504  proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
24505  *offsetp += 4;
24506  proto_tree_add_item(t, hf_x11_xkb_GetIndicatorState_reply_state, tvb, *offsetp, 4, byte_order);
24507  *offsetp += 4;
24508  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 20, ENC_NA);
24509  *offsetp += 20;
24510 }
24511 
24512 static void xkbGetIndicatorMap(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
24513 {
24514  proto_tree_add_item(t, hf_x11_xkb_GetIndicatorMap_deviceSpec, tvb, *offsetp, 2, byte_order);
24515  *offsetp += 2;
24516  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 2, ENC_NA);
24517  *offsetp += 2;
24518  proto_tree_add_item(t, hf_x11_xkb_GetIndicatorMap_which, tvb, *offsetp, 4, byte_order);
24519  *offsetp += 4;
24520 }
24521 static void xkbGetIndicatorMap_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
24522 {
24523  int sequence_number;
24524  int f_which;
24525 
24526  col_append_fstr(pinfo->cinfo, COL_INFO, "-GetIndicatorMap");
24527 
24528  REPLY(reply);
24529  proto_tree_add_item(t, hf_x11_xkb_GetIndicatorMap_reply_deviceID, tvb, *offsetp, 1, byte_order);
24530  *offsetp += 1;
24531  sequence_number = tvb_get_guint16(tvb, *offsetp, byte_order);
24532  proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
24533  "%d (xkb-GetIndicatorMap)", sequence_number);
24534  *offsetp += 2;
24535  proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
24536  *offsetp += 4;
24537  f_which = tvb_get_guint32(tvb, *offsetp, byte_order);
24538  proto_tree_add_item(t, hf_x11_xkb_GetIndicatorMap_reply_which, tvb, *offsetp, 4, byte_order);
24539  *offsetp += 4;
24540  proto_tree_add_item(t, hf_x11_xkb_GetIndicatorMap_reply_realIndicators, tvb, *offsetp, 4, byte_order);
24541  *offsetp += 4;
24542  proto_tree_add_item(t, hf_x11_xkb_GetIndicatorMap_reply_nIndicators, tvb, *offsetp, 1, byte_order);
24543  *offsetp += 1;
24544  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 15, ENC_NA);
24545  *offsetp += 15;
24546  struct_xkb_IndicatorMap(tvb, offsetp, t, byte_order, ws_count_ones(f_which));
24547 }
24548 
24549 static void xkbSetIndicatorMap(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
24550 {
24551  int f_which;
24552  proto_tree_add_item(t, hf_x11_xkb_SetIndicatorMap_deviceSpec, tvb, *offsetp, 2, byte_order);
24553  *offsetp += 2;
24554  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 2, ENC_NA);
24555  *offsetp += 2;
24556  f_which = tvb_get_guint32(tvb, *offsetp, byte_order);
24557  proto_tree_add_item(t, hf_x11_xkb_SetIndicatorMap_which, tvb, *offsetp, 4, byte_order);
24558  *offsetp += 4;
24559  struct_xkb_IndicatorMap(tvb, offsetp, t, byte_order, ws_count_ones(f_which));
24560  length -= ws_count_ones(f_which) * 12;
24561 }
24562 
24563 static void xkbGetNamedIndicator(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
24564 {
24565  proto_tree_add_item(t, hf_x11_xkb_GetNamedIndicator_deviceSpec, tvb, *offsetp, 2, byte_order);
24566  *offsetp += 2;
24567  field16(tvb, offsetp, t, hf_x11_xkb_GetNamedIndicator_ledClass, byte_order);
24568  field16(tvb, offsetp, t, hf_x11_xkb_GetNamedIndicator_ledID, byte_order);
24569  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 2, ENC_NA);
24570  *offsetp += 2;
24571  proto_tree_add_item(t, hf_x11_xkb_GetNamedIndicator_indicator, tvb, *offsetp, 4, byte_order);
24572  *offsetp += 4;
24573 }
24574 static void xkbGetNamedIndicator_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
24575 {
24576  int sequence_number;
24577 
24578  col_append_fstr(pinfo->cinfo, COL_INFO, "-GetNamedIndicator");
24579 
24580  REPLY(reply);
24581  proto_tree_add_item(t, hf_x11_xkb_GetNamedIndicator_reply_deviceID, tvb, *offsetp, 1, byte_order);
24582  *offsetp += 1;
24583  sequence_number = tvb_get_guint16(tvb, *offsetp, byte_order);
24584  proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
24585  "%d (xkb-GetNamedIndicator)", sequence_number);
24586  *offsetp += 2;
24587  proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
24588  *offsetp += 4;
24589  proto_tree_add_item(t, hf_x11_xkb_GetNamedIndicator_reply_indicator, tvb, *offsetp, 4, byte_order);
24590  *offsetp += 4;
24591  proto_tree_add_item(t, hf_x11_xkb_GetNamedIndicator_reply_found, tvb, *offsetp, 1, byte_order);
24592  *offsetp += 1;
24593  proto_tree_add_item(t, hf_x11_xkb_GetNamedIndicator_reply_on, tvb, *offsetp, 1, byte_order);
24594  *offsetp += 1;
24595  proto_tree_add_item(t, hf_x11_xkb_GetNamedIndicator_reply_realIndicator, tvb, *offsetp, 1, byte_order);
24596  *offsetp += 1;
24597  proto_tree_add_item(t, hf_x11_xkb_GetNamedIndicator_reply_ndx, tvb, *offsetp, 1, byte_order);
24598  *offsetp += 1;
24599  {
24600  int* const map_flags_bits [] = {
24601  &hf_x11_xkb_GetNamedIndicator_reply_map_flags_mask_LEDDrivesKB,
24602  &hf_x11_xkb_GetNamedIndicator_reply_map_flags_mask_NoAutomatic,
24603  &hf_x11_xkb_GetNamedIndicator_reply_map_flags_mask_NoExplicit,
24604  NULL
24605  };
24606  proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_xkb_GetNamedIndicator_reply_map_flags, ett_x11_rectangle, map_flags_bits, byte_order);
24607  }
24608  *offsetp += 1;
24609  {
24610  int* const map_whichGroups_bits [] = {
24611  &hf_x11_xkb_GetNamedIndicator_reply_map_whichGroups_mask_UseBase,
24612  &hf_x11_xkb_GetNamedIndicator_reply_map_whichGroups_mask_UseLatched,
24613  &hf_x11_xkb_GetNamedIndicator_reply_map_whichGroups_mask_UseLocked,
24614  &hf_x11_xkb_GetNamedIndicator_reply_map_whichGroups_mask_UseEffective,
24615  &hf_x11_xkb_GetNamedIndicator_reply_map_whichGroups_mask_UseCompat,
24616  NULL
24617  };
24618  proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_xkb_GetNamedIndicator_reply_map_whichGroups, ett_x11_rectangle, map_whichGroups_bits, byte_order);
24619  }
24620  *offsetp += 1;
24621  {
24622  int* const map_groups_bits [] = {
24623  &hf_x11_xkb_GetNamedIndicator_reply_map_groups_mask_Any,
24624  NULL
24625  };
24626  proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_xkb_GetNamedIndicator_reply_map_groups, ett_x11_rectangle, map_groups_bits, byte_order);
24627  }
24628  *offsetp += 1;
24629  {
24630  int* const map_whichMods_bits [] = {
24631  &hf_x11_xkb_GetNamedIndicator_reply_map_whichMods_mask_UseBase,
24632  &hf_x11_xkb_GetNamedIndicator_reply_map_whichMods_mask_UseLatched,
24633  &hf_x11_xkb_GetNamedIndicator_reply_map_whichMods_mask_UseLocked,
24634  &hf_x11_xkb_GetNamedIndicator_reply_map_whichMods_mask_UseEffective,
24635  &hf_x11_xkb_GetNamedIndicator_reply_map_whichMods_mask_UseCompat,
24636  NULL
24637  };
24638  proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_xkb_GetNamedIndicator_reply_map_whichMods, ett_x11_rectangle, map_whichMods_bits, byte_order);
24639  }
24640  *offsetp += 1;
24641  {
24642  int* const map_mods_bits [] = {
24643  &hf_x11_xkb_GetNamedIndicator_reply_map_mods_mask_Shift,
24644  &hf_x11_xkb_GetNamedIndicator_reply_map_mods_mask_Lock,
24645  &hf_x11_xkb_GetNamedIndicator_reply_map_mods_mask_Control,
24646  &hf_x11_xkb_GetNamedIndicator_reply_map_mods_mask_1,
24647  &hf_x11_xkb_GetNamedIndicator_reply_map_mods_mask_2,
24648  &hf_x11_xkb_GetNamedIndicator_reply_map_mods_mask_3,
24649  &hf_x11_xkb_GetNamedIndicator_reply_map_mods_mask_4,
24650  &hf_x11_xkb_GetNamedIndicator_reply_map_mods_mask_5,
24651  &hf_x11_xkb_GetNamedIndicator_reply_map_mods_mask_Any,
24652  NULL
24653  };
24654  proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_xkb_GetNamedIndicator_reply_map_mods, ett_x11_rectangle, map_mods_bits, byte_order);
24655  }
24656  *offsetp += 1;
24657  {
24658  int* const map_realMods_bits [] = {
24659  &hf_x11_xkb_GetNamedIndicator_reply_map_realMods_mask_Shift,
24660  &hf_x11_xkb_GetNamedIndicator_reply_map_realMods_mask_Lock,
24661  &hf_x11_xkb_GetNamedIndicator_reply_map_realMods_mask_Control,
24662  &hf_x11_xkb_GetNamedIndicator_reply_map_realMods_mask_1,
24663  &hf_x11_xkb_GetNamedIndicator_reply_map_realMods_mask_2,
24664  &hf_x11_xkb_GetNamedIndicator_reply_map_realMods_mask_3,
24665  &hf_x11_xkb_GetNamedIndicator_reply_map_realMods_mask_4,
24666  &hf_x11_xkb_GetNamedIndicator_reply_map_realMods_mask_5,
24667  &hf_x11_xkb_GetNamedIndicator_reply_map_realMods_mask_Any,
24668  NULL
24669  };
24670  proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_xkb_GetNamedIndicator_reply_map_realMods, ett_x11_rectangle, map_realMods_bits, byte_order);
24671  }
24672  *offsetp += 1;
24673  {
24674  int* const map_vmod_bits [] = {
24675  &hf_x11_xkb_GetNamedIndicator_reply_map_vmod_mask_0,
24676  &hf_x11_xkb_GetNamedIndicator_reply_map_vmod_mask_1,
24677  &hf_x11_xkb_GetNamedIndicator_reply_map_vmod_mask_2,
24678  &hf_x11_xkb_GetNamedIndicator_reply_map_vmod_mask_3,
24679  &hf_x11_xkb_GetNamedIndicator_reply_map_vmod_mask_4,
24680  &hf_x11_xkb_GetNamedIndicator_reply_map_vmod_mask_5,
24681  &hf_x11_xkb_GetNamedIndicator_reply_map_vmod_mask_6,
24682  &hf_x11_xkb_GetNamedIndicator_reply_map_vmod_mask_7,
24683  &hf_x11_xkb_GetNamedIndicator_reply_map_vmod_mask_8,
24684  &hf_x11_xkb_GetNamedIndicator_reply_map_vmod_mask_9,
24685  &hf_x11_xkb_GetNamedIndicator_reply_map_vmod_mask_10,
24686  &hf_x11_xkb_GetNamedIndicator_reply_map_vmod_mask_11,
24687  &hf_x11_xkb_GetNamedIndicator_reply_map_vmod_mask_12,
24688  &hf_x11_xkb_GetNamedIndicator_reply_map_vmod_mask_13,
24689  &hf_x11_xkb_GetNamedIndicator_reply_map_vmod_mask_14,
24690  &hf_x11_xkb_GetNamedIndicator_reply_map_vmod_mask_15,
24691  NULL
24692  };
24693  proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_xkb_GetNamedIndicator_reply_map_vmod, ett_x11_rectangle, map_vmod_bits, byte_order);
24694  }
24695  *offsetp += 2;
24696  {
24697  int* const map_ctrls_bits [] = {
24698  &hf_x11_xkb_GetNamedIndicator_reply_map_ctrls_mask_RepeatKeys,
24699  &hf_x11_xkb_GetNamedIndicator_reply_map_ctrls_mask_SlowKeys,
24700  &hf_x11_xkb_GetNamedIndicator_reply_map_ctrls_mask_BounceKeys,
24701  &hf_x11_xkb_GetNamedIndicator_reply_map_ctrls_mask_StickyKeys,
24702  &hf_x11_xkb_GetNamedIndicator_reply_map_ctrls_mask_MouseKeys,
24703  &hf_x11_xkb_GetNamedIndicator_reply_map_ctrls_mask_MouseKeysAccel,
24704  &hf_x11_xkb_GetNamedIndicator_reply_map_ctrls_mask_AccessXKeys,
24705  &hf_x11_xkb_GetNamedIndicator_reply_map_ctrls_mask_AccessXTimeoutMask,
24706  &hf_x11_xkb_GetNamedIndicator_reply_map_ctrls_mask_AccessXFeedbackMask,
24707  &hf_x11_xkb_GetNamedIndicator_reply_map_ctrls_mask_AudibleBellMask,
24708  &hf_x11_xkb_GetNamedIndicator_reply_map_ctrls_mask_Overlay1Mask,
24709  &hf_x11_xkb_GetNamedIndicator_reply_map_ctrls_mask_Overlay2Mask,
24710  &hf_x11_xkb_GetNamedIndicator_reply_map_ctrls_mask_IgnoreGroupLockMask,
24711  NULL
24712  };
24713  proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_xkb_GetNamedIndicator_reply_map_ctrls, ett_x11_rectangle, map_ctrls_bits, byte_order);
24714  }
24715  *offsetp += 4;
24716  proto_tree_add_item(t, hf_x11_xkb_GetNamedIndicator_reply_supported, tvb, *offsetp, 1, byte_order);
24717  *offsetp += 1;
24718  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 3, ENC_NA);
24719  *offsetp += 3;
24720 }
24721 
24722 static void xkbSetNamedIndicator(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
24723 {
24724  proto_tree_add_item(t, hf_x11_xkb_SetNamedIndicator_deviceSpec, tvb, *offsetp, 2, byte_order);
24725  *offsetp += 2;
24726  field16(tvb, offsetp, t, hf_x11_xkb_SetNamedIndicator_ledClass, byte_order);
24727  field16(tvb, offsetp, t, hf_x11_xkb_SetNamedIndicator_ledID, byte_order);
24728  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 2, ENC_NA);
24729  *offsetp += 2;
24730  proto_tree_add_item(t, hf_x11_xkb_SetNamedIndicator_indicator, tvb, *offsetp, 4, byte_order);
24731  *offsetp += 4;
24732  proto_tree_add_item(t, hf_x11_xkb_SetNamedIndicator_setState, tvb, *offsetp, 1, byte_order);
24733  *offsetp += 1;
24734  proto_tree_add_item(t, hf_x11_xkb_SetNamedIndicator_on, tvb, *offsetp, 1, byte_order);
24735  *offsetp += 1;
24736  proto_tree_add_item(t, hf_x11_xkb_SetNamedIndicator_setMap, tvb, *offsetp, 1, byte_order);
24737  *offsetp += 1;
24738  proto_tree_add_item(t, hf_x11_xkb_SetNamedIndicator_createMap, tvb, *offsetp, 1, byte_order);
24739  *offsetp += 1;
24740  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
24741  *offsetp += 1;
24742  {
24743  int* const map_flags_bits [] = {
24744  &hf_x11_xkb_SetNamedIndicator_map_flags_mask_LEDDrivesKB,
24745  &hf_x11_xkb_SetNamedIndicator_map_flags_mask_NoAutomatic,
24746  &hf_x11_xkb_SetNamedIndicator_map_flags_mask_NoExplicit,
24747  NULL
24748  };
24749  proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_xkb_SetNamedIndicator_map_flags, ett_x11_rectangle, map_flags_bits, byte_order);
24750  }
24751  *offsetp += 1;
24752  {
24753  int* const map_whichGroups_bits [] = {
24754  &hf_x11_xkb_SetNamedIndicator_map_whichGroups_mask_UseBase,
24755  &hf_x11_xkb_SetNamedIndicator_map_whichGroups_mask_UseLatched,
24756  &hf_x11_xkb_SetNamedIndicator_map_whichGroups_mask_UseLocked,
24757  &hf_x11_xkb_SetNamedIndicator_map_whichGroups_mask_UseEffective,
24758  &hf_x11_xkb_SetNamedIndicator_map_whichGroups_mask_UseCompat,
24759  NULL
24760  };
24761  proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_xkb_SetNamedIndicator_map_whichGroups, ett_x11_rectangle, map_whichGroups_bits, byte_order);
24762  }
24763  *offsetp += 1;
24764  {
24765  int* const map_groups_bits [] = {
24766  &hf_x11_xkb_SetNamedIndicator_map_groups_mask_Any,
24767  NULL
24768  };
24769  proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_xkb_SetNamedIndicator_map_groups, ett_x11_rectangle, map_groups_bits, byte_order);
24770  }
24771  *offsetp += 1;
24772  {
24773  int* const map_whichMods_bits [] = {
24774  &hf_x11_xkb_SetNamedIndicator_map_whichMods_mask_UseBase,
24775  &hf_x11_xkb_SetNamedIndicator_map_whichMods_mask_UseLatched,
24776  &hf_x11_xkb_SetNamedIndicator_map_whichMods_mask_UseLocked,
24777  &hf_x11_xkb_SetNamedIndicator_map_whichMods_mask_UseEffective,
24778  &hf_x11_xkb_SetNamedIndicator_map_whichMods_mask_UseCompat,
24779  NULL
24780  };
24781  proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_xkb_SetNamedIndicator_map_whichMods, ett_x11_rectangle, map_whichMods_bits, byte_order);
24782  }
24783  *offsetp += 1;
24784  {
24785  int* const map_realMods_bits [] = {
24786  &hf_x11_xkb_SetNamedIndicator_map_realMods_mask_Shift,
24787  &hf_x11_xkb_SetNamedIndicator_map_realMods_mask_Lock,
24788  &hf_x11_xkb_SetNamedIndicator_map_realMods_mask_Control,
24789  &hf_x11_xkb_SetNamedIndicator_map_realMods_mask_1,
24790  &hf_x11_xkb_SetNamedIndicator_map_realMods_mask_2,
24791  &hf_x11_xkb_SetNamedIndicator_map_realMods_mask_3,
24792  &hf_x11_xkb_SetNamedIndicator_map_realMods_mask_4,
24793  &hf_x11_xkb_SetNamedIndicator_map_realMods_mask_5,
24794  &hf_x11_xkb_SetNamedIndicator_map_realMods_mask_Any,
24795  NULL
24796  };
24797  proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_xkb_SetNamedIndicator_map_realMods, ett_x11_rectangle, map_realMods_bits, byte_order);
24798  }
24799  *offsetp += 1;
24800  {
24801  int* const map_vmods_bits [] = {
24802  &hf_x11_xkb_SetNamedIndicator_map_vmods_mask_0,
24803  &hf_x11_xkb_SetNamedIndicator_map_vmods_mask_1,
24804  &hf_x11_xkb_SetNamedIndicator_map_vmods_mask_2,
24805  &hf_x11_xkb_SetNamedIndicator_map_vmods_mask_3,
24806  &hf_x11_xkb_SetNamedIndicator_map_vmods_mask_4,
24807  &hf_x11_xkb_SetNamedIndicator_map_vmods_mask_5,
24808  &hf_x11_xkb_SetNamedIndicator_map_vmods_mask_6,
24809  &hf_x11_xkb_SetNamedIndicator_map_vmods_mask_7,
24810  &hf_x11_xkb_SetNamedIndicator_map_vmods_mask_8,
24811  &hf_x11_xkb_SetNamedIndicator_map_vmods_mask_9,
24812  &hf_x11_xkb_SetNamedIndicator_map_vmods_mask_10,
24813  &hf_x11_xkb_SetNamedIndicator_map_vmods_mask_11,
24814  &hf_x11_xkb_SetNamedIndicator_map_vmods_mask_12,
24815  &hf_x11_xkb_SetNamedIndicator_map_vmods_mask_13,
24816  &hf_x11_xkb_SetNamedIndicator_map_vmods_mask_14,
24817  &hf_x11_xkb_SetNamedIndicator_map_vmods_mask_15,
24818  NULL
24819  };
24820  proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_xkb_SetNamedIndicator_map_vmods, ett_x11_rectangle, map_vmods_bits, byte_order);
24821  }
24822  *offsetp += 2;
24823  {
24824  int* const map_ctrls_bits [] = {
24825  &hf_x11_xkb_SetNamedIndicator_map_ctrls_mask_RepeatKeys,
24826  &hf_x11_xkb_SetNamedIndicator_map_ctrls_mask_SlowKeys,
24827  &hf_x11_xkb_SetNamedIndicator_map_ctrls_mask_BounceKeys,
24828  &hf_x11_xkb_SetNamedIndicator_map_ctrls_mask_StickyKeys,
24829  &hf_x11_xkb_SetNamedIndicator_map_ctrls_mask_MouseKeys,
24830  &hf_x11_xkb_SetNamedIndicator_map_ctrls_mask_MouseKeysAccel,
24831  &hf_x11_xkb_SetNamedIndicator_map_ctrls_mask_AccessXKeys,
24832  &hf_x11_xkb_SetNamedIndicator_map_ctrls_mask_AccessXTimeoutMask,
24833  &hf_x11_xkb_SetNamedIndicator_map_ctrls_mask_AccessXFeedbackMask,
24834  &hf_x11_xkb_SetNamedIndicator_map_ctrls_mask_AudibleBellMask,
24835  &hf_x11_xkb_SetNamedIndicator_map_ctrls_mask_Overlay1Mask,
24836  &hf_x11_xkb_SetNamedIndicator_map_ctrls_mask_Overlay2Mask,
24837  &hf_x11_xkb_SetNamedIndicator_map_ctrls_mask_IgnoreGroupLockMask,
24838  NULL
24839  };
24840  proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_xkb_SetNamedIndicator_map_ctrls, ett_x11_rectangle, map_ctrls_bits, byte_order);
24841  }
24842  *offsetp += 4;
24843 }
24844 
24845 static void xkbGetNames(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
24846 {
24847  proto_tree_add_item(t, hf_x11_xkb_GetNames_deviceSpec, tvb, *offsetp, 2, byte_order);
24848  *offsetp += 2;
24849  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 2, ENC_NA);
24850  *offsetp += 2;
24851  {
24852  int* const which_bits [] = {
24853  &hf_x11_xkb_GetNames_which_mask_Keycodes,
24854  &hf_x11_xkb_GetNames_which_mask_Geometry,
24855  &hf_x11_xkb_GetNames_which_mask_Symbols,
24856  &hf_x11_xkb_GetNames_which_mask_PhysSymbols,
24857  &hf_x11_xkb_GetNames_which_mask_Types,
24858  &hf_x11_xkb_GetNames_which_mask_Compat,
24859  &hf_x11_xkb_GetNames_which_mask_KeyTypeNames,
24860  &hf_x11_xkb_GetNames_which_mask_KTLevelNames,
24861  &hf_x11_xkb_GetNames_which_mask_IndicatorNames,
24862  &hf_x11_xkb_GetNames_which_mask_KeyNames,
24863  &hf_x11_xkb_GetNames_which_mask_KeyAliases,
24864  &hf_x11_xkb_GetNames_which_mask_VirtualModNames,
24865  &hf_x11_xkb_GetNames_which_mask_GroupNames,
24866  &hf_x11_xkb_GetNames_which_mask_RGNames,
24867  NULL
24868  };
24869  proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_xkb_GetNames_which, ett_x11_rectangle, which_bits, byte_order);
24870  }
24871  *offsetp += 4;
24872 }
24873 static void xkbGetNames_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
24874 {
24875  int sequence_number;
24876  int f_which;
24877  int f_nTypes;
24878  int f_groupNames;
24879  int f_virtualMods;
24880  int f_nKeys;
24881  int f_indicators;
24882  int f_nRadioGroups;
24883  int f_nKeyAliases;
24884 
24885  col_append_fstr(pinfo->cinfo, COL_INFO, "-GetNames");
24886 
24887  REPLY(reply);
24888  proto_tree_add_item(t, hf_x11_xkb_GetNames_reply_deviceID, tvb, *offsetp, 1, byte_order);
24889  *offsetp += 1;
24890  sequence_number = tvb_get_guint16(tvb, *offsetp, byte_order);
24891  proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
24892  "%d (xkb-GetNames)", sequence_number);
24893  *offsetp += 2;
24894  proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
24895  *offsetp += 4;
24896  f_which = tvb_get_guint32(tvb, *offsetp, byte_order);
24897  {
24898  int* const which_bits [] = {
24899  &hf_x11_xkb_GetNames_reply_which_mask_Keycodes,
24900  &hf_x11_xkb_GetNames_reply_which_mask_Geometry,
24901  &hf_x11_xkb_GetNames_reply_which_mask_Symbols,
24902  &hf_x11_xkb_GetNames_reply_which_mask_PhysSymbols,
24903  &hf_x11_xkb_GetNames_reply_which_mask_Types,
24904  &hf_x11_xkb_GetNames_reply_which_mask_Compat,
24905  &hf_x11_xkb_GetNames_reply_which_mask_KeyTypeNames,
24906  &hf_x11_xkb_GetNames_reply_which_mask_KTLevelNames,
24907  &hf_x11_xkb_GetNames_reply_which_mask_IndicatorNames,
24908  &hf_x11_xkb_GetNames_reply_which_mask_KeyNames,
24909  &hf_x11_xkb_GetNames_reply_which_mask_KeyAliases,
24910  &hf_x11_xkb_GetNames_reply_which_mask_VirtualModNames,
24911  &hf_x11_xkb_GetNames_reply_which_mask_GroupNames,
24912  &hf_x11_xkb_GetNames_reply_which_mask_RGNames,
24913  NULL
24914  };
24915  proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_xkb_GetNames_reply_which, ett_x11_rectangle, which_bits, byte_order);
24916  }
24917  *offsetp += 4;
24918  proto_tree_add_item(t, hf_x11_xkb_GetNames_reply_minKeyCode, tvb, *offsetp, 1, byte_order);
24919  *offsetp += 1;
24920  proto_tree_add_item(t, hf_x11_xkb_GetNames_reply_maxKeyCode, tvb, *offsetp, 1, byte_order);
24921  *offsetp += 1;
24922  f_nTypes = tvb_get_guint8(tvb, *offsetp);
24923  proto_tree_add_item(t, hf_x11_xkb_GetNames_reply_nTypes, tvb, *offsetp, 1, byte_order);
24924  *offsetp += 1;
24925  f_groupNames = tvb_get_guint8(tvb, *offsetp);
24926  {
24927  int* const groupNames_bits [] = {
24928  &hf_x11_xkb_GetNames_reply_groupNames_mask_Group1,
24929  &hf_x11_xkb_GetNames_reply_groupNames_mask_Group2,
24930  &hf_x11_xkb_GetNames_reply_groupNames_mask_Group3,
24931  &hf_x11_xkb_GetNames_reply_groupNames_mask_Group4,
24932  NULL
24933  };
24934  proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_xkb_GetNames_reply_groupNames, ett_x11_rectangle, groupNames_bits, byte_order);
24935  }
24936  *offsetp += 1;
24937  f_virtualMods = tvb_get_guint16(tvb, *offsetp, byte_order);
24938  {
24939  int* const virtualMods_bits [] = {
24940  &hf_x11_xkb_GetNames_reply_virtualMods_mask_0,
24941  &hf_x11_xkb_GetNames_reply_virtualMods_mask_1,
24942  &hf_x11_xkb_GetNames_reply_virtualMods_mask_2,
24943  &hf_x11_xkb_GetNames_reply_virtualMods_mask_3,
24944  &hf_x11_xkb_GetNames_reply_virtualMods_mask_4,
24945  &hf_x11_xkb_GetNames_reply_virtualMods_mask_5,
24946  &hf_x11_xkb_GetNames_reply_virtualMods_mask_6,
24947  &hf_x11_xkb_GetNames_reply_virtualMods_mask_7,
24948  &hf_x11_xkb_GetNames_reply_virtualMods_mask_8,
24949  &hf_x11_xkb_GetNames_reply_virtualMods_mask_9,
24950  &hf_x11_xkb_GetNames_reply_virtualMods_mask_10,
24951  &hf_x11_xkb_GetNames_reply_virtualMods_mask_11,
24952  &hf_x11_xkb_GetNames_reply_virtualMods_mask_12,
24953  &hf_x11_xkb_GetNames_reply_virtualMods_mask_13,
24954  &hf_x11_xkb_GetNames_reply_virtualMods_mask_14,
24955  &hf_x11_xkb_GetNames_reply_virtualMods_mask_15,
24956  NULL
24957  };
24958  proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_xkb_GetNames_reply_virtualMods, ett_x11_rectangle, virtualMods_bits, byte_order);
24959  }
24960  *offsetp += 2;
24961  proto_tree_add_item(t, hf_x11_xkb_GetNames_reply_firstKey, tvb, *offsetp, 1, byte_order);
24962  *offsetp += 1;
24963  f_nKeys = tvb_get_guint8(tvb, *offsetp);
24964  proto_tree_add_item(t, hf_x11_xkb_GetNames_reply_nKeys, tvb, *offsetp, 1, byte_order);
24965  *offsetp += 1;
24966  f_indicators = tvb_get_guint32(tvb, *offsetp, byte_order);
24967  proto_tree_add_item(t, hf_x11_xkb_GetNames_reply_indicators, tvb, *offsetp, 4, byte_order);
24968  *offsetp += 4;
24969  f_nRadioGroups = tvb_get_guint8(tvb, *offsetp);
24970  proto_tree_add_item(t, hf_x11_xkb_GetNames_reply_nRadioGroups, tvb, *offsetp, 1, byte_order);
24971  *offsetp += 1;
24972  f_nKeyAliases = tvb_get_guint8(tvb, *offsetp);
24973  proto_tree_add_item(t, hf_x11_xkb_GetNames_reply_nKeyAliases, tvb, *offsetp, 1, byte_order);
24974  *offsetp += 1;
24975  proto_tree_add_item(t, hf_x11_xkb_GetNames_reply_nKTLevels, tvb, *offsetp, 2, byte_order);
24976  *offsetp += 2;
24977  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 4, ENC_NA);
24978  *offsetp += 4;
24979  if (f_which & (1U << 0)) {
24980  proto_tree_add_item(t, hf_x11_xkb_GetNames_reply_Keycodes_keycodesName, tvb, *offsetp, 4, byte_order);
24981  *offsetp += 4;
24982  }
24983  if (f_which & (1U << 1)) {
24984  proto_tree_add_item(t, hf_x11_xkb_GetNames_reply_Geometry_geometryName, tvb, *offsetp, 4, byte_order);
24985  *offsetp += 4;
24986  }
24987  if (f_which & (1U << 2)) {
24988  proto_tree_add_item(t, hf_x11_xkb_GetNames_reply_Symbols_symbolsName, tvb, *offsetp, 4, byte_order);
24989  *offsetp += 4;
24990  }
24991  if (f_which & (1U << 3)) {
24992  proto_tree_add_item(t, hf_x11_xkb_GetNames_reply_PhysSymbols_physSymbolsName, tvb, *offsetp, 4, byte_order);
24993  *offsetp += 4;
24994  }
24995  if (f_which & (1U << 4)) {
24996  proto_tree_add_item(t, hf_x11_xkb_GetNames_reply_Types_typesName, tvb, *offsetp, 4, byte_order);
24997  *offsetp += 4;
24998  }
24999  if (f_which & (1U << 5)) {
25000  proto_tree_add_item(t, hf_x11_xkb_GetNames_reply_Compat_compatName, tvb, *offsetp, 4, byte_order);
25001  *offsetp += 4;
25002  }
25003  if (f_which & (1U << 6)) {
25004  listOfCard32(tvb, offsetp, t, hf_x11_xkb_GetNames_reply_KeyTypeNames_typeNames, hf_x11_xkb_GetNames_reply_KeyTypeNames_typeNames_item, f_nTypes, byte_order);
25005  }
25006  if (f_which & (1U << 7)) {
25007  int sumof_nLevelsPerType = 0;
25008  {
25009  int i;
25010  for (i = 0; i < f_nTypes; i++) {
25011  sumof_nLevelsPerType += tvb_get_guint8(tvb, *offsetp + i * 1);
25012  }
25013  }
25014  listOfByte(tvb, offsetp, t, hf_x11_xkb_GetNames_reply_KTLevelNames_nLevelsPerType, f_nTypes, byte_order);
25015  if (*offsetp % 4) {
25016  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, (4 - *offsetp % 4), ENC_NA);
25017  *offsetp += (4 - *offsetp % 4);
25018  }
25019  listOfCard32(tvb, offsetp, t, hf_x11_xkb_GetNames_reply_KTLevelNames_ktLevelNames, hf_x11_xkb_GetNames_reply_KTLevelNames_ktLevelNames_item, sumof_nLevelsPerType, byte_order);
25020  }
25021  if (f_which & (1U << 8)) {
25022  listOfCard32(tvb, offsetp, t, hf_x11_xkb_GetNames_reply_IndicatorNames_indicatorNames, hf_x11_xkb_GetNames_reply_IndicatorNames_indicatorNames_item, ws_count_ones(f_indicators), byte_order);
25023  }
25024  if (f_which & (1U << 11)) {
25025  listOfCard32(tvb, offsetp, t, hf_x11_xkb_GetNames_reply_VirtualModNames_virtualModNames, hf_x11_xkb_GetNames_reply_VirtualModNames_virtualModNames_item, ws_count_ones(f_virtualMods), byte_order);
25026  }
25027  if (f_which & (1U << 12)) {
25028  listOfCard32(tvb, offsetp, t, hf_x11_xkb_GetNames_reply_GroupNames_groups, hf_x11_xkb_GetNames_reply_GroupNames_groups_item, ws_count_ones(f_groupNames), byte_order);
25029  }
25030  if (f_which & (1U << 9)) {
25031  struct_xkb_KeyName(tvb, offsetp, t, byte_order, f_nKeys);
25032  }
25033  if (f_which & (1U << 10)) {
25034  struct_xkb_KeyAlias(tvb, offsetp, t, byte_order, f_nKeyAliases);
25035  }
25036  if (f_which & (1U << 13)) {
25037  listOfCard32(tvb, offsetp, t, hf_x11_xkb_GetNames_reply_RGNames_radioGroupNames, hf_x11_xkb_GetNames_reply_RGNames_radioGroupNames_item, f_nRadioGroups, byte_order);
25038  }
25039 }
25040 
25041 static void xkbSetNames(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
25042 {
25043  int f_virtualMods;
25044  int f_which;
25045  int f_nTypes;
25046  int f_indicators;
25047  int f_groupNames;
25048  int f_nRadioGroups;
25049  int f_nKeys;
25050  int f_nKeyAliases;
25051  proto_tree_add_item(t, hf_x11_xkb_SetNames_deviceSpec, tvb, *offsetp, 2, byte_order);
25052  *offsetp += 2;
25053  f_virtualMods = tvb_get_guint16(tvb, *offsetp, byte_order);
25054  {
25055  int* const virtualMods_bits [] = {
25056  &hf_x11_xkb_SetNames_virtualMods_mask_0,
25057  &hf_x11_xkb_SetNames_virtualMods_mask_1,
25058  &hf_x11_xkb_SetNames_virtualMods_mask_2,
25059  &hf_x11_xkb_SetNames_virtualMods_mask_3,
25060  &hf_x11_xkb_SetNames_virtualMods_mask_4,
25061  &hf_x11_xkb_SetNames_virtualMods_mask_5,
25062  &hf_x11_xkb_SetNames_virtualMods_mask_6,
25063  &hf_x11_xkb_SetNames_virtualMods_mask_7,
25064  &hf_x11_xkb_SetNames_virtualMods_mask_8,
25065  &hf_x11_xkb_SetNames_virtualMods_mask_9,
25066  &hf_x11_xkb_SetNames_virtualMods_mask_10,
25067  &hf_x11_xkb_SetNames_virtualMods_mask_11,
25068  &hf_x11_xkb_SetNames_virtualMods_mask_12,
25069  &hf_x11_xkb_SetNames_virtualMods_mask_13,
25070  &hf_x11_xkb_SetNames_virtualMods_mask_14,
25071  &hf_x11_xkb_SetNames_virtualMods_mask_15,
25072  NULL
25073  };
25074  proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_xkb_SetNames_virtualMods, ett_x11_rectangle, virtualMods_bits, byte_order);
25075  }
25076  *offsetp += 2;
25077  f_which = tvb_get_guint32(tvb, *offsetp, byte_order);
25078  {
25079  int* const which_bits [] = {
25080  &hf_x11_xkb_SetNames_which_mask_Keycodes,
25081  &hf_x11_xkb_SetNames_which_mask_Geometry,
25082  &hf_x11_xkb_SetNames_which_mask_Symbols,
25083  &hf_x11_xkb_SetNames_which_mask_PhysSymbols,
25084  &hf_x11_xkb_SetNames_which_mask_Types,
25085  &hf_x11_xkb_SetNames_which_mask_Compat,
25086  &hf_x11_xkb_SetNames_which_mask_KeyTypeNames,
25087  &hf_x11_xkb_SetNames_which_mask_KTLevelNames,
25088  &hf_x11_xkb_SetNames_which_mask_IndicatorNames,
25089  &hf_x11_xkb_SetNames_which_mask_KeyNames,
25090  &hf_x11_xkb_SetNames_which_mask_KeyAliases,
25091  &hf_x11_xkb_SetNames_which_mask_VirtualModNames,
25092  &hf_x11_xkb_SetNames_which_mask_GroupNames,
25093  &hf_x11_xkb_SetNames_which_mask_RGNames,
25094  NULL
25095  };
25096  proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_xkb_SetNames_which, ett_x11_rectangle, which_bits, byte_order);
25097  }
25098  *offsetp += 4;
25099  proto_tree_add_item(t, hf_x11_xkb_SetNames_firstType, tvb, *offsetp, 1, byte_order);
25100  *offsetp += 1;
25101  f_nTypes = tvb_get_guint8(tvb, *offsetp);
25102  proto_tree_add_item(t, hf_x11_xkb_SetNames_nTypes, tvb, *offsetp, 1, byte_order);
25103  *offsetp += 1;
25104  proto_tree_add_item(t, hf_x11_xkb_SetNames_firstKTLevelt, tvb, *offsetp, 1, byte_order);
25105  *offsetp += 1;
25106  proto_tree_add_item(t, hf_x11_xkb_SetNames_nKTLevels, tvb, *offsetp, 1, byte_order);
25107  *offsetp += 1;
25108  f_indicators = tvb_get_guint32(tvb, *offsetp, byte_order);
25109  proto_tree_add_item(t, hf_x11_xkb_SetNames_indicators, tvb, *offsetp, 4, byte_order);
25110  *offsetp += 4;
25111  f_groupNames = tvb_get_guint8(tvb, *offsetp);
25112  {
25113  int* const groupNames_bits [] = {
25114  &hf_x11_xkb_SetNames_groupNames_mask_Group1,
25115  &hf_x11_xkb_SetNames_groupNames_mask_Group2,
25116  &hf_x11_xkb_SetNames_groupNames_mask_Group3,
25117  &hf_x11_xkb_SetNames_groupNames_mask_Group4,
25118  NULL
25119  };
25120  proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_xkb_SetNames_groupNames, ett_x11_rectangle, groupNames_bits, byte_order);
25121  }
25122  *offsetp += 1;
25123  f_nRadioGroups = tvb_get_guint8(tvb, *offsetp);
25124  proto_tree_add_item(t, hf_x11_xkb_SetNames_nRadioGroups, tvb, *offsetp, 1, byte_order);
25125  *offsetp += 1;
25126  proto_tree_add_item(t, hf_x11_xkb_SetNames_firstKey, tvb, *offsetp, 1, byte_order);
25127  *offsetp += 1;
25128  f_nKeys = tvb_get_guint8(tvb, *offsetp);
25129  proto_tree_add_item(t, hf_x11_xkb_SetNames_nKeys, tvb, *offsetp, 1, byte_order);
25130  *offsetp += 1;
25131  f_nKeyAliases = tvb_get_guint8(tvb, *offsetp);
25132  proto_tree_add_item(t, hf_x11_xkb_SetNames_nKeyAliases, tvb, *offsetp, 1, byte_order);
25133  *offsetp += 1;
25134  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
25135  *offsetp += 1;
25136  proto_tree_add_item(t, hf_x11_xkb_SetNames_totalKTLevelNames, tvb, *offsetp, 2, byte_order);
25137  *offsetp += 2;
25138  if (f_which & (1U << 0)) {
25139  proto_tree_add_item(t, hf_x11_xkb_SetNames_Keycodes_keycodesName, tvb, *offsetp, 4, byte_order);
25140  *offsetp += 4;
25141  }
25142  if (f_which & (1U << 1)) {
25143  proto_tree_add_item(t, hf_x11_xkb_SetNames_Geometry_geometryName, tvb, *offsetp, 4, byte_order);
25144  *offsetp += 4;
25145  }
25146  if (f_which & (1U << 2)) {
25147  proto_tree_add_item(t, hf_x11_xkb_SetNames_Symbols_symbolsName, tvb, *offsetp, 4, byte_order);
25148  *offsetp += 4;
25149  }
25150  if (f_which & (1U << 3)) {
25151  proto_tree_add_item(t, hf_x11_xkb_SetNames_PhysSymbols_physSymbolsName, tvb, *offsetp, 4, byte_order);
25152  *offsetp += 4;
25153  }
25154  if (f_which & (1U << 4)) {
25155  proto_tree_add_item(t, hf_x11_xkb_SetNames_Types_typesName, tvb, *offsetp, 4, byte_order);
25156  *offsetp += 4;
25157  }
25158  if (f_which & (1U << 5)) {
25159  proto_tree_add_item(t, hf_x11_xkb_SetNames_Compat_compatName, tvb, *offsetp, 4, byte_order);
25160  *offsetp += 4;
25161  }
25162  if (f_which & (1U << 6)) {
25163  listOfCard32(tvb, offsetp, t, hf_x11_xkb_SetNames_KeyTypeNames_typeNames, hf_x11_xkb_SetNames_KeyTypeNames_typeNames_item, f_nTypes, byte_order);
25164  length -= f_nTypes * 4;
25165  }
25166  if (f_which & (1U << 7)) {
25167  int sumof_nLevelsPerType = 0;
25168  {
25169  int i;
25170  for (i = 0; i < f_nTypes; i++) {
25171  sumof_nLevelsPerType += tvb_get_guint8(tvb, *offsetp + i * 1);
25172  }
25173  }
25174  listOfByte(tvb, offsetp, t, hf_x11_xkb_SetNames_KTLevelNames_nLevelsPerType, f_nTypes, byte_order);
25175  length -= f_nTypes * 1;
25176  if (*offsetp % 4) {
25177  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, (4 - *offsetp % 4), ENC_NA);
25178  *offsetp += (4 - *offsetp % 4);
25179  }
25180  length = ((length + 3) & ~3);
25181  listOfCard32(tvb, offsetp, t, hf_x11_xkb_SetNames_KTLevelNames_ktLevelNames, hf_x11_xkb_SetNames_KTLevelNames_ktLevelNames_item, sumof_nLevelsPerType, byte_order);
25182  length -= sumof_nLevelsPerType * 4;
25183  }
25184  if (f_which & (1U << 8)) {
25185  listOfCard32(tvb, offsetp, t, hf_x11_xkb_SetNames_IndicatorNames_indicatorNames, hf_x11_xkb_SetNames_IndicatorNames_indicatorNames_item, ws_count_ones(f_indicators), byte_order);
25186  length -= ws_count_ones(f_indicators) * 4;
25187  }
25188  if (f_which & (1U << 11)) {
25189  listOfCard32(tvb, offsetp, t, hf_x11_xkb_SetNames_VirtualModNames_virtualModNames, hf_x11_xkb_SetNames_VirtualModNames_virtualModNames_item, ws_count_ones(f_virtualMods), byte_order);
25190  length -= ws_count_ones(f_virtualMods) * 4;
25191  }
25192  if (f_which & (1U << 12)) {
25193  listOfCard32(tvb, offsetp, t, hf_x11_xkb_SetNames_GroupNames_groups, hf_x11_xkb_SetNames_GroupNames_groups_item, ws_count_ones(f_groupNames), byte_order);
25194  length -= ws_count_ones(f_groupNames) * 4;
25195  }
25196  if (f_which & (1U << 9)) {
25197  struct_xkb_KeyName(tvb, offsetp, t, byte_order, f_nKeys);
25198  length -= f_nKeys * 4;
25199  }
25200  if (f_which & (1U << 10)) {
25201  struct_xkb_KeyAlias(tvb, offsetp, t, byte_order, f_nKeyAliases);
25202  length -= f_nKeyAliases * 8;
25203  }
25204  if (f_which & (1U << 13)) {
25205  listOfCard32(tvb, offsetp, t, hf_x11_xkb_SetNames_RGNames_radioGroupNames, hf_x11_xkb_SetNames_RGNames_radioGroupNames_item, f_nRadioGroups, byte_order);
25206  length -= f_nRadioGroups * 4;
25207  }
25208 }
25209 
25210 static void xkbPerClientFlags(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
25211 {
25212  proto_tree_add_item(t, hf_x11_xkb_PerClientFlags_deviceSpec, tvb, *offsetp, 2, byte_order);
25213  *offsetp += 2;
25214  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 2, ENC_NA);
25215  *offsetp += 2;
25216  {
25217  int* const change_bits [] = {
25218  &hf_x11_xkb_PerClientFlags_change_mask_DetectableAutoRepeat,
25219  &hf_x11_xkb_PerClientFlags_change_mask_GrabsUseXKBState,
25220  &hf_x11_xkb_PerClientFlags_change_mask_AutoResetControls,
25221  &hf_x11_xkb_PerClientFlags_change_mask_LookupStateWhenGrabbed,
25222  &hf_x11_xkb_PerClientFlags_change_mask_SendEventUsesXKBState,
25223  NULL
25224  };
25225  proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_xkb_PerClientFlags_change, ett_x11_rectangle, change_bits, byte_order);
25226  }
25227  *offsetp += 4;
25228  {
25229  int* const value_bits [] = {
25230  &hf_x11_xkb_PerClientFlags_value_mask_DetectableAutoRepeat,
25231  &hf_x11_xkb_PerClientFlags_value_mask_GrabsUseXKBState,
25232  &hf_x11_xkb_PerClientFlags_value_mask_AutoResetControls,
25233  &hf_x11_xkb_PerClientFlags_value_mask_LookupStateWhenGrabbed,
25234  &hf_x11_xkb_PerClientFlags_value_mask_SendEventUsesXKBState,
25235  NULL
25236  };
25237  proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_xkb_PerClientFlags_value, ett_x11_rectangle, value_bits, byte_order);
25238  }
25239  *offsetp += 4;
25240  {
25241  int* const ctrlsToChange_bits [] = {
25242  &hf_x11_xkb_PerClientFlags_ctrlsToChange_mask_RepeatKeys,
25243  &hf_x11_xkb_PerClientFlags_ctrlsToChange_mask_SlowKeys,
25244  &hf_x11_xkb_PerClientFlags_ctrlsToChange_mask_BounceKeys,
25245  &hf_x11_xkb_PerClientFlags_ctrlsToChange_mask_StickyKeys,
25246  &hf_x11_xkb_PerClientFlags_ctrlsToChange_mask_MouseKeys,
25247  &hf_x11_xkb_PerClientFlags_ctrlsToChange_mask_MouseKeysAccel,
25248  &hf_x11_xkb_PerClientFlags_ctrlsToChange_mask_AccessXKeys,
25249  &hf_x11_xkb_PerClientFlags_ctrlsToChange_mask_AccessXTimeoutMask,
25250  &hf_x11_xkb_PerClientFlags_ctrlsToChange_mask_AccessXFeedbackMask,
25251  &hf_x11_xkb_PerClientFlags_ctrlsToChange_mask_AudibleBellMask,
25252  &hf_x11_xkb_PerClientFlags_ctrlsToChange_mask_Overlay1Mask,
25253  &hf_x11_xkb_PerClientFlags_ctrlsToChange_mask_Overlay2Mask,
25254  &hf_x11_xkb_PerClientFlags_ctrlsToChange_mask_IgnoreGroupLockMask,
25255  NULL
25256  };
25257  proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_xkb_PerClientFlags_ctrlsToChange, ett_x11_rectangle, ctrlsToChange_bits, byte_order);
25258  }
25259  *offsetp += 4;
25260  {
25261  int* const autoCtrls_bits [] = {
25262  &hf_x11_xkb_PerClientFlags_autoCtrls_mask_RepeatKeys,
25263  &hf_x11_xkb_PerClientFlags_autoCtrls_mask_SlowKeys,
25264  &hf_x11_xkb_PerClientFlags_autoCtrls_mask_BounceKeys,
25265  &hf_x11_xkb_PerClientFlags_autoCtrls_mask_StickyKeys,
25266  &hf_x11_xkb_PerClientFlags_autoCtrls_mask_MouseKeys,
25267  &hf_x11_xkb_PerClientFlags_autoCtrls_mask_MouseKeysAccel,
25268  &hf_x11_xkb_PerClientFlags_autoCtrls_mask_AccessXKeys,
25269  &hf_x11_xkb_PerClientFlags_autoCtrls_mask_AccessXTimeoutMask,
25270  &hf_x11_xkb_PerClientFlags_autoCtrls_mask_AccessXFeedbackMask,
25271  &hf_x11_xkb_PerClientFlags_autoCtrls_mask_AudibleBellMask,
25272  &hf_x11_xkb_PerClientFlags_autoCtrls_mask_Overlay1Mask,
25273  &hf_x11_xkb_PerClientFlags_autoCtrls_mask_Overlay2Mask,
25274  &hf_x11_xkb_PerClientFlags_autoCtrls_mask_IgnoreGroupLockMask,
25275  NULL
25276  };
25277  proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_xkb_PerClientFlags_autoCtrls, ett_x11_rectangle, autoCtrls_bits, byte_order);
25278  }
25279  *offsetp += 4;
25280  {
25281  int* const autoCtrlsValues_bits [] = {
25282  &hf_x11_xkb_PerClientFlags_autoCtrlsValues_mask_RepeatKeys,
25283  &hf_x11_xkb_PerClientFlags_autoCtrlsValues_mask_SlowKeys,
25284  &hf_x11_xkb_PerClientFlags_autoCtrlsValues_mask_BounceKeys,
25285  &hf_x11_xkb_PerClientFlags_autoCtrlsValues_mask_StickyKeys,
25286  &hf_x11_xkb_PerClientFlags_autoCtrlsValues_mask_MouseKeys,
25287  &hf_x11_xkb_PerClientFlags_autoCtrlsValues_mask_MouseKeysAccel,
25288  &hf_x11_xkb_PerClientFlags_autoCtrlsValues_mask_AccessXKeys,
25289  &hf_x11_xkb_PerClientFlags_autoCtrlsValues_mask_AccessXTimeoutMask,
25290  &hf_x11_xkb_PerClientFlags_autoCtrlsValues_mask_AccessXFeedbackMask,
25291  &hf_x11_xkb_PerClientFlags_autoCtrlsValues_mask_AudibleBellMask,
25292  &hf_x11_xkb_PerClientFlags_autoCtrlsValues_mask_Overlay1Mask,
25293  &hf_x11_xkb_PerClientFlags_autoCtrlsValues_mask_Overlay2Mask,
25294  &hf_x11_xkb_PerClientFlags_autoCtrlsValues_mask_IgnoreGroupLockMask,
25295  NULL
25296  };
25297  proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_xkb_PerClientFlags_autoCtrlsValues, ett_x11_rectangle, autoCtrlsValues_bits, byte_order);
25298  }
25299  *offsetp += 4;
25300 }
25301 static void xkbPerClientFlags_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
25302 {
25303  int sequence_number;
25304 
25305  col_append_fstr(pinfo->cinfo, COL_INFO, "-PerClientFlags");
25306 
25307  REPLY(reply);
25308  proto_tree_add_item(t, hf_x11_xkb_PerClientFlags_reply_deviceID, tvb, *offsetp, 1, byte_order);
25309  *offsetp += 1;
25310  sequence_number = tvb_get_guint16(tvb, *offsetp, byte_order);
25311  proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
25312  "%d (xkb-PerClientFlags)", sequence_number);
25313  *offsetp += 2;
25314  proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
25315  *offsetp += 4;
25316  {
25317  int* const supported_bits [] = {
25318  &hf_x11_xkb_PerClientFlags_reply_supported_mask_DetectableAutoRepeat,
25319  &hf_x11_xkb_PerClientFlags_reply_supported_mask_GrabsUseXKBState,
25320  &hf_x11_xkb_PerClientFlags_reply_supported_mask_AutoResetControls,
25321  &hf_x11_xkb_PerClientFlags_reply_supported_mask_LookupStateWhenGrabbed,
25322  &hf_x11_xkb_PerClientFlags_reply_supported_mask_SendEventUsesXKBState,
25323  NULL
25324  };
25325  proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_xkb_PerClientFlags_reply_supported, ett_x11_rectangle, supported_bits, byte_order);
25326  }
25327  *offsetp += 4;
25328  {
25329  int* const value_bits [] = {
25330  &hf_x11_xkb_PerClientFlags_reply_value_mask_DetectableAutoRepeat,
25331  &hf_x11_xkb_PerClientFlags_reply_value_mask_GrabsUseXKBState,
25332  &hf_x11_xkb_PerClientFlags_reply_value_mask_AutoResetControls,
25333  &hf_x11_xkb_PerClientFlags_reply_value_mask_LookupStateWhenGrabbed,
25334  &hf_x11_xkb_PerClientFlags_reply_value_mask_SendEventUsesXKBState,
25335  NULL
25336  };
25337  proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_xkb_PerClientFlags_reply_value, ett_x11_rectangle, value_bits, byte_order);
25338  }
25339  *offsetp += 4;
25340  {
25341  int* const autoCtrls_bits [] = {
25342  &hf_x11_xkb_PerClientFlags_reply_autoCtrls_mask_RepeatKeys,
25343  &hf_x11_xkb_PerClientFlags_reply_autoCtrls_mask_SlowKeys,
25344  &hf_x11_xkb_PerClientFlags_reply_autoCtrls_mask_BounceKeys,
25345  &hf_x11_xkb_PerClientFlags_reply_autoCtrls_mask_StickyKeys,
25346  &hf_x11_xkb_PerClientFlags_reply_autoCtrls_mask_MouseKeys,
25347  &hf_x11_xkb_PerClientFlags_reply_autoCtrls_mask_MouseKeysAccel,
25348  &hf_x11_xkb_PerClientFlags_reply_autoCtrls_mask_AccessXKeys,
25349  &hf_x11_xkb_PerClientFlags_reply_autoCtrls_mask_AccessXTimeoutMask,
25350  &hf_x11_xkb_PerClientFlags_reply_autoCtrls_mask_AccessXFeedbackMask,
25351  &hf_x11_xkb_PerClientFlags_reply_autoCtrls_mask_AudibleBellMask,
25352  &hf_x11_xkb_PerClientFlags_reply_autoCtrls_mask_Overlay1Mask,
25353  &hf_x11_xkb_PerClientFlags_reply_autoCtrls_mask_Overlay2Mask,
25354  &hf_x11_xkb_PerClientFlags_reply_autoCtrls_mask_IgnoreGroupLockMask,
25355  NULL
25356  };
25357  proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_xkb_PerClientFlags_reply_autoCtrls, ett_x11_rectangle, autoCtrls_bits, byte_order);
25358  }
25359  *offsetp += 4;
25360  {
25361  int* const autoCtrlsValues_bits [] = {
25362  &hf_x11_xkb_PerClientFlags_reply_autoCtrlsValues_mask_RepeatKeys,
25363  &hf_x11_xkb_PerClientFlags_reply_autoCtrlsValues_mask_SlowKeys,
25364  &hf_x11_xkb_PerClientFlags_reply_autoCtrlsValues_mask_BounceKeys,
25365  &hf_x11_xkb_PerClientFlags_reply_autoCtrlsValues_mask_StickyKeys,
25366  &hf_x11_xkb_PerClientFlags_reply_autoCtrlsValues_mask_MouseKeys,
25367  &hf_x11_xkb_PerClientFlags_reply_autoCtrlsValues_mask_MouseKeysAccel,
25368  &hf_x11_xkb_PerClientFlags_reply_autoCtrlsValues_mask_AccessXKeys,
25369  &hf_x11_xkb_PerClientFlags_reply_autoCtrlsValues_mask_AccessXTimeoutMask,
25370  &hf_x11_xkb_PerClientFlags_reply_autoCtrlsValues_mask_AccessXFeedbackMask,
25371  &hf_x11_xkb_PerClientFlags_reply_autoCtrlsValues_mask_AudibleBellMask,
25372  &hf_x11_xkb_PerClientFlags_reply_autoCtrlsValues_mask_Overlay1Mask,
25373  &hf_x11_xkb_PerClientFlags_reply_autoCtrlsValues_mask_Overlay2Mask,
25374  &hf_x11_xkb_PerClientFlags_reply_autoCtrlsValues_mask_IgnoreGroupLockMask,
25375  NULL
25376  };
25377  proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_xkb_PerClientFlags_reply_autoCtrlsValues, ett_x11_rectangle, autoCtrlsValues_bits, byte_order);
25378  }
25379  *offsetp += 4;
25380  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 8, ENC_NA);
25381  *offsetp += 8;
25382 }
25383 
25384 static void xkbListComponents(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
25385 {
25386  proto_tree_add_item(t, hf_x11_xkb_ListComponents_deviceSpec, tvb, *offsetp, 2, byte_order);
25387  *offsetp += 2;
25388  proto_tree_add_item(t, hf_x11_xkb_ListComponents_maxNames, tvb, *offsetp, 2, byte_order);
25389  *offsetp += 2;
25390 }
25391 static void xkbListComponents_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
25392 {
25393  int sequence_number;
25394  int f_nKeymaps;
25395  int f_nKeycodes;
25396  int f_nTypes;
25397  int f_nCompatMaps;
25398  int f_nSymbols;
25399  int f_nGeometries;
25400 
25401  col_append_fstr(pinfo->cinfo, COL_INFO, "-ListComponents");
25402 
25403  REPLY(reply);
25404  proto_tree_add_item(t, hf_x11_xkb_ListComponents_reply_deviceID, tvb, *offsetp, 1, byte_order);
25405  *offsetp += 1;
25406  sequence_number = tvb_get_guint16(tvb, *offsetp, byte_order);
25407  proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
25408  "%d (xkb-ListComponents)", sequence_number);
25409  *offsetp += 2;
25410  proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
25411  *offsetp += 4;
25412  f_nKeymaps = tvb_get_guint16(tvb, *offsetp, byte_order);
25413  proto_tree_add_item(t, hf_x11_xkb_ListComponents_reply_nKeymaps, tvb, *offsetp, 2, byte_order);
25414  *offsetp += 2;
25415  f_nKeycodes = tvb_get_guint16(tvb, *offsetp, byte_order);
25416  proto_tree_add_item(t, hf_x11_xkb_ListComponents_reply_nKeycodes, tvb, *offsetp, 2, byte_order);
25417  *offsetp += 2;
25418  f_nTypes = tvb_get_guint16(tvb, *offsetp, byte_order);
25419  proto_tree_add_item(t, hf_x11_xkb_ListComponents_reply_nTypes, tvb, *offsetp, 2, byte_order);
25420  *offsetp += 2;
25421  f_nCompatMaps = tvb_get_guint16(tvb, *offsetp, byte_order);
25422  proto_tree_add_item(t, hf_x11_xkb_ListComponents_reply_nCompatMaps, tvb, *offsetp, 2, byte_order);
25423  *offsetp += 2;
25424  f_nSymbols = tvb_get_guint16(tvb, *offsetp, byte_order);
25425  proto_tree_add_item(t, hf_x11_xkb_ListComponents_reply_nSymbols, tvb, *offsetp, 2, byte_order);
25426  *offsetp += 2;
25427  f_nGeometries = tvb_get_guint16(tvb, *offsetp, byte_order);
25428  proto_tree_add_item(t, hf_x11_xkb_ListComponents_reply_nGeometries, tvb, *offsetp, 2, byte_order);
25429  *offsetp += 2;
25430  proto_tree_add_item(t, hf_x11_xkb_ListComponents_reply_extra, tvb, *offsetp, 2, byte_order);
25431  *offsetp += 2;
25432  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 10, ENC_NA);
25433  *offsetp += 10;
25434  struct_xkb_Listing(tvb, offsetp, t, byte_order, f_nKeymaps);
25435  struct_xkb_Listing(tvb, offsetp, t, byte_order, f_nKeycodes);
25436  struct_xkb_Listing(tvb, offsetp, t, byte_order, f_nTypes);
25437  struct_xkb_Listing(tvb, offsetp, t, byte_order, f_nCompatMaps);
25438  struct_xkb_Listing(tvb, offsetp, t, byte_order, f_nSymbols);
25439  struct_xkb_Listing(tvb, offsetp, t, byte_order, f_nGeometries);
25440 }
25441 
25442 static void xkbGetKbdByName(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
25443 {
25444  proto_tree_add_item(t, hf_x11_xkb_GetKbdByName_deviceSpec, tvb, *offsetp, 2, byte_order);
25445  *offsetp += 2;
25446  {
25447  int* const need_bits [] = {
25448  &hf_x11_xkb_GetKbdByName_need_mask_Types,
25449  &hf_x11_xkb_GetKbdByName_need_mask_CompatMap,
25450  &hf_x11_xkb_GetKbdByName_need_mask_ClientSymbols,
25451  &hf_x11_xkb_GetKbdByName_need_mask_ServerSymbols,
25452  &hf_x11_xkb_GetKbdByName_need_mask_IndicatorMaps,
25453  &hf_x11_xkb_GetKbdByName_need_mask_KeyNames,
25454  &hf_x11_xkb_GetKbdByName_need_mask_Geometry,
25455  &hf_x11_xkb_GetKbdByName_need_mask_OtherNames,
25456  NULL
25457  };
25458  proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_xkb_GetKbdByName_need, ett_x11_rectangle, need_bits, byte_order);
25459  }
25460  *offsetp += 2;
25461  {
25462  int* const want_bits [] = {
25463  &hf_x11_xkb_GetKbdByName_want_mask_Types,
25464  &hf_x11_xkb_GetKbdByName_want_mask_CompatMap,
25465  &hf_x11_xkb_GetKbdByName_want_mask_ClientSymbols,
25466  &hf_x11_xkb_GetKbdByName_want_mask_ServerSymbols,
25467  &hf_x11_xkb_GetKbdByName_want_mask_IndicatorMaps,
25468  &hf_x11_xkb_GetKbdByName_want_mask_KeyNames,
25469  &hf_x11_xkb_GetKbdByName_want_mask_Geometry,
25470  &hf_x11_xkb_GetKbdByName_want_mask_OtherNames,
25471  NULL
25472  };
25473  proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_xkb_GetKbdByName_want, ett_x11_rectangle, want_bits, byte_order);
25474  }
25475  *offsetp += 2;
25476  proto_tree_add_item(t, hf_x11_xkb_GetKbdByName_load, tvb, *offsetp, 1, byte_order);
25477  *offsetp += 1;
25478  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
25479  *offsetp += 1;
25480 }
25481 static void xkbGetKbdByName_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
25482 {
25483  int sequence_number;
25484  int f_reported;
25485 
25486  col_append_fstr(pinfo->cinfo, COL_INFO, "-GetKbdByName");
25487 
25488  REPLY(reply);
25489  proto_tree_add_item(t, hf_x11_xkb_GetKbdByName_reply_deviceID, tvb, *offsetp, 1, byte_order);
25490  *offsetp += 1;
25491  sequence_number = tvb_get_guint16(tvb, *offsetp, byte_order);
25492  proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
25493  "%d (xkb-GetKbdByName)", sequence_number);
25494  *offsetp += 2;
25495  proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
25496  *offsetp += 4;
25497  proto_tree_add_item(t, hf_x11_xkb_GetKbdByName_reply_minKeyCode, tvb, *offsetp, 1, byte_order);
25498  *offsetp += 1;
25499  proto_tree_add_item(t, hf_x11_xkb_GetKbdByName_reply_maxKeyCode, tvb, *offsetp, 1, byte_order);
25500  *offsetp += 1;
25501  proto_tree_add_item(t, hf_x11_xkb_GetKbdByName_reply_loaded, tvb, *offsetp, 1, byte_order);
25502  *offsetp += 1;
25503  proto_tree_add_item(t, hf_x11_xkb_GetKbdByName_reply_newKeyboard, tvb, *offsetp, 1, byte_order);
25504  *offsetp += 1;
25505  {
25506  int* const found_bits [] = {
25507  &hf_x11_xkb_GetKbdByName_reply_found_mask_Types,
25508  &hf_x11_xkb_GetKbdByName_reply_found_mask_CompatMap,
25509  &hf_x11_xkb_GetKbdByName_reply_found_mask_ClientSymbols,
25510  &hf_x11_xkb_GetKbdByName_reply_found_mask_ServerSymbols,
25511  &hf_x11_xkb_GetKbdByName_reply_found_mask_IndicatorMaps,
25512  &hf_x11_xkb_GetKbdByName_reply_found_mask_KeyNames,
25513  &hf_x11_xkb_GetKbdByName_reply_found_mask_Geometry,
25514  &hf_x11_xkb_GetKbdByName_reply_found_mask_OtherNames,
25515  NULL
25516  };
25517  proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_xkb_GetKbdByName_reply_found, ett_x11_rectangle, found_bits, byte_order);
25518  }
25519  *offsetp += 2;
25520  f_reported = tvb_get_guint16(tvb, *offsetp, byte_order);
25521  {
25522  int* const reported_bits [] = {
25523  &hf_x11_xkb_GetKbdByName_reply_reported_mask_Types,
25524  &hf_x11_xkb_GetKbdByName_reply_reported_mask_CompatMap,
25525  &hf_x11_xkb_GetKbdByName_reply_reported_mask_ClientSymbols,
25526  &hf_x11_xkb_GetKbdByName_reply_reported_mask_ServerSymbols,
25527  &hf_x11_xkb_GetKbdByName_reply_reported_mask_IndicatorMaps,
25528  &hf_x11_xkb_GetKbdByName_reply_reported_mask_KeyNames,
25529  &hf_x11_xkb_GetKbdByName_reply_reported_mask_Geometry,
25530  &hf_x11_xkb_GetKbdByName_reply_reported_mask_OtherNames,
25531  NULL
25532  };
25533  proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_xkb_GetKbdByName_reply_reported, ett_x11_rectangle, reported_bits, byte_order);
25534  }
25535  *offsetp += 2;
25536  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 16, ENC_NA);
25537  *offsetp += 16;
25538  if ((f_reported & (1U << 0)) || (f_reported & (1U << 2)) || (f_reported & (1U << 3))) {
25539  int f_present;
25540  int f_nTypes;
25541  int f_nKeySyms;
25542  int f_totalActions;
25543  int f_nKeyActions;
25544  int f_totalKeyBehaviors;
25545  int f_totalKeyExplicit;
25546  int f_totalModMapKeys;
25547  int f_totalVModMapKeys;
25548  int f_virtualMods;
25549  proto_tree_add_item(t, hf_x11_xkb_GetKbdByName_reply_Types_getmap_type, tvb, *offsetp, 1, byte_order);
25550  *offsetp += 1;
25551  proto_tree_add_item(t, hf_x11_xkb_GetKbdByName_reply_Types_typeDeviceID, tvb, *offsetp, 1, byte_order);
25552  *offsetp += 1;
25553  proto_tree_add_item(t, hf_x11_xkb_GetKbdByName_reply_Types_getmap_sequence, tvb, *offsetp, 2, byte_order);
25554  *offsetp += 2;
25555  proto_tree_add_item(t, hf_x11_xkb_GetKbdByName_reply_Types_getmap_length, tvb, *offsetp, 4, byte_order);
25556  *offsetp += 4;
25557  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 2, ENC_NA);
25558  *offsetp += 2;
25559  proto_tree_add_item(t, hf_x11_xkb_GetKbdByName_reply_Types_typeMinKeyCode, tvb, *offsetp, 1, byte_order);
25560  *offsetp += 1;
25561  proto_tree_add_item(t, hf_x11_xkb_GetKbdByName_reply_Types_typeMaxKeyCode, tvb, *offsetp, 1, byte_order);
25562  *offsetp += 1;
25563  f_present = tvb_get_guint16(tvb, *offsetp, byte_order);
25564  {
25565  int* const present_bits [] = {
25566  &hf_x11_xkb_GetKbdByName_reply_Types_present_mask_KeyTypes,
25567  &hf_x11_xkb_GetKbdByName_reply_Types_present_mask_KeySyms,
25568  &hf_x11_xkb_GetKbdByName_reply_Types_present_mask_ModifierMap,
25569  &hf_x11_xkb_GetKbdByName_reply_Types_present_mask_ExplicitComponents,
25570  &hf_x11_xkb_GetKbdByName_reply_Types_present_mask_KeyActions,
25571  &hf_x11_xkb_GetKbdByName_reply_Types_present_mask_KeyBehaviors,
25572  &hf_x11_xkb_GetKbdByName_reply_Types_present_mask_VirtualMods,
25573  &hf_x11_xkb_GetKbdByName_reply_Types_present_mask_VirtualModMap,
25574  NULL
25575  };
25576  proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_xkb_GetKbdByName_reply_Types_present, ett_x11_rectangle, present_bits, byte_order);
25577  }
25578  *offsetp += 2;
25579  proto_tree_add_item(t, hf_x11_xkb_GetKbdByName_reply_Types_firstType, tvb, *offsetp, 1, byte_order);
25580  *offsetp += 1;
25581  f_nTypes = tvb_get_guint8(tvb, *offsetp);
25582  proto_tree_add_item(t, hf_x11_xkb_GetKbdByName_reply_Types_nTypes, tvb, *offsetp, 1, byte_order);
25583  *offsetp += 1;
25584  proto_tree_add_item(t, hf_x11_xkb_GetKbdByName_reply_Types_totalTypes, tvb, *offsetp, 1, byte_order);
25585  *offsetp += 1;
25586  proto_tree_add_item(t, hf_x11_xkb_GetKbdByName_reply_Types_firstKeySym, tvb, *offsetp, 1, byte_order);
25587  *offsetp += 1;
25588  proto_tree_add_item(t, hf_x11_xkb_GetKbdByName_reply_Types_totalSyms, tvb, *offsetp, 2, byte_order);
25589  *offsetp += 2;
25590  f_nKeySyms = tvb_get_guint8(tvb, *offsetp);
25591  proto_tree_add_item(t, hf_x11_xkb_GetKbdByName_reply_Types_nKeySyms, tvb, *offsetp, 1, byte_order);
25592  *offsetp += 1;
25593  proto_tree_add_item(t, hf_x11_xkb_GetKbdByName_reply_Types_firstKeyAction, tvb, *offsetp, 1, byte_order);
25594  *offsetp += 1;
25595  f_totalActions = tvb_get_guint16(tvb, *offsetp, byte_order);
25596  proto_tree_add_item(t, hf_x11_xkb_GetKbdByName_reply_Types_totalActions, tvb, *offsetp, 2, byte_order);
25597  *offsetp += 2;
25598  f_nKeyActions = tvb_get_guint8(tvb, *offsetp);
25599  proto_tree_add_item(t, hf_x11_xkb_GetKbdByName_reply_Types_nKeyActions, tvb, *offsetp, 1, byte_order);
25600  *offsetp += 1;
25601  proto_tree_add_item(t, hf_x11_xkb_GetKbdByName_reply_Types_firstKeyBehavior, tvb, *offsetp, 1, byte_order);
25602  *offsetp += 1;
25603  proto_tree_add_item(t, hf_x11_xkb_GetKbdByName_reply_Types_nKeyBehaviors, tvb, *offsetp, 1, byte_order);
25604  *offsetp += 1;
25605  f_totalKeyBehaviors = tvb_get_guint8(tvb, *offsetp);
25606  proto_tree_add_item(t, hf_x11_xkb_GetKbdByName_reply_Types_totalKeyBehaviors, tvb, *offsetp, 1, byte_order);
25607  *offsetp += 1;
25608  proto_tree_add_item(t, hf_x11_xkb_GetKbdByName_reply_Types_firstKeyExplicit, tvb, *offsetp, 1, byte_order);
25609  *offsetp += 1;
25610  proto_tree_add_item(t, hf_x11_xkb_GetKbdByName_reply_Types_nKeyExplicit, tvb, *offsetp, 1, byte_order);
25611  *offsetp += 1;
25612  f_totalKeyExplicit = tvb_get_guint8(tvb, *offsetp);
25613  proto_tree_add_item(t, hf_x11_xkb_GetKbdByName_reply_Types_totalKeyExplicit, tvb, *offsetp, 1, byte_order);
25614  *offsetp += 1;
25615  proto_tree_add_item(t, hf_x11_xkb_GetKbdByName_reply_Types_firstModMapKey, tvb, *offsetp, 1, byte_order);
25616  *offsetp += 1;
25617  proto_tree_add_item(t, hf_x11_xkb_GetKbdByName_reply_Types_nModMapKeys, tvb, *offsetp, 1, byte_order);
25618  *offsetp += 1;
25619  f_totalModMapKeys = tvb_get_guint8(tvb, *offsetp);
25620  proto_tree_add_item(t, hf_x11_xkb_GetKbdByName_reply_Types_totalModMapKeys, tvb, *offsetp, 1, byte_order);
25621  *offsetp += 1;
25622  proto_tree_add_item(t, hf_x11_xkb_GetKbdByName_reply_Types_firstVModMapKey, tvb, *offsetp, 1, byte_order);
25623  *offsetp += 1;
25624  proto_tree_add_item(t, hf_x11_xkb_GetKbdByName_reply_Types_nVModMapKeys, tvb, *offsetp, 1, byte_order);
25625  *offsetp += 1;
25626  f_totalVModMapKeys = tvb_get_guint8(tvb, *offsetp);
25627  proto_tree_add_item(t, hf_x11_xkb_GetKbdByName_reply_Types_totalVModMapKeys, tvb, *offsetp, 1, byte_order);
25628  *offsetp += 1;
25629  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
25630  *offsetp += 1;
25631  f_virtualMods = tvb_get_guint16(tvb, *offsetp, byte_order);
25632  {
25633  int* const virtualMods_bits [] = {
25634  &hf_x11_xkb_GetKbdByName_reply_Types_virtualMods_mask_0,
25635  &hf_x11_xkb_GetKbdByName_reply_Types_virtualMods_mask_1,
25636  &hf_x11_xkb_GetKbdByName_reply_Types_virtualMods_mask_2,
25637  &hf_x11_xkb_GetKbdByName_reply_Types_virtualMods_mask_3,
25638  &hf_x11_xkb_GetKbdByName_reply_Types_virtualMods_mask_4,
25639  &hf_x11_xkb_GetKbdByName_reply_Types_virtualMods_mask_5,
25640  &hf_x11_xkb_GetKbdByName_reply_Types_virtualMods_mask_6,
25641  &hf_x11_xkb_GetKbdByName_reply_Types_virtualMods_mask_7,
25642  &hf_x11_xkb_GetKbdByName_reply_Types_virtualMods_mask_8,
25643  &hf_x11_xkb_GetKbdByName_reply_Types_virtualMods_mask_9,
25644  &hf_x11_xkb_GetKbdByName_reply_Types_virtualMods_mask_10,
25645  &hf_x11_xkb_GetKbdByName_reply_Types_virtualMods_mask_11,
25646  &hf_x11_xkb_GetKbdByName_reply_Types_virtualMods_mask_12,
25647  &hf_x11_xkb_GetKbdByName_reply_Types_virtualMods_mask_13,
25648  &hf_x11_xkb_GetKbdByName_reply_Types_virtualMods_mask_14,
25649  &hf_x11_xkb_GetKbdByName_reply_Types_virtualMods_mask_15,
25650  NULL
25651  };
25652  proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_xkb_GetKbdByName_reply_Types_virtualMods, ett_x11_rectangle, virtualMods_bits, byte_order);
25653  }
25654  *offsetp += 2;
25655  if (f_present & (1U << 0)) {
25656  struct_xkb_KeyType(tvb, offsetp, t, byte_order, f_nTypes);
25657  }
25658  if (f_present & (1U << 1)) {
25659  struct_xkb_KeySymMap(tvb, offsetp, t, byte_order, f_nKeySyms);
25660  }
25661  if (f_present & (1U << 4)) {
25662  listOfByte(tvb, offsetp, t, hf_x11_xkb_GetKbdByName_reply_Types_KeyActions_acts_rtrn_count, f_nKeyActions, byte_order);
25663  if (*offsetp % 4) {
25664  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, (4 - *offsetp % 4), ENC_NA);
25665  *offsetp += (4 - *offsetp % 4);
25666  }
25667  struct_xkb_Action(tvb, offsetp, t, byte_order, f_totalActions);
25668  }
25669  if (f_present & (1U << 5)) {
25670  struct_xkb_SetBehavior(tvb, offsetp, t, byte_order, f_totalKeyBehaviors);
25671  }
25672  if (f_present & (1U << 6)) {
25673  listOfByte(tvb, offsetp, t, hf_x11_xkb_GetKbdByName_reply_Types_VirtualMods_vmods_rtrn, ws_count_ones(f_virtualMods), byte_order);
25674  if (*offsetp % 4) {
25675  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, (4 - *offsetp % 4), ENC_NA);
25676  *offsetp += (4 - *offsetp % 4);
25677  }
25678  }
25679  if (f_present & (1U << 3)) {
25680  struct_xkb_SetExplicit(tvb, offsetp, t, byte_order, f_totalKeyExplicit);
25681  if (*offsetp % 4) {
25682  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, (4 - *offsetp % 4), ENC_NA);
25683  *offsetp += (4 - *offsetp % 4);
25684  }
25685  }
25686  if (f_present & (1U << 2)) {
25687  struct_xkb_KeyModMap(tvb, offsetp, t, byte_order, f_totalModMapKeys);
25688  if (*offsetp % 4) {
25689  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, (4 - *offsetp % 4), ENC_NA);
25690  *offsetp += (4 - *offsetp % 4);
25691  }
25692  }
25693  if (f_present & (1U << 7)) {
25694  struct_xkb_KeyVModMap(tvb, offsetp, t, byte_order, f_totalVModMapKeys);
25695  }
25696  }
25697  if (f_reported & (1U << 1)) {
25698  int f_groupsRtrn;
25699  int f_nSIRtrn;
25700  proto_tree_add_item(t, hf_x11_xkb_GetKbdByName_reply_CompatMap_compatmap_type, tvb, *offsetp, 1, byte_order);
25701  *offsetp += 1;
25702  proto_tree_add_item(t, hf_x11_xkb_GetKbdByName_reply_CompatMap_compatDeviceID, tvb, *offsetp, 1, byte_order);
25703  *offsetp += 1;
25704  proto_tree_add_item(t, hf_x11_xkb_GetKbdByName_reply_CompatMap_compatmap_sequence, tvb, *offsetp, 2, byte_order);
25705  *offsetp += 2;
25706  proto_tree_add_item(t, hf_x11_xkb_GetKbdByName_reply_CompatMap_compatmap_length, tvb, *offsetp, 4, byte_order);
25707  *offsetp += 4;
25708  f_groupsRtrn = tvb_get_guint8(tvb, *offsetp);
25709  {
25710  int* const groupsRtrn_bits [] = {
25711  &hf_x11_xkb_GetKbdByName_reply_CompatMap_groupsRtrn_mask_Group1,
25712  &hf_x11_xkb_GetKbdByName_reply_CompatMap_groupsRtrn_mask_Group2,
25713  &hf_x11_xkb_GetKbdByName_reply_CompatMap_groupsRtrn_mask_Group3,
25714  &hf_x11_xkb_GetKbdByName_reply_CompatMap_groupsRtrn_mask_Group4,
25715  NULL
25716  };
25717  proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_xkb_GetKbdByName_reply_CompatMap_groupsRtrn, ett_x11_rectangle, groupsRtrn_bits, byte_order);
25718  }
25719  *offsetp += 1;
25720  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
25721  *offsetp += 1;
25722  proto_tree_add_item(t, hf_x11_xkb_GetKbdByName_reply_CompatMap_firstSIRtrn, tvb, *offsetp, 2, byte_order);
25723  *offsetp += 2;
25724  f_nSIRtrn = tvb_get_guint16(tvb, *offsetp, byte_order);
25725  proto_tree_add_item(t, hf_x11_xkb_GetKbdByName_reply_CompatMap_nSIRtrn, tvb, *offsetp, 2, byte_order);
25726  *offsetp += 2;
25727  proto_tree_add_item(t, hf_x11_xkb_GetKbdByName_reply_CompatMap_nTotalSI, tvb, *offsetp, 2, byte_order);
25728  *offsetp += 2;
25729  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 16, ENC_NA);
25730  *offsetp += 16;
25731  struct_xkb_SymInterpret(tvb, offsetp, t, byte_order, f_nSIRtrn);
25732  struct_xkb_ModDef(tvb, offsetp, t, byte_order, ws_count_ones(f_groupsRtrn));
25733  }
25734  if (f_reported & (1U << 4)) {
25735  int f_nIndicators;
25736  proto_tree_add_item(t, hf_x11_xkb_GetKbdByName_reply_IndicatorMaps_indicatormap_type, tvb, *offsetp, 1, byte_order);
25737  *offsetp += 1;
25738  proto_tree_add_item(t, hf_x11_xkb_GetKbdByName_reply_IndicatorMaps_indicatorDeviceID, tvb, *offsetp, 1, byte_order);
25739  *offsetp += 1;
25740  proto_tree_add_item(t, hf_x11_xkb_GetKbdByName_reply_IndicatorMaps_indicatormap_sequence, tvb, *offsetp, 2, byte_order);
25741  *offsetp += 2;
25742  proto_tree_add_item(t, hf_x11_xkb_GetKbdByName_reply_IndicatorMaps_indicatormap_length, tvb, *offsetp, 4, byte_order);
25743  *offsetp += 4;
25744  proto_tree_add_item(t, hf_x11_xkb_GetKbdByName_reply_IndicatorMaps_which, tvb, *offsetp, 4, byte_order);
25745  *offsetp += 4;
25746  proto_tree_add_item(t, hf_x11_xkb_GetKbdByName_reply_IndicatorMaps_realIndicators, tvb, *offsetp, 4, byte_order);
25747  *offsetp += 4;
25748  f_nIndicators = tvb_get_guint8(tvb, *offsetp);
25749  proto_tree_add_item(t, hf_x11_xkb_GetKbdByName_reply_IndicatorMaps_nIndicators, tvb, *offsetp, 1, byte_order);
25750  *offsetp += 1;
25751  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 15, ENC_NA);
25752  *offsetp += 15;
25753  struct_xkb_IndicatorMap(tvb, offsetp, t, byte_order, f_nIndicators);
25754  }
25755  if ((f_reported & (1U << 5)) || (f_reported & (1U << 7))) {
25756  int f_which;
25757  int f_nTypes;
25758  int f_groupNames;
25759  int f_virtualMods;
25760  int f_nKeys;
25761  int f_indicators;
25762  int f_nRadioGroups;
25763  int f_nKeyAliases;
25764  proto_tree_add_item(t, hf_x11_xkb_GetKbdByName_reply_KeyNames_keyname_type, tvb, *offsetp, 1, byte_order);
25765  *offsetp += 1;
25766  proto_tree_add_item(t, hf_x11_xkb_GetKbdByName_reply_KeyNames_keyDeviceID, tvb, *offsetp, 1, byte_order);
25767  *offsetp += 1;
25768  proto_tree_add_item(t, hf_x11_xkb_GetKbdByName_reply_KeyNames_keyname_sequence, tvb, *offsetp, 2, byte_order);
25769  *offsetp += 2;
25770  proto_tree_add_item(t, hf_x11_xkb_GetKbdByName_reply_KeyNames_keyname_length, tvb, *offsetp, 4, byte_order);
25771  *offsetp += 4;
25772  f_which = tvb_get_guint32(tvb, *offsetp, byte_order);
25773  {
25774  int* const which_bits [] = {
25775  &hf_x11_xkb_GetKbdByName_reply_KeyNames_which_mask_Keycodes,
25776  &hf_x11_xkb_GetKbdByName_reply_KeyNames_which_mask_Geometry,
25777  &hf_x11_xkb_GetKbdByName_reply_KeyNames_which_mask_Symbols,
25778  &hf_x11_xkb_GetKbdByName_reply_KeyNames_which_mask_PhysSymbols,
25779  &hf_x11_xkb_GetKbdByName_reply_KeyNames_which_mask_Types,
25780  &hf_x11_xkb_GetKbdByName_reply_KeyNames_which_mask_Compat,
25781  &hf_x11_xkb_GetKbdByName_reply_KeyNames_which_mask_KeyTypeNames,
25782  &hf_x11_xkb_GetKbdByName_reply_KeyNames_which_mask_KTLevelNames,
25783  &hf_x11_xkb_GetKbdByName_reply_KeyNames_which_mask_IndicatorNames,
25784  &hf_x11_xkb_GetKbdByName_reply_KeyNames_which_mask_KeyNames,
25785  &hf_x11_xkb_GetKbdByName_reply_KeyNames_which_mask_KeyAliases,
25786  &hf_x11_xkb_GetKbdByName_reply_KeyNames_which_mask_VirtualModNames,
25787  &hf_x11_xkb_GetKbdByName_reply_KeyNames_which_mask_GroupNames,
25788  &hf_x11_xkb_GetKbdByName_reply_KeyNames_which_mask_RGNames,
25789  NULL
25790  };
25791  proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_xkb_GetKbdByName_reply_KeyNames_which, ett_x11_rectangle, which_bits, byte_order);
25792  }
25793  *offsetp += 4;
25794  proto_tree_add_item(t, hf_x11_xkb_GetKbdByName_reply_KeyNames_keyMinKeyCode, tvb, *offsetp, 1, byte_order);
25795  *offsetp += 1;
25796  proto_tree_add_item(t, hf_x11_xkb_GetKbdByName_reply_KeyNames_keyMaxKeyCode, tvb, *offsetp, 1, byte_order);
25797  *offsetp += 1;
25798  f_nTypes = tvb_get_guint8(tvb, *offsetp);
25799  proto_tree_add_item(t, hf_x11_xkb_GetKbdByName_reply_KeyNames_nTypes, tvb, *offsetp, 1, byte_order);
25800  *offsetp += 1;
25801  f_groupNames = tvb_get_guint8(tvb, *offsetp);
25802  {
25803  int* const groupNames_bits [] = {
25804  &hf_x11_xkb_GetKbdByName_reply_KeyNames_groupNames_mask_Group1,
25805  &hf_x11_xkb_GetKbdByName_reply_KeyNames_groupNames_mask_Group2,
25806  &hf_x11_xkb_GetKbdByName_reply_KeyNames_groupNames_mask_Group3,
25807  &hf_x11_xkb_GetKbdByName_reply_KeyNames_groupNames_mask_Group4,
25808  NULL
25809  };
25810  proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_xkb_GetKbdByName_reply_KeyNames_groupNames, ett_x11_rectangle, groupNames_bits, byte_order);
25811  }
25812  *offsetp += 1;
25813  f_virtualMods = tvb_get_guint16(tvb, *offsetp, byte_order);
25814  {
25815  int* const virtualMods_bits [] = {
25816  &hf_x11_xkb_GetKbdByName_reply_KeyNames_virtualMods_mask_0,
25817  &hf_x11_xkb_GetKbdByName_reply_KeyNames_virtualMods_mask_1,
25818  &hf_x11_xkb_GetKbdByName_reply_KeyNames_virtualMods_mask_2,
25819  &hf_x11_xkb_GetKbdByName_reply_KeyNames_virtualMods_mask_3,
25820  &hf_x11_xkb_GetKbdByName_reply_KeyNames_virtualMods_mask_4,
25821  &hf_x11_xkb_GetKbdByName_reply_KeyNames_virtualMods_mask_5,
25822  &hf_x11_xkb_GetKbdByName_reply_KeyNames_virtualMods_mask_6,
25823  &hf_x11_xkb_GetKbdByName_reply_KeyNames_virtualMods_mask_7,
25824  &hf_x11_xkb_GetKbdByName_reply_KeyNames_virtualMods_mask_8,
25825  &hf_x11_xkb_GetKbdByName_reply_KeyNames_virtualMods_mask_9,
25826  &hf_x11_xkb_GetKbdByName_reply_KeyNames_virtualMods_mask_10,
25827  &hf_x11_xkb_GetKbdByName_reply_KeyNames_virtualMods_mask_11,
25828  &hf_x11_xkb_GetKbdByName_reply_KeyNames_virtualMods_mask_12,
25829  &hf_x11_xkb_GetKbdByName_reply_KeyNames_virtualMods_mask_13,
25830  &hf_x11_xkb_GetKbdByName_reply_KeyNames_virtualMods_mask_14,
25831  &hf_x11_xkb_GetKbdByName_reply_KeyNames_virtualMods_mask_15,
25832  NULL
25833  };
25834  proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_xkb_GetKbdByName_reply_KeyNames_virtualMods, ett_x11_rectangle, virtualMods_bits, byte_order);
25835  }
25836  *offsetp += 2;
25837  proto_tree_add_item(t, hf_x11_xkb_GetKbdByName_reply_KeyNames_firstKey, tvb, *offsetp, 1, byte_order);
25838  *offsetp += 1;
25839  f_nKeys = tvb_get_guint8(tvb, *offsetp);
25840  proto_tree_add_item(t, hf_x11_xkb_GetKbdByName_reply_KeyNames_nKeys, tvb, *offsetp, 1, byte_order);
25841  *offsetp += 1;
25842  f_indicators = tvb_get_guint32(tvb, *offsetp, byte_order);
25843  proto_tree_add_item(t, hf_x11_xkb_GetKbdByName_reply_KeyNames_indicators, tvb, *offsetp, 4, byte_order);
25844  *offsetp += 4;
25845  f_nRadioGroups = tvb_get_guint8(tvb, *offsetp);
25846  proto_tree_add_item(t, hf_x11_xkb_GetKbdByName_reply_KeyNames_nRadioGroups, tvb, *offsetp, 1, byte_order);
25847  *offsetp += 1;
25848  f_nKeyAliases = tvb_get_guint8(tvb, *offsetp);
25849  proto_tree_add_item(t, hf_x11_xkb_GetKbdByName_reply_KeyNames_nKeyAliases, tvb, *offsetp, 1, byte_order);
25850  *offsetp += 1;
25851  proto_tree_add_item(t, hf_x11_xkb_GetKbdByName_reply_KeyNames_nKTLevels, tvb, *offsetp, 2, byte_order);
25852  *offsetp += 2;
25853  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 4, ENC_NA);
25854  *offsetp += 4;
25855  if (f_which & (1U << 0)) {
25856  proto_tree_add_item(t, hf_x11_xkb_GetKbdByName_reply_KeyNames_Keycodes_keycodesName, tvb, *offsetp, 4, byte_order);
25857  *offsetp += 4;
25858  }
25859  if (f_which & (1U << 1)) {
25860  proto_tree_add_item(t, hf_x11_xkb_GetKbdByName_reply_KeyNames_Geometry_geometryName, tvb, *offsetp, 4, byte_order);
25861  *offsetp += 4;
25862  }
25863  if (f_which & (1U << 2)) {
25864  proto_tree_add_item(t, hf_x11_xkb_GetKbdByName_reply_KeyNames_Symbols_symbolsName, tvb, *offsetp, 4, byte_order);
25865  *offsetp += 4;
25866  }
25867  if (f_which & (1U << 3)) {
25868  proto_tree_add_item(t, hf_x11_xkb_GetKbdByName_reply_KeyNames_PhysSymbols_physSymbolsName, tvb, *offsetp, 4, byte_order);
25869  *offsetp += 4;
25870  }
25871  if (f_which & (1U << 4)) {
25872  proto_tree_add_item(t, hf_x11_xkb_GetKbdByName_reply_KeyNames_Types_typesName, tvb, *offsetp, 4, byte_order);
25873  *offsetp += 4;
25874  }
25875  if (f_which & (1U << 5)) {
25876  proto_tree_add_item(t, hf_x11_xkb_GetKbdByName_reply_KeyNames_Compat_compatName, tvb, *offsetp, 4, byte_order);
25877  *offsetp += 4;
25878  }
25879  if (f_which & (1U << 6)) {
25880  listOfCard32(tvb, offsetp, t, hf_x11_xkb_GetKbdByName_reply_KeyNames_KeyTypeNames_typeNames, hf_x11_xkb_GetKbdByName_reply_KeyNames_KeyTypeNames_typeNames_item, f_nTypes, byte_order);
25881  }
25882  if (f_which & (1U << 7)) {
25883  int sumof_nLevelsPerType = 0;
25884  {
25885  int i;
25886  for (i = 0; i < f_nTypes; i++) {
25887  sumof_nLevelsPerType += tvb_get_guint8(tvb, *offsetp + i * 1);
25888  }
25889  }
25890  listOfByte(tvb, offsetp, t, hf_x11_xkb_GetKbdByName_reply_KeyNames_KTLevelNames_nLevelsPerType, f_nTypes, byte_order);
25891  if (*offsetp % 4) {
25892  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, (4 - *offsetp % 4), ENC_NA);
25893  *offsetp += (4 - *offsetp % 4);
25894  }
25895  listOfCard32(tvb, offsetp, t, hf_x11_xkb_GetKbdByName_reply_KeyNames_KTLevelNames_ktLevelNames, hf_x11_xkb_GetKbdByName_reply_KeyNames_KTLevelNames_ktLevelNames_item, sumof_nLevelsPerType, byte_order);
25896  }
25897  if (f_which & (1U << 8)) {
25898  listOfCard32(tvb, offsetp, t, hf_x11_xkb_GetKbdByName_reply_KeyNames_IndicatorNames_indicatorNames, hf_x11_xkb_GetKbdByName_reply_KeyNames_IndicatorNames_indicatorNames_item, ws_count_ones(f_indicators), byte_order);
25899  }
25900  if (f_which & (1U << 11)) {
25901  listOfCard32(tvb, offsetp, t, hf_x11_xkb_GetKbdByName_reply_KeyNames_VirtualModNames_virtualModNames, hf_x11_xkb_GetKbdByName_reply_KeyNames_VirtualModNames_virtualModNames_item, ws_count_ones(f_virtualMods), byte_order);
25902  }
25903  if (f_which & (1U << 12)) {
25904  listOfCard32(tvb, offsetp, t, hf_x11_xkb_GetKbdByName_reply_KeyNames_GroupNames_groups, hf_x11_xkb_GetKbdByName_reply_KeyNames_GroupNames_groups_item, ws_count_ones(f_groupNames), byte_order);
25905  }
25906  if (f_which & (1U << 9)) {
25907  struct_xkb_KeyName(tvb, offsetp, t, byte_order, f_nKeys);
25908  }
25909  if (f_which & (1U << 10)) {
25910  struct_xkb_KeyAlias(tvb, offsetp, t, byte_order, f_nKeyAliases);
25911  }
25912  if (f_which & (1U << 13)) {
25913  listOfCard32(tvb, offsetp, t, hf_x11_xkb_GetKbdByName_reply_KeyNames_RGNames_radioGroupNames, hf_x11_xkb_GetKbdByName_reply_KeyNames_RGNames_radioGroupNames_item, f_nRadioGroups, byte_order);
25914  }
25915  }
25916  if (f_reported & (1U << 6)) {
25917  proto_tree_add_item(t, hf_x11_xkb_GetKbdByName_reply_Geometry_geometry_type, tvb, *offsetp, 1, byte_order);
25918  *offsetp += 1;
25919  proto_tree_add_item(t, hf_x11_xkb_GetKbdByName_reply_Geometry_geometryDeviceID, tvb, *offsetp, 1, byte_order);
25920  *offsetp += 1;
25921  proto_tree_add_item(t, hf_x11_xkb_GetKbdByName_reply_Geometry_geometry_sequence, tvb, *offsetp, 2, byte_order);
25922  *offsetp += 2;
25923  proto_tree_add_item(t, hf_x11_xkb_GetKbdByName_reply_Geometry_geometry_length, tvb, *offsetp, 4, byte_order);
25924  *offsetp += 4;
25925  proto_tree_add_item(t, hf_x11_xkb_GetKbdByName_reply_Geometry_name, tvb, *offsetp, 4, byte_order);
25926  *offsetp += 4;
25927  proto_tree_add_item(t, hf_x11_xkb_GetKbdByName_reply_Geometry_geometryFound, tvb, *offsetp, 1, byte_order);
25928  *offsetp += 1;
25929  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
25930  *offsetp += 1;
25931  proto_tree_add_item(t, hf_x11_xkb_GetKbdByName_reply_Geometry_widthMM, tvb, *offsetp, 2, byte_order);
25932  *offsetp += 2;
25933  proto_tree_add_item(t, hf_x11_xkb_GetKbdByName_reply_Geometry_heightMM, tvb, *offsetp, 2, byte_order);
25934  *offsetp += 2;
25935  proto_tree_add_item(t, hf_x11_xkb_GetKbdByName_reply_Geometry_nProperties, tvb, *offsetp, 2, byte_order);
25936  *offsetp += 2;
25937  proto_tree_add_item(t, hf_x11_xkb_GetKbdByName_reply_Geometry_nColors, tvb, *offsetp, 2, byte_order);
25938  *offsetp += 2;
25939  proto_tree_add_item(t, hf_x11_xkb_GetKbdByName_reply_Geometry_nShapes, tvb, *offsetp, 2, byte_order);
25940  *offsetp += 2;
25941  proto_tree_add_item(t, hf_x11_xkb_GetKbdByName_reply_Geometry_nSections, tvb, *offsetp, 2, byte_order);
25942  *offsetp += 2;
25943  proto_tree_add_item(t, hf_x11_xkb_GetKbdByName_reply_Geometry_nDoodads, tvb, *offsetp, 2, byte_order);
25944  *offsetp += 2;
25945  proto_tree_add_item(t, hf_x11_xkb_GetKbdByName_reply_Geometry_nKeyAliases, tvb, *offsetp, 2, byte_order);
25946  *offsetp += 2;
25947  proto_tree_add_item(t, hf_x11_xkb_GetKbdByName_reply_Geometry_baseColorNdx, tvb, *offsetp, 1, byte_order);
25948  *offsetp += 1;
25949  proto_tree_add_item(t, hf_x11_xkb_GetKbdByName_reply_Geometry_labelColorNdx, tvb, *offsetp, 1, byte_order);
25950  *offsetp += 1;
25951  struct_xkb_CountedString16(tvb, offsetp, t, byte_order, 1);
25952  }
25953 }
25954 
25955 static void xkbGetDeviceInfo(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
25956 {
25957  proto_tree_add_item(t, hf_x11_xkb_GetDeviceInfo_deviceSpec, tvb, *offsetp, 2, byte_order);
25958  *offsetp += 2;
25959  {
25960  int* const wanted_bits [] = {
25961  &hf_x11_xkb_GetDeviceInfo_wanted_mask_Keyboards,
25962  &hf_x11_xkb_GetDeviceInfo_wanted_mask_ButtonActions,
25963  &hf_x11_xkb_GetDeviceInfo_wanted_mask_IndicatorNames,
25964  &hf_x11_xkb_GetDeviceInfo_wanted_mask_IndicatorMaps,
25965  &hf_x11_xkb_GetDeviceInfo_wanted_mask_IndicatorState,
25966  NULL
25967  };
25968  proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_xkb_GetDeviceInfo_wanted, ett_x11_rectangle, wanted_bits, byte_order);
25969  }
25970  *offsetp += 2;
25971  proto_tree_add_item(t, hf_x11_xkb_GetDeviceInfo_allButtons, tvb, *offsetp, 1, byte_order);
25972  *offsetp += 1;
25973  proto_tree_add_item(t, hf_x11_xkb_GetDeviceInfo_firstButton, tvb, *offsetp, 1, byte_order);
25974  *offsetp += 1;
25975  proto_tree_add_item(t, hf_x11_xkb_GetDeviceInfo_nButtons, tvb, *offsetp, 1, byte_order);
25976  *offsetp += 1;
25977  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
25978  *offsetp += 1;
25979  field16(tvb, offsetp, t, hf_x11_xkb_GetDeviceInfo_ledClass, byte_order);
25980  field16(tvb, offsetp, t, hf_x11_xkb_GetDeviceInfo_ledID, byte_order);
25981 }
25982 static void xkbGetDeviceInfo_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
25983 {
25984  int sequence_number;
25985  int f_nDeviceLedFBs;
25986  int f_nBtnsRtrn;
25987  int f_nameLen;
25988 
25989  col_append_fstr(pinfo->cinfo, COL_INFO, "-GetDeviceInfo");
25990 
25991  REPLY(reply);
25992  proto_tree_add_item(t, hf_x11_xkb_GetDeviceInfo_reply_deviceID, tvb, *offsetp, 1, byte_order);
25993  *offsetp += 1;
25994  sequence_number = tvb_get_guint16(tvb, *offsetp, byte_order);
25995  proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
25996  "%d (xkb-GetDeviceInfo)", sequence_number);
25997  *offsetp += 2;
25998  proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
25999  *offsetp += 4;
26000  {
26001  int* const present_bits [] = {
26002  &hf_x11_xkb_GetDeviceInfo_reply_present_mask_Keyboards,
26003  &hf_x11_xkb_GetDeviceInfo_reply_present_mask_ButtonActions,
26004  &hf_x11_xkb_GetDeviceInfo_reply_present_mask_IndicatorNames,
26005  &hf_x11_xkb_GetDeviceInfo_reply_present_mask_IndicatorMaps,
26006  &hf_x11_xkb_GetDeviceInfo_reply_present_mask_IndicatorState,
26007  NULL
26008  };
26009  proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_xkb_GetDeviceInfo_reply_present, ett_x11_rectangle, present_bits, byte_order);
26010  }
26011  *offsetp += 2;
26012  {
26013  int* const supported_bits [] = {
26014  &hf_x11_xkb_GetDeviceInfo_reply_supported_mask_Keyboards,
26015  &hf_x11_xkb_GetDeviceInfo_reply_supported_mask_ButtonActions,
26016  &hf_x11_xkb_GetDeviceInfo_reply_supported_mask_IndicatorNames,
26017  &hf_x11_xkb_GetDeviceInfo_reply_supported_mask_IndicatorMaps,
26018  &hf_x11_xkb_GetDeviceInfo_reply_supported_mask_IndicatorState,
26019  NULL
26020  };
26021  proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_xkb_GetDeviceInfo_reply_supported, ett_x11_rectangle, supported_bits, byte_order);
26022  }
26023  *offsetp += 2;
26024  {
26025  int* const unsupported_bits [] = {
26026  &hf_x11_xkb_GetDeviceInfo_reply_unsupported_mask_Keyboards,
26027  &hf_x11_xkb_GetDeviceInfo_reply_unsupported_mask_ButtonActions,
26028  &hf_x11_xkb_GetDeviceInfo_reply_unsupported_mask_IndicatorNames,
26029  &hf_x11_xkb_GetDeviceInfo_reply_unsupported_mask_IndicatorMaps,
26030  &hf_x11_xkb_GetDeviceInfo_reply_unsupported_mask_IndicatorState,
26031  NULL
26032  };
26033  proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_xkb_GetDeviceInfo_reply_unsupported, ett_x11_rectangle, unsupported_bits, byte_order);
26034  }
26035  *offsetp += 2;
26036  f_nDeviceLedFBs = tvb_get_guint16(tvb, *offsetp, byte_order);
26037  proto_tree_add_item(t, hf_x11_xkb_GetDeviceInfo_reply_nDeviceLedFBs, tvb, *offsetp, 2, byte_order);
26038  *offsetp += 2;
26039  proto_tree_add_item(t, hf_x11_xkb_GetDeviceInfo_reply_firstBtnWanted, tvb, *offsetp, 1, byte_order);
26040  *offsetp += 1;
26041  proto_tree_add_item(t, hf_x11_xkb_GetDeviceInfo_reply_nBtnsWanted, tvb, *offsetp, 1, byte_order);
26042  *offsetp += 1;
26043  proto_tree_add_item(t, hf_x11_xkb_GetDeviceInfo_reply_firstBtnRtrn, tvb, *offsetp, 1, byte_order);
26044  *offsetp += 1;
26045  f_nBtnsRtrn = tvb_get_guint8(tvb, *offsetp);
26046  proto_tree_add_item(t, hf_x11_xkb_GetDeviceInfo_reply_nBtnsRtrn, tvb, *offsetp, 1, byte_order);
26047  *offsetp += 1;
26048  proto_tree_add_item(t, hf_x11_xkb_GetDeviceInfo_reply_totalBtns, tvb, *offsetp, 1, byte_order);
26049  *offsetp += 1;
26050  proto_tree_add_item(t, hf_x11_xkb_GetDeviceInfo_reply_hasOwnState, tvb, *offsetp, 1, byte_order);
26051  *offsetp += 1;
26052  field16(tvb, offsetp, t, hf_x11_xkb_GetDeviceInfo_reply_dfltKbdFB, byte_order);
26053  field16(tvb, offsetp, t, hf_x11_xkb_GetDeviceInfo_reply_dfltLedFB, byte_order);
26054  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 2, ENC_NA);
26055  *offsetp += 2;
26056  proto_tree_add_item(t, hf_x11_xkb_GetDeviceInfo_reply_devType, tvb, *offsetp, 4, byte_order);
26057  *offsetp += 4;
26058  f_nameLen = tvb_get_guint16(tvb, *offsetp, byte_order);
26059  proto_tree_add_item(t, hf_x11_xkb_GetDeviceInfo_reply_nameLen, tvb, *offsetp, 2, byte_order);
26060  *offsetp += 2;
26061  listOfByte(tvb, offsetp, t, hf_x11_xkb_GetDeviceInfo_reply_name, f_nameLen, byte_order);
26062  if (*offsetp % 4) {
26063  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, (4 - *offsetp % 4), ENC_NA);
26064  *offsetp += (4 - *offsetp % 4);
26065  }
26066  struct_xkb_Action(tvb, offsetp, t, byte_order, f_nBtnsRtrn);
26067  struct_xkb_DeviceLedInfo(tvb, offsetp, t, byte_order, f_nDeviceLedFBs);
26068 }
26069 
26070 static void xkbSetDeviceInfo(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
26071 {
26072  int f_nBtns;
26073  int f_nDeviceLedFBs;
26074  proto_tree_add_item(t, hf_x11_xkb_SetDeviceInfo_deviceSpec, tvb, *offsetp, 2, byte_order);
26075  *offsetp += 2;
26076  proto_tree_add_item(t, hf_x11_xkb_SetDeviceInfo_firstBtn, tvb, *offsetp, 1, byte_order);
26077  *offsetp += 1;
26078  f_nBtns = tvb_get_guint8(tvb, *offsetp);
26079  proto_tree_add_item(t, hf_x11_xkb_SetDeviceInfo_nBtns, tvb, *offsetp, 1, byte_order);
26080  *offsetp += 1;
26081  {
26082  int* const change_bits [] = {
26083  &hf_x11_xkb_SetDeviceInfo_change_mask_Keyboards,
26084  &hf_x11_xkb_SetDeviceInfo_change_mask_ButtonActions,
26085  &hf_x11_xkb_SetDeviceInfo_change_mask_IndicatorNames,
26086  &hf_x11_xkb_SetDeviceInfo_change_mask_IndicatorMaps,
26087  &hf_x11_xkb_SetDeviceInfo_change_mask_IndicatorState,
26088  NULL
26089  };
26090  proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_xkb_SetDeviceInfo_change, ett_x11_rectangle, change_bits, byte_order);
26091  }
26092  *offsetp += 2;
26093  f_nDeviceLedFBs = tvb_get_guint16(tvb, *offsetp, byte_order);
26094  proto_tree_add_item(t, hf_x11_xkb_SetDeviceInfo_nDeviceLedFBs, tvb, *offsetp, 2, byte_order);
26095  *offsetp += 2;
26096  struct_xkb_Action(tvb, offsetp, t, byte_order, f_nBtns);
26097  length -= f_nBtns * 8;
26098  struct_xkb_DeviceLedInfo(tvb, offsetp, t, byte_order, f_nDeviceLedFBs);
26099  length -= f_nDeviceLedFBs * 0;
26100 }
26101 
26102 static void xkbSetDebuggingFlags(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
26103 {
26104  int f_msgLength;
26105  f_msgLength = tvb_get_guint16(tvb, *offsetp, byte_order);
26106  proto_tree_add_item(t, hf_x11_xkb_SetDebuggingFlags_msgLength, tvb, *offsetp, 2, byte_order);
26107  *offsetp += 2;
26108  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 2, ENC_NA);
26109  *offsetp += 2;
26110  proto_tree_add_item(t, hf_x11_xkb_SetDebuggingFlags_affectFlags, tvb, *offsetp, 4, byte_order);
26111  *offsetp += 4;
26112  proto_tree_add_item(t, hf_x11_xkb_SetDebuggingFlags_flags, tvb, *offsetp, 4, byte_order);
26113  *offsetp += 4;
26114  proto_tree_add_item(t, hf_x11_xkb_SetDebuggingFlags_affectCtrls, tvb, *offsetp, 4, byte_order);
26115  *offsetp += 4;
26116  proto_tree_add_item(t, hf_x11_xkb_SetDebuggingFlags_ctrls, tvb, *offsetp, 4, byte_order);
26117  *offsetp += 4;
26118  listOfByte(tvb, offsetp, t, hf_x11_xkb_SetDebuggingFlags_message, f_msgLength, byte_order);
26119  length -= f_msgLength * 1;
26120 }
26121 static void xkbSetDebuggingFlags_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
26122 {
26123  int sequence_number;
26124 
26125  col_append_fstr(pinfo->cinfo, COL_INFO, "-SetDebuggingFlags");
26126 
26127  REPLY(reply);
26128  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
26129  *offsetp += 1;
26130  sequence_number = tvb_get_guint16(tvb, *offsetp, byte_order);
26131  proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
26132  "%d (xkb-SetDebuggingFlags)", sequence_number);
26133  *offsetp += 2;
26134  proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
26135  *offsetp += 4;
26136  proto_tree_add_item(t, hf_x11_xkb_SetDebuggingFlags_reply_currentFlags, tvb, *offsetp, 4, byte_order);
26137  *offsetp += 4;
26138  proto_tree_add_item(t, hf_x11_xkb_SetDebuggingFlags_reply_currentCtrls, tvb, *offsetp, 4, byte_order);
26139  *offsetp += 4;
26140  proto_tree_add_item(t, hf_x11_xkb_SetDebuggingFlags_reply_supportedFlags, tvb, *offsetp, 4, byte_order);
26141  *offsetp += 4;
26142  proto_tree_add_item(t, hf_x11_xkb_SetDebuggingFlags_reply_supportedCtrls, tvb, *offsetp, 4, byte_order);
26143  *offsetp += 4;
26144  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 8, ENC_NA);
26145  *offsetp += 8;
26146 }
26147 
26148 static void xkbMapNotify(tvbuff_t *tvb, int *offsetp, proto_tree *t, guint byte_order)
26149 {
26150  proto_tree_add_item(t, hf_x11_xkb_MapNotify_xkbType, tvb, *offsetp, 1, byte_order);
26151  *offsetp += 1;
26152  CARD16(event_sequencenumber);
26153  proto_tree_add_item(t, hf_x11_xkb_MapNotify_time, tvb, *offsetp, 4, byte_order);
26154  *offsetp += 4;
26155  proto_tree_add_item(t, hf_x11_xkb_MapNotify_deviceID, tvb, *offsetp, 1, byte_order);
26156  *offsetp += 1;
26157  proto_tree_add_item(t, hf_x11_xkb_MapNotify_ptrBtnActions, tvb, *offsetp, 1, byte_order);
26158  *offsetp += 1;
26159  {
26160  int* const changed_bits [] = {
26161  &hf_x11_xkb_MapNotify_changed_mask_KeyTypes,
26162  &hf_x11_xkb_MapNotify_changed_mask_KeySyms,
26163  &hf_x11_xkb_MapNotify_changed_mask_ModifierMap,
26164  &hf_x11_xkb_MapNotify_changed_mask_ExplicitComponents,
26165  &hf_x11_xkb_MapNotify_changed_mask_KeyActions,
26166  &hf_x11_xkb_MapNotify_changed_mask_KeyBehaviors,
26167  &hf_x11_xkb_MapNotify_changed_mask_VirtualMods,
26168  &hf_x11_xkb_MapNotify_changed_mask_VirtualModMap,
26169  NULL
26170  };
26171  proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_xkb_MapNotify_changed, ett_x11_rectangle, changed_bits, byte_order);
26172  }
26173  *offsetp += 2;
26174  proto_tree_add_item(t, hf_x11_xkb_MapNotify_minKeyCode, tvb, *offsetp, 1, byte_order);
26175  *offsetp += 1;
26176  proto_tree_add_item(t, hf_x11_xkb_MapNotify_maxKeyCode, tvb, *offsetp, 1, byte_order);
26177  *offsetp += 1;
26178  proto_tree_add_item(t, hf_x11_xkb_MapNotify_firstType, tvb, *offsetp, 1, byte_order);
26179  *offsetp += 1;
26180  proto_tree_add_item(t, hf_x11_xkb_MapNotify_nTypes, tvb, *offsetp, 1, byte_order);
26181  *offsetp += 1;
26182  proto_tree_add_item(t, hf_x11_xkb_MapNotify_firstKeySym, tvb, *offsetp, 1, byte_order);
26183  *offsetp += 1;
26184  proto_tree_add_item(t, hf_x11_xkb_MapNotify_nKeySyms, tvb, *offsetp, 1, byte_order);
26185  *offsetp += 1;
26186  proto_tree_add_item(t, hf_x11_xkb_MapNotify_firstKeyAct, tvb, *offsetp, 1, byte_order);
26187  *offsetp += 1;
26188  proto_tree_add_item(t, hf_x11_xkb_MapNotify_nKeyActs, tvb, *offsetp, 1, byte_order);
26189  *offsetp += 1;
26190  proto_tree_add_item(t, hf_x11_xkb_MapNotify_firstKeyBehavior, tvb, *offsetp, 1, byte_order);
26191  *offsetp += 1;
26192  proto_tree_add_item(t, hf_x11_xkb_MapNotify_nKeyBehavior, tvb, *offsetp, 1, byte_order);
26193  *offsetp += 1;
26194  proto_tree_add_item(t, hf_x11_xkb_MapNotify_firstKeyExplicit, tvb, *offsetp, 1, byte_order);
26195  *offsetp += 1;
26196  proto_tree_add_item(t, hf_x11_xkb_MapNotify_nKeyExplicit, tvb, *offsetp, 1, byte_order);
26197  *offsetp += 1;
26198  proto_tree_add_item(t, hf_x11_xkb_MapNotify_firstModMapKey, tvb, *offsetp, 1, byte_order);
26199  *offsetp += 1;
26200  proto_tree_add_item(t, hf_x11_xkb_MapNotify_nModMapKeys, tvb, *offsetp, 1, byte_order);
26201  *offsetp += 1;
26202  proto_tree_add_item(t, hf_x11_xkb_MapNotify_firstVModMapKey, tvb, *offsetp, 1, byte_order);
26203  *offsetp += 1;
26204  proto_tree_add_item(t, hf_x11_xkb_MapNotify_nVModMapKeys, tvb, *offsetp, 1, byte_order);
26205  *offsetp += 1;
26206  {
26207  int* const virtualMods_bits [] = {
26208  &hf_x11_xkb_MapNotify_virtualMods_mask_0,
26209  &hf_x11_xkb_MapNotify_virtualMods_mask_1,
26210  &hf_x11_xkb_MapNotify_virtualMods_mask_2,
26211  &hf_x11_xkb_MapNotify_virtualMods_mask_3,
26212  &hf_x11_xkb_MapNotify_virtualMods_mask_4,
26213  &hf_x11_xkb_MapNotify_virtualMods_mask_5,
26214  &hf_x11_xkb_MapNotify_virtualMods_mask_6,
26215  &hf_x11_xkb_MapNotify_virtualMods_mask_7,
26216  &hf_x11_xkb_MapNotify_virtualMods_mask_8,
26217  &hf_x11_xkb_MapNotify_virtualMods_mask_9,
26218  &hf_x11_xkb_MapNotify_virtualMods_mask_10,
26219  &hf_x11_xkb_MapNotify_virtualMods_mask_11,
26220  &hf_x11_xkb_MapNotify_virtualMods_mask_12,
26221  &hf_x11_xkb_MapNotify_virtualMods_mask_13,
26222  &hf_x11_xkb_MapNotify_virtualMods_mask_14,
26223  &hf_x11_xkb_MapNotify_virtualMods_mask_15,
26224  NULL
26225  };
26226  proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_xkb_MapNotify_virtualMods, ett_x11_rectangle, virtualMods_bits, byte_order);
26227  }
26228  *offsetp += 2;
26229  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 2, ENC_NA);
26230  *offsetp += 2;
26231 }
26232 
26233 
26234 static void xkbStateNotify(tvbuff_t *tvb, int *offsetp, proto_tree *t, guint byte_order)
26235 {
26236  proto_tree_add_item(t, hf_x11_xkb_StateNotify_xkbType, tvb, *offsetp, 1, byte_order);
26237  *offsetp += 1;
26238  CARD16(event_sequencenumber);
26239  proto_tree_add_item(t, hf_x11_xkb_StateNotify_time, tvb, *offsetp, 4, byte_order);
26240  *offsetp += 4;
26241  proto_tree_add_item(t, hf_x11_xkb_StateNotify_deviceID, tvb, *offsetp, 1, byte_order);
26242  *offsetp += 1;
26243  {
26244  int* const mods_bits [] = {
26245  &hf_x11_xkb_StateNotify_mods_mask_Shift,
26246  &hf_x11_xkb_StateNotify_mods_mask_Lock,
26247  &hf_x11_xkb_StateNotify_mods_mask_Control,
26248  &hf_x11_xkb_StateNotify_mods_mask_1,
26249  &hf_x11_xkb_StateNotify_mods_mask_2,
26250  &hf_x11_xkb_StateNotify_mods_mask_3,
26251  &hf_x11_xkb_StateNotify_mods_mask_4,
26252  &hf_x11_xkb_StateNotify_mods_mask_5,
26253  &hf_x11_xkb_StateNotify_mods_mask_Any,
26254  NULL
26255  };
26256  proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_xkb_StateNotify_mods, ett_x11_rectangle, mods_bits, byte_order);
26257  }
26258  *offsetp += 1;
26259  {
26260  int* const baseMods_bits [] = {
26261  &hf_x11_xkb_StateNotify_baseMods_mask_Shift,
26262  &hf_x11_xkb_StateNotify_baseMods_mask_Lock,
26263  &hf_x11_xkb_StateNotify_baseMods_mask_Control,
26264  &hf_x11_xkb_StateNotify_baseMods_mask_1,
26265  &hf_x11_xkb_StateNotify_baseMods_mask_2,
26266  &hf_x11_xkb_StateNotify_baseMods_mask_3,
26267  &hf_x11_xkb_StateNotify_baseMods_mask_4,
26268  &hf_x11_xkb_StateNotify_baseMods_mask_5,
26269  &hf_x11_xkb_StateNotify_baseMods_mask_Any,
26270  NULL
26271  };
26272  proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_xkb_StateNotify_baseMods, ett_x11_rectangle, baseMods_bits, byte_order);
26273  }
26274  *offsetp += 1;
26275  {
26276  int* const latchedMods_bits [] = {
26277  &hf_x11_xkb_StateNotify_latchedMods_mask_Shift,
26278  &hf_x11_xkb_StateNotify_latchedMods_mask_Lock,
26279  &hf_x11_xkb_StateNotify_latchedMods_mask_Control,
26280  &hf_x11_xkb_StateNotify_latchedMods_mask_1,
26281  &hf_x11_xkb_StateNotify_latchedMods_mask_2,
26282  &hf_x11_xkb_StateNotify_latchedMods_mask_3,
26283  &hf_x11_xkb_StateNotify_latchedMods_mask_4,
26284  &hf_x11_xkb_StateNotify_latchedMods_mask_5,
26285  &hf_x11_xkb_StateNotify_latchedMods_mask_Any,
26286  NULL
26287  };
26288  proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_xkb_StateNotify_latchedMods, ett_x11_rectangle, latchedMods_bits, byte_order);
26289  }
26290  *offsetp += 1;
26291  {
26292  int* const lockedMods_bits [] = {
26293  &hf_x11_xkb_StateNotify_lockedMods_mask_Shift,
26294  &hf_x11_xkb_StateNotify_lockedMods_mask_Lock,
26295  &hf_x11_xkb_StateNotify_lockedMods_mask_Control,
26296  &hf_x11_xkb_StateNotify_lockedMods_mask_1,
26297  &hf_x11_xkb_StateNotify_lockedMods_mask_2,
26298  &hf_x11_xkb_StateNotify_lockedMods_mask_3,
26299  &hf_x11_xkb_StateNotify_lockedMods_mask_4,
26300  &hf_x11_xkb_StateNotify_lockedMods_mask_5,
26301  &hf_x11_xkb_StateNotify_lockedMods_mask_Any,
26302  NULL
26303  };
26304  proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_xkb_StateNotify_lockedMods, ett_x11_rectangle, lockedMods_bits, byte_order);
26305  }
26306  *offsetp += 1;
26307  field8(tvb, offsetp, t, hf_x11_xkb_StateNotify_group, byte_order);
26308  proto_tree_add_item(t, hf_x11_xkb_StateNotify_baseGroup, tvb, *offsetp, 2, byte_order);
26309  *offsetp += 2;
26310  proto_tree_add_item(t, hf_x11_xkb_StateNotify_latchedGroup, tvb, *offsetp, 2, byte_order);
26311  *offsetp += 2;
26312  field8(tvb, offsetp, t, hf_x11_xkb_StateNotify_lockedGroup, byte_order);
26313  {
26314  int* const compatState_bits [] = {
26315  &hf_x11_xkb_StateNotify_compatState_mask_Shift,
26316  &hf_x11_xkb_StateNotify_compatState_mask_Lock,
26317  &hf_x11_xkb_StateNotify_compatState_mask_Control,
26318  &hf_x11_xkb_StateNotify_compatState_mask_1,
26319  &hf_x11_xkb_StateNotify_compatState_mask_2,
26320  &hf_x11_xkb_StateNotify_compatState_mask_3,
26321  &hf_x11_xkb_StateNotify_compatState_mask_4,
26322  &hf_x11_xkb_StateNotify_compatState_mask_5,
26323  &hf_x11_xkb_StateNotify_compatState_mask_Any,
26324  NULL
26325  };
26326  proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_xkb_StateNotify_compatState, ett_x11_rectangle, compatState_bits, byte_order);
26327  }
26328  *offsetp += 1;
26329  {
26330  int* const grabMods_bits [] = {
26331  &hf_x11_xkb_StateNotify_grabMods_mask_Shift,
26332  &hf_x11_xkb_StateNotify_grabMods_mask_Lock,
26333  &hf_x11_xkb_StateNotify_grabMods_mask_Control,
26334  &hf_x11_xkb_StateNotify_grabMods_mask_1,
26335  &hf_x11_xkb_StateNotify_grabMods_mask_2,
26336  &hf_x11_xkb_StateNotify_grabMods_mask_3,
26337  &hf_x11_xkb_StateNotify_grabMods_mask_4,
26338  &hf_x11_xkb_StateNotify_grabMods_mask_5,
26339  &hf_x11_xkb_StateNotify_grabMods_mask_Any,
26340  NULL
26341  };
26342  proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_xkb_StateNotify_grabMods, ett_x11_rectangle, grabMods_bits, byte_order);
26343  }
26344  *offsetp += 1;
26345  {
26346  int* const compatGrabMods_bits [] = {
26347  &hf_x11_xkb_StateNotify_compatGrabMods_mask_Shift,
26348  &hf_x11_xkb_StateNotify_compatGrabMods_mask_Lock,
26349  &hf_x11_xkb_StateNotify_compatGrabMods_mask_Control,
26350  &hf_x11_xkb_StateNotify_compatGrabMods_mask_1,
26351  &hf_x11_xkb_StateNotify_compatGrabMods_mask_2,
26352  &hf_x11_xkb_StateNotify_compatGrabMods_mask_3,
26353  &hf_x11_xkb_StateNotify_compatGrabMods_mask_4,
26354  &hf_x11_xkb_StateNotify_compatGrabMods_mask_5,
26355  &hf_x11_xkb_StateNotify_compatGrabMods_mask_Any,
26356  NULL
26357  };
26358  proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_xkb_StateNotify_compatGrabMods, ett_x11_rectangle, compatGrabMods_bits, byte_order);
26359  }
26360  *offsetp += 1;
26361  {
26362  int* const lookupMods_bits [] = {
26363  &hf_x11_xkb_StateNotify_lookupMods_mask_Shift,
26364  &hf_x11_xkb_StateNotify_lookupMods_mask_Lock,
26365  &hf_x11_xkb_StateNotify_lookupMods_mask_Control,
26366  &hf_x11_xkb_StateNotify_lookupMods_mask_1,
26367  &hf_x11_xkb_StateNotify_lookupMods_mask_2,
26368  &hf_x11_xkb_StateNotify_lookupMods_mask_3,
26369  &hf_x11_xkb_StateNotify_lookupMods_mask_4,
26370  &hf_x11_xkb_StateNotify_lookupMods_mask_5,
26371  &hf_x11_xkb_StateNotify_lookupMods_mask_Any,
26372  NULL
26373  };
26374  proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_xkb_StateNotify_lookupMods, ett_x11_rectangle, lookupMods_bits, byte_order);
26375  }
26376  *offsetp += 1;
26377  {
26378  int* const compatLoockupMods_bits [] = {
26379  &hf_x11_xkb_StateNotify_compatLoockupMods_mask_Shift,
26380  &hf_x11_xkb_StateNotify_compatLoockupMods_mask_Lock,
26381  &hf_x11_xkb_StateNotify_compatLoockupMods_mask_Control,
26382  &hf_x11_xkb_StateNotify_compatLoockupMods_mask_1,
26383  &hf_x11_xkb_StateNotify_compatLoockupMods_mask_2,
26384  &hf_x11_xkb_StateNotify_compatLoockupMods_mask_3,
26385  &hf_x11_xkb_StateNotify_compatLoockupMods_mask_4,
26386  &hf_x11_xkb_StateNotify_compatLoockupMods_mask_5,
26387  &hf_x11_xkb_StateNotify_compatLoockupMods_mask_Any,
26388  NULL
26389  };
26390  proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_xkb_StateNotify_compatLoockupMods, ett_x11_rectangle, compatLoockupMods_bits, byte_order);
26391  }
26392  *offsetp += 1;
26393  {
26394  int* const ptrBtnState_bits [] = {
26395  &hf_x11_xkb_StateNotify_ptrBtnState_mask_Shift,
26396  &hf_x11_xkb_StateNotify_ptrBtnState_mask_Lock,
26397  &hf_x11_xkb_StateNotify_ptrBtnState_mask_Control,
26398  &hf_x11_xkb_StateNotify_ptrBtnState_mask_Mod1,
26399  &hf_x11_xkb_StateNotify_ptrBtnState_mask_Mod2,
26400  &hf_x11_xkb_StateNotify_ptrBtnState_mask_Mod3,
26401  &hf_x11_xkb_StateNotify_ptrBtnState_mask_Mod4,
26402  &hf_x11_xkb_StateNotify_ptrBtnState_mask_Mod5,
26403  &hf_x11_xkb_StateNotify_ptrBtnState_mask_Button1,
26404  &hf_x11_xkb_StateNotify_ptrBtnState_mask_Button2,
26405  &hf_x11_xkb_StateNotify_ptrBtnState_mask_Button3,
26406  &hf_x11_xkb_StateNotify_ptrBtnState_mask_Button4,
26407  &hf_x11_xkb_StateNotify_ptrBtnState_mask_Button5,
26408  NULL
26409  };
26410  proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_xkb_StateNotify_ptrBtnState, ett_x11_rectangle, ptrBtnState_bits, byte_order);
26411  }
26412  *offsetp += 2;
26413  {
26414  int* const changed_bits [] = {
26415  &hf_x11_xkb_StateNotify_changed_mask_ModifierState,
26416  &hf_x11_xkb_StateNotify_changed_mask_ModifierBase,
26417  &hf_x11_xkb_StateNotify_changed_mask_ModifierLatch,
26418  &hf_x11_xkb_StateNotify_changed_mask_ModifierLock,
26419  &hf_x11_xkb_StateNotify_changed_mask_GroupState,
26420  &hf_x11_xkb_StateNotify_changed_mask_GroupBase,
26421  &hf_x11_xkb_StateNotify_changed_mask_GroupLatch,
26422  &hf_x11_xkb_StateNotify_changed_mask_GroupLock,
26423  &hf_x11_xkb_StateNotify_changed_mask_CompatState,
26424  &hf_x11_xkb_StateNotify_changed_mask_GrabMods,
26425  &hf_x11_xkb_StateNotify_changed_mask_CompatGrabMods,
26426  &hf_x11_xkb_StateNotify_changed_mask_LookupMods,
26427  &hf_x11_xkb_StateNotify_changed_mask_CompatLookupMods,
26428  &hf_x11_xkb_StateNotify_changed_mask_PointerButtons,
26429  NULL
26430  };
26431  proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_xkb_StateNotify_changed, ett_x11_rectangle, changed_bits, byte_order);
26432  }
26433  *offsetp += 2;
26434  proto_tree_add_item(t, hf_x11_xkb_StateNotify_keycode, tvb, *offsetp, 1, byte_order);
26435  *offsetp += 1;
26436  proto_tree_add_item(t, hf_x11_xkb_StateNotify_eventType, tvb, *offsetp, 1, byte_order);
26437  *offsetp += 1;
26438  proto_tree_add_item(t, hf_x11_xkb_StateNotify_requestMajor, tvb, *offsetp, 1, byte_order);
26439  *offsetp += 1;
26440  proto_tree_add_item(t, hf_x11_xkb_StateNotify_requestMinor, tvb, *offsetp, 1, byte_order);
26441  *offsetp += 1;
26442 }
26443 
26444 
26445 static void xkbControlsNotify(tvbuff_t *tvb, int *offsetp, proto_tree *t, guint byte_order)
26446 {
26447  proto_tree_add_item(t, hf_x11_xkb_ControlsNotify_xkbType, tvb, *offsetp, 1, byte_order);
26448  *offsetp += 1;
26449  CARD16(event_sequencenumber);
26450  proto_tree_add_item(t, hf_x11_xkb_ControlsNotify_time, tvb, *offsetp, 4, byte_order);
26451  *offsetp += 4;
26452  proto_tree_add_item(t, hf_x11_xkb_ControlsNotify_deviceID, tvb, *offsetp, 1, byte_order);
26453  *offsetp += 1;
26454  proto_tree_add_item(t, hf_x11_xkb_ControlsNotify_numGroups, tvb, *offsetp, 1, byte_order);
26455  *offsetp += 1;
26456  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 2, ENC_NA);
26457  *offsetp += 2;
26458  {
26459  int* const changedControls_bits [] = {
26460  &hf_x11_xkb_ControlsNotify_changedControls_mask_GroupsWrap,
26461  &hf_x11_xkb_ControlsNotify_changedControls_mask_InternalMods,
26462  &hf_x11_xkb_ControlsNotify_changedControls_mask_IgnoreLockMods,
26463  &hf_x11_xkb_ControlsNotify_changedControls_mask_PerKeyRepeat,
26464  &hf_x11_xkb_ControlsNotify_changedControls_mask_ControlsEnabled,
26465  NULL
26466  };
26467  proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_xkb_ControlsNotify_changedControls, ett_x11_rectangle, changedControls_bits, byte_order);
26468  }
26469  *offsetp += 4;
26470  {
26471  int* const enabledControls_bits [] = {
26472  &hf_x11_xkb_ControlsNotify_enabledControls_mask_RepeatKeys,
26473  &hf_x11_xkb_ControlsNotify_enabledControls_mask_SlowKeys,
26474  &hf_x11_xkb_ControlsNotify_enabledControls_mask_BounceKeys,
26475  &hf_x11_xkb_ControlsNotify_enabledControls_mask_StickyKeys,
26476  &hf_x11_xkb_ControlsNotify_enabledControls_mask_MouseKeys,
26477  &hf_x11_xkb_ControlsNotify_enabledControls_mask_MouseKeysAccel,
26478  &hf_x11_xkb_ControlsNotify_enabledControls_mask_AccessXKeys,
26479  &hf_x11_xkb_ControlsNotify_enabledControls_mask_AccessXTimeoutMask,
26480  &hf_x11_xkb_ControlsNotify_enabledControls_mask_AccessXFeedbackMask,
26481  &hf_x11_xkb_ControlsNotify_enabledControls_mask_AudibleBellMask,
26482  &hf_x11_xkb_ControlsNotify_enabledControls_mask_Overlay1Mask,
26483  &hf_x11_xkb_ControlsNotify_enabledControls_mask_Overlay2Mask,
26484  &hf_x11_xkb_ControlsNotify_enabledControls_mask_IgnoreGroupLockMask,
26485  NULL
26486  };
26487  proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_xkb_ControlsNotify_enabledControls, ett_x11_rectangle, enabledControls_bits, byte_order);
26488  }
26489  *offsetp += 4;
26490  {
26491  int* const enabledControlChanges_bits [] = {
26492  &hf_x11_xkb_ControlsNotify_enabledControlChanges_mask_RepeatKeys,
26493  &hf_x11_xkb_ControlsNotify_enabledControlChanges_mask_SlowKeys,
26494  &hf_x11_xkb_ControlsNotify_enabledControlChanges_mask_BounceKeys,
26495  &hf_x11_xkb_ControlsNotify_enabledControlChanges_mask_StickyKeys,
26496  &hf_x11_xkb_ControlsNotify_enabledControlChanges_mask_MouseKeys,
26497  &hf_x11_xkb_ControlsNotify_enabledControlChanges_mask_MouseKeysAccel,
26498  &hf_x11_xkb_ControlsNotify_enabledControlChanges_mask_AccessXKeys,
26499  &hf_x11_xkb_ControlsNotify_enabledControlChanges_mask_AccessXTimeoutMask,
26500  &hf_x11_xkb_ControlsNotify_enabledControlChanges_mask_AccessXFeedbackMask,
26501  &hf_x11_xkb_ControlsNotify_enabledControlChanges_mask_AudibleBellMask,
26502  &hf_x11_xkb_ControlsNotify_enabledControlChanges_mask_Overlay1Mask,
26503  &hf_x11_xkb_ControlsNotify_enabledControlChanges_mask_Overlay2Mask,
26504  &hf_x11_xkb_ControlsNotify_enabledControlChanges_mask_IgnoreGroupLockMask,
26505  NULL
26506  };
26507  proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_xkb_ControlsNotify_enabledControlChanges, ett_x11_rectangle, enabledControlChanges_bits, byte_order);
26508  }
26509  *offsetp += 4;
26510  proto_tree_add_item(t, hf_x11_xkb_ControlsNotify_keycode, tvb, *offsetp, 1, byte_order);
26511  *offsetp += 1;
26512  proto_tree_add_item(t, hf_x11_xkb_ControlsNotify_eventType, tvb, *offsetp, 1, byte_order);
26513  *offsetp += 1;
26514  proto_tree_add_item(t, hf_x11_xkb_ControlsNotify_requestMajor, tvb, *offsetp, 1, byte_order);
26515  *offsetp += 1;
26516  proto_tree_add_item(t, hf_x11_xkb_ControlsNotify_requestMinor, tvb, *offsetp, 1, byte_order);
26517  *offsetp += 1;
26518  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 4, ENC_NA);
26519  *offsetp += 4;
26520 }
26521 
26522 
26523 static void xkbIndicatorStateNotify(tvbuff_t *tvb, int *offsetp, proto_tree *t, guint byte_order)
26524 {
26525  proto_tree_add_item(t, hf_x11_xkb_IndicatorStateNotify_xkbType, tvb, *offsetp, 1, byte_order);
26526  *offsetp += 1;
26527  CARD16(event_sequencenumber);
26528  proto_tree_add_item(t, hf_x11_xkb_IndicatorStateNotify_time, tvb, *offsetp, 4, byte_order);
26529  *offsetp += 4;
26530  proto_tree_add_item(t, hf_x11_xkb_IndicatorStateNotify_deviceID, tvb, *offsetp, 1, byte_order);
26531  *offsetp += 1;
26532  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 3, ENC_NA);
26533  *offsetp += 3;
26534  proto_tree_add_item(t, hf_x11_xkb_IndicatorStateNotify_state, tvb, *offsetp, 4, byte_order);
26535  *offsetp += 4;
26536  proto_tree_add_item(t, hf_x11_xkb_IndicatorStateNotify_stateChanged, tvb, *offsetp, 4, byte_order);
26537  *offsetp += 4;
26538  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 12, ENC_NA);
26539  *offsetp += 12;
26540 }
26541 
26542 
26543 static void xkbIndicatorMapNotify(tvbuff_t *tvb, int *offsetp, proto_tree *t, guint byte_order)
26544 {
26545  proto_tree_add_item(t, hf_x11_xkb_IndicatorMapNotify_xkbType, tvb, *offsetp, 1, byte_order);
26546  *offsetp += 1;
26547  CARD16(event_sequencenumber);
26548  proto_tree_add_item(t, hf_x11_xkb_IndicatorMapNotify_time, tvb, *offsetp, 4, byte_order);
26549  *offsetp += 4;
26550  proto_tree_add_item(t, hf_x11_xkb_IndicatorMapNotify_deviceID, tvb, *offsetp, 1, byte_order);
26551  *offsetp += 1;
26552  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 3, ENC_NA);
26553  *offsetp += 3;
26554  proto_tree_add_item(t, hf_x11_xkb_IndicatorMapNotify_state, tvb, *offsetp, 4, byte_order);
26555  *offsetp += 4;
26556  proto_tree_add_item(t, hf_x11_xkb_IndicatorMapNotify_mapChanged, tvb, *offsetp, 4, byte_order);
26557  *offsetp += 4;
26558  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 12, ENC_NA);
26559  *offsetp += 12;
26560 }
26561 
26562 
26563 static void xkbNamesNotify(tvbuff_t *tvb, int *offsetp, proto_tree *t, guint byte_order)
26564 {
26565  proto_tree_add_item(t, hf_x11_xkb_NamesNotify_xkbType, tvb, *offsetp, 1, byte_order);
26566  *offsetp += 1;
26567  CARD16(event_sequencenumber);
26568  proto_tree_add_item(t, hf_x11_xkb_NamesNotify_time, tvb, *offsetp, 4, byte_order);
26569  *offsetp += 4;
26570  proto_tree_add_item(t, hf_x11_xkb_NamesNotify_deviceID, tvb, *offsetp, 1, byte_order);
26571  *offsetp += 1;
26572  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
26573  *offsetp += 1;
26574  {
26575  int* const changed_bits [] = {
26576  &hf_x11_xkb_NamesNotify_changed_mask_Keycodes,
26577  &hf_x11_xkb_NamesNotify_changed_mask_Geometry,
26578  &hf_x11_xkb_NamesNotify_changed_mask_Symbols,
26579  &hf_x11_xkb_NamesNotify_changed_mask_PhysSymbols,
26580  &hf_x11_xkb_NamesNotify_changed_mask_Types,
26581  &hf_x11_xkb_NamesNotify_changed_mask_Compat,
26582  &hf_x11_xkb_NamesNotify_changed_mask_KeyTypeNames,
26583  &hf_x11_xkb_NamesNotify_changed_mask_KTLevelNames,
26584  &hf_x11_xkb_NamesNotify_changed_mask_IndicatorNames,
26585  &hf_x11_xkb_NamesNotify_changed_mask_KeyNames,
26586  &hf_x11_xkb_NamesNotify_changed_mask_KeyAliases,
26587  &hf_x11_xkb_NamesNotify_changed_mask_VirtualModNames,
26588  &hf_x11_xkb_NamesNotify_changed_mask_GroupNames,
26589  &hf_x11_xkb_NamesNotify_changed_mask_RGNames,
26590  NULL
26591  };
26592  proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_xkb_NamesNotify_changed, ett_x11_rectangle, changed_bits, byte_order);
26593  }
26594  *offsetp += 2;
26595  proto_tree_add_item(t, hf_x11_xkb_NamesNotify_firstType, tvb, *offsetp, 1, byte_order);
26596  *offsetp += 1;
26597  proto_tree_add_item(t, hf_x11_xkb_NamesNotify_nTypes, tvb, *offsetp, 1, byte_order);
26598  *offsetp += 1;
26599  proto_tree_add_item(t, hf_x11_xkb_NamesNotify_firstLevelName, tvb, *offsetp, 1, byte_order);
26600  *offsetp += 1;
26601  proto_tree_add_item(t, hf_x11_xkb_NamesNotify_nLevelNames, tvb, *offsetp, 1, byte_order);
26602  *offsetp += 1;
26603  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
26604  *offsetp += 1;
26605  proto_tree_add_item(t, hf_x11_xkb_NamesNotify_nRadioGroups, tvb, *offsetp, 1, byte_order);
26606  *offsetp += 1;
26607  proto_tree_add_item(t, hf_x11_xkb_NamesNotify_nKeyAliases, tvb, *offsetp, 1, byte_order);
26608  *offsetp += 1;
26609  {
26610  int* const changedGroupNames_bits [] = {
26611  &hf_x11_xkb_NamesNotify_changedGroupNames_mask_Group1,
26612  &hf_x11_xkb_NamesNotify_changedGroupNames_mask_Group2,
26613  &hf_x11_xkb_NamesNotify_changedGroupNames_mask_Group3,
26614  &hf_x11_xkb_NamesNotify_changedGroupNames_mask_Group4,
26615  NULL
26616  };
26617  proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_xkb_NamesNotify_changedGroupNames, ett_x11_rectangle, changedGroupNames_bits, byte_order);
26618  }
26619  *offsetp += 1;
26620  {
26621  int* const changedVirtualMods_bits [] = {
26622  &hf_x11_xkb_NamesNotify_changedVirtualMods_mask_0,
26623  &hf_x11_xkb_NamesNotify_changedVirtualMods_mask_1,
26624  &hf_x11_xkb_NamesNotify_changedVirtualMods_mask_2,
26625  &hf_x11_xkb_NamesNotify_changedVirtualMods_mask_3,
26626  &hf_x11_xkb_NamesNotify_changedVirtualMods_mask_4,
26627  &hf_x11_xkb_NamesNotify_changedVirtualMods_mask_5,
26628  &hf_x11_xkb_NamesNotify_changedVirtualMods_mask_6,
26629  &hf_x11_xkb_NamesNotify_changedVirtualMods_mask_7,
26630  &hf_x11_xkb_NamesNotify_changedVirtualMods_mask_8,
26631  &hf_x11_xkb_NamesNotify_changedVirtualMods_mask_9,
26632  &hf_x11_xkb_NamesNotify_changedVirtualMods_mask_10,
26633  &hf_x11_xkb_NamesNotify_changedVirtualMods_mask_11,
26634  &hf_x11_xkb_NamesNotify_changedVirtualMods_mask_12,
26635  &hf_x11_xkb_NamesNotify_changedVirtualMods_mask_13,
26636  &hf_x11_xkb_NamesNotify_changedVirtualMods_mask_14,
26637  &hf_x11_xkb_NamesNotify_changedVirtualMods_mask_15,
26638  NULL
26639  };
26640  proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_xkb_NamesNotify_changedVirtualMods, ett_x11_rectangle, changedVirtualMods_bits, byte_order);
26641  }
26642  *offsetp += 2;
26643  proto_tree_add_item(t, hf_x11_xkb_NamesNotify_firstKey, tvb, *offsetp, 1, byte_order);
26644  *offsetp += 1;
26645  proto_tree_add_item(t, hf_x11_xkb_NamesNotify_nKeys, tvb, *offsetp, 1, byte_order);
26646  *offsetp += 1;
26647  proto_tree_add_item(t, hf_x11_xkb_NamesNotify_changedIndicators, tvb, *offsetp, 4, byte_order);
26648  *offsetp += 4;
26649  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 4, ENC_NA);
26650  *offsetp += 4;
26651 }
26652 
26653 
26654 static void xkbCompatMapNotify(tvbuff_t *tvb, int *offsetp, proto_tree *t, guint byte_order)
26655 {
26656  proto_tree_add_item(t, hf_x11_xkb_CompatMapNotify_xkbType, tvb, *offsetp, 1, byte_order);
26657  *offsetp += 1;
26658  CARD16(event_sequencenumber);
26659  proto_tree_add_item(t, hf_x11_xkb_CompatMapNotify_time, tvb, *offsetp, 4, byte_order);
26660  *offsetp += 4;
26661  proto_tree_add_item(t, hf_x11_xkb_CompatMapNotify_deviceID, tvb, *offsetp, 1, byte_order);
26662  *offsetp += 1;
26663  {
26664  int* const changedGroups_bits [] = {
26665  &hf_x11_xkb_CompatMapNotify_changedGroups_mask_Group1,
26666  &hf_x11_xkb_CompatMapNotify_changedGroups_mask_Group2,
26667  &hf_x11_xkb_CompatMapNotify_changedGroups_mask_Group3,
26668  &hf_x11_xkb_CompatMapNotify_changedGroups_mask_Group4,
26669  NULL
26670  };
26671  proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_xkb_CompatMapNotify_changedGroups, ett_x11_rectangle, changedGroups_bits, byte_order);
26672  }
26673  *offsetp += 1;
26674  proto_tree_add_item(t, hf_x11_xkb_CompatMapNotify_firstSI, tvb, *offsetp, 2, byte_order);
26675  *offsetp += 2;
26676  proto_tree_add_item(t, hf_x11_xkb_CompatMapNotify_nSI, tvb, *offsetp, 2, byte_order);
26677  *offsetp += 2;
26678  proto_tree_add_item(t, hf_x11_xkb_CompatMapNotify_nTotalSI, tvb, *offsetp, 2, byte_order);
26679  *offsetp += 2;
26680  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 16, ENC_NA);
26681  *offsetp += 16;
26682 }
26683 
26684 
26685 static void xkbBellNotify(tvbuff_t *tvb, int *offsetp, proto_tree *t, guint byte_order)
26686 {
26687  proto_tree_add_item(t, hf_x11_xkb_BellNotify_xkbType, tvb, *offsetp, 1, byte_order);
26688  *offsetp += 1;
26689  CARD16(event_sequencenumber);
26690  proto_tree_add_item(t, hf_x11_xkb_BellNotify_time, tvb, *offsetp, 4, byte_order);
26691  *offsetp += 4;
26692  proto_tree_add_item(t, hf_x11_xkb_BellNotify_deviceID, tvb, *offsetp, 1, byte_order);
26693  *offsetp += 1;
26694  field8(tvb, offsetp, t, hf_x11_xkb_BellNotify_bellClass, byte_order);
26695  proto_tree_add_item(t, hf_x11_xkb_BellNotify_bellID, tvb, *offsetp, 1, byte_order);
26696  *offsetp += 1;
26697  proto_tree_add_item(t, hf_x11_xkb_BellNotify_percent, tvb, *offsetp, 1, byte_order);
26698  *offsetp += 1;
26699  proto_tree_add_item(t, hf_x11_xkb_BellNotify_pitch, tvb, *offsetp, 2, byte_order);
26700  *offsetp += 2;
26701  proto_tree_add_item(t, hf_x11_xkb_BellNotify_duration, tvb, *offsetp, 2, byte_order);
26702  *offsetp += 2;
26703  proto_tree_add_item(t, hf_x11_xkb_BellNotify_name, tvb, *offsetp, 4, byte_order);
26704  *offsetp += 4;
26705  proto_tree_add_item(t, hf_x11_xkb_BellNotify_window, tvb, *offsetp, 4, byte_order);
26706  *offsetp += 4;
26707  proto_tree_add_item(t, hf_x11_xkb_BellNotify_eventOnly, tvb, *offsetp, 1, byte_order);
26708  *offsetp += 1;
26709  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 7, ENC_NA);
26710  *offsetp += 7;
26711 }
26712 
26713 
26714 static void xkbActionMessage(tvbuff_t *tvb, int *offsetp, proto_tree *t, guint byte_order)
26715 {
26716  proto_tree_add_item(t, hf_x11_xkb_ActionMessage_xkbType, tvb, *offsetp, 1, byte_order);
26717  *offsetp += 1;
26718  CARD16(event_sequencenumber);
26719  proto_tree_add_item(t, hf_x11_xkb_ActionMessage_time, tvb, *offsetp, 4, byte_order);
26720  *offsetp += 4;
26721  proto_tree_add_item(t, hf_x11_xkb_ActionMessage_deviceID, tvb, *offsetp, 1, byte_order);
26722  *offsetp += 1;
26723  proto_tree_add_item(t, hf_x11_xkb_ActionMessage_keycode, tvb, *offsetp, 1, byte_order);
26724  *offsetp += 1;
26725  proto_tree_add_item(t, hf_x11_xkb_ActionMessage_press, tvb, *offsetp, 1, byte_order);
26726  *offsetp += 1;
26727  proto_tree_add_item(t, hf_x11_xkb_ActionMessage_keyEventFollows, tvb, *offsetp, 1, byte_order);
26728  *offsetp += 1;
26729  {
26730  int* const mods_bits [] = {
26731  &hf_x11_xkb_ActionMessage_mods_mask_Shift,
26732  &hf_x11_xkb_ActionMessage_mods_mask_Lock,
26733  &hf_x11_xkb_ActionMessage_mods_mask_Control,
26734  &hf_x11_xkb_ActionMessage_mods_mask_1,
26735  &hf_x11_xkb_ActionMessage_mods_mask_2,
26736  &hf_x11_xkb_ActionMessage_mods_mask_3,
26737  &hf_x11_xkb_ActionMessage_mods_mask_4,
26738  &hf_x11_xkb_ActionMessage_mods_mask_5,
26739  &hf_x11_xkb_ActionMessage_mods_mask_Any,
26740  NULL
26741  };
26742  proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_xkb_ActionMessage_mods, ett_x11_rectangle, mods_bits, byte_order);
26743  }
26744  *offsetp += 1;
26745  field8(tvb, offsetp, t, hf_x11_xkb_ActionMessage_group, byte_order);
26746  listOfByte(tvb, offsetp, t, hf_x11_xkb_ActionMessage_message, 8, byte_order);
26747  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 10, ENC_NA);
26748  *offsetp += 10;
26749 }
26750 
26751 
26752 static void xkbAccessXNotify(tvbuff_t *tvb, int *offsetp, proto_tree *t, guint byte_order)
26753 {
26754  proto_tree_add_item(t, hf_x11_xkb_AccessXNotify_xkbType, tvb, *offsetp, 1, byte_order);
26755  *offsetp += 1;
26756  CARD16(event_sequencenumber);
26757  proto_tree_add_item(t, hf_x11_xkb_AccessXNotify_time, tvb, *offsetp, 4, byte_order);
26758  *offsetp += 4;
26759  proto_tree_add_item(t, hf_x11_xkb_AccessXNotify_deviceID, tvb, *offsetp, 1, byte_order);
26760  *offsetp += 1;
26761  proto_tree_add_item(t, hf_x11_xkb_AccessXNotify_keycode, tvb, *offsetp, 1, byte_order);
26762  *offsetp += 1;
26763  {
26764  int* const detailt_bits [] = {
26765  &hf_x11_xkb_AccessXNotify_detailt_mask_SKPress,
26766  &hf_x11_xkb_AccessXNotify_detailt_mask_SKAccept,
26767  &hf_x11_xkb_AccessXNotify_detailt_mask_SKReject,
26768  &hf_x11_xkb_AccessXNotify_detailt_mask_SKRelease,
26769  &hf_x11_xkb_AccessXNotify_detailt_mask_BKAccept,
26770  &hf_x11_xkb_AccessXNotify_detailt_mask_BKReject,
26771  &hf_x11_xkb_AccessXNotify_detailt_mask_AXKWarning,
26772  NULL
26773  };
26774  proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_xkb_AccessXNotify_detailt, ett_x11_rectangle, detailt_bits, byte_order);
26775  }
26776  *offsetp += 2;
26777  proto_tree_add_item(t, hf_x11_xkb_AccessXNotify_slowKeysDelay, tvb, *offsetp, 2, byte_order);
26778  *offsetp += 2;
26779  proto_tree_add_item(t, hf_x11_xkb_AccessXNotify_debounceDelay, tvb, *offsetp, 2, byte_order);
26780  *offsetp += 2;
26781  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 16, ENC_NA);
26782  *offsetp += 16;
26783 }
26784 
26785 
26786 static void xkbExtensionDeviceNotify(tvbuff_t *tvb, int *offsetp, proto_tree *t, guint byte_order)
26787 {
26788  proto_tree_add_item(t, hf_x11_xkb_ExtensionDeviceNotify_xkbType, tvb, *offsetp, 1, byte_order);
26789  *offsetp += 1;
26790  CARD16(event_sequencenumber);
26791  proto_tree_add_item(t, hf_x11_xkb_ExtensionDeviceNotify_time, tvb, *offsetp, 4, byte_order);
26792  *offsetp += 4;
26793  proto_tree_add_item(t, hf_x11_xkb_ExtensionDeviceNotify_deviceID, tvb, *offsetp, 1, byte_order);
26794  *offsetp += 1;
26795  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
26796  *offsetp += 1;
26797  {
26798  int* const reason_bits [] = {
26799  &hf_x11_xkb_ExtensionDeviceNotify_reason_mask_Keyboards,
26800  &hf_x11_xkb_ExtensionDeviceNotify_reason_mask_ButtonActions,
26801  &hf_x11_xkb_ExtensionDeviceNotify_reason_mask_IndicatorNames,
26802  &hf_x11_xkb_ExtensionDeviceNotify_reason_mask_IndicatorMaps,
26803  &hf_x11_xkb_ExtensionDeviceNotify_reason_mask_IndicatorState,
26804  NULL
26805  };
26806  proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_xkb_ExtensionDeviceNotify_reason, ett_x11_rectangle, reason_bits, byte_order);
26807  }
26808  *offsetp += 2;
26809  field16(tvb, offsetp, t, hf_x11_xkb_ExtensionDeviceNotify_ledClass, byte_order);
26810  proto_tree_add_item(t, hf_x11_xkb_ExtensionDeviceNotify_ledID, tvb, *offsetp, 2, byte_order);
26811  *offsetp += 2;
26812  proto_tree_add_item(t, hf_x11_xkb_ExtensionDeviceNotify_ledsDefined, tvb, *offsetp, 4, byte_order);
26813  *offsetp += 4;
26814  proto_tree_add_item(t, hf_x11_xkb_ExtensionDeviceNotify_ledState, tvb, *offsetp, 4, byte_order);
26815  *offsetp += 4;
26816  proto_tree_add_item(t, hf_x11_xkb_ExtensionDeviceNotify_firstButton, tvb, *offsetp, 1, byte_order);
26817  *offsetp += 1;
26818  proto_tree_add_item(t, hf_x11_xkb_ExtensionDeviceNotify_nButtons, tvb, *offsetp, 1, byte_order);
26819  *offsetp += 1;
26820  {
26821  int* const supported_bits [] = {
26822  &hf_x11_xkb_ExtensionDeviceNotify_supported_mask_Keyboards,
26823  &hf_x11_xkb_ExtensionDeviceNotify_supported_mask_ButtonActions,
26824  &hf_x11_xkb_ExtensionDeviceNotify_supported_mask_IndicatorNames,
26825  &hf_x11_xkb_ExtensionDeviceNotify_supported_mask_IndicatorMaps,
26826  &hf_x11_xkb_ExtensionDeviceNotify_supported_mask_IndicatorState,
26827  NULL
26828  };
26829  proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_xkb_ExtensionDeviceNotify_supported, ett_x11_rectangle, supported_bits, byte_order);
26830  }
26831  *offsetp += 2;
26832  {
26833  int* const unsupported_bits [] = {
26834  &hf_x11_xkb_ExtensionDeviceNotify_unsupported_mask_Keyboards,
26835  &hf_x11_xkb_ExtensionDeviceNotify_unsupported_mask_ButtonActions,
26836  &hf_x11_xkb_ExtensionDeviceNotify_unsupported_mask_IndicatorNames,
26837  &hf_x11_xkb_ExtensionDeviceNotify_unsupported_mask_IndicatorMaps,
26838  &hf_x11_xkb_ExtensionDeviceNotify_unsupported_mask_IndicatorState,
26839  NULL
26840  };
26841  proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_xkb_ExtensionDeviceNotify_unsupported, ett_x11_rectangle, unsupported_bits, byte_order);
26842  }
26843  *offsetp += 2;
26844  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 2, ENC_NA);
26845  *offsetp += 2;
26846 }
26847 
26848 static const value_string xkb_extension_minor[] = {
26849  { 0, "UseExtension" },
26850  { 1, "SelectEvents" },
26851  { 3, "Bell" },
26852  { 4, "GetState" },
26853  { 5, "LatchLockState" },
26854  { 6, "GetControls" },
26855  { 7, "SetControls" },
26856  { 8, "GetMap" },
26857  { 9, "SetMap" },
26858  { 10, "GetCompatMap" },
26859  { 11, "SetCompatMap" },
26860  { 12, "GetIndicatorState" },
26861  { 13, "GetIndicatorMap" },
26862  { 14, "SetIndicatorMap" },
26863  { 15, "GetNamedIndicator" },
26864  { 16, "SetNamedIndicator" },
26865  { 17, "GetNames" },
26866  { 18, "SetNames" },
26867  { 21, "PerClientFlags" },
26868  { 22, "ListComponents" },
26869  { 23, "GetKbdByName" },
26870  { 24, "GetDeviceInfo" },
26871  { 25, "SetDeviceInfo" },
26872  { 101, "SetDebuggingFlags" },
26873  { 0, NULL }
26874 };
26875 static const x11_event_info xkb_events[] = {
26876  { "xkb-MapNotify", xkbMapNotify },
26877  { "xkb-StateNotify", xkbStateNotify },
26878  { "xkb-ControlsNotify", xkbControlsNotify },
26879  { "xkb-IndicatorStateNotify", xkbIndicatorStateNotify },
26880  { "xkb-IndicatorMapNotify", xkbIndicatorMapNotify },
26881  { "xkb-NamesNotify", xkbNamesNotify },
26882  { "xkb-CompatMapNotify", xkbCompatMapNotify },
26883  { "xkb-BellNotify", xkbBellNotify },
26884  { "xkb-ActionMessage", xkbActionMessage },
26885  { "xkb-AccessXNotify", xkbAccessXNotify },
26886  { "xkb-ExtensionDeviceNotify", xkbExtensionDeviceNotify },
26887  { NULL, NULL }
26888 };
26889 static x11_reply_info xkb_replies[] = {
26890  { 0, xkbUseExtension_Reply },
26891  { 4, xkbGetState_Reply },
26892  { 6, xkbGetControls_Reply },
26893  { 8, xkbGetMap_Reply },
26894  { 10, xkbGetCompatMap_Reply },
26895  { 12, xkbGetIndicatorState_Reply },
26896  { 13, xkbGetIndicatorMap_Reply },
26897  { 15, xkbGetNamedIndicator_Reply },
26898  { 17, xkbGetNames_Reply },
26899  { 21, xkbPerClientFlags_Reply },
26900  { 22, xkbListComponents_Reply },
26901  { 23, xkbGetKbdByName_Reply },
26902  { 24, xkbGetDeviceInfo_Reply },
26903  { 101, xkbSetDebuggingFlags_Reply },
26904  { 0, NULL }
26905 };
26906 
26907 static void dispatch_xkb(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
26908 {
26909  int minor, length;
26910  minor = CARD8(xkb_extension_minor);
26911  length = REQUEST_LENGTH();
26912 
26913  col_append_fstr(pinfo->cinfo, COL_INFO, "-%s",
26914  val_to_str(minor, xkb_extension_minor,
26915  "<Unknown opcode %d>"));
26916  switch (minor) {
26917  case 0:
26918  xkbUseExtension(tvb, pinfo, offsetp, t, byte_order, length);
26919  break;
26920  case 1:
26921  xkbSelectEvents(tvb, pinfo, offsetp, t, byte_order, length);
26922  break;
26923  case 3:
26924  xkbBell(tvb, pinfo, offsetp, t, byte_order, length);
26925  break;
26926  case 4:
26927  xkbGetState(tvb, pinfo, offsetp, t, byte_order, length);
26928  break;
26929  case 5:
26930  xkbLatchLockState(tvb, pinfo, offsetp, t, byte_order, length);
26931  break;
26932  case 6:
26933  xkbGetControls(tvb, pinfo, offsetp, t, byte_order, length);
26934  break;
26935  case 7:
26936  xkbSetControls(tvb, pinfo, offsetp, t, byte_order, length);
26937  break;
26938  case 8:
26939  xkbGetMap(tvb, pinfo, offsetp, t, byte_order, length);
26940  break;
26941  case 9:
26942  xkbSetMap(tvb, pinfo, offsetp, t, byte_order, length);
26943  break;
26944  case 10:
26945  xkbGetCompatMap(tvb, pinfo, offsetp, t, byte_order, length);
26946  break;
26947  case 11:
26948  xkbSetCompatMap(tvb, pinfo, offsetp, t, byte_order, length);
26949  break;
26950  case 12:
26951  xkbGetIndicatorState(tvb, pinfo, offsetp, t, byte_order, length);
26952  break;
26953  case 13:
26954  xkbGetIndicatorMap(tvb, pinfo, offsetp, t, byte_order, length);
26955  break;
26956  case 14:
26957  xkbSetIndicatorMap(tvb, pinfo, offsetp, t, byte_order, length);
26958  break;
26959  case 15:
26960  xkbGetNamedIndicator(tvb, pinfo, offsetp, t, byte_order, length);
26961  break;
26962  case 16:
26963  xkbSetNamedIndicator(tvb, pinfo, offsetp, t, byte_order, length);
26964  break;
26965  case 17:
26966  xkbGetNames(tvb, pinfo, offsetp, t, byte_order, length);
26967  break;
26968  case 18:
26969  xkbSetNames(tvb, pinfo, offsetp, t, byte_order, length);
26970  break;
26971  case 21:
26972  xkbPerClientFlags(tvb, pinfo, offsetp, t, byte_order, length);
26973  break;
26974  case 22:
26975  xkbListComponents(tvb, pinfo, offsetp, t, byte_order, length);
26976  break;
26977  case 23:
26978  xkbGetKbdByName(tvb, pinfo, offsetp, t, byte_order, length);
26979  break;
26980  case 24:
26981  xkbGetDeviceInfo(tvb, pinfo, offsetp, t, byte_order, length);
26982  break;
26983  case 25:
26984  xkbSetDeviceInfo(tvb, pinfo, offsetp, t, byte_order, length);
26985  break;
26986  case 101:
26987  xkbSetDebuggingFlags(tvb, pinfo, offsetp, t, byte_order, length);
26988  break;
26989  /* No need for a default case here, since Unknown is printed above,
26990  and UNDECODED() is taken care of by dissect_x11_request */
26991  }
26992 }
26993 
26994 static void register_xkb(void)
26995 {
26996  set_handler("XKEYBOARD", dispatch_xkb, xkb_errors, xkb_events, NULL, xkb_replies);
26997 }
26998 
26999 static int struct_size_xprint_PRINTER(tvbuff_t *tvb _U_, int *offsetp _U_, guint byte_order _U_)
27000 {
27001  int size = 0;
27002  int f_descLen;
27003  int f_nameLen;
27004  f_nameLen = tvb_get_guint32(tvb, *offsetp + size + 0, byte_order);
27005  size += f_nameLen * 1;
27006  size = (size + 3) & ~3;
27007  f_descLen = tvb_get_guint32(tvb, *offsetp + size + 4, byte_order);
27008  size += f_descLen * 1;
27009  size = (size + 3) & ~3;
27010  return size + 8;
27011 }
27012 
27013 static void struct_xprint_PRINTER(tvbuff_t *tvb, int *offsetp, proto_tree *root, guint byte_order _U_, int count)
27014 {
27015  int i;
27016  for (i = 0; i < count; i++) {
27017  proto_item *item;
27018  proto_tree *t;
27019  int f_nameLen;
27020  int f_descLen;
27021 
27022  item = proto_tree_add_item(root, hf_x11_struct_xprint_PRINTER, tvb, *offsetp, struct_size_xprint_PRINTER(tvb, offsetp, byte_order), ENC_NA);
27023  t = proto_item_add_subtree(item, ett_x11_rectangle);
27024  f_nameLen = tvb_get_guint32(tvb, *offsetp, byte_order);
27025  proto_tree_add_item(t, hf_x11_struct_xprint_PRINTER_nameLen, tvb, *offsetp, 4, byte_order);
27026  *offsetp += 4;
27027  listOfByte(tvb, offsetp, t, hf_x11_struct_xprint_PRINTER_name, f_nameLen, byte_order);
27028  if (*offsetp % 4) {
27029  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, (4 - *offsetp % 4), ENC_NA);
27030  *offsetp += (4 - *offsetp % 4);
27031  }
27032  f_descLen = tvb_get_guint32(tvb, *offsetp, byte_order);
27033  proto_tree_add_item(t, hf_x11_struct_xprint_PRINTER_descLen, tvb, *offsetp, 4, byte_order);
27034  *offsetp += 4;
27035  listOfByte(tvb, offsetp, t, hf_x11_struct_xprint_PRINTER_description, f_descLen, byte_order);
27036  if (*offsetp % 4) {
27037  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, (4 - *offsetp % 4), ENC_NA);
27038  *offsetp += (4 - *offsetp % 4);
27039  }
27040  }
27041 }
27042 
27043 static void xprintPrintQueryVersion(tvbuff_t *tvb _U_, packet_info *pinfo _U_, int *offsetp _U_, proto_tree *t _U_, guint byte_order _U_, int length _U_)
27044 {
27045 }
27046 static void xprintPrintQueryVersion_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
27047 {
27048  int sequence_number;
27049 
27050  col_append_fstr(pinfo->cinfo, COL_INFO, "-PrintQueryVersion");
27051 
27052  REPLY(reply);
27053  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
27054  *offsetp += 1;
27055  sequence_number = tvb_get_guint16(tvb, *offsetp, byte_order);
27056  proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
27057  "%d (xprint-PrintQueryVersion)", sequence_number);
27058  *offsetp += 2;
27059  proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
27060  *offsetp += 4;
27061  proto_tree_add_item(t, hf_x11_xprint_PrintQueryVersion_reply_major_version, tvb, *offsetp, 2, byte_order);
27062  *offsetp += 2;
27063  proto_tree_add_item(t, hf_x11_xprint_PrintQueryVersion_reply_minor_version, tvb, *offsetp, 2, byte_order);
27064  *offsetp += 2;
27065 }
27066 
27067 static void xprintPrintGetPrinterList(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
27068 {
27069  int f_printerNameLen;
27070  int f_localeLen;
27071  f_printerNameLen = tvb_get_guint32(tvb, *offsetp, byte_order);
27072  proto_tree_add_item(t, hf_x11_xprint_PrintGetPrinterList_printerNameLen, tvb, *offsetp, 4, byte_order);
27073  *offsetp += 4;
27074  f_localeLen = tvb_get_guint32(tvb, *offsetp, byte_order);
27075  proto_tree_add_item(t, hf_x11_xprint_PrintGetPrinterList_localeLen, tvb, *offsetp, 4, byte_order);
27076  *offsetp += 4;
27077  listOfByte(tvb, offsetp, t, hf_x11_xprint_PrintGetPrinterList_printer_name, f_printerNameLen, byte_order);
27078  length -= f_printerNameLen * 1;
27079  listOfByte(tvb, offsetp, t, hf_x11_xprint_PrintGetPrinterList_locale, f_localeLen, byte_order);
27080  length -= f_localeLen * 1;
27081 }
27082 static void xprintPrintGetPrinterList_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
27083 {
27084  int sequence_number;
27085  int f_listCount;
27086 
27087  col_append_fstr(pinfo->cinfo, COL_INFO, "-PrintGetPrinterList");
27088 
27089  REPLY(reply);
27090  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
27091  *offsetp += 1;
27092  sequence_number = tvb_get_guint16(tvb, *offsetp, byte_order);
27093  proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
27094  "%d (xprint-PrintGetPrinterList)", sequence_number);
27095  *offsetp += 2;
27096  proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
27097  *offsetp += 4;
27098  f_listCount = tvb_get_guint32(tvb, *offsetp, byte_order);
27099  proto_tree_add_item(t, hf_x11_xprint_PrintGetPrinterList_reply_listCount, tvb, *offsetp, 4, byte_order);
27100  *offsetp += 4;
27101  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 20, ENC_NA);
27102  *offsetp += 20;
27103  struct_xprint_PRINTER(tvb, offsetp, t, byte_order, f_listCount);
27104 }
27105 
27106 static void xprintPrintRehashPrinterList(tvbuff_t *tvb _U_, packet_info *pinfo _U_, int *offsetp _U_, proto_tree *t _U_, guint byte_order _U_, int length _U_)
27107 {
27108 }
27109 
27110 static void xprintCreateContext(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
27111 {
27112  int f_printerNameLen;
27113  int f_localeLen;
27114  proto_tree_add_item(t, hf_x11_xprint_CreateContext_context_id, tvb, *offsetp, 4, byte_order);
27115  *offsetp += 4;
27116  f_printerNameLen = tvb_get_guint32(tvb, *offsetp, byte_order);
27117  proto_tree_add_item(t, hf_x11_xprint_CreateContext_printerNameLen, tvb, *offsetp, 4, byte_order);
27118  *offsetp += 4;
27119  f_localeLen = tvb_get_guint32(tvb, *offsetp, byte_order);
27120  proto_tree_add_item(t, hf_x11_xprint_CreateContext_localeLen, tvb, *offsetp, 4, byte_order);
27121  *offsetp += 4;
27122  listOfByte(tvb, offsetp, t, hf_x11_xprint_CreateContext_printerName, f_printerNameLen, byte_order);
27123  length -= f_printerNameLen * 1;
27124  listOfByte(tvb, offsetp, t, hf_x11_xprint_CreateContext_locale, f_localeLen, byte_order);
27125  length -= f_localeLen * 1;
27126 }
27127 
27128 static void xprintPrintSetContext(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
27129 {
27130  proto_tree_add_item(t, hf_x11_xprint_PrintSetContext_context, tvb, *offsetp, 4, byte_order);
27131  *offsetp += 4;
27132 }
27133 
27134 static void xprintPrintGetContext(tvbuff_t *tvb _U_, packet_info *pinfo _U_, int *offsetp _U_, proto_tree *t _U_, guint byte_order _U_, int length _U_)
27135 {
27136 }
27137 static void xprintPrintGetContext_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
27138 {
27139  int sequence_number;
27140 
27141  col_append_fstr(pinfo->cinfo, COL_INFO, "-PrintGetContext");
27142 
27143  REPLY(reply);
27144  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
27145  *offsetp += 1;
27146  sequence_number = tvb_get_guint16(tvb, *offsetp, byte_order);
27147  proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
27148  "%d (xprint-PrintGetContext)", sequence_number);
27149  *offsetp += 2;
27150  proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
27151  *offsetp += 4;
27152  proto_tree_add_item(t, hf_x11_xprint_PrintGetContext_reply_context, tvb, *offsetp, 4, byte_order);
27153  *offsetp += 4;
27154 }
27155 
27156 static void xprintPrintDestroyContext(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
27157 {
27158  proto_tree_add_item(t, hf_x11_xprint_PrintDestroyContext_context, tvb, *offsetp, 4, byte_order);
27159  *offsetp += 4;
27160 }
27161 
27162 static void xprintPrintGetScreenOfContext(tvbuff_t *tvb _U_, packet_info *pinfo _U_, int *offsetp _U_, proto_tree *t _U_, guint byte_order _U_, int length _U_)
27163 {
27164 }
27165 static void xprintPrintGetScreenOfContext_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
27166 {
27167  int sequence_number;
27168 
27169  col_append_fstr(pinfo->cinfo, COL_INFO, "-PrintGetScreenOfContext");
27170 
27171  REPLY(reply);
27172  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
27173  *offsetp += 1;
27174  sequence_number = tvb_get_guint16(tvb, *offsetp, byte_order);
27175  proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
27176  "%d (xprint-PrintGetScreenOfContext)", sequence_number);
27177  *offsetp += 2;
27178  proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
27179  *offsetp += 4;
27180  proto_tree_add_item(t, hf_x11_xprint_PrintGetScreenOfContext_reply_root, tvb, *offsetp, 4, byte_order);
27181  *offsetp += 4;
27182 }
27183 
27184 static void xprintPrintStartJob(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
27185 {
27186  proto_tree_add_item(t, hf_x11_xprint_PrintStartJob_output_mode, tvb, *offsetp, 1, byte_order);
27187  *offsetp += 1;
27188 }
27189 
27190 static void xprintPrintEndJob(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
27191 {
27192  proto_tree_add_item(t, hf_x11_xprint_PrintEndJob_cancel, tvb, *offsetp, 1, byte_order);
27193  *offsetp += 1;
27194 }
27195 
27196 static void xprintPrintStartDoc(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
27197 {
27198  proto_tree_add_item(t, hf_x11_xprint_PrintStartDoc_driver_mode, tvb, *offsetp, 1, byte_order);
27199  *offsetp += 1;
27200 }
27201 
27202 static void xprintPrintEndDoc(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
27203 {
27204  proto_tree_add_item(t, hf_x11_xprint_PrintEndDoc_cancel, tvb, *offsetp, 1, byte_order);
27205  *offsetp += 1;
27206 }
27207 
27208 static void xprintPrintPutDocumentData(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
27209 {
27210  int f_len_data;
27211  int f_len_fmt;
27212  int f_len_options;
27213  proto_tree_add_item(t, hf_x11_xprint_PrintPutDocumentData_drawable, tvb, *offsetp, 4, byte_order);
27214  *offsetp += 4;
27215  f_len_data = tvb_get_guint32(tvb, *offsetp, byte_order);
27216  proto_tree_add_item(t, hf_x11_xprint_PrintPutDocumentData_len_data, tvb, *offsetp, 4, byte_order);
27217  *offsetp += 4;
27218  f_len_fmt = tvb_get_guint16(tvb, *offsetp, byte_order);
27219  proto_tree_add_item(t, hf_x11_xprint_PrintPutDocumentData_len_fmt, tvb, *offsetp, 2, byte_order);
27220  *offsetp += 2;
27221  f_len_options = tvb_get_guint16(tvb, *offsetp, byte_order);
27222  proto_tree_add_item(t, hf_x11_xprint_PrintPutDocumentData_len_options, tvb, *offsetp, 2, byte_order);
27223  *offsetp += 2;
27224  listOfByte(tvb, offsetp, t, hf_x11_xprint_PrintPutDocumentData_data, f_len_data, byte_order);
27225  length -= f_len_data * 1;
27226  listOfByte(tvb, offsetp, t, hf_x11_xprint_PrintPutDocumentData_doc_format, f_len_fmt, byte_order);
27227  length -= f_len_fmt * 1;
27228  listOfByte(tvb, offsetp, t, hf_x11_xprint_PrintPutDocumentData_options, f_len_options, byte_order);
27229  length -= f_len_options * 1;
27230 }
27231 
27232 static void xprintPrintGetDocumentData(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
27233 {
27234  proto_tree_add_item(t, hf_x11_xprint_PrintGetDocumentData_context, tvb, *offsetp, 4, byte_order);
27235  *offsetp += 4;
27236  proto_tree_add_item(t, hf_x11_xprint_PrintGetDocumentData_max_bytes, tvb, *offsetp, 4, byte_order);
27237  *offsetp += 4;
27238 }
27239 static void xprintPrintGetDocumentData_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
27240 {
27241  int sequence_number;
27242  int f_dataLen;
27243 
27244  col_append_fstr(pinfo->cinfo, COL_INFO, "-PrintGetDocumentData");
27245 
27246  REPLY(reply);
27247  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
27248  *offsetp += 1;
27249  sequence_number = tvb_get_guint16(tvb, *offsetp, byte_order);
27250  proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
27251  "%d (xprint-PrintGetDocumentData)", sequence_number);
27252  *offsetp += 2;
27253  proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
27254  *offsetp += 4;
27255  proto_tree_add_item(t, hf_x11_xprint_PrintGetDocumentData_reply_status_code, tvb, *offsetp, 4, byte_order);
27256  *offsetp += 4;
27257  proto_tree_add_item(t, hf_x11_xprint_PrintGetDocumentData_reply_finished_flag, tvb, *offsetp, 4, byte_order);
27258  *offsetp += 4;
27259  f_dataLen = tvb_get_guint32(tvb, *offsetp, byte_order);
27260  proto_tree_add_item(t, hf_x11_xprint_PrintGetDocumentData_reply_dataLen, tvb, *offsetp, 4, byte_order);
27261  *offsetp += 4;
27262  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 12, ENC_NA);
27263  *offsetp += 12;
27264  listOfByte(tvb, offsetp, t, hf_x11_xprint_PrintGetDocumentData_reply_data, f_dataLen, byte_order);
27265 }
27266 
27267 static void xprintPrintStartPage(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
27268 {
27269  proto_tree_add_item(t, hf_x11_xprint_PrintStartPage_window, tvb, *offsetp, 4, byte_order);
27270  *offsetp += 4;
27271 }
27272 
27273 static void xprintPrintEndPage(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
27274 {
27275  proto_tree_add_item(t, hf_x11_xprint_PrintEndPage_cancel, tvb, *offsetp, 1, byte_order);
27276  *offsetp += 1;
27277  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 3, ENC_NA);
27278  *offsetp += 3;
27279 }
27280 
27281 static void xprintPrintSelectInput(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
27282 {
27283  proto_tree_add_item(t, hf_x11_xprint_PrintSelectInput_context, tvb, *offsetp, 4, byte_order);
27284  *offsetp += 4;
27285  proto_tree_add_item(t, hf_x11_xprint_PrintSelectInput_event_mask, tvb, *offsetp, 4, byte_order);
27286  *offsetp += 4;
27287 }
27288 
27289 static void xprintPrintInputSelected(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
27290 {
27291  proto_tree_add_item(t, hf_x11_xprint_PrintInputSelected_context, tvb, *offsetp, 4, byte_order);
27292  *offsetp += 4;
27293 }
27294 static void xprintPrintInputSelected_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
27295 {
27296  int sequence_number;
27297 
27298  col_append_fstr(pinfo->cinfo, COL_INFO, "-PrintInputSelected");
27299 
27300  REPLY(reply);
27301  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
27302  *offsetp += 1;
27303  sequence_number = tvb_get_guint16(tvb, *offsetp, byte_order);
27304  proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
27305  "%d (xprint-PrintInputSelected)", sequence_number);
27306  *offsetp += 2;
27307  proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
27308  *offsetp += 4;
27309  proto_tree_add_item(t, hf_x11_xprint_PrintInputSelected_reply_event_mask, tvb, *offsetp, 4, byte_order);
27310  *offsetp += 4;
27311  proto_tree_add_item(t, hf_x11_xprint_PrintInputSelected_reply_all_events_mask, tvb, *offsetp, 4, byte_order);
27312  *offsetp += 4;
27313 }
27314 
27315 static void xprintPrintGetAttributes(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
27316 {
27317  proto_tree_add_item(t, hf_x11_xprint_PrintGetAttributes_context, tvb, *offsetp, 4, byte_order);
27318  *offsetp += 4;
27319  proto_tree_add_item(t, hf_x11_xprint_PrintGetAttributes_pool, tvb, *offsetp, 1, byte_order);
27320  *offsetp += 1;
27321  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 3, ENC_NA);
27322  *offsetp += 3;
27323 }
27324 static void xprintPrintGetAttributes_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
27325 {
27326  int sequence_number;
27327  int f_stringLen;
27328 
27329  col_append_fstr(pinfo->cinfo, COL_INFO, "-PrintGetAttributes");
27330 
27331  REPLY(reply);
27332  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
27333  *offsetp += 1;
27334  sequence_number = tvb_get_guint16(tvb, *offsetp, byte_order);
27335  proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
27336  "%d (xprint-PrintGetAttributes)", sequence_number);
27337  *offsetp += 2;
27338  proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
27339  *offsetp += 4;
27340  f_stringLen = tvb_get_guint32(tvb, *offsetp, byte_order);
27341  proto_tree_add_item(t, hf_x11_xprint_PrintGetAttributes_reply_stringLen, tvb, *offsetp, 4, byte_order);
27342  *offsetp += 4;
27343  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 20, ENC_NA);
27344  *offsetp += 20;
27345  listOfByte(tvb, offsetp, t, hf_x11_xprint_PrintGetAttributes_reply_attributes, f_stringLen, byte_order);
27346 }
27347 
27348 static void xprintPrintGetOneAttributes(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
27349 {
27350  int f_nameLen;
27351  proto_tree_add_item(t, hf_x11_xprint_PrintGetOneAttributes_context, tvb, *offsetp, 4, byte_order);
27352  *offsetp += 4;
27353  f_nameLen = tvb_get_guint32(tvb, *offsetp, byte_order);
27354  proto_tree_add_item(t, hf_x11_xprint_PrintGetOneAttributes_nameLen, tvb, *offsetp, 4, byte_order);
27355  *offsetp += 4;
27356  proto_tree_add_item(t, hf_x11_xprint_PrintGetOneAttributes_pool, tvb, *offsetp, 1, byte_order);
27357  *offsetp += 1;
27358  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 3, ENC_NA);
27359  *offsetp += 3;
27360  listOfByte(tvb, offsetp, t, hf_x11_xprint_PrintGetOneAttributes_name, f_nameLen, byte_order);
27361  length -= f_nameLen * 1;
27362 }
27363 static void xprintPrintGetOneAttributes_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
27364 {
27365  int sequence_number;
27366  int f_valueLen;
27367 
27368  col_append_fstr(pinfo->cinfo, COL_INFO, "-PrintGetOneAttributes");
27369 
27370  REPLY(reply);
27371  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
27372  *offsetp += 1;
27373  sequence_number = tvb_get_guint16(tvb, *offsetp, byte_order);
27374  proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
27375  "%d (xprint-PrintGetOneAttributes)", sequence_number);
27376  *offsetp += 2;
27377  proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
27378  *offsetp += 4;
27379  f_valueLen = tvb_get_guint32(tvb, *offsetp, byte_order);
27380  proto_tree_add_item(t, hf_x11_xprint_PrintGetOneAttributes_reply_valueLen, tvb, *offsetp, 4, byte_order);
27381  *offsetp += 4;
27382  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 20, ENC_NA);
27383  *offsetp += 20;
27384  listOfByte(tvb, offsetp, t, hf_x11_xprint_PrintGetOneAttributes_reply_value, f_valueLen, byte_order);
27385 }
27386 
27387 static void xprintPrintSetAttributes(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
27388 {
27389  proto_tree_add_item(t, hf_x11_xprint_PrintSetAttributes_context, tvb, *offsetp, 4, byte_order);
27390  *offsetp += 4;
27391  proto_tree_add_item(t, hf_x11_xprint_PrintSetAttributes_stringLen, tvb, *offsetp, 4, byte_order);
27392  *offsetp += 4;
27393  proto_tree_add_item(t, hf_x11_xprint_PrintSetAttributes_pool, tvb, *offsetp, 1, byte_order);
27394  *offsetp += 1;
27395  proto_tree_add_item(t, hf_x11_xprint_PrintSetAttributes_rule, tvb, *offsetp, 1, byte_order);
27396  *offsetp += 1;
27397  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 2, ENC_NA);
27398  *offsetp += 2;
27399  listOfByte(tvb, offsetp, t, hf_x11_xprint_PrintSetAttributes_attributes, (length - 16) / 1, byte_order);
27400 }
27401 
27402 static void xprintPrintGetPageDimensions(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
27403 {
27404  proto_tree_add_item(t, hf_x11_xprint_PrintGetPageDimensions_context, tvb, *offsetp, 4, byte_order);
27405  *offsetp += 4;
27406 }
27407 static void xprintPrintGetPageDimensions_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
27408 {
27409  int sequence_number;
27410 
27411  col_append_fstr(pinfo->cinfo, COL_INFO, "-PrintGetPageDimensions");
27412 
27413  REPLY(reply);
27414  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
27415  *offsetp += 1;
27416  sequence_number = tvb_get_guint16(tvb, *offsetp, byte_order);
27417  proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
27418  "%d (xprint-PrintGetPageDimensions)", sequence_number);
27419  *offsetp += 2;
27420  proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
27421  *offsetp += 4;
27422  proto_tree_add_item(t, hf_x11_xprint_PrintGetPageDimensions_reply_width, tvb, *offsetp, 2, byte_order);
27423  *offsetp += 2;
27424  proto_tree_add_item(t, hf_x11_xprint_PrintGetPageDimensions_reply_height, tvb, *offsetp, 2, byte_order);
27425  *offsetp += 2;
27426  proto_tree_add_item(t, hf_x11_xprint_PrintGetPageDimensions_reply_offset_x, tvb, *offsetp, 2, byte_order);
27427  *offsetp += 2;
27428  proto_tree_add_item(t, hf_x11_xprint_PrintGetPageDimensions_reply_offset_y, tvb, *offsetp, 2, byte_order);
27429  *offsetp += 2;
27430  proto_tree_add_item(t, hf_x11_xprint_PrintGetPageDimensions_reply_reproducible_width, tvb, *offsetp, 2, byte_order);
27431  *offsetp += 2;
27432  proto_tree_add_item(t, hf_x11_xprint_PrintGetPageDimensions_reply_reproducible_height, tvb, *offsetp, 2, byte_order);
27433  *offsetp += 2;
27434 }
27435 
27436 static void xprintPrintQueryScreens(tvbuff_t *tvb _U_, packet_info *pinfo _U_, int *offsetp _U_, proto_tree *t _U_, guint byte_order _U_, int length _U_)
27437 {
27438 }
27439 static void xprintPrintQueryScreens_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
27440 {
27441  int sequence_number;
27442  int f_listCount;
27443 
27444  col_append_fstr(pinfo->cinfo, COL_INFO, "-PrintQueryScreens");
27445 
27446  REPLY(reply);
27447  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
27448  *offsetp += 1;
27449  sequence_number = tvb_get_guint16(tvb, *offsetp, byte_order);
27450  proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
27451  "%d (xprint-PrintQueryScreens)", sequence_number);
27452  *offsetp += 2;
27453  proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
27454  *offsetp += 4;
27455  f_listCount = tvb_get_guint32(tvb, *offsetp, byte_order);
27456  proto_tree_add_item(t, hf_x11_xprint_PrintQueryScreens_reply_listCount, tvb, *offsetp, 4, byte_order);
27457  *offsetp += 4;
27458  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 20, ENC_NA);
27459  *offsetp += 20;
27460  listOfCard32(tvb, offsetp, t, hf_x11_xprint_PrintQueryScreens_reply_roots, hf_x11_xprint_PrintQueryScreens_reply_roots_item, f_listCount, byte_order);
27461 }
27462 
27463 static void xprintPrintSetImageResolution(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
27464 {
27465  proto_tree_add_item(t, hf_x11_xprint_PrintSetImageResolution_context, tvb, *offsetp, 4, byte_order);
27466  *offsetp += 4;
27467  proto_tree_add_item(t, hf_x11_xprint_PrintSetImageResolution_image_resolution, tvb, *offsetp, 2, byte_order);
27468  *offsetp += 2;
27469 }
27470 static void xprintPrintSetImageResolution_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
27471 {
27472  int sequence_number;
27473 
27474  col_append_fstr(pinfo->cinfo, COL_INFO, "-PrintSetImageResolution");
27475 
27476  REPLY(reply);
27477  proto_tree_add_item(t, hf_x11_xprint_PrintSetImageResolution_reply_status, tvb, *offsetp, 1, byte_order);
27478  *offsetp += 1;
27479  sequence_number = tvb_get_guint16(tvb, *offsetp, byte_order);
27480  proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
27481  "%d (xprint-PrintSetImageResolution)", sequence_number);
27482  *offsetp += 2;
27483  proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
27484  *offsetp += 4;
27485  proto_tree_add_item(t, hf_x11_xprint_PrintSetImageResolution_reply_previous_resolutions, tvb, *offsetp, 2, byte_order);
27486  *offsetp += 2;
27487 }
27488 
27489 static void xprintPrintGetImageResolution(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
27490 {
27491  proto_tree_add_item(t, hf_x11_xprint_PrintGetImageResolution_context, tvb, *offsetp, 4, byte_order);
27492  *offsetp += 4;
27493 }
27494 static void xprintPrintGetImageResolution_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
27495 {
27496  int sequence_number;
27497 
27498  col_append_fstr(pinfo->cinfo, COL_INFO, "-PrintGetImageResolution");
27499 
27500  REPLY(reply);
27501  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
27502  *offsetp += 1;
27503  sequence_number = tvb_get_guint16(tvb, *offsetp, byte_order);
27504  proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
27505  "%d (xprint-PrintGetImageResolution)", sequence_number);
27506  *offsetp += 2;
27507  proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
27508  *offsetp += 4;
27509  proto_tree_add_item(t, hf_x11_xprint_PrintGetImageResolution_reply_image_resolution, tvb, *offsetp, 2, byte_order);
27510  *offsetp += 2;
27511 }
27512 
27513 static void xprintAttributNotify(tvbuff_t *tvb, int *offsetp, proto_tree *t, guint byte_order)
27514 {
27515  proto_tree_add_item(t, hf_x11_xprint_AttributNotify_detail, tvb, *offsetp, 1, byte_order);
27516  *offsetp += 1;
27517  CARD16(event_sequencenumber);
27518  proto_tree_add_item(t, hf_x11_xprint_AttributNotify_context, tvb, *offsetp, 4, byte_order);
27519  *offsetp += 4;
27520 }
27521 
27522 static const value_string xprint_extension_minor[] = {
27523  { 0, "PrintQueryVersion" },
27524  { 1, "PrintGetPrinterList" },
27525  { 2, "CreateContext" },
27526  { 3, "PrintSetContext" },
27527  { 4, "PrintGetContext" },
27528  { 5, "PrintDestroyContext" },
27529  { 6, "PrintGetScreenOfContext" },
27530  { 7, "PrintStartJob" },
27531  { 8, "PrintEndJob" },
27532  { 9, "PrintStartDoc" },
27533  { 10, "PrintEndDoc" },
27534  { 11, "PrintPutDocumentData" },
27535  { 12, "PrintGetDocumentData" },
27536  { 13, "PrintStartPage" },
27537  { 14, "PrintEndPage" },
27538  { 15, "PrintSelectInput" },
27539  { 16, "PrintInputSelected" },
27540  { 17, "PrintGetAttributes" },
27541  { 18, "PrintSetAttributes" },
27542  { 19, "PrintGetOneAttributes" },
27543  { 20, "PrintRehashPrinterList" },
27544  { 21, "PrintGetPageDimensions" },
27545  { 22, "PrintQueryScreens" },
27546  { 23, "PrintSetImageResolution" },
27547  { 24, "PrintGetImageResolution" },
27548  { 0, NULL }
27549 };
27550 static const x11_event_info xprint_events[] = {
27551  { "xprint-AttributNotify", xprintAttributNotify },
27552  { NULL, NULL }
27553 };
27554 static x11_reply_info xprint_replies[] = {
27555  { 0, xprintPrintQueryVersion_Reply },
27556  { 1, xprintPrintGetPrinterList_Reply },
27557  { 4, xprintPrintGetContext_Reply },
27558  { 6, xprintPrintGetScreenOfContext_Reply },
27559  { 12, xprintPrintGetDocumentData_Reply },
27560  { 16, xprintPrintInputSelected_Reply },
27561  { 17, xprintPrintGetAttributes_Reply },
27562  { 19, xprintPrintGetOneAttributes_Reply },
27563  { 21, xprintPrintGetPageDimensions_Reply },
27564  { 22, xprintPrintQueryScreens_Reply },
27565  { 23, xprintPrintSetImageResolution_Reply },
27566  { 24, xprintPrintGetImageResolution_Reply },
27567  { 0, NULL }
27568 };
27569 
27570 static void dispatch_xprint(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
27571 {
27572  int minor, length;
27573  minor = CARD8(xprint_extension_minor);
27574  length = REQUEST_LENGTH();
27575 
27576  col_append_fstr(pinfo->cinfo, COL_INFO, "-%s",
27577  val_to_str(minor, xprint_extension_minor,
27578  "<Unknown opcode %d>"));
27579  switch (minor) {
27580  case 0:
27581  xprintPrintQueryVersion(tvb, pinfo, offsetp, t, byte_order, length);
27582  break;
27583  case 1:
27584  xprintPrintGetPrinterList(tvb, pinfo, offsetp, t, byte_order, length);
27585  break;
27586  case 2:
27587  xprintCreateContext(tvb, pinfo, offsetp, t, byte_order, length);
27588  break;
27589  case 3:
27590  xprintPrintSetContext(tvb, pinfo, offsetp, t, byte_order, length);
27591  break;
27592  case 4:
27593  xprintPrintGetContext(tvb, pinfo, offsetp, t, byte_order, length);
27594  break;
27595  case 5:
27596  xprintPrintDestroyContext(tvb, pinfo, offsetp, t, byte_order, length);
27597  break;
27598  case 6:
27599  xprintPrintGetScreenOfContext(tvb, pinfo, offsetp, t, byte_order, length);
27600  break;
27601  case 7:
27602  xprintPrintStartJob(tvb, pinfo, offsetp, t, byte_order, length);
27603  break;
27604  case 8:
27605  xprintPrintEndJob(tvb, pinfo, offsetp, t, byte_order, length);
27606  break;
27607  case 9:
27608  xprintPrintStartDoc(tvb, pinfo, offsetp, t, byte_order, length);
27609  break;
27610  case 10:
27611  xprintPrintEndDoc(tvb, pinfo, offsetp, t, byte_order, length);
27612  break;
27613  case 11:
27614  xprintPrintPutDocumentData(tvb, pinfo, offsetp, t, byte_order, length);
27615  break;
27616  case 12:
27617  xprintPrintGetDocumentData(tvb, pinfo, offsetp, t, byte_order, length);
27618  break;
27619  case 13:
27620  xprintPrintStartPage(tvb, pinfo, offsetp, t, byte_order, length);
27621  break;
27622  case 14:
27623  xprintPrintEndPage(tvb, pinfo, offsetp, t, byte_order, length);
27624  break;
27625  case 15:
27626  xprintPrintSelectInput(tvb, pinfo, offsetp, t, byte_order, length);
27627  break;
27628  case 16:
27629  xprintPrintInputSelected(tvb, pinfo, offsetp, t, byte_order, length);
27630  break;
27631  case 17:
27632  xprintPrintGetAttributes(tvb, pinfo, offsetp, t, byte_order, length);
27633  break;
27634  case 18:
27635  xprintPrintSetAttributes(tvb, pinfo, offsetp, t, byte_order, length);
27636  break;
27637  case 19:
27638  xprintPrintGetOneAttributes(tvb, pinfo, offsetp, t, byte_order, length);
27639  break;
27640  case 20:
27641  xprintPrintRehashPrinterList(tvb, pinfo, offsetp, t, byte_order, length);
27642  break;
27643  case 21:
27644  xprintPrintGetPageDimensions(tvb, pinfo, offsetp, t, byte_order, length);
27645  break;
27646  case 22:
27647  xprintPrintQueryScreens(tvb, pinfo, offsetp, t, byte_order, length);
27648  break;
27649  case 23:
27650  xprintPrintSetImageResolution(tvb, pinfo, offsetp, t, byte_order, length);
27651  break;
27652  case 24:
27653  xprintPrintGetImageResolution(tvb, pinfo, offsetp, t, byte_order, length);
27654  break;
27655  /* No need for a default case here, since Unknown is printed above,
27656  and UNDECODED() is taken care of by dissect_x11_request */
27657  }
27658 }
27659 
27660 static void register_xprint(void)
27661 {
27662  set_handler("XpExtension", dispatch_xprint, xprint_errors, xprint_events, NULL, xprint_replies);
27663 }
27664 
27665 static void xselinuxQueryVersion(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
27666 {
27667  proto_tree_add_item(t, hf_x11_xselinux_QueryVersion_client_major, tvb, *offsetp, 1, byte_order);
27668  *offsetp += 1;
27669  proto_tree_add_item(t, hf_x11_xselinux_QueryVersion_client_minor, tvb, *offsetp, 1, byte_order);
27670  *offsetp += 1;
27671 }
27672 static void xselinuxQueryVersion_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
27673 {
27674  int sequence_number;
27675 
27676  col_append_fstr(pinfo->cinfo, COL_INFO, "-QueryVersion");
27677 
27678  REPLY(reply);
27679  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
27680  *offsetp += 1;
27681  sequence_number = tvb_get_guint16(tvb, *offsetp, byte_order);
27682  proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
27683  "%d (xselinux-QueryVersion)", sequence_number);
27684  *offsetp += 2;
27685  proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
27686  *offsetp += 4;
27687  proto_tree_add_item(t, hf_x11_xselinux_QueryVersion_reply_server_major, tvb, *offsetp, 2, byte_order);
27688  *offsetp += 2;
27689  proto_tree_add_item(t, hf_x11_xselinux_QueryVersion_reply_server_minor, tvb, *offsetp, 2, byte_order);
27690  *offsetp += 2;
27691 }
27692 
27693 static void xselinuxSetDeviceCreateContext(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
27694 {
27695  int f_context_len;
27696  f_context_len = tvb_get_guint32(tvb, *offsetp, byte_order);
27697  proto_tree_add_item(t, hf_x11_xselinux_SetDeviceCreateContext_context_len, tvb, *offsetp, 4, byte_order);
27698  *offsetp += 4;
27699  listOfByte(tvb, offsetp, t, hf_x11_xselinux_SetDeviceCreateContext_context, f_context_len, byte_order);
27700  length -= f_context_len * 1;
27701 }
27702 
27703 static void xselinuxGetDeviceCreateContext(tvbuff_t *tvb _U_, packet_info *pinfo _U_, int *offsetp _U_, proto_tree *t _U_, guint byte_order _U_, int length _U_)
27704 {
27705 }
27706 static void xselinuxGetDeviceCreateContext_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
27707 {
27708  int sequence_number;
27709  int f_context_len;
27710 
27711  col_append_fstr(pinfo->cinfo, COL_INFO, "-GetDeviceCreateContext");
27712 
27713  REPLY(reply);
27714  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
27715  *offsetp += 1;
27716  sequence_number = tvb_get_guint16(tvb, *offsetp, byte_order);
27717  proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
27718  "%d (xselinux-GetDeviceCreateContext)", sequence_number);
27719  *offsetp += 2;
27720  proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
27721  *offsetp += 4;
27722  f_context_len = tvb_get_guint32(tvb, *offsetp, byte_order);
27723  proto_tree_add_item(t, hf_x11_xselinux_GetDeviceCreateContext_reply_context_len, tvb, *offsetp, 4, byte_order);
27724  *offsetp += 4;
27725  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 20, ENC_NA);
27726  *offsetp += 20;
27727  listOfByte(tvb, offsetp, t, hf_x11_xselinux_GetDeviceCreateContext_reply_context, f_context_len, byte_order);
27728 }
27729 
27730 static void xselinuxSetDeviceContext(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
27731 {
27732  int f_context_len;
27733  proto_tree_add_item(t, hf_x11_xselinux_SetDeviceContext_device, tvb, *offsetp, 4, byte_order);
27734  *offsetp += 4;
27735  f_context_len = tvb_get_guint32(tvb, *offsetp, byte_order);
27736  proto_tree_add_item(t, hf_x11_xselinux_SetDeviceContext_context_len, tvb, *offsetp, 4, byte_order);
27737  *offsetp += 4;
27738  listOfByte(tvb, offsetp, t, hf_x11_xselinux_SetDeviceContext_context, f_context_len, byte_order);
27739  length -= f_context_len * 1;
27740 }
27741 
27742 static void xselinuxGetDeviceContext(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
27743 {
27744  proto_tree_add_item(t, hf_x11_xselinux_GetDeviceContext_device, tvb, *offsetp, 4, byte_order);
27745  *offsetp += 4;
27746 }
27747 static void xselinuxGetDeviceContext_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
27748 {
27749  int sequence_number;
27750  int f_context_len;
27751 
27752  col_append_fstr(pinfo->cinfo, COL_INFO, "-GetDeviceContext");
27753 
27754  REPLY(reply);
27755  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
27756  *offsetp += 1;
27757  sequence_number = tvb_get_guint16(tvb, *offsetp, byte_order);
27758  proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
27759  "%d (xselinux-GetDeviceContext)", sequence_number);
27760  *offsetp += 2;
27761  proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
27762  *offsetp += 4;
27763  f_context_len = tvb_get_guint32(tvb, *offsetp, byte_order);
27764  proto_tree_add_item(t, hf_x11_xselinux_GetDeviceContext_reply_context_len, tvb, *offsetp, 4, byte_order);
27765  *offsetp += 4;
27766  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 20, ENC_NA);
27767  *offsetp += 20;
27768  listOfByte(tvb, offsetp, t, hf_x11_xselinux_GetDeviceContext_reply_context, f_context_len, byte_order);
27769 }
27770 
27771 static void xselinuxSetWindowCreateContext(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
27772 {
27773  int f_context_len;
27774  f_context_len = tvb_get_guint32(tvb, *offsetp, byte_order);
27775  proto_tree_add_item(t, hf_x11_xselinux_SetWindowCreateContext_context_len, tvb, *offsetp, 4, byte_order);
27776  *offsetp += 4;
27777  listOfByte(tvb, offsetp, t, hf_x11_xselinux_SetWindowCreateContext_context, f_context_len, byte_order);
27778  length -= f_context_len * 1;
27779 }
27780 
27781 static void xselinuxGetWindowCreateContext(tvbuff_t *tvb _U_, packet_info *pinfo _U_, int *offsetp _U_, proto_tree *t _U_, guint byte_order _U_, int length _U_)
27782 {
27783 }
27784 static void xselinuxGetWindowCreateContext_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
27785 {
27786  int sequence_number;
27787  int f_context_len;
27788 
27789  col_append_fstr(pinfo->cinfo, COL_INFO, "-GetWindowCreateContext");
27790 
27791  REPLY(reply);
27792  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
27793  *offsetp += 1;
27794  sequence_number = tvb_get_guint16(tvb, *offsetp, byte_order);
27795  proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
27796  "%d (xselinux-GetWindowCreateContext)", sequence_number);
27797  *offsetp += 2;
27798  proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
27799  *offsetp += 4;
27800  f_context_len = tvb_get_guint32(tvb, *offsetp, byte_order);
27801  proto_tree_add_item(t, hf_x11_xselinux_GetWindowCreateContext_reply_context_len, tvb, *offsetp, 4, byte_order);
27802  *offsetp += 4;
27803  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 20, ENC_NA);
27804  *offsetp += 20;
27805  listOfByte(tvb, offsetp, t, hf_x11_xselinux_GetWindowCreateContext_reply_context, f_context_len, byte_order);
27806 }
27807 
27808 static void xselinuxGetWindowContext(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
27809 {
27810  proto_tree_add_item(t, hf_x11_xselinux_GetWindowContext_window, tvb, *offsetp, 4, byte_order);
27811  *offsetp += 4;
27812 }
27813 static void xselinuxGetWindowContext_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
27814 {
27815  int sequence_number;
27816  int f_context_len;
27817 
27818  col_append_fstr(pinfo->cinfo, COL_INFO, "-GetWindowContext");
27819 
27820  REPLY(reply);
27821  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
27822  *offsetp += 1;
27823  sequence_number = tvb_get_guint16(tvb, *offsetp, byte_order);
27824  proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
27825  "%d (xselinux-GetWindowContext)", sequence_number);
27826  *offsetp += 2;
27827  proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
27828  *offsetp += 4;
27829  f_context_len = tvb_get_guint32(tvb, *offsetp, byte_order);
27830  proto_tree_add_item(t, hf_x11_xselinux_GetWindowContext_reply_context_len, tvb, *offsetp, 4, byte_order);
27831  *offsetp += 4;
27832  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 20, ENC_NA);
27833  *offsetp += 20;
27834  listOfByte(tvb, offsetp, t, hf_x11_xselinux_GetWindowContext_reply_context, f_context_len, byte_order);
27835 }
27836 
27837 static int struct_size_xselinux_ListItem(tvbuff_t *tvb _U_, int *offsetp _U_, guint byte_order _U_)
27838 {
27839  int size = 0;
27840  int f_data_context_len;
27841  int f_object_context_len;
27842  f_object_context_len = tvb_get_guint32(tvb, *offsetp + size + 4, byte_order);
27843  f_data_context_len = tvb_get_guint32(tvb, *offsetp + size + 8, byte_order);
27844  size += f_object_context_len * 1;
27845  size = (size + 3) & ~3;
27846  size += f_data_context_len * 1;
27847  size = (size + 3) & ~3;
27848  return size + 12;
27849 }
27850 
27851 static void struct_xselinux_ListItem(tvbuff_t *tvb, int *offsetp, proto_tree *root, guint byte_order _U_, int count)
27852 {
27853  int i;
27854  for (i = 0; i < count; i++) {
27855  proto_item *item;
27856  proto_tree *t;
27857  int f_object_context_len;
27858  int f_data_context_len;
27859 
27860  item = proto_tree_add_item(root, hf_x11_struct_xselinux_ListItem, tvb, *offsetp, struct_size_xselinux_ListItem(tvb, offsetp, byte_order), ENC_NA);
27861  t = proto_item_add_subtree(item, ett_x11_rectangle);
27862  proto_tree_add_item(t, hf_x11_struct_xselinux_ListItem_name, tvb, *offsetp, 4, byte_order);
27863  *offsetp += 4;
27864  f_object_context_len = tvb_get_guint32(tvb, *offsetp, byte_order);
27865  proto_tree_add_item(t, hf_x11_struct_xselinux_ListItem_object_context_len, tvb, *offsetp, 4, byte_order);
27866  *offsetp += 4;
27867  f_data_context_len = tvb_get_guint32(tvb, *offsetp, byte_order);
27868  proto_tree_add_item(t, hf_x11_struct_xselinux_ListItem_data_context_len, tvb, *offsetp, 4, byte_order);
27869  *offsetp += 4;
27870  listOfByte(tvb, offsetp, t, hf_x11_struct_xselinux_ListItem_object_context, f_object_context_len, byte_order);
27871  if (*offsetp % 4) {
27872  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, (4 - *offsetp % 4), ENC_NA);
27873  *offsetp += (4 - *offsetp % 4);
27874  }
27875  listOfByte(tvb, offsetp, t, hf_x11_struct_xselinux_ListItem_data_context, f_data_context_len, byte_order);
27876  if (*offsetp % 4) {
27877  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, (4 - *offsetp % 4), ENC_NA);
27878  *offsetp += (4 - *offsetp % 4);
27879  }
27880  }
27881 }
27882 
27883 static void xselinuxSetPropertyCreateContext(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
27884 {
27885  int f_context_len;
27886  f_context_len = tvb_get_guint32(tvb, *offsetp, byte_order);
27887  proto_tree_add_item(t, hf_x11_xselinux_SetPropertyCreateContext_context_len, tvb, *offsetp, 4, byte_order);
27888  *offsetp += 4;
27889  listOfByte(tvb, offsetp, t, hf_x11_xselinux_SetPropertyCreateContext_context, f_context_len, byte_order);
27890  length -= f_context_len * 1;
27891 }
27892 
27893 static void xselinuxGetPropertyCreateContext(tvbuff_t *tvb _U_, packet_info *pinfo _U_, int *offsetp _U_, proto_tree *t _U_, guint byte_order _U_, int length _U_)
27894 {
27895 }
27896 static void xselinuxGetPropertyCreateContext_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
27897 {
27898  int sequence_number;
27899  int f_context_len;
27900 
27901  col_append_fstr(pinfo->cinfo, COL_INFO, "-GetPropertyCreateContext");
27902 
27903  REPLY(reply);
27904  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
27905  *offsetp += 1;
27906  sequence_number = tvb_get_guint16(tvb, *offsetp, byte_order);
27907  proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
27908  "%d (xselinux-GetPropertyCreateContext)", sequence_number);
27909  *offsetp += 2;
27910  proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
27911  *offsetp += 4;
27912  f_context_len = tvb_get_guint32(tvb, *offsetp, byte_order);
27913  proto_tree_add_item(t, hf_x11_xselinux_GetPropertyCreateContext_reply_context_len, tvb, *offsetp, 4, byte_order);
27914  *offsetp += 4;
27915  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 20, ENC_NA);
27916  *offsetp += 20;
27917  listOfByte(tvb, offsetp, t, hf_x11_xselinux_GetPropertyCreateContext_reply_context, f_context_len, byte_order);
27918 }
27919 
27920 static void xselinuxSetPropertyUseContext(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
27921 {
27922  int f_context_len;
27923  f_context_len = tvb_get_guint32(tvb, *offsetp, byte_order);
27924  proto_tree_add_item(t, hf_x11_xselinux_SetPropertyUseContext_context_len, tvb, *offsetp, 4, byte_order);
27925  *offsetp += 4;
27926  listOfByte(tvb, offsetp, t, hf_x11_xselinux_SetPropertyUseContext_context, f_context_len, byte_order);
27927  length -= f_context_len * 1;
27928 }
27929 
27930 static void xselinuxGetPropertyUseContext(tvbuff_t *tvb _U_, packet_info *pinfo _U_, int *offsetp _U_, proto_tree *t _U_, guint byte_order _U_, int length _U_)
27931 {
27932 }
27933 static void xselinuxGetPropertyUseContext_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
27934 {
27935  int sequence_number;
27936  int f_context_len;
27937 
27938  col_append_fstr(pinfo->cinfo, COL_INFO, "-GetPropertyUseContext");
27939 
27940  REPLY(reply);
27941  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
27942  *offsetp += 1;
27943  sequence_number = tvb_get_guint16(tvb, *offsetp, byte_order);
27944  proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
27945  "%d (xselinux-GetPropertyUseContext)", sequence_number);
27946  *offsetp += 2;
27947  proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
27948  *offsetp += 4;
27949  f_context_len = tvb_get_guint32(tvb, *offsetp, byte_order);
27950  proto_tree_add_item(t, hf_x11_xselinux_GetPropertyUseContext_reply_context_len, tvb, *offsetp, 4, byte_order);
27951  *offsetp += 4;
27952  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 20, ENC_NA);
27953  *offsetp += 20;
27954  listOfByte(tvb, offsetp, t, hf_x11_xselinux_GetPropertyUseContext_reply_context, f_context_len, byte_order);
27955 }
27956 
27957 static void xselinuxGetPropertyContext(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
27958 {
27959  proto_tree_add_item(t, hf_x11_xselinux_GetPropertyContext_window, tvb, *offsetp, 4, byte_order);
27960  *offsetp += 4;
27961  proto_tree_add_item(t, hf_x11_xselinux_GetPropertyContext_property, tvb, *offsetp, 4, byte_order);
27962  *offsetp += 4;
27963 }
27964 static void xselinuxGetPropertyContext_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
27965 {
27966  int sequence_number;
27967  int f_context_len;
27968 
27969  col_append_fstr(pinfo->cinfo, COL_INFO, "-GetPropertyContext");
27970 
27971  REPLY(reply);
27972  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
27973  *offsetp += 1;
27974  sequence_number = tvb_get_guint16(tvb, *offsetp, byte_order);
27975  proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
27976  "%d (xselinux-GetPropertyContext)", sequence_number);
27977  *offsetp += 2;
27978  proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
27979  *offsetp += 4;
27980  f_context_len = tvb_get_guint32(tvb, *offsetp, byte_order);
27981  proto_tree_add_item(t, hf_x11_xselinux_GetPropertyContext_reply_context_len, tvb, *offsetp, 4, byte_order);
27982  *offsetp += 4;
27983  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 20, ENC_NA);
27984  *offsetp += 20;
27985  listOfByte(tvb, offsetp, t, hf_x11_xselinux_GetPropertyContext_reply_context, f_context_len, byte_order);
27986 }
27987 
27988 static void xselinuxGetPropertyDataContext(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
27989 {
27990  proto_tree_add_item(t, hf_x11_xselinux_GetPropertyDataContext_window, tvb, *offsetp, 4, byte_order);
27991  *offsetp += 4;
27992  proto_tree_add_item(t, hf_x11_xselinux_GetPropertyDataContext_property, tvb, *offsetp, 4, byte_order);
27993  *offsetp += 4;
27994 }
27995 static void xselinuxGetPropertyDataContext_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
27996 {
27997  int sequence_number;
27998  int f_context_len;
27999 
28000  col_append_fstr(pinfo->cinfo, COL_INFO, "-GetPropertyDataContext");
28001 
28002  REPLY(reply);
28003  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
28004  *offsetp += 1;
28005  sequence_number = tvb_get_guint16(tvb, *offsetp, byte_order);
28006  proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
28007  "%d (xselinux-GetPropertyDataContext)", sequence_number);
28008  *offsetp += 2;
28009  proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
28010  *offsetp += 4;
28011  f_context_len = tvb_get_guint32(tvb, *offsetp, byte_order);
28012  proto_tree_add_item(t, hf_x11_xselinux_GetPropertyDataContext_reply_context_len, tvb, *offsetp, 4, byte_order);
28013  *offsetp += 4;
28014  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 20, ENC_NA);
28015  *offsetp += 20;
28016  listOfByte(tvb, offsetp, t, hf_x11_xselinux_GetPropertyDataContext_reply_context, f_context_len, byte_order);
28017 }
28018 
28019 static void xselinuxListProperties(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
28020 {
28021  proto_tree_add_item(t, hf_x11_xselinux_ListProperties_window, tvb, *offsetp, 4, byte_order);
28022  *offsetp += 4;
28023 }
28024 static void xselinuxListProperties_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
28025 {
28026  int sequence_number;
28027  int f_properties_len;
28028 
28029  col_append_fstr(pinfo->cinfo, COL_INFO, "-ListProperties");
28030 
28031  REPLY(reply);
28032  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
28033  *offsetp += 1;
28034  sequence_number = tvb_get_guint16(tvb, *offsetp, byte_order);
28035  proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
28036  "%d (xselinux-ListProperties)", sequence_number);
28037  *offsetp += 2;
28038  proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
28039  *offsetp += 4;
28040  f_properties_len = tvb_get_guint32(tvb, *offsetp, byte_order);
28041  proto_tree_add_item(t, hf_x11_xselinux_ListProperties_reply_properties_len, tvb, *offsetp, 4, byte_order);
28042  *offsetp += 4;
28043  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 20, ENC_NA);
28044  *offsetp += 20;
28045  struct_xselinux_ListItem(tvb, offsetp, t, byte_order, f_properties_len);
28046 }
28047 
28048 static void xselinuxSetSelectionCreateContext(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
28049 {
28050  int f_context_len;
28051  f_context_len = tvb_get_guint32(tvb, *offsetp, byte_order);
28052  proto_tree_add_item(t, hf_x11_xselinux_SetSelectionCreateContext_context_len, tvb, *offsetp, 4, byte_order);
28053  *offsetp += 4;
28054  listOfByte(tvb, offsetp, t, hf_x11_xselinux_SetSelectionCreateContext_context, f_context_len, byte_order);
28055  length -= f_context_len * 1;
28056 }
28057 
28058 static void xselinuxGetSelectionCreateContext(tvbuff_t *tvb _U_, packet_info *pinfo _U_, int *offsetp _U_, proto_tree *t _U_, guint byte_order _U_, int length _U_)
28059 {
28060 }
28061 static void xselinuxGetSelectionCreateContext_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
28062 {
28063  int sequence_number;
28064  int f_context_len;
28065 
28066  col_append_fstr(pinfo->cinfo, COL_INFO, "-GetSelectionCreateContext");
28067 
28068  REPLY(reply);
28069  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
28070  *offsetp += 1;
28071  sequence_number = tvb_get_guint16(tvb, *offsetp, byte_order);
28072  proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
28073  "%d (xselinux-GetSelectionCreateContext)", sequence_number);
28074  *offsetp += 2;
28075  proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
28076  *offsetp += 4;
28077  f_context_len = tvb_get_guint32(tvb, *offsetp, byte_order);
28078  proto_tree_add_item(t, hf_x11_xselinux_GetSelectionCreateContext_reply_context_len, tvb, *offsetp, 4, byte_order);
28079  *offsetp += 4;
28080  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 20, ENC_NA);
28081  *offsetp += 20;
28082  listOfByte(tvb, offsetp, t, hf_x11_xselinux_GetSelectionCreateContext_reply_context, f_context_len, byte_order);
28083 }
28084 
28085 static void xselinuxSetSelectionUseContext(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
28086 {
28087  int f_context_len;
28088  f_context_len = tvb_get_guint32(tvb, *offsetp, byte_order);
28089  proto_tree_add_item(t, hf_x11_xselinux_SetSelectionUseContext_context_len, tvb, *offsetp, 4, byte_order);
28090  *offsetp += 4;
28091  listOfByte(tvb, offsetp, t, hf_x11_xselinux_SetSelectionUseContext_context, f_context_len, byte_order);
28092  length -= f_context_len * 1;
28093 }
28094 
28095 static void xselinuxGetSelectionUseContext(tvbuff_t *tvb _U_, packet_info *pinfo _U_, int *offsetp _U_, proto_tree *t _U_, guint byte_order _U_, int length _U_)
28096 {
28097 }
28098 static void xselinuxGetSelectionUseContext_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
28099 {
28100  int sequence_number;
28101  int f_context_len;
28102 
28103  col_append_fstr(pinfo->cinfo, COL_INFO, "-GetSelectionUseContext");
28104 
28105  REPLY(reply);
28106  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
28107  *offsetp += 1;
28108  sequence_number = tvb_get_guint16(tvb, *offsetp, byte_order);
28109  proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
28110  "%d (xselinux-GetSelectionUseContext)", sequence_number);
28111  *offsetp += 2;
28112  proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
28113  *offsetp += 4;
28114  f_context_len = tvb_get_guint32(tvb, *offsetp, byte_order);
28115  proto_tree_add_item(t, hf_x11_xselinux_GetSelectionUseContext_reply_context_len, tvb, *offsetp, 4, byte_order);
28116  *offsetp += 4;
28117  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 20, ENC_NA);
28118  *offsetp += 20;
28119  listOfByte(tvb, offsetp, t, hf_x11_xselinux_GetSelectionUseContext_reply_context, f_context_len, byte_order);
28120 }
28121 
28122 static void xselinuxGetSelectionContext(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
28123 {
28124  proto_tree_add_item(t, hf_x11_xselinux_GetSelectionContext_selection, tvb, *offsetp, 4, byte_order);
28125  *offsetp += 4;
28126 }
28127 static void xselinuxGetSelectionContext_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
28128 {
28129  int sequence_number;
28130  int f_context_len;
28131 
28132  col_append_fstr(pinfo->cinfo, COL_INFO, "-GetSelectionContext");
28133 
28134  REPLY(reply);
28135  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
28136  *offsetp += 1;
28137  sequence_number = tvb_get_guint16(tvb, *offsetp, byte_order);
28138  proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
28139  "%d (xselinux-GetSelectionContext)", sequence_number);
28140  *offsetp += 2;
28141  proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
28142  *offsetp += 4;
28143  f_context_len = tvb_get_guint32(tvb, *offsetp, byte_order);
28144  proto_tree_add_item(t, hf_x11_xselinux_GetSelectionContext_reply_context_len, tvb, *offsetp, 4, byte_order);
28145  *offsetp += 4;
28146  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 20, ENC_NA);
28147  *offsetp += 20;
28148  listOfByte(tvb, offsetp, t, hf_x11_xselinux_GetSelectionContext_reply_context, f_context_len, byte_order);
28149 }
28150 
28151 static void xselinuxGetSelectionDataContext(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
28152 {
28153  proto_tree_add_item(t, hf_x11_xselinux_GetSelectionDataContext_selection, tvb, *offsetp, 4, byte_order);
28154  *offsetp += 4;
28155 }
28156 static void xselinuxGetSelectionDataContext_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
28157 {
28158  int sequence_number;
28159  int f_context_len;
28160 
28161  col_append_fstr(pinfo->cinfo, COL_INFO, "-GetSelectionDataContext");
28162 
28163  REPLY(reply);
28164  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
28165  *offsetp += 1;
28166  sequence_number = tvb_get_guint16(tvb, *offsetp, byte_order);
28167  proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
28168  "%d (xselinux-GetSelectionDataContext)", sequence_number);
28169  *offsetp += 2;
28170  proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
28171  *offsetp += 4;
28172  f_context_len = tvb_get_guint32(tvb, *offsetp, byte_order);
28173  proto_tree_add_item(t, hf_x11_xselinux_GetSelectionDataContext_reply_context_len, tvb, *offsetp, 4, byte_order);
28174  *offsetp += 4;
28175  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 20, ENC_NA);
28176  *offsetp += 20;
28177  listOfByte(tvb, offsetp, t, hf_x11_xselinux_GetSelectionDataContext_reply_context, f_context_len, byte_order);
28178 }
28179 
28180 static void xselinuxListSelections(tvbuff_t *tvb _U_, packet_info *pinfo _U_, int *offsetp _U_, proto_tree *t _U_, guint byte_order _U_, int length _U_)
28181 {
28182 }
28183 static void xselinuxListSelections_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
28184 {
28185  int sequence_number;
28186  int f_selections_len;
28187 
28188  col_append_fstr(pinfo->cinfo, COL_INFO, "-ListSelections");
28189 
28190  REPLY(reply);
28191  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
28192  *offsetp += 1;
28193  sequence_number = tvb_get_guint16(tvb, *offsetp, byte_order);
28194  proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
28195  "%d (xselinux-ListSelections)", sequence_number);
28196  *offsetp += 2;
28197  proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
28198  *offsetp += 4;
28199  f_selections_len = tvb_get_guint32(tvb, *offsetp, byte_order);
28200  proto_tree_add_item(t, hf_x11_xselinux_ListSelections_reply_selections_len, tvb, *offsetp, 4, byte_order);
28201  *offsetp += 4;
28202  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 20, ENC_NA);
28203  *offsetp += 20;
28204  struct_xselinux_ListItem(tvb, offsetp, t, byte_order, f_selections_len);
28205 }
28206 
28207 static void xselinuxGetClientContext(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
28208 {
28209  proto_tree_add_item(t, hf_x11_xselinux_GetClientContext_resource, tvb, *offsetp, 4, byte_order);
28210  *offsetp += 4;
28211 }
28212 static void xselinuxGetClientContext_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
28213 {
28214  int sequence_number;
28215  int f_context_len;
28216 
28217  col_append_fstr(pinfo->cinfo, COL_INFO, "-GetClientContext");
28218 
28219  REPLY(reply);
28220  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
28221  *offsetp += 1;
28222  sequence_number = tvb_get_guint16(tvb, *offsetp, byte_order);
28223  proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
28224  "%d (xselinux-GetClientContext)", sequence_number);
28225  *offsetp += 2;
28226  proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
28227  *offsetp += 4;
28228  f_context_len = tvb_get_guint32(tvb, *offsetp, byte_order);
28229  proto_tree_add_item(t, hf_x11_xselinux_GetClientContext_reply_context_len, tvb, *offsetp, 4, byte_order);
28230  *offsetp += 4;
28231  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 20, ENC_NA);
28232  *offsetp += 20;
28233  listOfByte(tvb, offsetp, t, hf_x11_xselinux_GetClientContext_reply_context, f_context_len, byte_order);
28234 }
28235 static const value_string xselinux_extension_minor[] = {
28236  { 0, "QueryVersion" },
28237  { 1, "SetDeviceCreateContext" },
28238  { 2, "GetDeviceCreateContext" },
28239  { 3, "SetDeviceContext" },
28240  { 4, "GetDeviceContext" },
28241  { 5, "SetWindowCreateContext" },
28242  { 6, "GetWindowCreateContext" },
28243  { 7, "GetWindowContext" },
28244  { 8, "SetPropertyCreateContext" },
28245  { 9, "GetPropertyCreateContext" },
28246  { 10, "SetPropertyUseContext" },
28247  { 11, "GetPropertyUseContext" },
28248  { 12, "GetPropertyContext" },
28249  { 13, "GetPropertyDataContext" },
28250  { 14, "ListProperties" },
28251  { 15, "SetSelectionCreateContext" },
28252  { 16, "GetSelectionCreateContext" },
28253  { 17, "SetSelectionUseContext" },
28254  { 18, "GetSelectionUseContext" },
28255  { 19, "GetSelectionContext" },
28256  { 20, "GetSelectionDataContext" },
28257  { 21, "ListSelections" },
28258  { 22, "GetClientContext" },
28259  { 0, NULL }
28260 };
28261 const x11_event_info xselinux_events[] = {
28262  { NULL, NULL }
28263 };
28264 static x11_reply_info xselinux_replies[] = {
28265  { 0, xselinuxQueryVersion_Reply },
28266  { 2, xselinuxGetDeviceCreateContext_Reply },
28267  { 4, xselinuxGetDeviceContext_Reply },
28268  { 6, xselinuxGetWindowCreateContext_Reply },
28269  { 7, xselinuxGetWindowContext_Reply },
28270  { 9, xselinuxGetPropertyCreateContext_Reply },
28271  { 11, xselinuxGetPropertyUseContext_Reply },
28272  { 12, xselinuxGetPropertyContext_Reply },
28273  { 13, xselinuxGetPropertyDataContext_Reply },
28274  { 14, xselinuxListProperties_Reply },
28275  { 16, xselinuxGetSelectionCreateContext_Reply },
28276  { 18, xselinuxGetSelectionUseContext_Reply },
28277  { 19, xselinuxGetSelectionContext_Reply },
28278  { 20, xselinuxGetSelectionDataContext_Reply },
28279  { 21, xselinuxListSelections_Reply },
28280  { 22, xselinuxGetClientContext_Reply },
28281  { 0, NULL }
28282 };
28283 
28284 static void dispatch_xselinux(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
28285 {
28286  int minor, length;
28287  minor = CARD8(xselinux_extension_minor);
28288  length = REQUEST_LENGTH();
28289 
28290  col_append_fstr(pinfo->cinfo, COL_INFO, "-%s",
28291  val_to_str(minor, xselinux_extension_minor,
28292  "<Unknown opcode %d>"));
28293  switch (minor) {
28294  case 0:
28295  xselinuxQueryVersion(tvb, pinfo, offsetp, t, byte_order, length);
28296  break;
28297  case 1:
28298  xselinuxSetDeviceCreateContext(tvb, pinfo, offsetp, t, byte_order, length);
28299  break;
28300  case 2:
28301  xselinuxGetDeviceCreateContext(tvb, pinfo, offsetp, t, byte_order, length);
28302  break;
28303  case 3:
28304  xselinuxSetDeviceContext(tvb, pinfo, offsetp, t, byte_order, length);
28305  break;
28306  case 4:
28307  xselinuxGetDeviceContext(tvb, pinfo, offsetp, t, byte_order, length);
28308  break;
28309  case 5:
28310  xselinuxSetWindowCreateContext(tvb, pinfo, offsetp, t, byte_order, length);
28311  break;
28312  case 6:
28313  xselinuxGetWindowCreateContext(tvb, pinfo, offsetp, t, byte_order, length);
28314  break;
28315  case 7:
28316  xselinuxGetWindowContext(tvb, pinfo, offsetp, t, byte_order, length);
28317  break;
28318  case 8:
28319  xselinuxSetPropertyCreateContext(tvb, pinfo, offsetp, t, byte_order, length);
28320  break;
28321  case 9:
28322  xselinuxGetPropertyCreateContext(tvb, pinfo, offsetp, t, byte_order, length);
28323  break;
28324  case 10:
28325  xselinuxSetPropertyUseContext(tvb, pinfo, offsetp, t, byte_order, length);
28326  break;
28327  case 11:
28328  xselinuxGetPropertyUseContext(tvb, pinfo, offsetp, t, byte_order, length);
28329  break;
28330  case 12:
28331  xselinuxGetPropertyContext(tvb, pinfo, offsetp, t, byte_order, length);
28332  break;
28333  case 13:
28334  xselinuxGetPropertyDataContext(tvb, pinfo, offsetp, t, byte_order, length);
28335  break;
28336  case 14:
28337  xselinuxListProperties(tvb, pinfo, offsetp, t, byte_order, length);
28338  break;
28339  case 15:
28340  xselinuxSetSelectionCreateContext(tvb, pinfo, offsetp, t, byte_order, length);
28341  break;
28342  case 16:
28343  xselinuxGetSelectionCreateContext(tvb, pinfo, offsetp, t, byte_order, length);
28344  break;
28345  case 17:
28346  xselinuxSetSelectionUseContext(tvb, pinfo, offsetp, t, byte_order, length);
28347  break;
28348  case 18:
28349  xselinuxGetSelectionUseContext(tvb, pinfo, offsetp, t, byte_order, length);
28350  break;
28351  case 19:
28352  xselinuxGetSelectionContext(tvb, pinfo, offsetp, t, byte_order, length);
28353  break;
28354  case 20:
28355  xselinuxGetSelectionDataContext(tvb, pinfo, offsetp, t, byte_order, length);
28356  break;
28357  case 21:
28358  xselinuxListSelections(tvb, pinfo, offsetp, t, byte_order, length);
28359  break;
28360  case 22:
28361  xselinuxGetClientContext(tvb, pinfo, offsetp, t, byte_order, length);
28362  break;
28363  /* No need for a default case here, since Unknown is printed above,
28364  and UNDECODED() is taken care of by dissect_x11_request */
28365  }
28366 }
28367 
28368 static void register_xselinux(void)
28369 {
28370  set_handler("SELinux", dispatch_xselinux, xselinux_errors, xselinux_events, NULL, xselinux_replies);
28371 }
28372 
28373 static void xtestGetVersion(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
28374 {
28375  proto_tree_add_item(t, hf_x11_xtest_GetVersion_major_version, tvb, *offsetp, 1, byte_order);
28376  *offsetp += 1;
28377  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
28378  *offsetp += 1;
28379  proto_tree_add_item(t, hf_x11_xtest_GetVersion_minor_version, tvb, *offsetp, 2, byte_order);
28380  *offsetp += 2;
28381 }
28382 static void xtestGetVersion_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
28383 {
28384  int sequence_number;
28385 
28386  col_append_fstr(pinfo->cinfo, COL_INFO, "-GetVersion");
28387 
28388  REPLY(reply);
28389  proto_tree_add_item(t, hf_x11_xtest_GetVersion_reply_major_version, tvb, *offsetp, 1, byte_order);
28390  *offsetp += 1;
28391  sequence_number = tvb_get_guint16(tvb, *offsetp, byte_order);
28392  proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
28393  "%d (xtest-GetVersion)", sequence_number);
28394  *offsetp += 2;
28395  proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
28396  *offsetp += 4;
28397  proto_tree_add_item(t, hf_x11_xtest_GetVersion_reply_minor_version, tvb, *offsetp, 2, byte_order);
28398  *offsetp += 2;
28399 }
28400 
28401 static void xtestCompareCursor(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
28402 {
28403  proto_tree_add_item(t, hf_x11_xtest_CompareCursor_window, tvb, *offsetp, 4, byte_order);
28404  *offsetp += 4;
28405  proto_tree_add_item(t, hf_x11_xtest_CompareCursor_cursor, tvb, *offsetp, 4, byte_order);
28406  *offsetp += 4;
28407 }
28408 static void xtestCompareCursor_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
28409 {
28410  int sequence_number;
28411 
28412  col_append_fstr(pinfo->cinfo, COL_INFO, "-CompareCursor");
28413 
28414  REPLY(reply);
28415  proto_tree_add_item(t, hf_x11_xtest_CompareCursor_reply_same, tvb, *offsetp, 1, byte_order);
28416  *offsetp += 1;
28417  sequence_number = tvb_get_guint16(tvb, *offsetp, byte_order);
28418  proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
28419  "%d (xtest-CompareCursor)", sequence_number);
28420  *offsetp += 2;
28421  proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
28422  *offsetp += 4;
28423 }
28424 
28425 static void xtestFakeInput(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
28426 {
28427  proto_tree_add_item(t, hf_x11_xtest_FakeInput_type, tvb, *offsetp, 1, ENC_NA);
28428  *offsetp += 1;
28429  proto_tree_add_item(t, hf_x11_xtest_FakeInput_detail, tvb, *offsetp, 1, ENC_NA);
28430  *offsetp += 1;
28431  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 2, ENC_NA);
28432  *offsetp += 2;
28433  proto_tree_add_item(t, hf_x11_xtest_FakeInput_time, tvb, *offsetp, 4, byte_order);
28434  *offsetp += 4;
28435  proto_tree_add_item(t, hf_x11_xtest_FakeInput_root, tvb, *offsetp, 4, byte_order);
28436  *offsetp += 4;
28437  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 8, ENC_NA);
28438  *offsetp += 8;
28439  proto_tree_add_item(t, hf_x11_xtest_FakeInput_rootX, tvb, *offsetp, 2, byte_order);
28440  *offsetp += 2;
28441  proto_tree_add_item(t, hf_x11_xtest_FakeInput_rootY, tvb, *offsetp, 2, byte_order);
28442  *offsetp += 2;
28443  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 7, ENC_NA);
28444  *offsetp += 7;
28445  proto_tree_add_item(t, hf_x11_xtest_FakeInput_deviceid, tvb, *offsetp, 1, byte_order);
28446  *offsetp += 1;
28447 }
28448 
28449 static void xtestGrabControl(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
28450 {
28451  proto_tree_add_item(t, hf_x11_xtest_GrabControl_impervious, tvb, *offsetp, 1, byte_order);
28452  *offsetp += 1;
28453  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 3, ENC_NA);
28454  *offsetp += 3;
28455 }
28456 static const value_string xtest_extension_minor[] = {
28457  { 0, "GetVersion" },
28458  { 1, "CompareCursor" },
28459  { 2, "FakeInput" },
28460  { 3, "GrabControl" },
28461  { 0, NULL }
28462 };
28463 const x11_event_info xtest_events[] = {
28464  { NULL, NULL }
28465 };
28466 static x11_reply_info xtest_replies[] = {
28467  { 0, xtestGetVersion_Reply },
28468  { 1, xtestCompareCursor_Reply },
28469  { 0, NULL }
28470 };
28471 
28472 static void dispatch_xtest(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
28473 {
28474  int minor, length;
28475  minor = CARD8(xtest_extension_minor);
28476  length = REQUEST_LENGTH();
28477 
28478  col_append_fstr(pinfo->cinfo, COL_INFO, "-%s",
28479  val_to_str(minor, xtest_extension_minor,
28480  "<Unknown opcode %d>"));
28481  switch (minor) {
28482  case 0:
28483  xtestGetVersion(tvb, pinfo, offsetp, t, byte_order, length);
28484  break;
28485  case 1:
28486  xtestCompareCursor(tvb, pinfo, offsetp, t, byte_order, length);
28487  break;
28488  case 2:
28489  xtestFakeInput(tvb, pinfo, offsetp, t, byte_order, length);
28490  break;
28491  case 3:
28492  xtestGrabControl(tvb, pinfo, offsetp, t, byte_order, length);
28493  break;
28494  /* No need for a default case here, since Unknown is printed above,
28495  and UNDECODED() is taken care of by dissect_x11_request */
28496  }
28497 }
28498 
28499 static void register_xtest(void)
28500 {
28501  set_handler("XTEST", dispatch_xtest, xtest_errors, xtest_events, NULL, xtest_replies);
28502 }
28503 
28504 static void struct_xv_Rational(tvbuff_t *tvb, int *offsetp, proto_tree *root, guint byte_order _U_, int count)
28505 {
28506  int i;
28507  for (i = 0; i < count; i++) {
28508  proto_item *item;
28509  proto_tree *t;
28510 
28511  item = proto_tree_add_item(root, hf_x11_struct_xv_Rational, tvb, *offsetp, 8, ENC_NA);
28512  t = proto_item_add_subtree(item, ett_x11_rectangle);
28513  proto_tree_add_item(t, hf_x11_struct_xv_Rational_numerator, tvb, *offsetp, 4, byte_order);
28514  *offsetp += 4;
28515  proto_tree_add_item(t, hf_x11_struct_xv_Rational_denominator, tvb, *offsetp, 4, byte_order);
28516  *offsetp += 4;
28517  }
28518 }
28519 
28520 static void struct_xv_Format(tvbuff_t *tvb, int *offsetp, proto_tree *root, guint byte_order _U_, int count)
28521 {
28522  int i;
28523  for (i = 0; i < count; i++) {
28524  proto_item *item;
28525  proto_tree *t;
28526 
28527  item = proto_tree_add_item(root, hf_x11_struct_xv_Format, tvb, *offsetp, 8, ENC_NA);
28528  t = proto_item_add_subtree(item, ett_x11_rectangle);
28529  proto_tree_add_item(t, hf_x11_struct_xv_Format_visual, tvb, *offsetp, 4, byte_order);
28530  *offsetp += 4;
28531  proto_tree_add_item(t, hf_x11_struct_xv_Format_depth, tvb, *offsetp, 1, byte_order);
28532  *offsetp += 1;
28533  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 3, ENC_NA);
28534  *offsetp += 3;
28535  }
28536 }
28537 
28538 static int struct_size_xv_AdaptorInfo(tvbuff_t *tvb _U_, int *offsetp _U_, guint byte_order _U_)
28539 {
28540  int size = 0;
28541  int f_name_size;
28542  int f_num_formats;
28543  f_name_size = tvb_get_guint16(tvb, *offsetp + size + 4, byte_order);
28544  f_num_formats = tvb_get_guint16(tvb, *offsetp + size + 8, byte_order);
28545  size += f_name_size * 1;
28546  size = (size + 3) & ~3;
28547  size += f_num_formats * 8;
28548  return size + 12;
28549 }
28550 
28551 static void struct_xv_AdaptorInfo(tvbuff_t *tvb, int *offsetp, proto_tree *root, guint byte_order _U_, int count)
28552 {
28553  int i;
28554  for (i = 0; i < count; i++) {
28555  proto_item *item;
28556  proto_tree *t;
28557  int f_name_size;
28558  int f_num_formats;
28559 
28560  item = proto_tree_add_item(root, hf_x11_struct_xv_AdaptorInfo, tvb, *offsetp, struct_size_xv_AdaptorInfo(tvb, offsetp, byte_order), ENC_NA);
28561  t = proto_item_add_subtree(item, ett_x11_rectangle);
28562  proto_tree_add_item(t, hf_x11_struct_xv_AdaptorInfo_base_id, tvb, *offsetp, 4, byte_order);
28563  *offsetp += 4;
28564  f_name_size = tvb_get_guint16(tvb, *offsetp, byte_order);
28565  proto_tree_add_item(t, hf_x11_struct_xv_AdaptorInfo_name_size, tvb, *offsetp, 2, byte_order);
28566  *offsetp += 2;
28567  proto_tree_add_item(t, hf_x11_struct_xv_AdaptorInfo_num_ports, tvb, *offsetp, 2, byte_order);
28568  *offsetp += 2;
28569  f_num_formats = tvb_get_guint16(tvb, *offsetp, byte_order);
28570  proto_tree_add_item(t, hf_x11_struct_xv_AdaptorInfo_num_formats, tvb, *offsetp, 2, byte_order);
28571  *offsetp += 2;
28572  {
28573  int* const type_bits [] = {
28574  &hf_x11_struct_xv_AdaptorInfo_type_mask_InputMask,
28575  &hf_x11_struct_xv_AdaptorInfo_type_mask_OutputMask,
28576  &hf_x11_struct_xv_AdaptorInfo_type_mask_VideoMask,
28577  &hf_x11_struct_xv_AdaptorInfo_type_mask_StillMask,
28578  &hf_x11_struct_xv_AdaptorInfo_type_mask_ImageMask,
28579  NULL
28580  };
28581  proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_struct_xv_AdaptorInfo_type, ett_x11_rectangle, type_bits, byte_order);
28582  }
28583  *offsetp += 1;
28584  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
28585  *offsetp += 1;
28586  listOfByte(tvb, offsetp, t, hf_x11_struct_xv_AdaptorInfo_name, f_name_size, byte_order);
28587  if (*offsetp % 4) {
28588  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, (4 - *offsetp % 4), ENC_NA);
28589  *offsetp += (4 - *offsetp % 4);
28590  }
28591  struct_xv_Format(tvb, offsetp, t, byte_order, f_num_formats);
28592  }
28593 }
28594 
28595 static int struct_size_xv_EncodingInfo(tvbuff_t *tvb _U_, int *offsetp _U_, guint byte_order _U_)
28596 {
28597  int size = 0;
28598  int f_name_size;
28599  f_name_size = tvb_get_guint16(tvb, *offsetp + size + 4, byte_order);
28600  size += f_name_size * 1;
28601  size = (size + 3) & ~3;
28602  return size + 20;
28603 }
28604 
28605 static void struct_xv_EncodingInfo(tvbuff_t *tvb, int *offsetp, proto_tree *root, guint byte_order _U_, int count)
28606 {
28607  int i;
28608  for (i = 0; i < count; i++) {
28609  proto_item *item;
28610  proto_tree *t;
28611  int f_name_size;
28612 
28613  item = proto_tree_add_item(root, hf_x11_struct_xv_EncodingInfo, tvb, *offsetp, struct_size_xv_EncodingInfo(tvb, offsetp, byte_order), ENC_NA);
28614  t = proto_item_add_subtree(item, ett_x11_rectangle);
28615  proto_tree_add_item(t, hf_x11_struct_xv_EncodingInfo_encoding, tvb, *offsetp, 4, byte_order);
28616  *offsetp += 4;
28617  f_name_size = tvb_get_guint16(tvb, *offsetp, byte_order);
28618  proto_tree_add_item(t, hf_x11_struct_xv_EncodingInfo_name_size, tvb, *offsetp, 2, byte_order);
28619  *offsetp += 2;
28620  proto_tree_add_item(t, hf_x11_struct_xv_EncodingInfo_width, tvb, *offsetp, 2, byte_order);
28621  *offsetp += 2;
28622  proto_tree_add_item(t, hf_x11_struct_xv_EncodingInfo_height, tvb, *offsetp, 2, byte_order);
28623  *offsetp += 2;
28624  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 2, ENC_NA);
28625  *offsetp += 2;
28626  struct_xv_Rational(tvb, offsetp, t, byte_order, 1);
28627  listOfByte(tvb, offsetp, t, hf_x11_struct_xv_EncodingInfo_name, f_name_size, byte_order);
28628  if (*offsetp % 4) {
28629  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, (4 - *offsetp % 4), ENC_NA);
28630  *offsetp += (4 - *offsetp % 4);
28631  }
28632  }
28633 }
28634 
28635 static int struct_size_xv_AttributeInfo(tvbuff_t *tvb _U_, int *offsetp _U_, guint byte_order _U_)
28636 {
28637  int size = 0;
28638  int f_size;
28639  f_size = tvb_get_guint32(tvb, *offsetp + size + 12, byte_order);
28640  size += f_size * 1;
28641  size = (size + 3) & ~3;
28642  return size + 16;
28643 }
28644 
28645 static void struct_xv_AttributeInfo(tvbuff_t *tvb, int *offsetp, proto_tree *root, guint byte_order _U_, int count)
28646 {
28647  int i;
28648  for (i = 0; i < count; i++) {
28649  proto_item *item;
28650  proto_tree *t;
28651  int f_size;
28652 
28653  item = proto_tree_add_item(root, hf_x11_struct_xv_AttributeInfo, tvb, *offsetp, struct_size_xv_AttributeInfo(tvb, offsetp, byte_order), ENC_NA);
28654  t = proto_item_add_subtree(item, ett_x11_rectangle);
28655  {
28656  int* const flags_bits [] = {
28657  &hf_x11_struct_xv_AttributeInfo_flags_mask_Gettable,
28658  &hf_x11_struct_xv_AttributeInfo_flags_mask_Settable,
28659  NULL
28660  };
28661  proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_struct_xv_AttributeInfo_flags, ett_x11_rectangle, flags_bits, byte_order);
28662  }
28663  *offsetp += 4;
28664  proto_tree_add_item(t, hf_x11_struct_xv_AttributeInfo_min, tvb, *offsetp, 4, byte_order);
28665  *offsetp += 4;
28666  proto_tree_add_item(t, hf_x11_struct_xv_AttributeInfo_max, tvb, *offsetp, 4, byte_order);
28667  *offsetp += 4;
28668  f_size = tvb_get_guint32(tvb, *offsetp, byte_order);
28669  proto_tree_add_item(t, hf_x11_struct_xv_AttributeInfo_size, tvb, *offsetp, 4, byte_order);
28670  *offsetp += 4;
28671  listOfByte(tvb, offsetp, t, hf_x11_struct_xv_AttributeInfo_name, f_size, byte_order);
28672  if (*offsetp % 4) {
28673  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, (4 - *offsetp % 4), ENC_NA);
28674  *offsetp += (4 - *offsetp % 4);
28675  }
28676  }
28677 }
28678 
28679 static void struct_xv_ImageFormatInfo(tvbuff_t *tvb, int *offsetp, proto_tree *root, guint byte_order _U_, int count)
28680 {
28681  int i;
28682  for (i = 0; i < count; i++) {
28683  proto_item *item;
28684  proto_tree *t;
28685 
28686  item = proto_tree_add_item(root, hf_x11_struct_xv_ImageFormatInfo, tvb, *offsetp, 128, ENC_NA);
28687  t = proto_item_add_subtree(item, ett_x11_rectangle);
28688  proto_tree_add_item(t, hf_x11_struct_xv_ImageFormatInfo_id, tvb, *offsetp, 4, byte_order);
28689  *offsetp += 4;
28690  field8(tvb, offsetp, t, hf_x11_struct_xv_ImageFormatInfo_type, byte_order);
28691  field8(tvb, offsetp, t, hf_x11_struct_xv_ImageFormatInfo_byte_order, byte_order);
28692  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 2, ENC_NA);
28693  *offsetp += 2;
28694  listOfByte(tvb, offsetp, t, hf_x11_struct_xv_ImageFormatInfo_guid, 16, byte_order);
28695  proto_tree_add_item(t, hf_x11_struct_xv_ImageFormatInfo_bpp, tvb, *offsetp, 1, byte_order);
28696  *offsetp += 1;
28697  proto_tree_add_item(t, hf_x11_struct_xv_ImageFormatInfo_num_planes, tvb, *offsetp, 1, byte_order);
28698  *offsetp += 1;
28699  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 2, ENC_NA);
28700  *offsetp += 2;
28701  proto_tree_add_item(t, hf_x11_struct_xv_ImageFormatInfo_depth, tvb, *offsetp, 1, byte_order);
28702  *offsetp += 1;
28703  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 3, ENC_NA);
28704  *offsetp += 3;
28705  proto_tree_add_item(t, hf_x11_struct_xv_ImageFormatInfo_red_mask, tvb, *offsetp, 4, byte_order);
28706  *offsetp += 4;
28707  proto_tree_add_item(t, hf_x11_struct_xv_ImageFormatInfo_green_mask, tvb, *offsetp, 4, byte_order);
28708  *offsetp += 4;
28709  proto_tree_add_item(t, hf_x11_struct_xv_ImageFormatInfo_blue_mask, tvb, *offsetp, 4, byte_order);
28710  *offsetp += 4;
28711  field8(tvb, offsetp, t, hf_x11_struct_xv_ImageFormatInfo_format, byte_order);
28712  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 3, ENC_NA);
28713  *offsetp += 3;
28714  proto_tree_add_item(t, hf_x11_struct_xv_ImageFormatInfo_y_sample_bits, tvb, *offsetp, 4, byte_order);
28715  *offsetp += 4;
28716  proto_tree_add_item(t, hf_x11_struct_xv_ImageFormatInfo_u_sample_bits, tvb, *offsetp, 4, byte_order);
28717  *offsetp += 4;
28718  proto_tree_add_item(t, hf_x11_struct_xv_ImageFormatInfo_v_sample_bits, tvb, *offsetp, 4, byte_order);
28719  *offsetp += 4;
28720  proto_tree_add_item(t, hf_x11_struct_xv_ImageFormatInfo_vhorz_y_period, tvb, *offsetp, 4, byte_order);
28721  *offsetp += 4;
28722  proto_tree_add_item(t, hf_x11_struct_xv_ImageFormatInfo_vhorz_u_period, tvb, *offsetp, 4, byte_order);
28723  *offsetp += 4;
28724  proto_tree_add_item(t, hf_x11_struct_xv_ImageFormatInfo_vhorz_v_period, tvb, *offsetp, 4, byte_order);
28725  *offsetp += 4;
28726  proto_tree_add_item(t, hf_x11_struct_xv_ImageFormatInfo_vvert_y_period, tvb, *offsetp, 4, byte_order);
28727  *offsetp += 4;
28728  proto_tree_add_item(t, hf_x11_struct_xv_ImageFormatInfo_vvert_u_period, tvb, *offsetp, 4, byte_order);
28729  *offsetp += 4;
28730  proto_tree_add_item(t, hf_x11_struct_xv_ImageFormatInfo_vvert_v_period, tvb, *offsetp, 4, byte_order);
28731  *offsetp += 4;
28732  listOfByte(tvb, offsetp, t, hf_x11_struct_xv_ImageFormatInfo_vcomp_order, 32, byte_order);
28733  field8(tvb, offsetp, t, hf_x11_struct_xv_ImageFormatInfo_vscanline_order, byte_order);
28734  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 11, ENC_NA);
28735  *offsetp += 11;
28736  }
28737 }
28738 
28739 static void xvPortNotify(tvbuff_t *tvb, int *offsetp, proto_tree *t, guint byte_order)
28740 {
28741  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
28742  *offsetp += 1;
28743  CARD16(event_sequencenumber);
28744  proto_tree_add_item(t, hf_x11_xv_PortNotify_time, tvb, *offsetp, 4, byte_order);
28745  *offsetp += 4;
28746  proto_tree_add_item(t, hf_x11_xv_PortNotify_port, tvb, *offsetp, 4, byte_order);
28747  *offsetp += 4;
28748  proto_tree_add_item(t, hf_x11_xv_PortNotify_attribute, tvb, *offsetp, 4, byte_order);
28749  *offsetp += 4;
28750  proto_tree_add_item(t, hf_x11_xv_PortNotify_value, tvb, *offsetp, 4, byte_order);
28751  *offsetp += 4;
28752 }
28753 
28754 
28755 static void xvQueryExtension(tvbuff_t *tvb _U_, packet_info *pinfo _U_, int *offsetp _U_, proto_tree *t _U_, guint byte_order _U_, int length _U_)
28756 {
28757 }
28758 static void xvQueryExtension_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
28759 {
28760  int sequence_number;
28761 
28762  col_append_fstr(pinfo->cinfo, COL_INFO, "-QueryExtension");
28763 
28764  REPLY(reply);
28765  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
28766  *offsetp += 1;
28767  sequence_number = tvb_get_guint16(tvb, *offsetp, byte_order);
28768  proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
28769  "%d (xv-QueryExtension)", sequence_number);
28770  *offsetp += 2;
28771  proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
28772  *offsetp += 4;
28773  proto_tree_add_item(t, hf_x11_xv_QueryExtension_reply_major, tvb, *offsetp, 2, byte_order);
28774  *offsetp += 2;
28775  proto_tree_add_item(t, hf_x11_xv_QueryExtension_reply_minor, tvb, *offsetp, 2, byte_order);
28776  *offsetp += 2;
28777 }
28778 
28779 static void xvQueryAdaptors(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
28780 {
28781  proto_tree_add_item(t, hf_x11_xv_QueryAdaptors_window, tvb, *offsetp, 4, byte_order);
28782  *offsetp += 4;
28783 }
28784 static void xvQueryAdaptors_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
28785 {
28786  int sequence_number;
28787  int f_num_adaptors;
28788 
28789  col_append_fstr(pinfo->cinfo, COL_INFO, "-QueryAdaptors");
28790 
28791  REPLY(reply);
28792  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
28793  *offsetp += 1;
28794  sequence_number = tvb_get_guint16(tvb, *offsetp, byte_order);
28795  proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
28796  "%d (xv-QueryAdaptors)", sequence_number);
28797  *offsetp += 2;
28798  proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
28799  *offsetp += 4;
28800  f_num_adaptors = tvb_get_guint16(tvb, *offsetp, byte_order);
28801  proto_tree_add_item(t, hf_x11_xv_QueryAdaptors_reply_num_adaptors, tvb, *offsetp, 2, byte_order);
28802  *offsetp += 2;
28803  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 22, ENC_NA);
28804  *offsetp += 22;
28805  struct_xv_AdaptorInfo(tvb, offsetp, t, byte_order, f_num_adaptors);
28806 }
28807 
28808 static void xvQueryEncodings(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
28809 {
28810  proto_tree_add_item(t, hf_x11_xv_QueryEncodings_port, tvb, *offsetp, 4, byte_order);
28811  *offsetp += 4;
28812 }
28813 static void xvQueryEncodings_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
28814 {
28815  int sequence_number;
28816  int f_num_encodings;
28817 
28818  col_append_fstr(pinfo->cinfo, COL_INFO, "-QueryEncodings");
28819 
28820  REPLY(reply);
28821  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
28822  *offsetp += 1;
28823  sequence_number = tvb_get_guint16(tvb, *offsetp, byte_order);
28824  proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
28825  "%d (xv-QueryEncodings)", sequence_number);
28826  *offsetp += 2;
28827  proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
28828  *offsetp += 4;
28829  f_num_encodings = tvb_get_guint16(tvb, *offsetp, byte_order);
28830  proto_tree_add_item(t, hf_x11_xv_QueryEncodings_reply_num_encodings, tvb, *offsetp, 2, byte_order);
28831  *offsetp += 2;
28832  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 22, ENC_NA);
28833  *offsetp += 22;
28834  struct_xv_EncodingInfo(tvb, offsetp, t, byte_order, f_num_encodings);
28835 }
28836 
28837 static void xvGrabPort(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
28838 {
28839  proto_tree_add_item(t, hf_x11_xv_GrabPort_port, tvb, *offsetp, 4, byte_order);
28840  *offsetp += 4;
28841  field32(tvb, offsetp, t, hf_x11_xv_GrabPort_time, byte_order);
28842 }
28843 static void xvGrabPort_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
28844 {
28845  int sequence_number;
28846 
28847  col_append_fstr(pinfo->cinfo, COL_INFO, "-GrabPort");
28848 
28849  REPLY(reply);
28850  field8(tvb, offsetp, t, hf_x11_xv_GrabPort_reply_result, byte_order);
28851  sequence_number = tvb_get_guint16(tvb, *offsetp, byte_order);
28852  proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
28853  "%d (xv-GrabPort)", sequence_number);
28854  *offsetp += 2;
28855  proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
28856  *offsetp += 4;
28857 }
28858 
28859 static void xvUngrabPort(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
28860 {
28861  proto_tree_add_item(t, hf_x11_xv_UngrabPort_port, tvb, *offsetp, 4, byte_order);
28862  *offsetp += 4;
28863  field32(tvb, offsetp, t, hf_x11_xv_UngrabPort_time, byte_order);
28864 }
28865 
28866 static void xvPutVideo(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
28867 {
28868  proto_tree_add_item(t, hf_x11_xv_PutVideo_port, tvb, *offsetp, 4, byte_order);
28869  *offsetp += 4;
28870  proto_tree_add_item(t, hf_x11_xv_PutVideo_drawable, tvb, *offsetp, 4, byte_order);
28871  *offsetp += 4;
28872  proto_tree_add_item(t, hf_x11_xv_PutVideo_gc, tvb, *offsetp, 4, byte_order);
28873  *offsetp += 4;
28874  proto_tree_add_item(t, hf_x11_xv_PutVideo_vid_x, tvb, *offsetp, 2, byte_order);
28875  *offsetp += 2;
28876  proto_tree_add_item(t, hf_x11_xv_PutVideo_vid_y, tvb, *offsetp, 2, byte_order);
28877  *offsetp += 2;
28878  proto_tree_add_item(t, hf_x11_xv_PutVideo_vid_w, tvb, *offsetp, 2, byte_order);
28879  *offsetp += 2;
28880  proto_tree_add_item(t, hf_x11_xv_PutVideo_vid_h, tvb, *offsetp, 2, byte_order);
28881  *offsetp += 2;
28882  proto_tree_add_item(t, hf_x11_xv_PutVideo_drw_x, tvb, *offsetp, 2, byte_order);
28883  *offsetp += 2;
28884  proto_tree_add_item(t, hf_x11_xv_PutVideo_drw_y, tvb, *offsetp, 2, byte_order);
28885  *offsetp += 2;
28886  proto_tree_add_item(t, hf_x11_xv_PutVideo_drw_w, tvb, *offsetp, 2, byte_order);
28887  *offsetp += 2;
28888  proto_tree_add_item(t, hf_x11_xv_PutVideo_drw_h, tvb, *offsetp, 2, byte_order);
28889  *offsetp += 2;
28890 }
28891 
28892 static void xvPutStill(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
28893 {
28894  proto_tree_add_item(t, hf_x11_xv_PutStill_port, tvb, *offsetp, 4, byte_order);
28895  *offsetp += 4;
28896  proto_tree_add_item(t, hf_x11_xv_PutStill_drawable, tvb, *offsetp, 4, byte_order);
28897  *offsetp += 4;
28898  proto_tree_add_item(t, hf_x11_xv_PutStill_gc, tvb, *offsetp, 4, byte_order);
28899  *offsetp += 4;
28900  proto_tree_add_item(t, hf_x11_xv_PutStill_vid_x, tvb, *offsetp, 2, byte_order);
28901  *offsetp += 2;
28902  proto_tree_add_item(t, hf_x11_xv_PutStill_vid_y, tvb, *offsetp, 2, byte_order);
28903  *offsetp += 2;
28904  proto_tree_add_item(t, hf_x11_xv_PutStill_vid_w, tvb, *offsetp, 2, byte_order);
28905  *offsetp += 2;
28906  proto_tree_add_item(t, hf_x11_xv_PutStill_vid_h, tvb, *offsetp, 2, byte_order);
28907  *offsetp += 2;
28908  proto_tree_add_item(t, hf_x11_xv_PutStill_drw_x, tvb, *offsetp, 2, byte_order);
28909  *offsetp += 2;
28910  proto_tree_add_item(t, hf_x11_xv_PutStill_drw_y, tvb, *offsetp, 2, byte_order);
28911  *offsetp += 2;
28912  proto_tree_add_item(t, hf_x11_xv_PutStill_drw_w, tvb, *offsetp, 2, byte_order);
28913  *offsetp += 2;
28914  proto_tree_add_item(t, hf_x11_xv_PutStill_drw_h, tvb, *offsetp, 2, byte_order);
28915  *offsetp += 2;
28916 }
28917 
28918 static void xvGetVideo(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
28919 {
28920  proto_tree_add_item(t, hf_x11_xv_GetVideo_port, tvb, *offsetp, 4, byte_order);
28921  *offsetp += 4;
28922  proto_tree_add_item(t, hf_x11_xv_GetVideo_drawable, tvb, *offsetp, 4, byte_order);
28923  *offsetp += 4;
28924  proto_tree_add_item(t, hf_x11_xv_GetVideo_gc, tvb, *offsetp, 4, byte_order);
28925  *offsetp += 4;
28926  proto_tree_add_item(t, hf_x11_xv_GetVideo_vid_x, tvb, *offsetp, 2, byte_order);
28927  *offsetp += 2;
28928  proto_tree_add_item(t, hf_x11_xv_GetVideo_vid_y, tvb, *offsetp, 2, byte_order);
28929  *offsetp += 2;
28930  proto_tree_add_item(t, hf_x11_xv_GetVideo_vid_w, tvb, *offsetp, 2, byte_order);
28931  *offsetp += 2;
28932  proto_tree_add_item(t, hf_x11_xv_GetVideo_vid_h, tvb, *offsetp, 2, byte_order);
28933  *offsetp += 2;
28934  proto_tree_add_item(t, hf_x11_xv_GetVideo_drw_x, tvb, *offsetp, 2, byte_order);
28935  *offsetp += 2;
28936  proto_tree_add_item(t, hf_x11_xv_GetVideo_drw_y, tvb, *offsetp, 2, byte_order);
28937  *offsetp += 2;
28938  proto_tree_add_item(t, hf_x11_xv_GetVideo_drw_w, tvb, *offsetp, 2, byte_order);
28939  *offsetp += 2;
28940  proto_tree_add_item(t, hf_x11_xv_GetVideo_drw_h, tvb, *offsetp, 2, byte_order);
28941  *offsetp += 2;
28942 }
28943 
28944 static void xvGetStill(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
28945 {
28946  proto_tree_add_item(t, hf_x11_xv_GetStill_port, tvb, *offsetp, 4, byte_order);
28947  *offsetp += 4;
28948  proto_tree_add_item(t, hf_x11_xv_GetStill_drawable, tvb, *offsetp, 4, byte_order);
28949  *offsetp += 4;
28950  proto_tree_add_item(t, hf_x11_xv_GetStill_gc, tvb, *offsetp, 4, byte_order);
28951  *offsetp += 4;
28952  proto_tree_add_item(t, hf_x11_xv_GetStill_vid_x, tvb, *offsetp, 2, byte_order);
28953  *offsetp += 2;
28954  proto_tree_add_item(t, hf_x11_xv_GetStill_vid_y, tvb, *offsetp, 2, byte_order);
28955  *offsetp += 2;
28956  proto_tree_add_item(t, hf_x11_xv_GetStill_vid_w, tvb, *offsetp, 2, byte_order);
28957  *offsetp += 2;
28958  proto_tree_add_item(t, hf_x11_xv_GetStill_vid_h, tvb, *offsetp, 2, byte_order);
28959  *offsetp += 2;
28960  proto_tree_add_item(t, hf_x11_xv_GetStill_drw_x, tvb, *offsetp, 2, byte_order);
28961  *offsetp += 2;
28962  proto_tree_add_item(t, hf_x11_xv_GetStill_drw_y, tvb, *offsetp, 2, byte_order);
28963  *offsetp += 2;
28964  proto_tree_add_item(t, hf_x11_xv_GetStill_drw_w, tvb, *offsetp, 2, byte_order);
28965  *offsetp += 2;
28966  proto_tree_add_item(t, hf_x11_xv_GetStill_drw_h, tvb, *offsetp, 2, byte_order);
28967  *offsetp += 2;
28968 }
28969 
28970 static void xvStopVideo(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
28971 {
28972  proto_tree_add_item(t, hf_x11_xv_StopVideo_port, tvb, *offsetp, 4, byte_order);
28973  *offsetp += 4;
28974  proto_tree_add_item(t, hf_x11_xv_StopVideo_drawable, tvb, *offsetp, 4, byte_order);
28975  *offsetp += 4;
28976 }
28977 
28978 static void xvSelectVideoNotify(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
28979 {
28980  proto_tree_add_item(t, hf_x11_xv_SelectVideoNotify_drawable, tvb, *offsetp, 4, byte_order);
28981  *offsetp += 4;
28982  proto_tree_add_item(t, hf_x11_xv_SelectVideoNotify_onoff, tvb, *offsetp, 1, byte_order);
28983  *offsetp += 1;
28984  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 3, ENC_NA);
28985  *offsetp += 3;
28986 }
28987 
28988 static void xvSelectPortNotify(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
28989 {
28990  proto_tree_add_item(t, hf_x11_xv_SelectPortNotify_port, tvb, *offsetp, 4, byte_order);
28991  *offsetp += 4;
28992  proto_tree_add_item(t, hf_x11_xv_SelectPortNotify_onoff, tvb, *offsetp, 1, byte_order);
28993  *offsetp += 1;
28994  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 3, ENC_NA);
28995  *offsetp += 3;
28996 }
28997 
28998 static void xvQueryBestSize(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
28999 {
29000  proto_tree_add_item(t, hf_x11_xv_QueryBestSize_port, tvb, *offsetp, 4, byte_order);
29001  *offsetp += 4;
29002  proto_tree_add_item(t, hf_x11_xv_QueryBestSize_vid_w, tvb, *offsetp, 2, byte_order);
29003  *offsetp += 2;
29004  proto_tree_add_item(t, hf_x11_xv_QueryBestSize_vid_h, tvb, *offsetp, 2, byte_order);
29005  *offsetp += 2;
29006  proto_tree_add_item(t, hf_x11_xv_QueryBestSize_drw_w, tvb, *offsetp, 2, byte_order);
29007  *offsetp += 2;
29008  proto_tree_add_item(t, hf_x11_xv_QueryBestSize_drw_h, tvb, *offsetp, 2, byte_order);
29009  *offsetp += 2;
29010  proto_tree_add_item(t, hf_x11_xv_QueryBestSize_motion, tvb, *offsetp, 1, byte_order);
29011  *offsetp += 1;
29012  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 3, ENC_NA);
29013  *offsetp += 3;
29014 }
29015 static void xvQueryBestSize_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
29016 {
29017  int sequence_number;
29018 
29019  col_append_fstr(pinfo->cinfo, COL_INFO, "-QueryBestSize");
29020 
29021  REPLY(reply);
29022  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
29023  *offsetp += 1;
29024  sequence_number = tvb_get_guint16(tvb, *offsetp, byte_order);
29025  proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
29026  "%d (xv-QueryBestSize)", sequence_number);
29027  *offsetp += 2;
29028  proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
29029  *offsetp += 4;
29030  proto_tree_add_item(t, hf_x11_xv_QueryBestSize_reply_actual_width, tvb, *offsetp, 2, byte_order);
29031  *offsetp += 2;
29032  proto_tree_add_item(t, hf_x11_xv_QueryBestSize_reply_actual_height, tvb, *offsetp, 2, byte_order);
29033  *offsetp += 2;
29034 }
29035 
29036 static void xvSetPortAttribute(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
29037 {
29038  proto_tree_add_item(t, hf_x11_xv_SetPortAttribute_port, tvb, *offsetp, 4, byte_order);
29039  *offsetp += 4;
29040  proto_tree_add_item(t, hf_x11_xv_SetPortAttribute_attribute, tvb, *offsetp, 4, byte_order);
29041  *offsetp += 4;
29042  proto_tree_add_item(t, hf_x11_xv_SetPortAttribute_value, tvb, *offsetp, 4, byte_order);
29043  *offsetp += 4;
29044 }
29045 
29046 static void xvGetPortAttribute(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
29047 {
29048  proto_tree_add_item(t, hf_x11_xv_GetPortAttribute_port, tvb, *offsetp, 4, byte_order);
29049  *offsetp += 4;
29050  proto_tree_add_item(t, hf_x11_xv_GetPortAttribute_attribute, tvb, *offsetp, 4, byte_order);
29051  *offsetp += 4;
29052 }
29053 static void xvGetPortAttribute_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
29054 {
29055  int sequence_number;
29056 
29057  col_append_fstr(pinfo->cinfo, COL_INFO, "-GetPortAttribute");
29058 
29059  REPLY(reply);
29060  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
29061  *offsetp += 1;
29062  sequence_number = tvb_get_guint16(tvb, *offsetp, byte_order);
29063  proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
29064  "%d (xv-GetPortAttribute)", sequence_number);
29065  *offsetp += 2;
29066  proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
29067  *offsetp += 4;
29068  proto_tree_add_item(t, hf_x11_xv_GetPortAttribute_reply_value, tvb, *offsetp, 4, byte_order);
29069  *offsetp += 4;
29070 }
29071 
29072 static void xvQueryPortAttributes(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
29073 {
29074  proto_tree_add_item(t, hf_x11_xv_QueryPortAttributes_port, tvb, *offsetp, 4, byte_order);
29075  *offsetp += 4;
29076 }
29077 static void xvQueryPortAttributes_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
29078 {
29079  int sequence_number;
29080  int f_num_attributes;
29081 
29082  col_append_fstr(pinfo->cinfo, COL_INFO, "-QueryPortAttributes");
29083 
29084  REPLY(reply);
29085  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
29086  *offsetp += 1;
29087  sequence_number = tvb_get_guint16(tvb, *offsetp, byte_order);
29088  proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
29089  "%d (xv-QueryPortAttributes)", sequence_number);
29090  *offsetp += 2;
29091  proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
29092  *offsetp += 4;
29093  f_num_attributes = tvb_get_guint32(tvb, *offsetp, byte_order);
29094  proto_tree_add_item(t, hf_x11_xv_QueryPortAttributes_reply_num_attributes, tvb, *offsetp, 4, byte_order);
29095  *offsetp += 4;
29096  proto_tree_add_item(t, hf_x11_xv_QueryPortAttributes_reply_text_size, tvb, *offsetp, 4, byte_order);
29097  *offsetp += 4;
29098  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 16, ENC_NA);
29099  *offsetp += 16;
29100  struct_xv_AttributeInfo(tvb, offsetp, t, byte_order, f_num_attributes);
29101 }
29102 
29103 static void xvListImageFormats(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
29104 {
29105  proto_tree_add_item(t, hf_x11_xv_ListImageFormats_port, tvb, *offsetp, 4, byte_order);
29106  *offsetp += 4;
29107 }
29108 static void xvListImageFormats_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
29109 {
29110  int sequence_number;
29111  int f_num_formats;
29112 
29113  col_append_fstr(pinfo->cinfo, COL_INFO, "-ListImageFormats");
29114 
29115  REPLY(reply);
29116  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
29117  *offsetp += 1;
29118  sequence_number = tvb_get_guint16(tvb, *offsetp, byte_order);
29119  proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
29120  "%d (xv-ListImageFormats)", sequence_number);
29121  *offsetp += 2;
29122  proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
29123  *offsetp += 4;
29124  f_num_formats = tvb_get_guint32(tvb, *offsetp, byte_order);
29125  proto_tree_add_item(t, hf_x11_xv_ListImageFormats_reply_num_formats, tvb, *offsetp, 4, byte_order);
29126  *offsetp += 4;
29127  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 20, ENC_NA);
29128  *offsetp += 20;
29129  struct_xv_ImageFormatInfo(tvb, offsetp, t, byte_order, f_num_formats);
29130 }
29131 
29132 static void xvQueryImageAttributes(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
29133 {
29134  proto_tree_add_item(t, hf_x11_xv_QueryImageAttributes_port, tvb, *offsetp, 4, byte_order);
29135  *offsetp += 4;
29136  proto_tree_add_item(t, hf_x11_xv_QueryImageAttributes_id, tvb, *offsetp, 4, byte_order);
29137  *offsetp += 4;
29138  proto_tree_add_item(t, hf_x11_xv_QueryImageAttributes_width, tvb, *offsetp, 2, byte_order);
29139  *offsetp += 2;
29140  proto_tree_add_item(t, hf_x11_xv_QueryImageAttributes_height, tvb, *offsetp, 2, byte_order);
29141  *offsetp += 2;
29142 }
29143 static void xvQueryImageAttributes_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
29144 {
29145  int sequence_number;
29146  int f_num_planes;
29147 
29148  col_append_fstr(pinfo->cinfo, COL_INFO, "-QueryImageAttributes");
29149 
29150  REPLY(reply);
29151  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
29152  *offsetp += 1;
29153  sequence_number = tvb_get_guint16(tvb, *offsetp, byte_order);
29154  proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
29155  "%d (xv-QueryImageAttributes)", sequence_number);
29156  *offsetp += 2;
29157  proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
29158  *offsetp += 4;
29159  f_num_planes = tvb_get_guint32(tvb, *offsetp, byte_order);
29160  proto_tree_add_item(t, hf_x11_xv_QueryImageAttributes_reply_num_planes, tvb, *offsetp, 4, byte_order);
29161  *offsetp += 4;
29162  proto_tree_add_item(t, hf_x11_xv_QueryImageAttributes_reply_data_size, tvb, *offsetp, 4, byte_order);
29163  *offsetp += 4;
29164  proto_tree_add_item(t, hf_x11_xv_QueryImageAttributes_reply_width, tvb, *offsetp, 2, byte_order);
29165  *offsetp += 2;
29166  proto_tree_add_item(t, hf_x11_xv_QueryImageAttributes_reply_height, tvb, *offsetp, 2, byte_order);
29167  *offsetp += 2;
29168  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 12, ENC_NA);
29169  *offsetp += 12;
29170  listOfCard32(tvb, offsetp, t, hf_x11_xv_QueryImageAttributes_reply_pitches, hf_x11_xv_QueryImageAttributes_reply_pitches_item, f_num_planes, byte_order);
29171  listOfCard32(tvb, offsetp, t, hf_x11_xv_QueryImageAttributes_reply_offsets, hf_x11_xv_QueryImageAttributes_reply_offsets_item, f_num_planes, byte_order);
29172 }
29173 
29174 static void xvPutImage(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
29175 {
29176  proto_tree_add_item(t, hf_x11_xv_PutImage_port, tvb, *offsetp, 4, byte_order);
29177  *offsetp += 4;
29178  proto_tree_add_item(t, hf_x11_xv_PutImage_drawable, tvb, *offsetp, 4, byte_order);
29179  *offsetp += 4;
29180  proto_tree_add_item(t, hf_x11_xv_PutImage_gc, tvb, *offsetp, 4, byte_order);
29181  *offsetp += 4;
29182  proto_tree_add_item(t, hf_x11_xv_PutImage_id, tvb, *offsetp, 4, byte_order);
29183  *offsetp += 4;
29184  proto_tree_add_item(t, hf_x11_xv_PutImage_src_x, tvb, *offsetp, 2, byte_order);
29185  *offsetp += 2;
29186  proto_tree_add_item(t, hf_x11_xv_PutImage_src_y, tvb, *offsetp, 2, byte_order);
29187  *offsetp += 2;
29188  proto_tree_add_item(t, hf_x11_xv_PutImage_src_w, tvb, *offsetp, 2, byte_order);
29189  *offsetp += 2;
29190  proto_tree_add_item(t, hf_x11_xv_PutImage_src_h, tvb, *offsetp, 2, byte_order);
29191  *offsetp += 2;
29192  proto_tree_add_item(t, hf_x11_xv_PutImage_drw_x, tvb, *offsetp, 2, byte_order);
29193  *offsetp += 2;
29194  proto_tree_add_item(t, hf_x11_xv_PutImage_drw_y, tvb, *offsetp, 2, byte_order);
29195  *offsetp += 2;
29196  proto_tree_add_item(t, hf_x11_xv_PutImage_drw_w, tvb, *offsetp, 2, byte_order);
29197  *offsetp += 2;
29198  proto_tree_add_item(t, hf_x11_xv_PutImage_drw_h, tvb, *offsetp, 2, byte_order);
29199  *offsetp += 2;
29200  proto_tree_add_item(t, hf_x11_xv_PutImage_width, tvb, *offsetp, 2, byte_order);
29201  *offsetp += 2;
29202  proto_tree_add_item(t, hf_x11_xv_PutImage_height, tvb, *offsetp, 2, byte_order);
29203  *offsetp += 2;
29204  listOfByte(tvb, offsetp, t, hf_x11_xv_PutImage_data, (length - 40) / 1, byte_order);
29205 }
29206 
29207 static void xvShmPutImage(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
29208 {
29209  proto_tree_add_item(t, hf_x11_xv_ShmPutImage_port, tvb, *offsetp, 4, byte_order);
29210  *offsetp += 4;
29211  proto_tree_add_item(t, hf_x11_xv_ShmPutImage_drawable, tvb, *offsetp, 4, byte_order);
29212  *offsetp += 4;
29213  proto_tree_add_item(t, hf_x11_xv_ShmPutImage_gc, tvb, *offsetp, 4, byte_order);
29214  *offsetp += 4;
29215  proto_tree_add_item(t, hf_x11_xv_ShmPutImage_shmseg, tvb, *offsetp, 4, byte_order);
29216  *offsetp += 4;
29217  proto_tree_add_item(t, hf_x11_xv_ShmPutImage_id, tvb, *offsetp, 4, byte_order);
29218  *offsetp += 4;
29219  proto_tree_add_item(t, hf_x11_xv_ShmPutImage_offset, tvb, *offsetp, 4, byte_order);
29220  *offsetp += 4;
29221  proto_tree_add_item(t, hf_x11_xv_ShmPutImage_src_x, tvb, *offsetp, 2, byte_order);
29222  *offsetp += 2;
29223  proto_tree_add_item(t, hf_x11_xv_ShmPutImage_src_y, tvb, *offsetp, 2, byte_order);
29224  *offsetp += 2;
29225  proto_tree_add_item(t, hf_x11_xv_ShmPutImage_src_w, tvb, *offsetp, 2, byte_order);
29226  *offsetp += 2;
29227  proto_tree_add_item(t, hf_x11_xv_ShmPutImage_src_h, tvb, *offsetp, 2, byte_order);
29228  *offsetp += 2;
29229  proto_tree_add_item(t, hf_x11_xv_ShmPutImage_drw_x, tvb, *offsetp, 2, byte_order);
29230  *offsetp += 2;
29231  proto_tree_add_item(t, hf_x11_xv_ShmPutImage_drw_y, tvb, *offsetp, 2, byte_order);
29232  *offsetp += 2;
29233  proto_tree_add_item(t, hf_x11_xv_ShmPutImage_drw_w, tvb, *offsetp, 2, byte_order);
29234  *offsetp += 2;
29235  proto_tree_add_item(t, hf_x11_xv_ShmPutImage_drw_h, tvb, *offsetp, 2, byte_order);
29236  *offsetp += 2;
29237  proto_tree_add_item(t, hf_x11_xv_ShmPutImage_width, tvb, *offsetp, 2, byte_order);
29238  *offsetp += 2;
29239  proto_tree_add_item(t, hf_x11_xv_ShmPutImage_height, tvb, *offsetp, 2, byte_order);
29240  *offsetp += 2;
29241  proto_tree_add_item(t, hf_x11_xv_ShmPutImage_send_event, tvb, *offsetp, 1, byte_order);
29242  *offsetp += 1;
29243  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 3, ENC_NA);
29244  *offsetp += 3;
29245 }
29246 static const value_string xv_extension_minor[] = {
29247  { 0, "QueryExtension" },
29248  { 1, "QueryAdaptors" },
29249  { 2, "QueryEncodings" },
29250  { 3, "GrabPort" },
29251  { 4, "UngrabPort" },
29252  { 5, "PutVideo" },
29253  { 6, "PutStill" },
29254  { 7, "GetVideo" },
29255  { 8, "GetStill" },
29256  { 9, "StopVideo" },
29257  { 10, "SelectVideoNotify" },
29258  { 11, "SelectPortNotify" },
29259  { 12, "QueryBestSize" },
29260  { 13, "SetPortAttribute" },
29261  { 14, "GetPortAttribute" },
29262  { 15, "QueryPortAttributes" },
29263  { 16, "ListImageFormats" },
29264  { 17, "QueryImageAttributes" },
29265  { 18, "PutImage" },
29266  { 19, "ShmPutImage" },
29267  { 0, NULL }
29268 };
29269 static const x11_event_info xv_events[] = {
29270  { "xv-PortNotify", xvPortNotify },
29271  { NULL, NULL }
29272 };
29273 static x11_reply_info xv_replies[] = {
29274  { 0, xvQueryExtension_Reply },
29275  { 1, xvQueryAdaptors_Reply },
29276  { 2, xvQueryEncodings_Reply },
29277  { 3, xvGrabPort_Reply },
29278  { 12, xvQueryBestSize_Reply },
29279  { 14, xvGetPortAttribute_Reply },
29280  { 15, xvQueryPortAttributes_Reply },
29281  { 16, xvListImageFormats_Reply },
29282  { 17, xvQueryImageAttributes_Reply },
29283  { 0, NULL }
29284 };
29285 
29286 static void dispatch_xv(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
29287 {
29288  int minor, length;
29289  minor = CARD8(xv_extension_minor);
29290  length = REQUEST_LENGTH();
29291 
29292  col_append_fstr(pinfo->cinfo, COL_INFO, "-%s",
29293  val_to_str(minor, xv_extension_minor,
29294  "<Unknown opcode %d>"));
29295  switch (minor) {
29296  case 0:
29297  xvQueryExtension(tvb, pinfo, offsetp, t, byte_order, length);
29298  break;
29299  case 1:
29300  xvQueryAdaptors(tvb, pinfo, offsetp, t, byte_order, length);
29301  break;
29302  case 2:
29303  xvQueryEncodings(tvb, pinfo, offsetp, t, byte_order, length);
29304  break;
29305  case 3:
29306  xvGrabPort(tvb, pinfo, offsetp, t, byte_order, length);
29307  break;
29308  case 4:
29309  xvUngrabPort(tvb, pinfo, offsetp, t, byte_order, length);
29310  break;
29311  case 5:
29312  xvPutVideo(tvb, pinfo, offsetp, t, byte_order, length);
29313  break;
29314  case 6:
29315  xvPutStill(tvb, pinfo, offsetp, t, byte_order, length);
29316  break;
29317  case 7:
29318  xvGetVideo(tvb, pinfo, offsetp, t, byte_order, length);
29319  break;
29320  case 8:
29321  xvGetStill(tvb, pinfo, offsetp, t, byte_order, length);
29322  break;
29323  case 9:
29324  xvStopVideo(tvb, pinfo, offsetp, t, byte_order, length);
29325  break;
29326  case 10:
29327  xvSelectVideoNotify(tvb, pinfo, offsetp, t, byte_order, length);
29328  break;
29329  case 11:
29330  xvSelectPortNotify(tvb, pinfo, offsetp, t, byte_order, length);
29331  break;
29332  case 12:
29333  xvQueryBestSize(tvb, pinfo, offsetp, t, byte_order, length);
29334  break;
29335  case 13:
29336  xvSetPortAttribute(tvb, pinfo, offsetp, t, byte_order, length);
29337  break;
29338  case 14:
29339  xvGetPortAttribute(tvb, pinfo, offsetp, t, byte_order, length);
29340  break;
29341  case 15:
29342  xvQueryPortAttributes(tvb, pinfo, offsetp, t, byte_order, length);
29343  break;
29344  case 16:
29345  xvListImageFormats(tvb, pinfo, offsetp, t, byte_order, length);
29346  break;
29347  case 17:
29348  xvQueryImageAttributes(tvb, pinfo, offsetp, t, byte_order, length);
29349  break;
29350  case 18:
29351  xvPutImage(tvb, pinfo, offsetp, t, byte_order, length);
29352  break;
29353  case 19:
29354  xvShmPutImage(tvb, pinfo, offsetp, t, byte_order, length);
29355  break;
29356  /* No need for a default case here, since Unknown is printed above,
29357  and UNDECODED() is taken care of by dissect_x11_request */
29358  }
29359 }
29360 
29361 static void register_xv(void)
29362 {
29363  set_handler("XVideo", dispatch_xv, xv_errors, xv_events, NULL, xv_replies);
29364 }
29365 
29366 static void struct_xvmc_SurfaceInfo(tvbuff_t *tvb, int *offsetp, proto_tree *root, guint byte_order _U_, int count)
29367 {
29368  int i;
29369  for (i = 0; i < count; i++) {
29370  proto_item *item;
29371  proto_tree *t;
29372 
29373  item = proto_tree_add_item(root, hf_x11_struct_xvmc_SurfaceInfo, tvb, *offsetp, 24, ENC_NA);
29374  t = proto_item_add_subtree(item, ett_x11_rectangle);
29375  proto_tree_add_item(t, hf_x11_struct_xvmc_SurfaceInfo_id, tvb, *offsetp, 4, byte_order);
29376  *offsetp += 4;
29377  proto_tree_add_item(t, hf_x11_struct_xvmc_SurfaceInfo_chroma_format, tvb, *offsetp, 2, byte_order);
29378  *offsetp += 2;
29379  proto_tree_add_item(t, hf_x11_struct_xvmc_SurfaceInfo_pad0, tvb, *offsetp, 2, byte_order);
29380  *offsetp += 2;
29381  proto_tree_add_item(t, hf_x11_struct_xvmc_SurfaceInfo_max_width, tvb, *offsetp, 2, byte_order);
29382  *offsetp += 2;
29383  proto_tree_add_item(t, hf_x11_struct_xvmc_SurfaceInfo_max_height, tvb, *offsetp, 2, byte_order);
29384  *offsetp += 2;
29385  proto_tree_add_item(t, hf_x11_struct_xvmc_SurfaceInfo_subpicture_max_width, tvb, *offsetp, 2, byte_order);
29386  *offsetp += 2;
29387  proto_tree_add_item(t, hf_x11_struct_xvmc_SurfaceInfo_subpicture_max_height, tvb, *offsetp, 2, byte_order);
29388  *offsetp += 2;
29389  proto_tree_add_item(t, hf_x11_struct_xvmc_SurfaceInfo_mc_type, tvb, *offsetp, 4, byte_order);
29390  *offsetp += 4;
29391  proto_tree_add_item(t, hf_x11_struct_xvmc_SurfaceInfo_flags, tvb, *offsetp, 4, byte_order);
29392  *offsetp += 4;
29393  }
29394 }
29395 
29396 static void xvmcQueryVersion(tvbuff_t *tvb _U_, packet_info *pinfo _U_, int *offsetp _U_, proto_tree *t _U_, guint byte_order _U_, int length _U_)
29397 {
29398 }
29399 static void xvmcQueryVersion_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
29400 {
29401  int sequence_number;
29402 
29403  col_append_fstr(pinfo->cinfo, COL_INFO, "-QueryVersion");
29404 
29405  REPLY(reply);
29406  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
29407  *offsetp += 1;
29408  sequence_number = tvb_get_guint16(tvb, *offsetp, byte_order);
29409  proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
29410  "%d (xvmc-QueryVersion)", sequence_number);
29411  *offsetp += 2;
29412  proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
29413  *offsetp += 4;
29414  proto_tree_add_item(t, hf_x11_xvmc_QueryVersion_reply_major, tvb, *offsetp, 4, byte_order);
29415  *offsetp += 4;
29416  proto_tree_add_item(t, hf_x11_xvmc_QueryVersion_reply_minor, tvb, *offsetp, 4, byte_order);
29417  *offsetp += 4;
29418 }
29419 
29420 static void xvmcListSurfaceTypes(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
29421 {
29422  proto_tree_add_item(t, hf_x11_xvmc_ListSurfaceTypes_port_id, tvb, *offsetp, 4, byte_order);
29423  *offsetp += 4;
29424 }
29425 static void xvmcListSurfaceTypes_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
29426 {
29427  int sequence_number;
29428  int f_num;
29429 
29430  col_append_fstr(pinfo->cinfo, COL_INFO, "-ListSurfaceTypes");
29431 
29432  REPLY(reply);
29433  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
29434  *offsetp += 1;
29435  sequence_number = tvb_get_guint16(tvb, *offsetp, byte_order);
29436  proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
29437  "%d (xvmc-ListSurfaceTypes)", sequence_number);
29438  *offsetp += 2;
29439  proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
29440  *offsetp += 4;
29441  f_num = tvb_get_guint32(tvb, *offsetp, byte_order);
29442  proto_tree_add_item(t, hf_x11_xvmc_ListSurfaceTypes_reply_num, tvb, *offsetp, 4, byte_order);
29443  *offsetp += 4;
29444  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 20, ENC_NA);
29445  *offsetp += 20;
29446  struct_xvmc_SurfaceInfo(tvb, offsetp, t, byte_order, f_num);
29447 }
29448 
29449 static void xvmcCreateContext(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
29450 {
29451  proto_tree_add_item(t, hf_x11_xvmc_CreateContext_context_id, tvb, *offsetp, 4, byte_order);
29452  *offsetp += 4;
29453  proto_tree_add_item(t, hf_x11_xvmc_CreateContext_port_id, tvb, *offsetp, 4, byte_order);
29454  *offsetp += 4;
29455  proto_tree_add_item(t, hf_x11_xvmc_CreateContext_surface_id, tvb, *offsetp, 4, byte_order);
29456  *offsetp += 4;
29457  proto_tree_add_item(t, hf_x11_xvmc_CreateContext_width, tvb, *offsetp, 2, byte_order);
29458  *offsetp += 2;
29459  proto_tree_add_item(t, hf_x11_xvmc_CreateContext_height, tvb, *offsetp, 2, byte_order);
29460  *offsetp += 2;
29461  proto_tree_add_item(t, hf_x11_xvmc_CreateContext_flags, tvb, *offsetp, 4, byte_order);
29462  *offsetp += 4;
29463 }
29464 static void xvmcCreateContext_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
29465 {
29466  int sequence_number;
29467  int f_length;
29468 
29469  col_append_fstr(pinfo->cinfo, COL_INFO, "-CreateContext");
29470 
29471  REPLY(reply);
29472  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
29473  *offsetp += 1;
29474  sequence_number = tvb_get_guint16(tvb, *offsetp, byte_order);
29475  proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
29476  "%d (xvmc-CreateContext)", sequence_number);
29477  *offsetp += 2;
29478  f_length = tvb_get_guint32(tvb, *offsetp, byte_order);
29479  proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
29480  *offsetp += 4;
29481  proto_tree_add_item(t, hf_x11_xvmc_CreateContext_reply_width_actual, tvb, *offsetp, 2, byte_order);
29482  *offsetp += 2;
29483  proto_tree_add_item(t, hf_x11_xvmc_CreateContext_reply_height_actual, tvb, *offsetp, 2, byte_order);
29484  *offsetp += 2;
29485  proto_tree_add_item(t, hf_x11_xvmc_CreateContext_reply_flags_return, tvb, *offsetp, 4, byte_order);
29486  *offsetp += 4;
29487  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 20, ENC_NA);
29488  *offsetp += 20;
29489  listOfCard32(tvb, offsetp, t, hf_x11_xvmc_CreateContext_reply_priv_data, hf_x11_xvmc_CreateContext_reply_priv_data_item, f_length, byte_order);
29490 }
29491 
29492 static void xvmcDestroyContext(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
29493 {
29494  proto_tree_add_item(t, hf_x11_xvmc_DestroyContext_context_id, tvb, *offsetp, 4, byte_order);
29495  *offsetp += 4;
29496 }
29497 
29498 static void xvmcCreateSurface(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
29499 {
29500  proto_tree_add_item(t, hf_x11_xvmc_CreateSurface_surface_id, tvb, *offsetp, 4, byte_order);
29501  *offsetp += 4;
29502  proto_tree_add_item(t, hf_x11_xvmc_CreateSurface_context_id, tvb, *offsetp, 4, byte_order);
29503  *offsetp += 4;
29504 }
29505 static void xvmcCreateSurface_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
29506 {
29507  int sequence_number;
29508  int f_length;
29509 
29510  col_append_fstr(pinfo->cinfo, COL_INFO, "-CreateSurface");
29511 
29512  REPLY(reply);
29513  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
29514  *offsetp += 1;
29515  sequence_number = tvb_get_guint16(tvb, *offsetp, byte_order);
29516  proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
29517  "%d (xvmc-CreateSurface)", sequence_number);
29518  *offsetp += 2;
29519  f_length = tvb_get_guint32(tvb, *offsetp, byte_order);
29520  proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
29521  *offsetp += 4;
29522  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 24, ENC_NA);
29523  *offsetp += 24;
29524  listOfCard32(tvb, offsetp, t, hf_x11_xvmc_CreateSurface_reply_priv_data, hf_x11_xvmc_CreateSurface_reply_priv_data_item, f_length, byte_order);
29525 }
29526 
29527 static void xvmcDestroySurface(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
29528 {
29529  proto_tree_add_item(t, hf_x11_xvmc_DestroySurface_surface_id, tvb, *offsetp, 4, byte_order);
29530  *offsetp += 4;
29531 }
29532 
29533 static void xvmcCreateSubpicture(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
29534 {
29535  proto_tree_add_item(t, hf_x11_xvmc_CreateSubpicture_subpicture_id, tvb, *offsetp, 4, byte_order);
29536  *offsetp += 4;
29537  proto_tree_add_item(t, hf_x11_xvmc_CreateSubpicture_context, tvb, *offsetp, 4, byte_order);
29538  *offsetp += 4;
29539  proto_tree_add_item(t, hf_x11_xvmc_CreateSubpicture_xvimage_id, tvb, *offsetp, 4, byte_order);
29540  *offsetp += 4;
29541  proto_tree_add_item(t, hf_x11_xvmc_CreateSubpicture_width, tvb, *offsetp, 2, byte_order);
29542  *offsetp += 2;
29543  proto_tree_add_item(t, hf_x11_xvmc_CreateSubpicture_height, tvb, *offsetp, 2, byte_order);
29544  *offsetp += 2;
29545 }
29546 static void xvmcCreateSubpicture_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
29547 {
29548  int sequence_number;
29549  int f_length;
29550 
29551  col_append_fstr(pinfo->cinfo, COL_INFO, "-CreateSubpicture");
29552 
29553  REPLY(reply);
29554  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
29555  *offsetp += 1;
29556  sequence_number = tvb_get_guint16(tvb, *offsetp, byte_order);
29557  proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
29558  "%d (xvmc-CreateSubpicture)", sequence_number);
29559  *offsetp += 2;
29560  f_length = tvb_get_guint32(tvb, *offsetp, byte_order);
29561  proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
29562  *offsetp += 4;
29563  proto_tree_add_item(t, hf_x11_xvmc_CreateSubpicture_reply_width_actual, tvb, *offsetp, 2, byte_order);
29564  *offsetp += 2;
29565  proto_tree_add_item(t, hf_x11_xvmc_CreateSubpicture_reply_height_actual, tvb, *offsetp, 2, byte_order);
29566  *offsetp += 2;
29567  proto_tree_add_item(t, hf_x11_xvmc_CreateSubpicture_reply_num_palette_entries, tvb, *offsetp, 2, byte_order);
29568  *offsetp += 2;
29569  proto_tree_add_item(t, hf_x11_xvmc_CreateSubpicture_reply_entry_bytes, tvb, *offsetp, 2, byte_order);
29570  *offsetp += 2;
29571  listOfByte(tvb, offsetp, t, hf_x11_xvmc_CreateSubpicture_reply_component_order, 4, byte_order);
29572  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 12, ENC_NA);
29573  *offsetp += 12;
29574  listOfCard32(tvb, offsetp, t, hf_x11_xvmc_CreateSubpicture_reply_priv_data, hf_x11_xvmc_CreateSubpicture_reply_priv_data_item, f_length, byte_order);
29575 }
29576 
29577 static void xvmcDestroySubpicture(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
29578 {
29579  proto_tree_add_item(t, hf_x11_xvmc_DestroySubpicture_subpicture_id, tvb, *offsetp, 4, byte_order);
29580  *offsetp += 4;
29581 }
29582 
29583 static void xvmcListSubpictureTypes(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
29584 {
29585  proto_tree_add_item(t, hf_x11_xvmc_ListSubpictureTypes_port_id, tvb, *offsetp, 4, byte_order);
29586  *offsetp += 4;
29587  proto_tree_add_item(t, hf_x11_xvmc_ListSubpictureTypes_surface_id, tvb, *offsetp, 4, byte_order);
29588  *offsetp += 4;
29589 }
29590 static void xvmcListSubpictureTypes_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
29591 {
29592  int sequence_number;
29593  int f_num;
29594 
29595  col_append_fstr(pinfo->cinfo, COL_INFO, "-ListSubpictureTypes");
29596 
29597  REPLY(reply);
29598  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
29599  *offsetp += 1;
29600  sequence_number = tvb_get_guint16(tvb, *offsetp, byte_order);
29601  proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
29602  "%d (xvmc-ListSubpictureTypes)", sequence_number);
29603  *offsetp += 2;
29604  proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
29605  *offsetp += 4;
29606  f_num = tvb_get_guint32(tvb, *offsetp, byte_order);
29607  proto_tree_add_item(t, hf_x11_xvmc_ListSubpictureTypes_reply_num, tvb, *offsetp, 4, byte_order);
29608  *offsetp += 4;
29609  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 20, ENC_NA);
29610  *offsetp += 20;
29611  struct_xv_ImageFormatInfo(tvb, offsetp, t, byte_order, f_num);
29612 }
29613 static const value_string xvmc_extension_minor[] = {
29614  { 0, "QueryVersion" },
29615  { 1, "ListSurfaceTypes" },
29616  { 2, "CreateContext" },
29617  { 3, "DestroyContext" },
29618  { 4, "CreateSurface" },
29619  { 5, "DestroySurface" },
29620  { 6, "CreateSubpicture" },
29621  { 7, "DestroySubpicture" },
29622  { 8, "ListSubpictureTypes" },
29623  { 0, NULL }
29624 };
29625 const x11_event_info xvmc_events[] = {
29626  { NULL, NULL }
29627 };
29628 static x11_reply_info xvmc_replies[] = {
29629  { 0, xvmcQueryVersion_Reply },
29630  { 1, xvmcListSurfaceTypes_Reply },
29631  { 2, xvmcCreateContext_Reply },
29632  { 4, xvmcCreateSurface_Reply },
29633  { 6, xvmcCreateSubpicture_Reply },
29634  { 8, xvmcListSubpictureTypes_Reply },
29635  { 0, NULL }
29636 };
29637 
29638 static void dispatch_xvmc(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
29639 {
29640  int minor, length;
29641  minor = CARD8(xvmc_extension_minor);
29642  length = REQUEST_LENGTH();
29643 
29644  col_append_fstr(pinfo->cinfo, COL_INFO, "-%s",
29645  val_to_str(minor, xvmc_extension_minor,
29646  "<Unknown opcode %d>"));
29647  switch (minor) {
29648  case 0:
29649  xvmcQueryVersion(tvb, pinfo, offsetp, t, byte_order, length);
29650  break;
29651  case 1:
29652  xvmcListSurfaceTypes(tvb, pinfo, offsetp, t, byte_order, length);
29653  break;
29654  case 2:
29655  xvmcCreateContext(tvb, pinfo, offsetp, t, byte_order, length);
29656  break;
29657  case 3:
29658  xvmcDestroyContext(tvb, pinfo, offsetp, t, byte_order, length);
29659  break;
29660  case 4:
29661  xvmcCreateSurface(tvb, pinfo, offsetp, t, byte_order, length);
29662  break;
29663  case 5:
29664  xvmcDestroySurface(tvb, pinfo, offsetp, t, byte_order, length);
29665  break;
29666  case 6:
29667  xvmcCreateSubpicture(tvb, pinfo, offsetp, t, byte_order, length);
29668  break;
29669  case 7:
29670  xvmcDestroySubpicture(tvb, pinfo, offsetp, t, byte_order, length);
29671  break;
29672  case 8:
29673  xvmcListSubpictureTypes(tvb, pinfo, offsetp, t, byte_order, length);
29674  break;
29675  /* No need for a default case here, since Unknown is printed above,
29676  and UNDECODED() is taken care of by dissect_x11_request */
29677  }
29678 }
29679 
29680 static void register_xvmc(void)
29681 {
29682  set_handler("XVideo-MotionCompensation", dispatch_xvmc, xvmc_errors, xvmc_events, NULL, xvmc_replies);
29683 }
29684 static void register_x11_extensions(void)
29685 {
29686  register_bigreq();
29687  register_composite();
29688  register_damage();
29689  register_dpms();
29690  register_dri2();
29691  register_dri3();
29692  register_ge();
29693  register_glx();
29694  register_present();
29695  register_randr();
29696  register_record();
29697  register_render();
29698  register_res();
29699  register_screensaver();
29700  register_shape();
29701  register_shm();
29702  register_sync();
29703  register_xc_misc();
29704  register_xevie();
29705  register_xf86dri();
29706  register_xf86vidmode();
29707  register_xfixes();
29708  register_xinerama();
29709  register_xinput();
29710  register_xkb();
29711  register_xprint();
29712  register_xselinux();
29713  register_xtest();
29714  register_xv();
29715  register_xvmc();
29716 }
@ COL_INFO
Definition: column-utils.h:72
WS_DLL_PUBLIC void col_append_fstr(column_info *cinfo, const gint col, const gchar *format,...) G_GNUC_PRINTF(3
WS_DLL_PUBLIC proto_item * expert_add_info(packet_info *pinfo, proto_item *pi, expert_field *eiindex)
Definition: expert.c:649
proto_item * proto_tree_add_bitmask(proto_tree *parent_tree, tvbuff_t *tvb, const guint offset, const int hf_hdr, const gint ett, int *const *fields, const guint encoding)
Definition: proto.c:12482
proto_tree * proto_item_add_subtree(proto_item *pi, const gint idx)
Definition: proto.c:7624
proto_item * proto_tree_add_uint(proto_tree *tree, int hfindex, tvbuff_t *tvb, gint start, gint length, guint32 value)
Definition: proto.c:5712
WS_DLL_PUBLIC proto_item * proto_tree_add_uint_format_value(proto_tree *tree, int hfindex, tvbuff_t *tvb, gint start, gint length, guint32 value, const char *format,...) G_GNUC_PRINTF(7
Definition: packet_info.h:44
struct epan_column_info * cinfo
Definition: packet_info.h:46
Definition: proto.h:897
Definition: value_string.h:170
Definition: value_string.h:26
Definition: packet-x11.c:3294
Definition: tvbuff-int.h:35
Definition: packet-x11.c:3299
Definition: packet-x11.c:3289