Wireshark  2.9.0-477-g68ec514b
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 1.12-9-g97fbba2 */
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_PolygonOffsetEXT(tvbuff_t *tvb, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
2771 {
2772  proto_tree_add_item(t, hf_x11_glx_render_PolygonOffsetEXT_factor, tvb, *offsetp, 4, byte_order);
2773  *offsetp += 4;
2774  proto_tree_add_item(t, hf_x11_glx_render_PolygonOffsetEXT_bias, tvb, *offsetp, 4, byte_order);
2775  *offsetp += 4;
2776 }
2777 
2778 static void mesa_TexFilterFuncSGIS(tvbuff_t *tvb, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
2779 {
2780  int n;
2781  proto_tree_add_item(t, hf_x11_glx_render_TexFilterFuncSGIS_target, tvb, *offsetp, 4, byte_order);
2782  *offsetp += 4;
2783  proto_tree_add_item(t, hf_x11_glx_render_TexFilterFuncSGIS_filter, tvb, *offsetp, 4, byte_order);
2784  *offsetp += 4;
2785  n = tvb_get_guint32(tvb, *offsetp, byte_order);
2786  proto_tree_add_item(t, hf_x11_glx_render_TexFilterFuncSGIS_n, tvb, *offsetp, 4, byte_order);
2787  *offsetp += 4;
2788  listOfFloat(tvb, offsetp, t, hf_x11_glx_render_TexFilterFuncSGIS_weights, hf_x11_glx_render_TexFilterFuncSGIS_weights_item, n, byte_order);
2789 }
2790 
2791 static void mesa_TexImage4DSGIS(tvbuff_t *tvb, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
2792 {
2793  proto_tree_add_item(t, hf_x11_glx_render_TexImage4DSGIS_swapbytes, tvb, *offsetp, 1, byte_order);
2794  *offsetp += 1;
2795  proto_tree_add_item(t, hf_x11_glx_render_TexImage4DSGIS_lsbfirst, tvb, *offsetp, 1, byte_order);
2796  *offsetp += 1;
2797  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 2, ENC_NA);
2798  *offsetp += 2;
2799  proto_tree_add_item(t, hf_x11_glx_render_TexImage4DSGIS_rowlength, tvb, *offsetp, 4, byte_order);
2800  *offsetp += 4;
2801  proto_tree_add_item(t, hf_x11_glx_render_TexImage4DSGIS_skiprows, tvb, *offsetp, 4, byte_order);
2802  *offsetp += 4;
2803  proto_tree_add_item(t, hf_x11_glx_render_TexImage4DSGIS_skippixels, tvb, *offsetp, 4, byte_order);
2804  *offsetp += 4;
2805  proto_tree_add_item(t, hf_x11_glx_render_TexImage4DSGIS_alignment, tvb, *offsetp, 4, byte_order);
2806  *offsetp += 4;
2807  proto_tree_add_item(t, hf_x11_glx_render_TexImage4DSGIS_target, tvb, *offsetp, 4, byte_order);
2808  *offsetp += 4;
2809  proto_tree_add_item(t, hf_x11_glx_render_TexImage4DSGIS_level, tvb, *offsetp, 4, byte_order);
2810  *offsetp += 4;
2811  proto_tree_add_item(t, hf_x11_glx_render_TexImage4DSGIS_internalformat, tvb, *offsetp, 4, byte_order);
2812  *offsetp += 4;
2813  proto_tree_add_item(t, hf_x11_glx_render_TexImage4DSGIS_width, tvb, *offsetp, 4, byte_order);
2814  *offsetp += 4;
2815  proto_tree_add_item(t, hf_x11_glx_render_TexImage4DSGIS_height, tvb, *offsetp, 4, byte_order);
2816  *offsetp += 4;
2817  proto_tree_add_item(t, hf_x11_glx_render_TexImage4DSGIS_depth, tvb, *offsetp, 4, byte_order);
2818  *offsetp += 4;
2819  proto_tree_add_item(t, hf_x11_glx_render_TexImage4DSGIS_size4d, tvb, *offsetp, 4, byte_order);
2820  *offsetp += 4;
2821  proto_tree_add_item(t, hf_x11_glx_render_TexImage4DSGIS_border, tvb, *offsetp, 4, byte_order);
2822  *offsetp += 4;
2823  proto_tree_add_item(t, hf_x11_glx_render_TexImage4DSGIS_format, tvb, *offsetp, 4, byte_order);
2824  *offsetp += 4;
2825  proto_tree_add_item(t, hf_x11_glx_render_TexImage4DSGIS_type, tvb, *offsetp, 4, byte_order);
2826  *offsetp += 4;
2827  listOfByte(tvb, offsetp, t, hf_x11_glx_render_TexImage4DSGIS_pixels, (length - 60) / 1, byte_order);
2828 }
2829 
2830 static void mesa_TexSubImage4DSGIS(tvbuff_t *tvb, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
2831 {
2832  proto_tree_add_item(t, hf_x11_glx_render_TexSubImage4DSGIS_swapbytes, tvb, *offsetp, 1, byte_order);
2833  *offsetp += 1;
2834  proto_tree_add_item(t, hf_x11_glx_render_TexSubImage4DSGIS_lsbfirst, tvb, *offsetp, 1, byte_order);
2835  *offsetp += 1;
2836  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 2, ENC_NA);
2837  *offsetp += 2;
2838  proto_tree_add_item(t, hf_x11_glx_render_TexSubImage4DSGIS_rowlength, tvb, *offsetp, 4, byte_order);
2839  *offsetp += 4;
2840  proto_tree_add_item(t, hf_x11_glx_render_TexSubImage4DSGIS_skiprows, tvb, *offsetp, 4, byte_order);
2841  *offsetp += 4;
2842  proto_tree_add_item(t, hf_x11_glx_render_TexSubImage4DSGIS_skippixels, tvb, *offsetp, 4, byte_order);
2843  *offsetp += 4;
2844  proto_tree_add_item(t, hf_x11_glx_render_TexSubImage4DSGIS_alignment, tvb, *offsetp, 4, byte_order);
2845  *offsetp += 4;
2846  proto_tree_add_item(t, hf_x11_glx_render_TexSubImage4DSGIS_target, tvb, *offsetp, 4, byte_order);
2847  *offsetp += 4;
2848  proto_tree_add_item(t, hf_x11_glx_render_TexSubImage4DSGIS_level, tvb, *offsetp, 4, byte_order);
2849  *offsetp += 4;
2850  proto_tree_add_item(t, hf_x11_glx_render_TexSubImage4DSGIS_xoffset, tvb, *offsetp, 4, byte_order);
2851  *offsetp += 4;
2852  proto_tree_add_item(t, hf_x11_glx_render_TexSubImage4DSGIS_yoffset, tvb, *offsetp, 4, byte_order);
2853  *offsetp += 4;
2854  proto_tree_add_item(t, hf_x11_glx_render_TexSubImage4DSGIS_zoffset, tvb, *offsetp, 4, byte_order);
2855  *offsetp += 4;
2856  proto_tree_add_item(t, hf_x11_glx_render_TexSubImage4DSGIS_woffset, tvb, *offsetp, 4, byte_order);
2857  *offsetp += 4;
2858  proto_tree_add_item(t, hf_x11_glx_render_TexSubImage4DSGIS_width, tvb, *offsetp, 4, byte_order);
2859  *offsetp += 4;
2860  proto_tree_add_item(t, hf_x11_glx_render_TexSubImage4DSGIS_height, tvb, *offsetp, 4, byte_order);
2861  *offsetp += 4;
2862  proto_tree_add_item(t, hf_x11_glx_render_TexSubImage4DSGIS_depth, tvb, *offsetp, 4, byte_order);
2863  *offsetp += 4;
2864  proto_tree_add_item(t, hf_x11_glx_render_TexSubImage4DSGIS_size4d, tvb, *offsetp, 4, byte_order);
2865  *offsetp += 4;
2866  proto_tree_add_item(t, hf_x11_glx_render_TexSubImage4DSGIS_format, tvb, *offsetp, 4, byte_order);
2867  *offsetp += 4;
2868  proto_tree_add_item(t, hf_x11_glx_render_TexSubImage4DSGIS_type, tvb, *offsetp, 4, byte_order);
2869  *offsetp += 4;
2870  proto_tree_add_item(t, hf_x11_glx_render_TexSubImage4DSGIS_UNUSED, tvb, *offsetp, 4, byte_order);
2871  *offsetp += 4;
2872  listOfByte(tvb, offsetp, t, hf_x11_glx_render_TexSubImage4DSGIS_pixels, (length - 72) / 1, byte_order);
2873 }
2874 
2875 static void mesa_DetailTexFuncSGIS(tvbuff_t *tvb, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
2876 {
2877  int n;
2878  proto_tree_add_item(t, hf_x11_glx_render_DetailTexFuncSGIS_target, tvb, *offsetp, 4, byte_order);
2879  *offsetp += 4;
2880  n = tvb_get_guint32(tvb, *offsetp, byte_order);
2881  proto_tree_add_item(t, hf_x11_glx_render_DetailTexFuncSGIS_n, tvb, *offsetp, 4, byte_order);
2882  *offsetp += 4;
2883  listOfFloat(tvb, offsetp, t, hf_x11_glx_render_DetailTexFuncSGIS_points, hf_x11_glx_render_DetailTexFuncSGIS_points_item, n, byte_order);
2884 }
2885 
2886 static void mesa_SharpenTexFuncSGIS(tvbuff_t *tvb, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
2887 {
2888  int n;
2889  proto_tree_add_item(t, hf_x11_glx_render_SharpenTexFuncSGIS_target, tvb, *offsetp, 4, byte_order);
2890  *offsetp += 4;
2891  n = tvb_get_guint32(tvb, *offsetp, byte_order);
2892  proto_tree_add_item(t, hf_x11_glx_render_SharpenTexFuncSGIS_n, tvb, *offsetp, 4, byte_order);
2893  *offsetp += 4;
2894  listOfFloat(tvb, offsetp, t, hf_x11_glx_render_SharpenTexFuncSGIS_points, hf_x11_glx_render_SharpenTexFuncSGIS_points_item, n, byte_order);
2895 }
2896 
2897 static void mesa_SampleMaskSGIS(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_SampleMaskSGIS_value, tvb, *offsetp, 4, byte_order);
2900  *offsetp += 4;
2901  proto_tree_add_item(t, hf_x11_glx_render_SampleMaskSGIS_invert, tvb, *offsetp, 1, byte_order);
2902  *offsetp += 1;
2903 }
2904 
2905 static void mesa_SamplePatternSGIS(tvbuff_t *tvb, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
2906 {
2907  proto_tree_add_item(t, hf_x11_glx_render_SamplePatternSGIS_pattern, tvb, *offsetp, 4, byte_order);
2908  *offsetp += 4;
2909 }
2910 
2911 static void mesa_FrameZoomSGIX(tvbuff_t *tvb, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
2912 {
2913  proto_tree_add_item(t, hf_x11_glx_render_FrameZoomSGIX_factor, tvb, *offsetp, 4, byte_order);
2914  *offsetp += 4;
2915 }
2916 
2917 static void mesa_TagSampleBufferSGIX(tvbuff_t *tvb _U_, int *offsetp _U_, proto_tree *t _U_, guint byte_order _U_, int length _U_)
2918 {
2919 }
2920 
2921 static void mesa_ReferencePlaneSGIX(tvbuff_t *tvb, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
2922 {
2923  listOfDouble(tvb, offsetp, t, hf_x11_glx_render_ReferencePlaneSGIX_equation, hf_x11_glx_render_ReferencePlaneSGIX_equation_item, 4, byte_order);
2924 }
2925 
2926 static void mesa_FogFuncSGIS(tvbuff_t *tvb, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
2927 {
2928  int n;
2929  n = tvb_get_guint32(tvb, *offsetp, byte_order);
2930  proto_tree_add_item(t, hf_x11_glx_render_FogFuncSGIS_n, tvb, *offsetp, 4, byte_order);
2931  *offsetp += 4;
2932  listOfFloat(tvb, offsetp, t, hf_x11_glx_render_FogFuncSGIS_points, hf_x11_glx_render_FogFuncSGIS_points_item, n, byte_order);
2933 }
2934 
2935 static void mesa_SecondaryColor3fvEXT(tvbuff_t *tvb, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
2936 {
2937  listOfFloat(tvb, offsetp, t, hf_x11_glx_render_SecondaryColor3fvEXT_v, hf_x11_glx_render_SecondaryColor3fvEXT_v_item, 3, byte_order);
2938 }
2939 
2940 static void mesa_FogCoordfvEXT(tvbuff_t *tvb, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
2941 {
2942  listOfFloat(tvb, offsetp, t, hf_x11_glx_render_FogCoordfvEXT_coord, hf_x11_glx_render_FogCoordfvEXT_coord_item, 1, byte_order);
2943 }
2944 
2945 static void mesa_PixelTexGenSGIX(tvbuff_t *tvb, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
2946 {
2947  proto_tree_add_item(t, hf_x11_glx_render_PixelTexGenSGIX_mode, tvb, *offsetp, 4, byte_order);
2948  *offsetp += 4;
2949 }
2950 
2951 static void mesa_VertexWeightfvEXT(tvbuff_t *tvb, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
2952 {
2953  listOfFloat(tvb, offsetp, t, hf_x11_glx_render_VertexWeightfvEXT_weight, hf_x11_glx_render_VertexWeightfvEXT_weight_item, 1, byte_order);
2954 }
2955 
2956 static void mesa_CombinerParameterfvNV(tvbuff_t *tvb, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
2957 {
2958  proto_tree_add_item(t, hf_x11_glx_render_CombinerParameterfvNV_pname, tvb, *offsetp, 4, byte_order);
2959  *offsetp += 4;
2960  listOfFloat(tvb, offsetp, t, hf_x11_glx_render_CombinerParameterfvNV_params, hf_x11_glx_render_CombinerParameterfvNV_params_item, (length - 4) / 4, byte_order);
2961 }
2962 
2963 static void mesa_CombinerParameterfNV(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_CombinerParameterfNV_pname, tvb, *offsetp, 4, byte_order);
2966  *offsetp += 4;
2967  proto_tree_add_item(t, hf_x11_glx_render_CombinerParameterfNV_param, tvb, *offsetp, 4, byte_order);
2968  *offsetp += 4;
2969 }
2970 
2971 static void mesa_CombinerParameterivNV(tvbuff_t *tvb, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
2972 {
2973  proto_tree_add_item(t, hf_x11_glx_render_CombinerParameterivNV_pname, tvb, *offsetp, 4, byte_order);
2974  *offsetp += 4;
2975  listOfInt32(tvb, offsetp, t, hf_x11_glx_render_CombinerParameterivNV_params, hf_x11_glx_render_CombinerParameterivNV_params_item, (length - 4) / 4, byte_order);
2976 }
2977 
2978 static void mesa_CombinerParameteriNV(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_CombinerParameteriNV_pname, tvb, *offsetp, 4, byte_order);
2981  *offsetp += 4;
2982  proto_tree_add_item(t, hf_x11_glx_render_CombinerParameteriNV_param, tvb, *offsetp, 4, byte_order);
2983  *offsetp += 4;
2984 }
2985 
2986 static void mesa_CombinerInputNV(tvbuff_t *tvb, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
2987 {
2988  proto_tree_add_item(t, hf_x11_glx_render_CombinerInputNV_stage, tvb, *offsetp, 4, byte_order);
2989  *offsetp += 4;
2990  proto_tree_add_item(t, hf_x11_glx_render_CombinerInputNV_portion, tvb, *offsetp, 4, byte_order);
2991  *offsetp += 4;
2992  proto_tree_add_item(t, hf_x11_glx_render_CombinerInputNV_variable, tvb, *offsetp, 4, byte_order);
2993  *offsetp += 4;
2994  proto_tree_add_item(t, hf_x11_glx_render_CombinerInputNV_input, tvb, *offsetp, 4, byte_order);
2995  *offsetp += 4;
2996  proto_tree_add_item(t, hf_x11_glx_render_CombinerInputNV_mapping, tvb, *offsetp, 4, byte_order);
2997  *offsetp += 4;
2998  proto_tree_add_item(t, hf_x11_glx_render_CombinerInputNV_componentUsage, tvb, *offsetp, 4, byte_order);
2999  *offsetp += 4;
3000 }
3001 
3002 static void mesa_CombinerOutputNV(tvbuff_t *tvb, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
3003 {
3004  proto_tree_add_item(t, hf_x11_glx_render_CombinerOutputNV_stage, tvb, *offsetp, 4, byte_order);
3005  *offsetp += 4;
3006  proto_tree_add_item(t, hf_x11_glx_render_CombinerOutputNV_portion, tvb, *offsetp, 4, byte_order);
3007  *offsetp += 4;
3008  proto_tree_add_item(t, hf_x11_glx_render_CombinerOutputNV_abOutput, tvb, *offsetp, 4, byte_order);
3009  *offsetp += 4;
3010  proto_tree_add_item(t, hf_x11_glx_render_CombinerOutputNV_cdOutput, tvb, *offsetp, 4, byte_order);
3011  *offsetp += 4;
3012  proto_tree_add_item(t, hf_x11_glx_render_CombinerOutputNV_sumOutput, tvb, *offsetp, 4, byte_order);
3013  *offsetp += 4;
3014  proto_tree_add_item(t, hf_x11_glx_render_CombinerOutputNV_scale, tvb, *offsetp, 4, byte_order);
3015  *offsetp += 4;
3016  proto_tree_add_item(t, hf_x11_glx_render_CombinerOutputNV_bias, tvb, *offsetp, 4, byte_order);
3017  *offsetp += 4;
3018  proto_tree_add_item(t, hf_x11_glx_render_CombinerOutputNV_abDotProduct, tvb, *offsetp, 1, byte_order);
3019  *offsetp += 1;
3020  proto_tree_add_item(t, hf_x11_glx_render_CombinerOutputNV_cdDotProduct, tvb, *offsetp, 1, byte_order);
3021  *offsetp += 1;
3022  proto_tree_add_item(t, hf_x11_glx_render_CombinerOutputNV_muxSum, tvb, *offsetp, 1, byte_order);
3023  *offsetp += 1;
3024 }
3025 
3026 static void mesa_FinalCombinerInputNV(tvbuff_t *tvb, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
3027 {
3028  proto_tree_add_item(t, hf_x11_glx_render_FinalCombinerInputNV_variable, tvb, *offsetp, 4, byte_order);
3029  *offsetp += 4;
3030  proto_tree_add_item(t, hf_x11_glx_render_FinalCombinerInputNV_input, tvb, *offsetp, 4, byte_order);
3031  *offsetp += 4;
3032  proto_tree_add_item(t, hf_x11_glx_render_FinalCombinerInputNV_mapping, tvb, *offsetp, 4, byte_order);
3033  *offsetp += 4;
3034  proto_tree_add_item(t, hf_x11_glx_render_FinalCombinerInputNV_componentUsage, tvb, *offsetp, 4, byte_order);
3035  *offsetp += 4;
3036 }
3037 
3038 static void mesa_TextureColorMaskSGIS(tvbuff_t *tvb, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
3039 {
3040  proto_tree_add_item(t, hf_x11_glx_render_TextureColorMaskSGIS_red, tvb, *offsetp, 1, byte_order);
3041  *offsetp += 1;
3042  proto_tree_add_item(t, hf_x11_glx_render_TextureColorMaskSGIS_green, tvb, *offsetp, 1, byte_order);
3043  *offsetp += 1;
3044  proto_tree_add_item(t, hf_x11_glx_render_TextureColorMaskSGIS_blue, tvb, *offsetp, 1, byte_order);
3045  *offsetp += 1;
3046  proto_tree_add_item(t, hf_x11_glx_render_TextureColorMaskSGIS_alpha, tvb, *offsetp, 1, byte_order);
3047  *offsetp += 1;
3048 }
3049 
3050 static void mesa_ExecuteProgramNV(tvbuff_t *tvb, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
3051 {
3052  proto_tree_add_item(t, hf_x11_glx_render_ExecuteProgramNV_target, tvb, *offsetp, 4, byte_order);
3053  *offsetp += 4;
3054  proto_tree_add_item(t, hf_x11_glx_render_ExecuteProgramNV_id, tvb, *offsetp, 4, byte_order);
3055  *offsetp += 4;
3056  listOfFloat(tvb, offsetp, t, hf_x11_glx_render_ExecuteProgramNV_params, hf_x11_glx_render_ExecuteProgramNV_params_item, 4, byte_order);
3057 }
3058 
3059 static void mesa_LoadProgramNV(tvbuff_t *tvb, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
3060 {
3061  int len;
3062  proto_tree_add_item(t, hf_x11_glx_render_LoadProgramNV_target, tvb, *offsetp, 4, byte_order);
3063  *offsetp += 4;
3064  proto_tree_add_item(t, hf_x11_glx_render_LoadProgramNV_id, tvb, *offsetp, 4, byte_order);
3065  *offsetp += 4;
3066  len = tvb_get_guint32(tvb, *offsetp, byte_order);
3067  proto_tree_add_item(t, hf_x11_glx_render_LoadProgramNV_len, tvb, *offsetp, 4, byte_order);
3068  *offsetp += 4;
3069  listOfByte(tvb, offsetp, t, hf_x11_glx_render_LoadProgramNV_program, len, byte_order);
3070 }
3071 
3072 static void mesa_ProgramParameters4dvNV(tvbuff_t *tvb, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
3073 {
3074  int num;
3075  proto_tree_add_item(t, hf_x11_glx_render_ProgramParameters4dvNV_target, tvb, *offsetp, 4, byte_order);
3076  *offsetp += 4;
3077  proto_tree_add_item(t, hf_x11_glx_render_ProgramParameters4dvNV_index, tvb, *offsetp, 4, byte_order);
3078  *offsetp += 4;
3079  num = tvb_get_guint32(tvb, *offsetp, byte_order);
3080  proto_tree_add_item(t, hf_x11_glx_render_ProgramParameters4dvNV_num, tvb, *offsetp, 4, byte_order);
3081  *offsetp += 4;
3082  listOfDouble(tvb, offsetp, t, hf_x11_glx_render_ProgramParameters4dvNV_params, hf_x11_glx_render_ProgramParameters4dvNV_params_item, num, byte_order);
3083 }
3084 
3085 static void mesa_ProgramParameters4fvNV(tvbuff_t *tvb, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
3086 {
3087  int num;
3088  proto_tree_add_item(t, hf_x11_glx_render_ProgramParameters4fvNV_target, tvb, *offsetp, 4, byte_order);
3089  *offsetp += 4;
3090  proto_tree_add_item(t, hf_x11_glx_render_ProgramParameters4fvNV_index, tvb, *offsetp, 4, byte_order);
3091  *offsetp += 4;
3092  num = tvb_get_guint32(tvb, *offsetp, byte_order);
3093  proto_tree_add_item(t, hf_x11_glx_render_ProgramParameters4fvNV_num, tvb, *offsetp, 4, byte_order);
3094  *offsetp += 4;
3095  listOfFloat(tvb, offsetp, t, hf_x11_glx_render_ProgramParameters4fvNV_params, hf_x11_glx_render_ProgramParameters4fvNV_params_item, num, byte_order);
3096 }
3097 
3098 static void mesa_RequestResidentProgramsNV(tvbuff_t *tvb, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
3099 {
3100  int n;
3101  n = tvb_get_guint32(tvb, *offsetp, byte_order);
3102  proto_tree_add_item(t, hf_x11_glx_render_RequestResidentProgramsNV_n, tvb, *offsetp, 4, byte_order);
3103  *offsetp += 4;
3104  listOfCard32(tvb, offsetp, t, hf_x11_glx_render_RequestResidentProgramsNV_ids, hf_x11_glx_render_RequestResidentProgramsNV_ids_item, n, byte_order);
3105 }
3106 
3107 static void mesa_TrackMatrixNV(tvbuff_t *tvb, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
3108 {
3109  proto_tree_add_item(t, hf_x11_glx_render_TrackMatrixNV_target, tvb, *offsetp, 4, byte_order);
3110  *offsetp += 4;
3111  proto_tree_add_item(t, hf_x11_glx_render_TrackMatrixNV_address, tvb, *offsetp, 4, byte_order);
3112  *offsetp += 4;
3113  proto_tree_add_item(t, hf_x11_glx_render_TrackMatrixNV_matrix, tvb, *offsetp, 4, byte_order);
3114  *offsetp += 4;
3115  proto_tree_add_item(t, hf_x11_glx_render_TrackMatrixNV_transform, tvb, *offsetp, 4, byte_order);
3116  *offsetp += 4;
3117 }
3118 
3119 static void mesa_VertexAttrib1svNV(tvbuff_t *tvb, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
3120 {
3121  proto_tree_add_item(t, hf_x11_glx_render_VertexAttrib1svNV_index, tvb, *offsetp, 4, byte_order);
3122  *offsetp += 4;
3123  listOfInt16(tvb, offsetp, t, hf_x11_glx_render_VertexAttrib1svNV_v, hf_x11_glx_render_VertexAttrib1svNV_v_item, 1, byte_order);
3124 }
3125 
3126 static void mesa_VertexAttrib2svNV(tvbuff_t *tvb, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
3127 {
3128  proto_tree_add_item(t, hf_x11_glx_render_VertexAttrib2svNV_index, tvb, *offsetp, 4, byte_order);
3129  *offsetp += 4;
3130  listOfInt16(tvb, offsetp, t, hf_x11_glx_render_VertexAttrib2svNV_v, hf_x11_glx_render_VertexAttrib2svNV_v_item, 2, byte_order);
3131 }
3132 
3133 static void mesa_VertexAttrib3svNV(tvbuff_t *tvb, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
3134 {
3135  proto_tree_add_item(t, hf_x11_glx_render_VertexAttrib3svNV_index, tvb, *offsetp, 4, byte_order);
3136  *offsetp += 4;
3137  listOfInt16(tvb, offsetp, t, hf_x11_glx_render_VertexAttrib3svNV_v, hf_x11_glx_render_VertexAttrib3svNV_v_item, 3, byte_order);
3138 }
3139 
3140 static void mesa_VertexAttrib4svNV(tvbuff_t *tvb, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
3141 {
3142  proto_tree_add_item(t, hf_x11_glx_render_VertexAttrib4svNV_index, tvb, *offsetp, 4, byte_order);
3143  *offsetp += 4;
3144  listOfInt16(tvb, offsetp, t, hf_x11_glx_render_VertexAttrib4svNV_v, hf_x11_glx_render_VertexAttrib4svNV_v_item, 4, byte_order);
3145 }
3146 
3147 static void mesa_VertexAttrib1fvNV(tvbuff_t *tvb, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
3148 {
3149  proto_tree_add_item(t, hf_x11_glx_render_VertexAttrib1fvNV_index, tvb, *offsetp, 4, byte_order);
3150  *offsetp += 4;
3151  listOfFloat(tvb, offsetp, t, hf_x11_glx_render_VertexAttrib1fvNV_v, hf_x11_glx_render_VertexAttrib1fvNV_v_item, 1, byte_order);
3152 }
3153 
3154 static void mesa_VertexAttrib2fvNV(tvbuff_t *tvb, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
3155 {
3156  proto_tree_add_item(t, hf_x11_glx_render_VertexAttrib2fvNV_index, tvb, *offsetp, 4, byte_order);
3157  *offsetp += 4;
3158  listOfFloat(tvb, offsetp, t, hf_x11_glx_render_VertexAttrib2fvNV_v, hf_x11_glx_render_VertexAttrib2fvNV_v_item, 2, byte_order);
3159 }
3160 
3161 static void mesa_VertexAttrib3fvNV(tvbuff_t *tvb, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
3162 {
3163  proto_tree_add_item(t, hf_x11_glx_render_VertexAttrib3fvNV_index, tvb, *offsetp, 4, byte_order);
3164  *offsetp += 4;
3165  listOfFloat(tvb, offsetp, t, hf_x11_glx_render_VertexAttrib3fvNV_v, hf_x11_glx_render_VertexAttrib3fvNV_v_item, 3, byte_order);
3166 }
3167 
3168 static void mesa_VertexAttrib4fvNV(tvbuff_t *tvb, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
3169 {
3170  proto_tree_add_item(t, hf_x11_glx_render_VertexAttrib4fvNV_index, tvb, *offsetp, 4, byte_order);
3171  *offsetp += 4;
3172  listOfFloat(tvb, offsetp, t, hf_x11_glx_render_VertexAttrib4fvNV_v, hf_x11_glx_render_VertexAttrib4fvNV_v_item, 4, byte_order);
3173 }
3174 
3175 static void mesa_VertexAttrib1dvNV(tvbuff_t *tvb, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
3176 {
3177  proto_tree_add_item(t, hf_x11_glx_render_VertexAttrib1dvNV_index, tvb, *offsetp, 4, byte_order);
3178  *offsetp += 4;
3179  listOfDouble(tvb, offsetp, t, hf_x11_glx_render_VertexAttrib1dvNV_v, hf_x11_glx_render_VertexAttrib1dvNV_v_item, 1, byte_order);
3180 }
3181 
3182 static void mesa_VertexAttrib2dvNV(tvbuff_t *tvb, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
3183 {
3184  proto_tree_add_item(t, hf_x11_glx_render_VertexAttrib2dvNV_index, tvb, *offsetp, 4, byte_order);
3185  *offsetp += 4;
3186  listOfDouble(tvb, offsetp, t, hf_x11_glx_render_VertexAttrib2dvNV_v, hf_x11_glx_render_VertexAttrib2dvNV_v_item, 2, byte_order);
3187 }
3188 
3189 static void mesa_VertexAttrib3dvNV(tvbuff_t *tvb, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
3190 {
3191  proto_tree_add_item(t, hf_x11_glx_render_VertexAttrib3dvNV_index, tvb, *offsetp, 4, byte_order);
3192  *offsetp += 4;
3193  listOfDouble(tvb, offsetp, t, hf_x11_glx_render_VertexAttrib3dvNV_v, hf_x11_glx_render_VertexAttrib3dvNV_v_item, 3, byte_order);
3194 }
3195 
3196 static void mesa_VertexAttrib4dvNV(tvbuff_t *tvb, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
3197 {
3198  proto_tree_add_item(t, hf_x11_glx_render_VertexAttrib4dvNV_index, tvb, *offsetp, 4, byte_order);
3199  *offsetp += 4;
3200  listOfDouble(tvb, offsetp, t, hf_x11_glx_render_VertexAttrib4dvNV_v, hf_x11_glx_render_VertexAttrib4dvNV_v_item, 4, byte_order);
3201 }
3202 
3203 static void mesa_VertexAttrib4ubvNV(tvbuff_t *tvb, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
3204 {
3205  proto_tree_add_item(t, hf_x11_glx_render_VertexAttrib4ubvNV_index, tvb, *offsetp, 4, byte_order);
3206  *offsetp += 4;
3207  listOfByte(tvb, offsetp, t, hf_x11_glx_render_VertexAttrib4ubvNV_v, 4, byte_order);
3208 }
3209 
3210 static void mesa_VertexAttribs1svNV(tvbuff_t *tvb, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
3211 {
3212  int n;
3213  proto_tree_add_item(t, hf_x11_glx_render_VertexAttribs1svNV_index, tvb, *offsetp, 4, byte_order);
3214  *offsetp += 4;
3215  n = tvb_get_guint32(tvb, *offsetp, byte_order);
3216  proto_tree_add_item(t, hf_x11_glx_render_VertexAttribs1svNV_n, tvb, *offsetp, 4, byte_order);
3217  *offsetp += 4;
3218  listOfInt16(tvb, offsetp, t, hf_x11_glx_render_VertexAttribs1svNV_v, hf_x11_glx_render_VertexAttribs1svNV_v_item, n, byte_order);
3219 }
3220 
3221 static void mesa_VertexAttribs2svNV(tvbuff_t *tvb, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
3222 {
3223  int n;
3224  proto_tree_add_item(t, hf_x11_glx_render_VertexAttribs2svNV_index, tvb, *offsetp, 4, byte_order);
3225  *offsetp += 4;
3226  n = tvb_get_guint32(tvb, *offsetp, byte_order);
3227  proto_tree_add_item(t, hf_x11_glx_render_VertexAttribs2svNV_n, tvb, *offsetp, 4, byte_order);
3228  *offsetp += 4;
3229  listOfInt16(tvb, offsetp, t, hf_x11_glx_render_VertexAttribs2svNV_v, hf_x11_glx_render_VertexAttribs2svNV_v_item, n, byte_order);
3230 }
3231 
3232 static void mesa_VertexAttribs3svNV(tvbuff_t *tvb, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
3233 {
3234  int n;
3235  proto_tree_add_item(t, hf_x11_glx_render_VertexAttribs3svNV_index, tvb, *offsetp, 4, byte_order);
3236  *offsetp += 4;
3237  n = tvb_get_guint32(tvb, *offsetp, byte_order);
3238  proto_tree_add_item(t, hf_x11_glx_render_VertexAttribs3svNV_n, tvb, *offsetp, 4, byte_order);
3239  *offsetp += 4;
3240  listOfInt16(tvb, offsetp, t, hf_x11_glx_render_VertexAttribs3svNV_v, hf_x11_glx_render_VertexAttribs3svNV_v_item, n, byte_order);
3241 }
3242 
3243 static void mesa_VertexAttribs4svNV(tvbuff_t *tvb, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
3244 {
3245  int n;
3246  proto_tree_add_item(t, hf_x11_glx_render_VertexAttribs4svNV_index, tvb, *offsetp, 4, byte_order);
3247  *offsetp += 4;
3248  n = tvb_get_guint32(tvb, *offsetp, byte_order);
3249  proto_tree_add_item(t, hf_x11_glx_render_VertexAttribs4svNV_n, tvb, *offsetp, 4, byte_order);
3250  *offsetp += 4;
3251  listOfInt16(tvb, offsetp, t, hf_x11_glx_render_VertexAttribs4svNV_v, hf_x11_glx_render_VertexAttribs4svNV_v_item, n, byte_order);
3252 }
3253 
3254 static void mesa_VertexAttribs1fvNV(tvbuff_t *tvb, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
3255 {
3256  int n;
3257  proto_tree_add_item(t, hf_x11_glx_render_VertexAttribs1fvNV_index, tvb, *offsetp, 4, byte_order);
3258  *offsetp += 4;
3259  n = tvb_get_guint32(tvb, *offsetp, byte_order);
3260  proto_tree_add_item(t, hf_x11_glx_render_VertexAttribs1fvNV_n, tvb, *offsetp, 4, byte_order);
3261  *offsetp += 4;
3262  listOfFloat(tvb, offsetp, t, hf_x11_glx_render_VertexAttribs1fvNV_v, hf_x11_glx_render_VertexAttribs1fvNV_v_item, n, byte_order);
3263 }
3264 
3265 static void mesa_VertexAttribs2fvNV(tvbuff_t *tvb, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
3266 {
3267  int n;
3268  proto_tree_add_item(t, hf_x11_glx_render_VertexAttribs2fvNV_index, tvb, *offsetp, 4, byte_order);
3269  *offsetp += 4;
3270  n = tvb_get_guint32(tvb, *offsetp, byte_order);
3271  proto_tree_add_item(t, hf_x11_glx_render_VertexAttribs2fvNV_n, tvb, *offsetp, 4, byte_order);
3272  *offsetp += 4;
3273  listOfFloat(tvb, offsetp, t, hf_x11_glx_render_VertexAttribs2fvNV_v, hf_x11_glx_render_VertexAttribs2fvNV_v_item, n, byte_order);
3274 }
3275 
3276 static void mesa_VertexAttribs3fvNV(tvbuff_t *tvb, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
3277 {
3278  int n;
3279  proto_tree_add_item(t, hf_x11_glx_render_VertexAttribs3fvNV_index, tvb, *offsetp, 4, byte_order);
3280  *offsetp += 4;
3281  n = tvb_get_guint32(tvb, *offsetp, byte_order);
3282  proto_tree_add_item(t, hf_x11_glx_render_VertexAttribs3fvNV_n, tvb, *offsetp, 4, byte_order);
3283  *offsetp += 4;
3284  listOfFloat(tvb, offsetp, t, hf_x11_glx_render_VertexAttribs3fvNV_v, hf_x11_glx_render_VertexAttribs3fvNV_v_item, n, byte_order);
3285 }
3286 
3287 static void mesa_VertexAttribs4fvNV(tvbuff_t *tvb, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
3288 {
3289  int n;
3290  proto_tree_add_item(t, hf_x11_glx_render_VertexAttribs4fvNV_index, tvb, *offsetp, 4, byte_order);
3291  *offsetp += 4;
3292  n = tvb_get_guint32(tvb, *offsetp, byte_order);
3293  proto_tree_add_item(t, hf_x11_glx_render_VertexAttribs4fvNV_n, tvb, *offsetp, 4, byte_order);
3294  *offsetp += 4;
3295  listOfFloat(tvb, offsetp, t, hf_x11_glx_render_VertexAttribs4fvNV_v, hf_x11_glx_render_VertexAttribs4fvNV_v_item, n, byte_order);
3296 }
3297 
3298 static void mesa_VertexAttribs1dvNV(tvbuff_t *tvb, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
3299 {
3300  int n;
3301  proto_tree_add_item(t, hf_x11_glx_render_VertexAttribs1dvNV_index, tvb, *offsetp, 4, byte_order);
3302  *offsetp += 4;
3303  n = tvb_get_guint32(tvb, *offsetp, byte_order);
3304  proto_tree_add_item(t, hf_x11_glx_render_VertexAttribs1dvNV_n, tvb, *offsetp, 4, byte_order);
3305  *offsetp += 4;
3306  listOfDouble(tvb, offsetp, t, hf_x11_glx_render_VertexAttribs1dvNV_v, hf_x11_glx_render_VertexAttribs1dvNV_v_item, n, byte_order);
3307 }
3308 
3309 static void mesa_VertexAttribs2dvNV(tvbuff_t *tvb, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
3310 {
3311  int n;
3312  proto_tree_add_item(t, hf_x11_glx_render_VertexAttribs2dvNV_index, tvb, *offsetp, 4, byte_order);
3313  *offsetp += 4;
3314  n = tvb_get_guint32(tvb, *offsetp, byte_order);
3315  proto_tree_add_item(t, hf_x11_glx_render_VertexAttribs2dvNV_n, tvb, *offsetp, 4, byte_order);
3316  *offsetp += 4;
3317  listOfDouble(tvb, offsetp, t, hf_x11_glx_render_VertexAttribs2dvNV_v, hf_x11_glx_render_VertexAttribs2dvNV_v_item, n, byte_order);
3318 }
3319 
3320 static void mesa_VertexAttribs3dvNV(tvbuff_t *tvb, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
3321 {
3322  int n;
3323  proto_tree_add_item(t, hf_x11_glx_render_VertexAttribs3dvNV_index, tvb, *offsetp, 4, byte_order);
3324  *offsetp += 4;
3325  n = tvb_get_guint32(tvb, *offsetp, byte_order);
3326  proto_tree_add_item(t, hf_x11_glx_render_VertexAttribs3dvNV_n, tvb, *offsetp, 4, byte_order);
3327  *offsetp += 4;
3328  listOfDouble(tvb, offsetp, t, hf_x11_glx_render_VertexAttribs3dvNV_v, hf_x11_glx_render_VertexAttribs3dvNV_v_item, n, byte_order);
3329 }
3330 
3331 static void mesa_VertexAttribs4dvNV(tvbuff_t *tvb, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
3332 {
3333  int n;
3334  proto_tree_add_item(t, hf_x11_glx_render_VertexAttribs4dvNV_index, tvb, *offsetp, 4, byte_order);
3335  *offsetp += 4;
3336  n = tvb_get_guint32(tvb, *offsetp, byte_order);
3337  proto_tree_add_item(t, hf_x11_glx_render_VertexAttribs4dvNV_n, tvb, *offsetp, 4, byte_order);
3338  *offsetp += 4;
3339  listOfDouble(tvb, offsetp, t, hf_x11_glx_render_VertexAttribs4dvNV_v, hf_x11_glx_render_VertexAttribs4dvNV_v_item, n, byte_order);
3340 }
3341 
3342 static void mesa_VertexAttribs4ubvNV(tvbuff_t *tvb, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
3343 {
3344  int n;
3345  proto_tree_add_item(t, hf_x11_glx_render_VertexAttribs4ubvNV_index, tvb, *offsetp, 4, byte_order);
3346  *offsetp += 4;
3347  n = tvb_get_guint32(tvb, *offsetp, byte_order);
3348  proto_tree_add_item(t, hf_x11_glx_render_VertexAttribs4ubvNV_n, tvb, *offsetp, 4, byte_order);
3349  *offsetp += 4;
3350  listOfByte(tvb, offsetp, t, hf_x11_glx_render_VertexAttribs4ubvNV_v, n, byte_order);
3351 }
3352 
3353 static void mesa_ActiveStencilFaceEXT(tvbuff_t *tvb, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
3354 {
3355  proto_tree_add_item(t, hf_x11_glx_render_ActiveStencilFaceEXT_face, tvb, *offsetp, 4, byte_order);
3356  *offsetp += 4;
3357 }
3358 
3359 static void mesa_ProgramNamedParameter4fvNV(tvbuff_t *tvb, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
3360 {
3361  int len;
3362  proto_tree_add_item(t, hf_x11_glx_render_ProgramNamedParameter4fvNV_id, tvb, *offsetp, 4, byte_order);
3363  *offsetp += 4;
3364  len = tvb_get_guint32(tvb, *offsetp, byte_order);
3365  proto_tree_add_item(t, hf_x11_glx_render_ProgramNamedParameter4fvNV_len, tvb, *offsetp, 4, byte_order);
3366  *offsetp += 4;
3367  listOfByte(tvb, offsetp, t, hf_x11_glx_render_ProgramNamedParameter4fvNV_name, len, byte_order);
3368  listOfFloat(tvb, offsetp, t, hf_x11_glx_render_ProgramNamedParameter4fvNV_v, hf_x11_glx_render_ProgramNamedParameter4fvNV_v_item, 4, byte_order);
3369 }
3370 
3371 static void mesa_ProgramNamedParameter4dvNV(tvbuff_t *tvb, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
3372 {
3373  int len;
3374  proto_tree_add_item(t, hf_x11_glx_render_ProgramNamedParameter4dvNV_id, tvb, *offsetp, 4, byte_order);
3375  *offsetp += 4;
3376  len = tvb_get_guint32(tvb, *offsetp, byte_order);
3377  proto_tree_add_item(t, hf_x11_glx_render_ProgramNamedParameter4dvNV_len, tvb, *offsetp, 4, byte_order);
3378  *offsetp += 4;
3379  listOfByte(tvb, offsetp, t, hf_x11_glx_render_ProgramNamedParameter4dvNV_name, len, byte_order);
3380  listOfDouble(tvb, offsetp, t, hf_x11_glx_render_ProgramNamedParameter4dvNV_v, hf_x11_glx_render_ProgramNamedParameter4dvNV_v_item, 4, byte_order);
3381 }
3382 
3383 static void mesa_DepthBoundsEXT(tvbuff_t *tvb, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
3384 {
3385  proto_tree_add_item(t, hf_x11_glx_render_DepthBoundsEXT_zmin, tvb, *offsetp, 8, byte_order);
3386  *offsetp += 8;
3387  proto_tree_add_item(t, hf_x11_glx_render_DepthBoundsEXT_zmax, tvb, *offsetp, 8, byte_order);
3388  *offsetp += 8;
3389 }
3390 
3391 static const value_string glx_render_op_name[] = {
3392  { 1, "glCallList" },
3393  { 2, "glCallLists" },
3394  { 3, "glListBase" },
3395  { 4, "glBegin" },
3396  { 5, "glBitmap" },
3397  { 6, "glColor3bv" },
3398  { 7, "glColor3dv" },
3399  { 8, "glColor3fv" },
3400  { 9, "glColor3iv" },
3401  { 10, "glColor3sv" },
3402  { 11, "glColor3ubv" },
3403  { 12, "glColor3uiv" },
3404  { 13, "glColor3usv" },
3405  { 14, "glColor4bv" },
3406  { 15, "glColor4dv" },
3407  { 16, "glColor4fv" },
3408  { 17, "glColor4iv" },
3409  { 18, "glColor4sv" },
3410  { 19, "glColor4ubv" },
3411  { 20, "glColor4uiv" },
3412  { 21, "glColor4usv" },
3413  { 22, "glEdgeFlagv" },
3414  { 23, "glEnd" },
3415  { 24, "glIndexdv" },
3416  { 25, "glIndexfv" },
3417  { 26, "glIndexiv" },
3418  { 27, "glIndexsv" },
3419  { 28, "glNormal3bv" },
3420  { 29, "glNormal3dv" },
3421  { 30, "glNormal3fv" },
3422  { 31, "glNormal3iv" },
3423  { 32, "glNormal3sv" },
3424  { 33, "glRasterPos2dv" },
3425  { 34, "glRasterPos2fv" },
3426  { 35, "glRasterPos2iv" },
3427  { 36, "glRasterPos2sv" },
3428  { 37, "glRasterPos3dv" },
3429  { 38, "glRasterPos3fv" },
3430  { 39, "glRasterPos3iv" },
3431  { 40, "glRasterPos3sv" },
3432  { 41, "glRasterPos4dv" },
3433  { 42, "glRasterPos4fv" },
3434  { 43, "glRasterPos4iv" },
3435  { 44, "glRasterPos4sv" },
3436  { 45, "glRectdv" },
3437  { 46, "glRectfv" },
3438  { 47, "glRectiv" },
3439  { 48, "glRectsv" },
3440  { 49, "glTexCoord1dv" },
3441  { 50, "glTexCoord1fv" },
3442  { 51, "glTexCoord1iv" },
3443  { 52, "glTexCoord1sv" },
3444  { 53, "glTexCoord2dv" },
3445  { 54, "glTexCoord2fv" },
3446  { 55, "glTexCoord2iv" },
3447  { 56, "glTexCoord2sv" },
3448  { 57, "glTexCoord3dv" },
3449  { 58, "glTexCoord3fv" },
3450  { 59, "glTexCoord3iv" },
3451  { 60, "glTexCoord3sv" },
3452  { 61, "glTexCoord4dv" },
3453  { 62, "glTexCoord4fv" },
3454  { 63, "glTexCoord4iv" },
3455  { 64, "glTexCoord4sv" },
3456  { 65, "glVertex2dv" },
3457  { 66, "glVertex2fv" },
3458  { 67, "glVertex2iv" },
3459  { 68, "glVertex2sv" },
3460  { 69, "glVertex3dv" },
3461  { 70, "glVertex3fv" },
3462  { 71, "glVertex3iv" },
3463  { 72, "glVertex3sv" },
3464  { 73, "glVertex4dv" },
3465  { 74, "glVertex4fv" },
3466  { 75, "glVertex4iv" },
3467  { 76, "glVertex4sv" },
3468  { 77, "glClipPlane" },
3469  { 78, "glColorMaterial" },
3470  { 79, "glCullFace" },
3471  { 80, "glFogf" },
3472  { 81, "glFogfv" },
3473  { 82, "glFogi" },
3474  { 83, "glFogiv" },
3475  { 84, "glFrontFace" },
3476  { 85, "glHint" },
3477  { 86, "glLightf" },
3478  { 87, "glLightfv" },
3479  { 88, "glLighti" },
3480  { 89, "glLightiv" },
3481  { 90, "glLightModelf" },
3482  { 91, "glLightModelfv" },
3483  { 92, "glLightModeli" },
3484  { 93, "glLightModeliv" },
3485  { 94, "glLineStipple" },
3486  { 95, "glLineWidth" },
3487  { 96, "glMaterialf" },
3488  { 97, "glMaterialfv" },
3489  { 98, "glMateriali" },
3490  { 99, "glMaterialiv" },
3491  { 100, "glPointSize" },
3492  { 101, "glPolygonMode" },
3493  { 102, "glPolygonStipple" },
3494  { 103, "glScissor" },
3495  { 104, "glShadeModel" },
3496  { 105, "glTexParameterf" },
3497  { 106, "glTexParameterfv" },
3498  { 107, "glTexParameteri" },
3499  { 108, "glTexParameteriv" },
3500  { 109, "glTexImage1D" },
3501  { 110, "glTexImage2D" },
3502  { 111, "glTexEnvf" },
3503  { 112, "glTexEnvfv" },
3504  { 113, "glTexEnvi" },
3505  { 114, "glTexEnviv" },
3506  { 115, "glTexGend" },
3507  { 116, "glTexGendv" },
3508  { 117, "glTexGenf" },
3509  { 118, "glTexGenfv" },
3510  { 119, "glTexGeni" },
3511  { 120, "glTexGeniv" },
3512  { 121, "glInitNames" },
3513  { 122, "glLoadName" },
3514  { 123, "glPassThrough" },
3515  { 124, "glPopName" },
3516  { 125, "glPushName" },
3517  { 126, "glDrawBuffer" },
3518  { 127, "glClear" },
3519  { 128, "glClearAccum" },
3520  { 129, "glClearIndex" },
3521  { 130, "glClearColor" },
3522  { 131, "glClearStencil" },
3523  { 132, "glClearDepth" },
3524  { 133, "glStencilMask" },
3525  { 134, "glColorMask" },
3526  { 135, "glDepthMask" },
3527  { 136, "glIndexMask" },
3528  { 137, "glAccum" },
3529  { 138, "glDisable" },
3530  { 139, "glEnable" },
3531  { 141, "glPopAttrib" },
3532  { 142, "glPushAttrib" },
3533  { 143, "glMap1d" },
3534  { 144, "glMap1f" },
3535  { 145, "glMap2d" },
3536  { 146, "glMap2f" },
3537  { 147, "glMapGrid1d" },
3538  { 148, "glMapGrid1f" },
3539  { 149, "glMapGrid2d" },
3540  { 150, "glMapGrid2f" },
3541  { 151, "glEvalCoord1dv" },
3542  { 152, "glEvalCoord1fv" },
3543  { 153, "glEvalCoord2dv" },
3544  { 154, "glEvalCoord2fv" },
3545  { 155, "glEvalMesh1" },
3546  { 156, "glEvalPoint1" },
3547  { 157, "glEvalMesh2" },
3548  { 158, "glEvalPoint2" },
3549  { 159, "glAlphaFunc" },
3550  { 160, "glBlendFunc" },
3551  { 161, "glLogicOp" },
3552  { 162, "glStencilFunc" },
3553  { 163, "glStencilOp" },
3554  { 164, "glDepthFunc" },
3555  { 165, "glPixelZoom" },
3556  { 166, "glPixelTransferf" },
3557  { 167, "glPixelTransferi" },
3558  { 168, "glPixelMapfv" },
3559  { 169, "glPixelMapuiv" },
3560  { 170, "glPixelMapusv" },
3561  { 171, "glReadBuffer" },
3562  { 172, "glCopyPixels" },
3563  { 173, "glDrawPixels" },
3564  { 174, "glDepthRange" },
3565  { 175, "glFrustum" },
3566  { 176, "glLoadIdentity" },
3567  { 177, "glLoadMatrixf" },
3568  { 178, "glLoadMatrixd" },
3569  { 179, "glMatrixMode" },
3570  { 180, "glMultMatrixf" },
3571  { 181, "glMultMatrixd" },
3572  { 182, "glOrtho" },
3573  { 183, "glPopMatrix" },
3574  { 184, "glPushMatrix" },
3575  { 185, "glRotated" },
3576  { 186, "glRotatef" },
3577  { 187, "glScaled" },
3578  { 188, "glScalef" },
3579  { 189, "glTranslated" },
3580  { 190, "glTranslatef" },
3581  { 191, "glViewport" },
3582  { 192, "glPolygonOffset" },
3583  { 193, "glDrawArrays" },
3584  { 194, "glIndexubv" },
3585  { 195, "glColorSubTable" },
3586  { 196, "glCopyColorSubTable" },
3587  { 197, "glActiveTexture" },
3588  { 198, "glMultiTexCoord1dv" },
3589  { 199, "glMultiTexCoord1fvARB" },
3590  { 200, "glMultiTexCoord1iv" },
3591  { 201, "glMultiTexCoord1sv" },
3592  { 202, "glMultiTexCoord2dv" },
3593  { 203, "glMultiTexCoord2fvARB" },
3594  { 204, "glMultiTexCoord2iv" },
3595  { 205, "glMultiTexCoord2sv" },
3596  { 206, "glMultiTexCoord3dv" },
3597  { 207, "glMultiTexCoord3fvARB" },
3598  { 208, "glMultiTexCoord3iv" },
3599  { 209, "glMultiTexCoord3sv" },
3600  { 210, "glMultiTexCoord4dv" },
3601  { 211, "glMultiTexCoord4fvARB" },
3602  { 212, "glMultiTexCoord4iv" },
3603  { 213, "glMultiTexCoord4sv" },
3604  { 214, "glCompressedTexImage1D" },
3605  { 215, "glCompressedTexImage2D" },
3606  { 216, "glCompressedTexImage3D" },
3607  { 217, "glCompressedTexSubImage1D" },
3608  { 218, "glCompressedTexSubImage2D" },
3609  { 219, "glCompressedTexSubImage3D" },
3610  { 229, "glSampleCoverage" },
3611  { 230, "glWindowPos3fv" },
3612  { 231, "glBeginQuery" },
3613  { 232, "glEndQuery" },
3614  { 233, "glDrawBuffers" },
3615  { 2048, "glSampleMaskSGIS" },
3616  { 2049, "glSamplePatternSGIS" },
3617  { 2050, "glTagSampleBufferSGIX" },
3618  { 2051, "glDetailTexFuncSGIS" },
3619  { 2052, "glSharpenTexFuncSGIS" },
3620  { 2053, "glColorTable" },
3621  { 2054, "glColorTableParameterfv" },
3622  { 2055, "glColorTableParameteriv" },
3623  { 2056, "glCopyColorTable" },
3624  { 2057, "glTexImage4DSGIS" },
3625  { 2058, "glTexSubImage4DSGIS" },
3626  { 2059, "glPixelTexGenSGIX" },
3627  { 2064, "glTexFilterFuncSGIS" },
3628  { 2065, "glPointParameterf" },
3629  { 2066, "glPointParameterfv" },
3630  { 2067, "glFogFuncSGIS" },
3631  { 2071, "glReferencePlaneSGIX" },
3632  { 2072, "glFrameZoomSGIX" },
3633  { 2082, "glTextureColorMaskSGIS" },
3634  { 4096, "glBlendColor" },
3635  { 4097, "glBlendEquation" },
3636  { 4098, "glPolygonOffsetEXT" },
3637  { 4099, "glTexSubImage1D" },
3638  { 4100, "glTexSubImage2D" },
3639  { 4101, "glConvolutionFilter1D" },
3640  { 4102, "glConvolutionFilter2D" },
3641  { 4103, "glConvolutionParameterf" },
3642  { 4104, "glConvolutionParameterfv" },
3643  { 4105, "glConvolutionParameteri" },
3644  { 4106, "glConvolutionParameteriv" },
3645  { 4107, "glCopyConvolutionFilter1D" },
3646  { 4108, "glCopyConvolutionFilter2D" },
3647  { 4109, "glSeparableFilter2D" },
3648  { 4110, "glHistogram" },
3649  { 4111, "glMinmax" },
3650  { 4112, "glResetHistogram" },
3651  { 4113, "glResetMinmax" },
3652  { 4114, "glTexImage3D" },
3653  { 4115, "glTexSubImage3D" },
3654  { 4117, "glBindTexture" },
3655  { 4118, "glPrioritizeTextures" },
3656  { 4119, "glCopyTexImage1D" },
3657  { 4120, "glCopyTexImage2D" },
3658  { 4121, "glCopyTexSubImage1D" },
3659  { 4122, "glCopyTexSubImage2D" },
3660  { 4123, "glCopyTexSubImage3D" },
3661  { 4124, "glFogCoordfvEXT" },
3662  { 4125, "glFogCoorddv" },
3663  { 4126, "glSecondaryColor3bv" },
3664  { 4127, "glSecondaryColor3sv" },
3665  { 4128, "glSecondaryColor3iv" },
3666  { 4129, "glSecondaryColor3fvEXT" },
3667  { 4130, "glSecondaryColor3dv" },
3668  { 4131, "glSecondaryColor3ubv" },
3669  { 4132, "glSecondaryColor3usv" },
3670  { 4133, "glSecondaryColor3uiv" },
3671  { 4134, "glBlendFuncSeparate" },
3672  { 4135, "glVertexWeightfvEXT" },
3673  { 4136, "glCombinerParameterfNV" },
3674  { 4137, "glCombinerParameterfvNV" },
3675  { 4138, "glCombinerParameteriNV" },
3676  { 4139, "glCombinerParameterivNV" },
3677  { 4140, "glCombinerInputNV" },
3678  { 4141, "glCombinerOutputNV" },
3679  { 4142, "glFinalCombinerInputNV" },
3680  { 4180, "glBindProgramARB" },
3681  { 4181, "glExecuteProgramNV" },
3682  { 4182, "glRequestResidentProgramsNV" },
3683  { 4183, "glLoadProgramNV" },
3684  { 4184, "glProgramEnvParameter4fvARB" },
3685  { 4185, "glProgramEnvParameter4dvARB" },
3686  { 4186, "glProgramParameters4fvNV" },
3687  { 4187, "glProgramParameters4dvNV" },
3688  { 4188, "glTrackMatrixNV" },
3689  { 4189, "glVertexAttrib1sv" },
3690  { 4190, "glVertexAttrib2sv" },
3691  { 4191, "glVertexAttrib3sv" },
3692  { 4192, "glVertexAttrib4sv" },
3693  { 4193, "glVertexAttrib1fvARB" },
3694  { 4194, "glVertexAttrib2fvARB" },
3695  { 4195, "glVertexAttrib3fvARB" },
3696  { 4196, "glVertexAttrib4fvARB" },
3697  { 4197, "glVertexAttrib1dv" },
3698  { 4198, "glVertexAttrib2dv" },
3699  { 4199, "glVertexAttrib3dv" },
3700  { 4200, "glVertexAttrib4dv" },
3701  { 4201, "glVertexAttrib4Nubv" },
3702  { 4202, "glVertexAttribs1svNV" },
3703  { 4203, "glVertexAttribs2svNV" },
3704  { 4204, "glVertexAttribs3svNV" },
3705  { 4205, "glVertexAttribs4svNV" },
3706  { 4206, "glVertexAttribs1fvNV" },
3707  { 4207, "glVertexAttribs2fvNV" },
3708  { 4208, "glVertexAttribs3fvNV" },
3709  { 4209, "glVertexAttribs4fvNV" },
3710  { 4210, "glVertexAttribs1dvNV" },
3711  { 4211, "glVertexAttribs2dvNV" },
3712  { 4212, "glVertexAttribs3dvNV" },
3713  { 4213, "glVertexAttribs4dvNV" },
3714  { 4214, "glVertexAttribs4ubvNV" },
3715  { 4215, "glProgramLocalParameter4fvARB" },
3716  { 4216, "glProgramLocalParameter4dvARB" },
3717  { 4217, "glProgramStringARB" },
3718  { 4218, "glProgramNamedParameter4fvNV" },
3719  { 4219, "glProgramNamedParameter4dvNV" },
3720  { 4220, "glActiveStencilFaceEXT" },
3721  { 4221, "glPointParameteri" },
3722  { 4222, "glPointParameteriv" },
3723  { 4228, "glBlendEquationSeparate" },
3724  { 4229, "glDepthBoundsEXT" },
3725  { 4230, "glVertexAttrib4bv" },
3726  { 4231, "glVertexAttrib4iv" },
3727  { 4232, "glVertexAttrib4ubv" },
3728  { 4233, "glVertexAttrib4usv" },
3729  { 4234, "glVertexAttrib4uiv" },
3730  { 4235, "glVertexAttrib4Nbv" },
3731  { 4236, "glVertexAttrib4Nsv" },
3732  { 4237, "glVertexAttrib4Niv" },
3733  { 4238, "glVertexAttrib4Nusv" },
3734  { 4239, "glVertexAttrib4Nuiv" },
3735  { 4265, "glVertexAttrib1svNV" },
3736  { 4266, "glVertexAttrib2svNV" },
3737  { 4267, "glVertexAttrib3svNV" },
3738  { 4268, "glVertexAttrib4svNV" },
3739  { 4269, "glVertexAttrib1fvNV" },
3740  { 4270, "glVertexAttrib2fvNV" },
3741  { 4271, "glVertexAttrib3fvNV" },
3742  { 4272, "glVertexAttrib4fvNV" },
3743  { 4273, "glVertexAttrib1dvNV" },
3744  { 4274, "glVertexAttrib2dvNV" },
3745  { 4275, "glVertexAttrib3dvNV" },
3746  { 4276, "glVertexAttrib4dvNV" },
3747  { 4277, "glVertexAttrib4ubvNV" },
3748  { 4326, "glMatrixIndexubvARB" },
3749  { 4327, "glMatrixIndexusvARB" },
3750  { 4328, "glMatrixIndexuivARB" },
3751  { 4329, "glCurrentPaletteMatrixARB" },
3752  { 0, NULL }
3753 };
3754 static value_string_ext mesa_enum_ext = VALUE_STRING_EXT_INIT(mesa_enum);
3755 
3756 static void dispatch_glx_render(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order, int length)
3757 {
3758  while (length >= 4) {
3759  guint32 op, len;
3760  int next;
3761  proto_item *ti;
3762  proto_tree *tt;
3763 
3764  len = tvb_get_guint16(tvb, *offsetp, byte_order);
3765 
3766  op = tvb_get_guint16(tvb, *offsetp + 2, byte_order);
3767  ti = proto_tree_add_uint(t, hf_x11_glx_render_op_name, tvb, *offsetp, len, op);
3768 
3769  tt = proto_item_add_subtree(ti, ett_x11_list_of_rectangle);
3770 
3771  ti = proto_tree_add_item(tt, hf_x11_request_length, tvb, *offsetp, 2, byte_order);
3772  *offsetp += 2;
3773  proto_tree_add_item(tt, hf_x11_glx_render_op_name, tvb, *offsetp, 2, byte_order);
3774  *offsetp += 2;
3775 
3776  if (len < 4) {
3777  expert_add_info(pinfo, ti, &ei_x11_request_length);
3778  /* Eat the rest of the packet, mark it undecoded */
3779  len = length;
3780  op = -1;
3781  }
3782  len -= 4;
3783 
3784  next = *offsetp + len;
3785 
3786  switch (op) {
3787  case 1:
3788  mesa_CallList(tvb, offsetp, tt, byte_order, len);
3789  break;
3790  case 2:
3791  mesa_CallLists(tvb, offsetp, tt, byte_order, len);
3792  break;
3793  case 3:
3794  mesa_ListBase(tvb, offsetp, tt, byte_order, len);
3795  break;
3796  case 4:
3797  mesa_Begin(tvb, offsetp, tt, byte_order, len);
3798  break;
3799  case 5:
3800  mesa_Bitmap(tvb, offsetp, tt, byte_order, len);
3801  break;
3802  case 6:
3803  mesa_Color3bv(tvb, offsetp, tt, byte_order, len);
3804  break;
3805  case 7:
3806  mesa_Color3dv(tvb, offsetp, tt, byte_order, len);
3807  break;
3808  case 8:
3809  mesa_Color3fv(tvb, offsetp, tt, byte_order, len);
3810  break;
3811  case 9:
3812  mesa_Color3iv(tvb, offsetp, tt, byte_order, len);
3813  break;
3814  case 10:
3815  mesa_Color3sv(tvb, offsetp, tt, byte_order, len);
3816  break;
3817  case 11:
3818  mesa_Color3ubv(tvb, offsetp, tt, byte_order, len);
3819  break;
3820  case 12:
3821  mesa_Color3uiv(tvb, offsetp, tt, byte_order, len);
3822  break;
3823  case 13:
3824  mesa_Color3usv(tvb, offsetp, tt, byte_order, len);
3825  break;
3826  case 14:
3827  mesa_Color4bv(tvb, offsetp, tt, byte_order, len);
3828  break;
3829  case 15:
3830  mesa_Color4dv(tvb, offsetp, tt, byte_order, len);
3831  break;
3832  case 16:
3833  mesa_Color4fv(tvb, offsetp, tt, byte_order, len);
3834  break;
3835  case 17:
3836  mesa_Color4iv(tvb, offsetp, tt, byte_order, len);
3837  break;
3838  case 18:
3839  mesa_Color4sv(tvb, offsetp, tt, byte_order, len);
3840  break;
3841  case 19:
3842  mesa_Color4ubv(tvb, offsetp, tt, byte_order, len);
3843  break;
3844  case 20:
3845  mesa_Color4uiv(tvb, offsetp, tt, byte_order, len);
3846  break;
3847  case 21:
3848  mesa_Color4usv(tvb, offsetp, tt, byte_order, len);
3849  break;
3850  case 22:
3851  mesa_EdgeFlagv(tvb, offsetp, tt, byte_order, len);
3852  break;
3853  case 23:
3854  mesa_End(tvb, offsetp, tt, byte_order, len);
3855  break;
3856  case 24:
3857  mesa_Indexdv(tvb, offsetp, tt, byte_order, len);
3858  break;
3859  case 25:
3860  mesa_Indexfv(tvb, offsetp, tt, byte_order, len);
3861  break;
3862  case 26:
3863  mesa_Indexiv(tvb, offsetp, tt, byte_order, len);
3864  break;
3865  case 27:
3866  mesa_Indexsv(tvb, offsetp, tt, byte_order, len);
3867  break;
3868  case 28:
3869  mesa_Normal3bv(tvb, offsetp, tt, byte_order, len);
3870  break;
3871  case 29:
3872  mesa_Normal3dv(tvb, offsetp, tt, byte_order, len);
3873  break;
3874  case 30:
3875  mesa_Normal3fv(tvb, offsetp, tt, byte_order, len);
3876  break;
3877  case 31:
3878  mesa_Normal3iv(tvb, offsetp, tt, byte_order, len);
3879  break;
3880  case 32:
3881  mesa_Normal3sv(tvb, offsetp, tt, byte_order, len);
3882  break;
3883  case 33:
3884  mesa_RasterPos2dv(tvb, offsetp, tt, byte_order, len);
3885  break;
3886  case 34:
3887  mesa_RasterPos2fv(tvb, offsetp, tt, byte_order, len);
3888  break;
3889  case 35:
3890  mesa_RasterPos2iv(tvb, offsetp, tt, byte_order, len);
3891  break;
3892  case 36:
3893  mesa_RasterPos2sv(tvb, offsetp, tt, byte_order, len);
3894  break;
3895  case 37:
3896  mesa_RasterPos3dv(tvb, offsetp, tt, byte_order, len);
3897  break;
3898  case 38:
3899  mesa_RasterPos3fv(tvb, offsetp, tt, byte_order, len);
3900  break;
3901  case 39:
3902  mesa_RasterPos3iv(tvb, offsetp, tt, byte_order, len);
3903  break;
3904  case 40:
3905  mesa_RasterPos3sv(tvb, offsetp, tt, byte_order, len);
3906  break;
3907  case 41:
3908  mesa_RasterPos4dv(tvb, offsetp, tt, byte_order, len);
3909  break;
3910  case 42:
3911  mesa_RasterPos4fv(tvb, offsetp, tt, byte_order, len);
3912  break;
3913  case 43:
3914  mesa_RasterPos4iv(tvb, offsetp, tt, byte_order, len);
3915  break;
3916  case 44:
3917  mesa_RasterPos4sv(tvb, offsetp, tt, byte_order, len);
3918  break;
3919  case 45:
3920  mesa_Rectdv(tvb, offsetp, tt, byte_order, len);
3921  break;
3922  case 46:
3923  mesa_Rectfv(tvb, offsetp, tt, byte_order, len);
3924  break;
3925  case 47:
3926  mesa_Rectiv(tvb, offsetp, tt, byte_order, len);
3927  break;
3928  case 48:
3929  mesa_Rectsv(tvb, offsetp, tt, byte_order, len);
3930  break;
3931  case 49:
3932  mesa_TexCoord1dv(tvb, offsetp, tt, byte_order, len);
3933  break;
3934  case 50:
3935  mesa_TexCoord1fv(tvb, offsetp, tt, byte_order, len);
3936  break;
3937  case 51:
3938  mesa_TexCoord1iv(tvb, offsetp, tt, byte_order, len);
3939  break;
3940  case 52:
3941  mesa_TexCoord1sv(tvb, offsetp, tt, byte_order, len);
3942  break;
3943  case 53:
3944  mesa_TexCoord2dv(tvb, offsetp, tt, byte_order, len);
3945  break;
3946  case 54:
3947  mesa_TexCoord2fv(tvb, offsetp, tt, byte_order, len);
3948  break;
3949  case 55:
3950  mesa_TexCoord2iv(tvb, offsetp, tt, byte_order, len);
3951  break;
3952  case 56:
3953  mesa_TexCoord2sv(tvb, offsetp, tt, byte_order, len);
3954  break;
3955  case 57:
3956  mesa_TexCoord3dv(tvb, offsetp, tt, byte_order, len);
3957  break;
3958  case 58:
3959  mesa_TexCoord3fv(tvb, offsetp, tt, byte_order, len);
3960  break;
3961  case 59:
3962  mesa_TexCoord3iv(tvb, offsetp, tt, byte_order, len);
3963  break;
3964  case 60:
3965  mesa_TexCoord3sv(tvb, offsetp, tt, byte_order, len);
3966  break;
3967  case 61:
3968  mesa_TexCoord4dv(tvb, offsetp, tt, byte_order, len);
3969  break;
3970  case 62:
3971  mesa_TexCoord4fv(tvb, offsetp, tt, byte_order, len);
3972  break;
3973  case 63:
3974  mesa_TexCoord4iv(tvb, offsetp, tt, byte_order, len);
3975  break;
3976  case 64:
3977  mesa_TexCoord4sv(tvb, offsetp, tt, byte_order, len);
3978  break;
3979  case 65:
3980  mesa_Vertex2dv(tvb, offsetp, tt, byte_order, len);
3981  break;
3982  case 66:
3983  mesa_Vertex2fv(tvb, offsetp, tt, byte_order, len);
3984  break;
3985  case 67:
3986  mesa_Vertex2iv(tvb, offsetp, tt, byte_order, len);
3987  break;
3988  case 68:
3989  mesa_Vertex2sv(tvb, offsetp, tt, byte_order, len);
3990  break;
3991  case 69:
3992  mesa_Vertex3dv(tvb, offsetp, tt, byte_order, len);
3993  break;
3994  case 70:
3995  mesa_Vertex3fv(tvb, offsetp, tt, byte_order, len);
3996  break;
3997  case 71:
3998  mesa_Vertex3iv(tvb, offsetp, tt, byte_order, len);
3999  break;
4000  case 72:
4001  mesa_Vertex3sv(tvb, offsetp, tt, byte_order, len);
4002  break;
4003  case 73:
4004  mesa_Vertex4dv(tvb, offsetp, tt, byte_order, len);
4005  break;
4006  case 74:
4007  mesa_Vertex4fv(tvb, offsetp, tt, byte_order, len);
4008  break;
4009  case 75:
4010  mesa_Vertex4iv(tvb, offsetp, tt, byte_order, len);
4011  break;
4012  case 76:
4013  mesa_Vertex4sv(tvb, offsetp, tt, byte_order, len);
4014  break;
4015  case 77:
4016  mesa_ClipPlane(tvb, offsetp, tt, byte_order, len);
4017  break;
4018  case 78:
4019  mesa_ColorMaterial(tvb, offsetp, tt, byte_order, len);
4020  break;
4021  case 79:
4022  mesa_CullFace(tvb, offsetp, tt, byte_order, len);
4023  break;
4024  case 80:
4025  mesa_Fogf(tvb, offsetp, tt, byte_order, len);
4026  break;
4027  case 81:
4028  mesa_Fogfv(tvb, offsetp, tt, byte_order, len);
4029  break;
4030  case 82:
4031  mesa_Fogi(tvb, offsetp, tt, byte_order, len);
4032  break;
4033  case 83:
4034  mesa_Fogiv(tvb, offsetp, tt, byte_order, len);
4035  break;
4036  case 84:
4037  mesa_FrontFace(tvb, offsetp, tt, byte_order, len);
4038  break;
4039  case 85:
4040  mesa_Hint(tvb, offsetp, tt, byte_order, len);
4041  break;
4042  case 86:
4043  mesa_Lightf(tvb, offsetp, tt, byte_order, len);
4044  break;
4045  case 87:
4046  mesa_Lightfv(tvb, offsetp, tt, byte_order, len);
4047  break;
4048  case 88:
4049  mesa_Lighti(tvb, offsetp, tt, byte_order, len);
4050  break;
4051  case 89:
4052  mesa_Lightiv(tvb, offsetp, tt, byte_order, len);
4053  break;
4054  case 90:
4055  mesa_LightModelf(tvb, offsetp, tt, byte_order, len);
4056  break;
4057  case 91:
4058  mesa_LightModelfv(tvb, offsetp, tt, byte_order, len);
4059  break;
4060  case 92:
4061  mesa_LightModeli(tvb, offsetp, tt, byte_order, len);
4062  break;
4063  case 93:
4064  mesa_LightModeliv(tvb, offsetp, tt, byte_order, len);
4065  break;
4066  case 94:
4067  mesa_LineStipple(tvb, offsetp, tt, byte_order, len);
4068  break;
4069  case 95:
4070  mesa_LineWidth(tvb, offsetp, tt, byte_order, len);
4071  break;
4072  case 96:
4073  mesa_Materialf(tvb, offsetp, tt, byte_order, len);
4074  break;
4075  case 97:
4076  mesa_Materialfv(tvb, offsetp, tt, byte_order, len);
4077  break;
4078  case 98:
4079  mesa_Materiali(tvb, offsetp, tt, byte_order, len);
4080  break;
4081  case 99:
4082  mesa_Materialiv(tvb, offsetp, tt, byte_order, len);
4083  break;
4084  case 100:
4085  mesa_PointSize(tvb, offsetp, tt, byte_order, len);
4086  break;
4087  case 101:
4088  mesa_PolygonMode(tvb, offsetp, tt, byte_order, len);
4089  break;
4090  case 102:
4091  mesa_PolygonStipple(tvb, offsetp, tt, byte_order, len);
4092  break;
4093  case 103:
4094  mesa_Scissor(tvb, offsetp, tt, byte_order, len);
4095  break;
4096  case 104:
4097  mesa_ShadeModel(tvb, offsetp, tt, byte_order, len);
4098  break;
4099  case 105:
4100  mesa_TexParameterf(tvb, offsetp, tt, byte_order, len);
4101  break;
4102  case 106:
4103  mesa_TexParameterfv(tvb, offsetp, tt, byte_order, len);
4104  break;
4105  case 107:
4106  mesa_TexParameteri(tvb, offsetp, tt, byte_order, len);
4107  break;
4108  case 108:
4109  mesa_TexParameteriv(tvb, offsetp, tt, byte_order, len);
4110  break;
4111  case 109:
4112  mesa_TexImage1D(tvb, offsetp, tt, byte_order, len);
4113  break;
4114  case 110:
4115  mesa_TexImage2D(tvb, offsetp, tt, byte_order, len);
4116  break;
4117  case 111:
4118  mesa_TexEnvf(tvb, offsetp, tt, byte_order, len);
4119  break;
4120  case 112:
4121  mesa_TexEnvfv(tvb, offsetp, tt, byte_order, len);
4122  break;
4123  case 113:
4124  mesa_TexEnvi(tvb, offsetp, tt, byte_order, len);
4125  break;
4126  case 114:
4127  mesa_TexEnviv(tvb, offsetp, tt, byte_order, len);
4128  break;
4129  case 115:
4130  mesa_TexGend(tvb, offsetp, tt, byte_order, len);
4131  break;
4132  case 116:
4133  mesa_TexGendv(tvb, offsetp, tt, byte_order, len);
4134  break;
4135  case 117:
4136  mesa_TexGenf(tvb, offsetp, tt, byte_order, len);
4137  break;
4138  case 118:
4139  mesa_TexGenfv(tvb, offsetp, tt, byte_order, len);
4140  break;
4141  case 119:
4142  mesa_TexGeni(tvb, offsetp, tt, byte_order, len);
4143  break;
4144  case 120:
4145  mesa_TexGeniv(tvb, offsetp, tt, byte_order, len);
4146  break;
4147  case 121:
4148  mesa_InitNames(tvb, offsetp, tt, byte_order, len);
4149  break;
4150  case 122:
4151  mesa_LoadName(tvb, offsetp, tt, byte_order, len);
4152  break;
4153  case 123:
4154  mesa_PassThrough(tvb, offsetp, tt, byte_order, len);
4155  break;
4156  case 124:
4157  mesa_PopName(tvb, offsetp, tt, byte_order, len);
4158  break;
4159  case 125:
4160  mesa_PushName(tvb, offsetp, tt, byte_order, len);
4161  break;
4162  case 126:
4163  mesa_DrawBuffer(tvb, offsetp, tt, byte_order, len);
4164  break;
4165  case 127:
4166  mesa_Clear(tvb, offsetp, tt, byte_order, len);
4167  break;
4168  case 128:
4169  mesa_ClearAccum(tvb, offsetp, tt, byte_order, len);
4170  break;
4171  case 129:
4172  mesa_ClearIndex(tvb, offsetp, tt, byte_order, len);
4173  break;
4174  case 130:
4175  mesa_ClearColor(tvb, offsetp, tt, byte_order, len);
4176  break;
4177  case 131:
4178  mesa_ClearStencil(tvb, offsetp, tt, byte_order, len);
4179  break;
4180  case 132:
4181  mesa_ClearDepth(tvb, offsetp, tt, byte_order, len);
4182  break;
4183  case 133:
4184  mesa_StencilMask(tvb, offsetp, tt, byte_order, len);
4185  break;
4186  case 134:
4187  mesa_ColorMask(tvb, offsetp, tt, byte_order, len);
4188  break;
4189  case 135:
4190  mesa_DepthMask(tvb, offsetp, tt, byte_order, len);
4191  break;
4192  case 136:
4193  mesa_IndexMask(tvb, offsetp, tt, byte_order, len);
4194  break;
4195  case 137:
4196  mesa_Accum(tvb, offsetp, tt, byte_order, len);
4197  break;
4198  case 138:
4199  mesa_Disable(tvb, offsetp, tt, byte_order, len);
4200  break;
4201  case 139:
4202  mesa_Enable(tvb, offsetp, tt, byte_order, len);
4203  break;
4204  case 141:
4205  mesa_PopAttrib(tvb, offsetp, tt, byte_order, len);
4206  break;
4207  case 142:
4208  mesa_PushAttrib(tvb, offsetp, tt, byte_order, len);
4209  break;
4210  case 143:
4211  mesa_Map1d(tvb, offsetp, tt, byte_order, len);
4212  break;
4213  case 144:
4214  mesa_Map1f(tvb, offsetp, tt, byte_order, len);
4215  break;
4216  case 145:
4217  mesa_Map2d(tvb, offsetp, tt, byte_order, len);
4218  break;
4219  case 146:
4220  mesa_Map2f(tvb, offsetp, tt, byte_order, len);
4221  break;
4222  case 147:
4223  mesa_MapGrid1d(tvb, offsetp, tt, byte_order, len);
4224  break;
4225  case 148:
4226  mesa_MapGrid1f(tvb, offsetp, tt, byte_order, len);
4227  break;
4228  case 149:
4229  mesa_MapGrid2d(tvb, offsetp, tt, byte_order, len);
4230  break;
4231  case 150:
4232  mesa_MapGrid2f(tvb, offsetp, tt, byte_order, len);
4233  break;
4234  case 151:
4235  mesa_EvalCoord1dv(tvb, offsetp, tt, byte_order, len);
4236  break;
4237  case 152:
4238  mesa_EvalCoord1fv(tvb, offsetp, tt, byte_order, len);
4239  break;
4240  case 153:
4241  mesa_EvalCoord2dv(tvb, offsetp, tt, byte_order, len);
4242  break;
4243  case 154:
4244  mesa_EvalCoord2fv(tvb, offsetp, tt, byte_order, len);
4245  break;
4246  case 155:
4247  mesa_EvalMesh1(tvb, offsetp, tt, byte_order, len);
4248  break;
4249  case 156:
4250  mesa_EvalPoint1(tvb, offsetp, tt, byte_order, len);
4251  break;
4252  case 157:
4253  mesa_EvalMesh2(tvb, offsetp, tt, byte_order, len);
4254  break;
4255  case 158:
4256  mesa_EvalPoint2(tvb, offsetp, tt, byte_order, len);
4257  break;
4258  case 159:
4259  mesa_AlphaFunc(tvb, offsetp, tt, byte_order, len);
4260  break;
4261  case 160:
4262  mesa_BlendFunc(tvb, offsetp, tt, byte_order, len);
4263  break;
4264  case 161:
4265  mesa_LogicOp(tvb, offsetp, tt, byte_order, len);
4266  break;
4267  case 162:
4268  mesa_StencilFunc(tvb, offsetp, tt, byte_order, len);
4269  break;
4270  case 163:
4271  mesa_StencilOp(tvb, offsetp, tt, byte_order, len);
4272  break;
4273  case 164:
4274  mesa_DepthFunc(tvb, offsetp, tt, byte_order, len);
4275  break;
4276  case 165:
4277  mesa_PixelZoom(tvb, offsetp, tt, byte_order, len);
4278  break;
4279  case 166:
4280  mesa_PixelTransferf(tvb, offsetp, tt, byte_order, len);
4281  break;
4282  case 167:
4283  mesa_PixelTransferi(tvb, offsetp, tt, byte_order, len);
4284  break;
4285  case 168:
4286  mesa_PixelMapfv(tvb, offsetp, tt, byte_order, len);
4287  break;
4288  case 169:
4289  mesa_PixelMapuiv(tvb, offsetp, tt, byte_order, len);
4290  break;
4291  case 170:
4292  mesa_PixelMapusv(tvb, offsetp, tt, byte_order, len);
4293  break;
4294  case 171:
4295  mesa_ReadBuffer(tvb, offsetp, tt, byte_order, len);
4296  break;
4297  case 172:
4298  mesa_CopyPixels(tvb, offsetp, tt, byte_order, len);
4299  break;
4300  case 173:
4301  mesa_DrawPixels(tvb, offsetp, tt, byte_order, len);
4302  break;
4303  case 174:
4304  mesa_DepthRange(tvb, offsetp, tt, byte_order, len);
4305  break;
4306  case 175:
4307  mesa_Frustum(tvb, offsetp, tt, byte_order, len);
4308  break;
4309  case 176:
4310  mesa_LoadIdentity(tvb, offsetp, tt, byte_order, len);
4311  break;
4312  case 177:
4313  mesa_LoadMatrixf(tvb, offsetp, tt, byte_order, len);
4314  break;
4315  case 178:
4316  mesa_LoadMatrixd(tvb, offsetp, tt, byte_order, len);
4317  break;
4318  case 179:
4319  mesa_MatrixMode(tvb, offsetp, tt, byte_order, len);
4320  break;
4321  case 180:
4322  mesa_MultMatrixf(tvb, offsetp, tt, byte_order, len);
4323  break;
4324  case 181:
4325  mesa_MultMatrixd(tvb, offsetp, tt, byte_order, len);
4326  break;
4327  case 182:
4328  mesa_Ortho(tvb, offsetp, tt, byte_order, len);
4329  break;
4330  case 183:
4331  mesa_PopMatrix(tvb, offsetp, tt, byte_order, len);
4332  break;
4333  case 184:
4334  mesa_PushMatrix(tvb, offsetp, tt, byte_order, len);
4335  break;
4336  case 185:
4337  mesa_Rotated(tvb, offsetp, tt, byte_order, len);
4338  break;
4339  case 186:
4340  mesa_Rotatef(tvb, offsetp, tt, byte_order, len);
4341  break;
4342  case 187:
4343  mesa_Scaled(tvb, offsetp, tt, byte_order, len);
4344  break;
4345  case 188:
4346  mesa_Scalef(tvb, offsetp, tt, byte_order, len);
4347  break;
4348  case 189:
4349  mesa_Translated(tvb, offsetp, tt, byte_order, len);
4350  break;
4351  case 190:
4352  mesa_Translatef(tvb, offsetp, tt, byte_order, len);
4353  break;
4354  case 191:
4355  mesa_Viewport(tvb, offsetp, tt, byte_order, len);
4356  break;
4357  case 192:
4358  mesa_PolygonOffset(tvb, offsetp, tt, byte_order, len);
4359  break;
4360  case 193:
4361  mesa_DrawArrays(tvb, offsetp, tt, byte_order, len);
4362  break;
4363  case 194:
4364  mesa_Indexubv(tvb, offsetp, tt, byte_order, len);
4365  break;
4366  case 195:
4367  mesa_ColorSubTable(tvb, offsetp, tt, byte_order, len);
4368  break;
4369  case 196:
4370  mesa_CopyColorSubTable(tvb, offsetp, tt, byte_order, len);
4371  break;
4372  case 197:
4373  mesa_ActiveTexture(tvb, offsetp, tt, byte_order, len);
4374  break;
4375  case 198:
4376  mesa_MultiTexCoord1dv(tvb, offsetp, tt, byte_order, len);
4377  break;
4378  case 199:
4379  mesa_MultiTexCoord1fvARB(tvb, offsetp, tt, byte_order, len);
4380  break;
4381  case 200:
4382  mesa_MultiTexCoord1iv(tvb, offsetp, tt, byte_order, len);
4383  break;
4384  case 201:
4385  mesa_MultiTexCoord1sv(tvb, offsetp, tt, byte_order, len);
4386  break;
4387  case 202:
4388  mesa_MultiTexCoord2dv(tvb, offsetp, tt, byte_order, len);
4389  break;
4390  case 203:
4391  mesa_MultiTexCoord2fvARB(tvb, offsetp, tt, byte_order, len);
4392  break;
4393  case 204:
4394  mesa_MultiTexCoord2iv(tvb, offsetp, tt, byte_order, len);
4395  break;
4396  case 205:
4397  mesa_MultiTexCoord2sv(tvb, offsetp, tt, byte_order, len);
4398  break;
4399  case 206:
4400  mesa_MultiTexCoord3dv(tvb, offsetp, tt, byte_order, len);
4401  break;
4402  case 207:
4403  mesa_MultiTexCoord3fvARB(tvb, offsetp, tt, byte_order, len);
4404  break;
4405  case 208:
4406  mesa_MultiTexCoord3iv(tvb, offsetp, tt, byte_order, len);
4407  break;
4408  case 209:
4409  mesa_MultiTexCoord3sv(tvb, offsetp, tt, byte_order, len);
4410  break;
4411  case 210:
4412  mesa_MultiTexCoord4dv(tvb, offsetp, tt, byte_order, len);
4413  break;
4414  case 211:
4415  mesa_MultiTexCoord4fvARB(tvb, offsetp, tt, byte_order, len);
4416  break;
4417  case 212:
4418  mesa_MultiTexCoord4iv(tvb, offsetp, tt, byte_order, len);
4419  break;
4420  case 213:
4421  mesa_MultiTexCoord4sv(tvb, offsetp, tt, byte_order, len);
4422  break;
4423  case 214:
4424  mesa_CompressedTexImage1D(tvb, offsetp, tt, byte_order, len);
4425  break;
4426  case 215:
4427  mesa_CompressedTexImage2D(tvb, offsetp, tt, byte_order, len);
4428  break;
4429  case 216:
4430  mesa_CompressedTexImage3D(tvb, offsetp, tt, byte_order, len);
4431  break;
4432  case 217:
4433  mesa_CompressedTexSubImage1D(tvb, offsetp, tt, byte_order, len);
4434  break;
4435  case 218:
4436  mesa_CompressedTexSubImage2D(tvb, offsetp, tt, byte_order, len);
4437  break;
4438  case 219:
4439  mesa_CompressedTexSubImage3D(tvb, offsetp, tt, byte_order, len);
4440  break;
4441  case 229:
4442  mesa_SampleCoverage(tvb, offsetp, tt, byte_order, len);
4443  break;
4444  case 230:
4445  mesa_WindowPos3fv(tvb, offsetp, tt, byte_order, len);
4446  break;
4447  case 231:
4448  mesa_BeginQuery(tvb, offsetp, tt, byte_order, len);
4449  break;
4450  case 232:
4451  mesa_EndQuery(tvb, offsetp, tt, byte_order, len);
4452  break;
4453  case 233:
4454  mesa_DrawBuffers(tvb, offsetp, tt, byte_order, len);
4455  break;
4456  case 2048:
4457  mesa_SampleMaskSGIS(tvb, offsetp, tt, byte_order, len);
4458  break;
4459  case 2049:
4460  mesa_SamplePatternSGIS(tvb, offsetp, tt, byte_order, len);
4461  break;
4462  case 2050:
4463  mesa_TagSampleBufferSGIX(tvb, offsetp, tt, byte_order, len);
4464  break;
4465  case 2051:
4466  mesa_DetailTexFuncSGIS(tvb, offsetp, tt, byte_order, len);
4467  break;
4468  case 2052:
4469  mesa_SharpenTexFuncSGIS(tvb, offsetp, tt, byte_order, len);
4470  break;
4471  case 2053:
4472  mesa_ColorTable(tvb, offsetp, tt, byte_order, len);
4473  break;
4474  case 2054:
4475  mesa_ColorTableParameterfv(tvb, offsetp, tt, byte_order, len);
4476  break;
4477  case 2055:
4478  mesa_ColorTableParameteriv(tvb, offsetp, tt, byte_order, len);
4479  break;
4480  case 2056:
4481  mesa_CopyColorTable(tvb, offsetp, tt, byte_order, len);
4482  break;
4483  case 2057:
4484  mesa_TexImage4DSGIS(tvb, offsetp, tt, byte_order, len);
4485  break;
4486  case 2058:
4487  mesa_TexSubImage4DSGIS(tvb, offsetp, tt, byte_order, len);
4488  break;
4489  case 2059:
4490  mesa_PixelTexGenSGIX(tvb, offsetp, tt, byte_order, len);
4491  break;
4492  case 2064:
4493  mesa_TexFilterFuncSGIS(tvb, offsetp, tt, byte_order, len);
4494  break;
4495  case 2065:
4496  mesa_PointParameterf(tvb, offsetp, tt, byte_order, len);
4497  break;
4498  case 2066:
4499  mesa_PointParameterfv(tvb, offsetp, tt, byte_order, len);
4500  break;
4501  case 2067:
4502  mesa_FogFuncSGIS(tvb, offsetp, tt, byte_order, len);
4503  break;
4504  case 2071:
4505  mesa_ReferencePlaneSGIX(tvb, offsetp, tt, byte_order, len);
4506  break;
4507  case 2072:
4508  mesa_FrameZoomSGIX(tvb, offsetp, tt, byte_order, len);
4509  break;
4510  case 2082:
4511  mesa_TextureColorMaskSGIS(tvb, offsetp, tt, byte_order, len);
4512  break;
4513  case 4096:
4514  mesa_BlendColor(tvb, offsetp, tt, byte_order, len);
4515  break;
4516  case 4097:
4517  mesa_BlendEquation(tvb, offsetp, tt, byte_order, len);
4518  break;
4519  case 4098:
4520  mesa_PolygonOffsetEXT(tvb, offsetp, tt, byte_order, len);
4521  break;
4522  case 4099:
4523  mesa_TexSubImage1D(tvb, offsetp, tt, byte_order, len);
4524  break;
4525  case 4100:
4526  mesa_TexSubImage2D(tvb, offsetp, tt, byte_order, len);
4527  break;
4528  case 4101:
4529  mesa_ConvolutionFilter1D(tvb, offsetp, tt, byte_order, len);
4530  break;
4531  case 4102:
4532  mesa_ConvolutionFilter2D(tvb, offsetp, tt, byte_order, len);
4533  break;
4534  case 4103:
4535  mesa_ConvolutionParameterf(tvb, offsetp, tt, byte_order, len);
4536  break;
4537  case 4104:
4538  mesa_ConvolutionParameterfv(tvb, offsetp, tt, byte_order, len);
4539  break;
4540  case 4105:
4541  mesa_ConvolutionParameteri(tvb, offsetp, tt, byte_order, len);
4542  break;
4543  case 4106:
4544  mesa_ConvolutionParameteriv(tvb, offsetp, tt, byte_order, len);
4545  break;
4546  case 4107:
4547  mesa_CopyConvolutionFilter1D(tvb, offsetp, tt, byte_order, len);
4548  break;
4549  case 4108:
4550  mesa_CopyConvolutionFilter2D(tvb, offsetp, tt, byte_order, len);
4551  break;
4552  case 4109:
4553  mesa_SeparableFilter2D(tvb, offsetp, tt, byte_order, len);
4554  break;
4555  case 4110:
4556  mesa_Histogram(tvb, offsetp, tt, byte_order, len);
4557  break;
4558  case 4111:
4559  mesa_Minmax(tvb, offsetp, tt, byte_order, len);
4560  break;
4561  case 4112:
4562  mesa_ResetHistogram(tvb, offsetp, tt, byte_order, len);
4563  break;
4564  case 4113:
4565  mesa_ResetMinmax(tvb, offsetp, tt, byte_order, len);
4566  break;
4567  case 4114:
4568  mesa_TexImage3D(tvb, offsetp, tt, byte_order, len);
4569  break;
4570  case 4115:
4571  mesa_TexSubImage3D(tvb, offsetp, tt, byte_order, len);
4572  break;
4573  case 4117:
4574  mesa_BindTexture(tvb, offsetp, tt, byte_order, len);
4575  break;
4576  case 4118:
4577  mesa_PrioritizeTextures(tvb, offsetp, tt, byte_order, len);
4578  break;
4579  case 4119:
4580  mesa_CopyTexImage1D(tvb, offsetp, tt, byte_order, len);
4581  break;
4582  case 4120:
4583  mesa_CopyTexImage2D(tvb, offsetp, tt, byte_order, len);
4584  break;
4585  case 4121:
4586  mesa_CopyTexSubImage1D(tvb, offsetp, tt, byte_order, len);
4587  break;
4588  case 4122:
4589  mesa_CopyTexSubImage2D(tvb, offsetp, tt, byte_order, len);
4590  break;
4591  case 4123:
4592  mesa_CopyTexSubImage3D(tvb, offsetp, tt, byte_order, len);
4593  break;
4594  case 4124:
4595  mesa_FogCoordfvEXT(tvb, offsetp, tt, byte_order, len);
4596  break;
4597  case 4125:
4598  mesa_FogCoorddv(tvb, offsetp, tt, byte_order, len);
4599  break;
4600  case 4126:
4601  mesa_SecondaryColor3bv(tvb, offsetp, tt, byte_order, len);
4602  break;
4603  case 4127:
4604  mesa_SecondaryColor3sv(tvb, offsetp, tt, byte_order, len);
4605  break;
4606  case 4128:
4607  mesa_SecondaryColor3iv(tvb, offsetp, tt, byte_order, len);
4608  break;
4609  case 4129:
4610  mesa_SecondaryColor3fvEXT(tvb, offsetp, tt, byte_order, len);
4611  break;
4612  case 4130:
4613  mesa_SecondaryColor3dv(tvb, offsetp, tt, byte_order, len);
4614  break;
4615  case 4131:
4616  mesa_SecondaryColor3ubv(tvb, offsetp, tt, byte_order, len);
4617  break;
4618  case 4132:
4619  mesa_SecondaryColor3usv(tvb, offsetp, tt, byte_order, len);
4620  break;
4621  case 4133:
4622  mesa_SecondaryColor3uiv(tvb, offsetp, tt, byte_order, len);
4623  break;
4624  case 4134:
4625  mesa_BlendFuncSeparate(tvb, offsetp, tt, byte_order, len);
4626  break;
4627  case 4135:
4628  mesa_VertexWeightfvEXT(tvb, offsetp, tt, byte_order, len);
4629  break;
4630  case 4136:
4631  mesa_CombinerParameterfNV(tvb, offsetp, tt, byte_order, len);
4632  break;
4633  case 4137:
4634  mesa_CombinerParameterfvNV(tvb, offsetp, tt, byte_order, len);
4635  break;
4636  case 4138:
4637  mesa_CombinerParameteriNV(tvb, offsetp, tt, byte_order, len);
4638  break;
4639  case 4139:
4640  mesa_CombinerParameterivNV(tvb, offsetp, tt, byte_order, len);
4641  break;
4642  case 4140:
4643  mesa_CombinerInputNV(tvb, offsetp, tt, byte_order, len);
4644  break;
4645  case 4141:
4646  mesa_CombinerOutputNV(tvb, offsetp, tt, byte_order, len);
4647  break;
4648  case 4142:
4649  mesa_FinalCombinerInputNV(tvb, offsetp, tt, byte_order, len);
4650  break;
4651  case 4180:
4652  mesa_BindProgramARB(tvb, offsetp, tt, byte_order, len);
4653  break;
4654  case 4181:
4655  mesa_ExecuteProgramNV(tvb, offsetp, tt, byte_order, len);
4656  break;
4657  case 4182:
4658  mesa_RequestResidentProgramsNV(tvb, offsetp, tt, byte_order, len);
4659  break;
4660  case 4183:
4661  mesa_LoadProgramNV(tvb, offsetp, tt, byte_order, len);
4662  break;
4663  case 4184:
4664  mesa_ProgramEnvParameter4fvARB(tvb, offsetp, tt, byte_order, len);
4665  break;
4666  case 4185:
4667  mesa_ProgramEnvParameter4dvARB(tvb, offsetp, tt, byte_order, len);
4668  break;
4669  case 4186:
4670  mesa_ProgramParameters4fvNV(tvb, offsetp, tt, byte_order, len);
4671  break;
4672  case 4187:
4673  mesa_ProgramParameters4dvNV(tvb, offsetp, tt, byte_order, len);
4674  break;
4675  case 4188:
4676  mesa_TrackMatrixNV(tvb, offsetp, tt, byte_order, len);
4677  break;
4678  case 4189:
4679  mesa_VertexAttrib1sv(tvb, offsetp, tt, byte_order, len);
4680  break;
4681  case 4190:
4682  mesa_VertexAttrib2sv(tvb, offsetp, tt, byte_order, len);
4683  break;
4684  case 4191:
4685  mesa_VertexAttrib3sv(tvb, offsetp, tt, byte_order, len);
4686  break;
4687  case 4192:
4688  mesa_VertexAttrib4sv(tvb, offsetp, tt, byte_order, len);
4689  break;
4690  case 4193:
4691  mesa_VertexAttrib1fvARB(tvb, offsetp, tt, byte_order, len);
4692  break;
4693  case 4194:
4694  mesa_VertexAttrib2fvARB(tvb, offsetp, tt, byte_order, len);
4695  break;
4696  case 4195:
4697  mesa_VertexAttrib3fvARB(tvb, offsetp, tt, byte_order, len);
4698  break;
4699  case 4196:
4700  mesa_VertexAttrib4fvARB(tvb, offsetp, tt, byte_order, len);
4701  break;
4702  case 4197:
4703  mesa_VertexAttrib1dv(tvb, offsetp, tt, byte_order, len);
4704  break;
4705  case 4198:
4706  mesa_VertexAttrib2dv(tvb, offsetp, tt, byte_order, len);
4707  break;
4708  case 4199:
4709  mesa_VertexAttrib3dv(tvb, offsetp, tt, byte_order, len);
4710  break;
4711  case 4200:
4712  mesa_VertexAttrib4dv(tvb, offsetp, tt, byte_order, len);
4713  break;
4714  case 4201:
4715  mesa_VertexAttrib4Nubv(tvb, offsetp, tt, byte_order, len);
4716  break;
4717  case 4202:
4718  mesa_VertexAttribs1svNV(tvb, offsetp, tt, byte_order, len);
4719  break;
4720  case 4203:
4721  mesa_VertexAttribs2svNV(tvb, offsetp, tt, byte_order, len);
4722  break;
4723  case 4204:
4724  mesa_VertexAttribs3svNV(tvb, offsetp, tt, byte_order, len);
4725  break;
4726  case 4205:
4727  mesa_VertexAttribs4svNV(tvb, offsetp, tt, byte_order, len);
4728  break;
4729  case 4206:
4730  mesa_VertexAttribs1fvNV(tvb, offsetp, tt, byte_order, len);
4731  break;
4732  case 4207:
4733  mesa_VertexAttribs2fvNV(tvb, offsetp, tt, byte_order, len);
4734  break;
4735  case 4208:
4736  mesa_VertexAttribs3fvNV(tvb, offsetp, tt, byte_order, len);
4737  break;
4738  case 4209:
4739  mesa_VertexAttribs4fvNV(tvb, offsetp, tt, byte_order, len);
4740  break;
4741  case 4210:
4742  mesa_VertexAttribs1dvNV(tvb, offsetp, tt, byte_order, len);
4743  break;
4744  case 4211:
4745  mesa_VertexAttribs2dvNV(tvb, offsetp, tt, byte_order, len);
4746  break;
4747  case 4212:
4748  mesa_VertexAttribs3dvNV(tvb, offsetp, tt, byte_order, len);
4749  break;
4750  case 4213:
4751  mesa_VertexAttribs4dvNV(tvb, offsetp, tt, byte_order, len);
4752  break;
4753  case 4214:
4754  mesa_VertexAttribs4ubvNV(tvb, offsetp, tt, byte_order, len);
4755  break;
4756  case 4215:
4757  mesa_ProgramLocalParameter4fvARB(tvb, offsetp, tt, byte_order, len);
4758  break;
4759  case 4216:
4760  mesa_ProgramLocalParameter4dvARB(tvb, offsetp, tt, byte_order, len);
4761  break;
4762  case 4217:
4763  mesa_ProgramStringARB(tvb, offsetp, tt, byte_order, len);
4764  break;
4765  case 4218:
4766  mesa_ProgramNamedParameter4fvNV(tvb, offsetp, tt, byte_order, len);
4767  break;
4768  case 4219:
4769  mesa_ProgramNamedParameter4dvNV(tvb, offsetp, tt, byte_order, len);
4770  break;
4771  case 4220:
4772  mesa_ActiveStencilFaceEXT(tvb, offsetp, tt, byte_order, len);
4773  break;
4774  case 4221:
4775  mesa_PointParameteri(tvb, offsetp, tt, byte_order, len);
4776  break;
4777  case 4222:
4778  mesa_PointParameteriv(tvb, offsetp, tt, byte_order, len);
4779  break;
4780  case 4228:
4781  mesa_BlendEquationSeparate(tvb, offsetp, tt, byte_order, len);
4782  break;
4783  case 4229:
4784  mesa_DepthBoundsEXT(tvb, offsetp, tt, byte_order, len);
4785  break;
4786  case 4230:
4787  mesa_VertexAttrib4bv(tvb, offsetp, tt, byte_order, len);
4788  break;
4789  case 4231:
4790  mesa_VertexAttrib4iv(tvb, offsetp, tt, byte_order, len);
4791  break;
4792  case 4232:
4793  mesa_VertexAttrib4ubv(tvb, offsetp, tt, byte_order, len);
4794  break;
4795  case 4233:
4796  mesa_VertexAttrib4usv(tvb, offsetp, tt, byte_order, len);
4797  break;
4798  case 4234:
4799  mesa_VertexAttrib4uiv(tvb, offsetp, tt, byte_order, len);
4800  break;
4801  case 4235:
4802  mesa_VertexAttrib4Nbv(tvb, offsetp, tt, byte_order, len);
4803  break;
4804  case 4236:
4805  mesa_VertexAttrib4Nsv(tvb, offsetp, tt, byte_order, len);
4806  break;
4807  case 4237:
4808  mesa_VertexAttrib4Niv(tvb, offsetp, tt, byte_order, len);
4809  break;
4810  case 4238:
4811  mesa_VertexAttrib4Nusv(tvb, offsetp, tt, byte_order, len);
4812  break;
4813  case 4239:
4814  mesa_VertexAttrib4Nuiv(tvb, offsetp, tt, byte_order, len);
4815  break;
4816  case 4265:
4817  mesa_VertexAttrib1svNV(tvb, offsetp, tt, byte_order, len);
4818  break;
4819  case 4266:
4820  mesa_VertexAttrib2svNV(tvb, offsetp, tt, byte_order, len);
4821  break;
4822  case 4267:
4823  mesa_VertexAttrib3svNV(tvb, offsetp, tt, byte_order, len);
4824  break;
4825  case 4268:
4826  mesa_VertexAttrib4svNV(tvb, offsetp, tt, byte_order, len);
4827  break;
4828  case 4269:
4829  mesa_VertexAttrib1fvNV(tvb, offsetp, tt, byte_order, len);
4830  break;
4831  case 4270:
4832  mesa_VertexAttrib2fvNV(tvb, offsetp, tt, byte_order, len);
4833  break;
4834  case 4271:
4835  mesa_VertexAttrib3fvNV(tvb, offsetp, tt, byte_order, len);
4836  break;
4837  case 4272:
4838  mesa_VertexAttrib4fvNV(tvb, offsetp, tt, byte_order, len);
4839  break;
4840  case 4273:
4841  mesa_VertexAttrib1dvNV(tvb, offsetp, tt, byte_order, len);
4842  break;
4843  case 4274:
4844  mesa_VertexAttrib2dvNV(tvb, offsetp, tt, byte_order, len);
4845  break;
4846  case 4275:
4847  mesa_VertexAttrib3dvNV(tvb, offsetp, tt, byte_order, len);
4848  break;
4849  case 4276:
4850  mesa_VertexAttrib4dvNV(tvb, offsetp, tt, byte_order, len);
4851  break;
4852  case 4277:
4853  mesa_VertexAttrib4ubvNV(tvb, offsetp, tt, byte_order, len);
4854  break;
4855  case 4326:
4856  mesa_MatrixIndexubvARB(tvb, offsetp, tt, byte_order, len);
4857  break;
4858  case 4327:
4859  mesa_MatrixIndexusvARB(tvb, offsetp, tt, byte_order, len);
4860  break;
4861  case 4328:
4862  mesa_MatrixIndexuivARB(tvb, offsetp, tt, byte_order, len);
4863  break;
4864  case 4329:
4865  mesa_CurrentPaletteMatrixARB(tvb, offsetp, tt, byte_order, len);
4866  break;
4867  default:
4868  proto_tree_add_item(tt, hf_x11_undecoded, tvb, *offsetp, len, ENC_NA);
4869  *offsetp += len;
4870  }
4871  if (*offsetp < next) {
4872  proto_tree_add_item(tt, hf_x11_unused, tvb, *offsetp, next - *offsetp, ENC_NA);
4873  *offsetp = next;
4874  }
4875  length -= (len + 4);
4876  }
4877 }
4878 #include "x11-enum.h"
4879 
4880 
4881 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_)
4882 {
4883 }
4884 static void bigreqEnable_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
4885 {
4886  int sequence_number;
4887 
4888  col_append_fstr(pinfo->cinfo, COL_INFO, "-Enable");
4889 
4890  REPLY(reply);
4891  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
4892  *offsetp += 1;
4893  sequence_number = tvb_get_guint16(tvb, *offsetp, byte_order);
4894  proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
4895  "%d (bigreq-Enable)", sequence_number);
4896  *offsetp += 2;
4897  proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
4898  *offsetp += 4;
4899  proto_tree_add_item(t, hf_x11_bigreq_Enable_reply_maximum_request_length, tvb, *offsetp, 4, byte_order);
4900  *offsetp += 4;
4901 }
4902 static const value_string bigreq_extension_minor[] = {
4903  { 0, "Enable" },
4904  { 0, NULL }
4905 };
4906 const x11_event_info bigreq_events[] = {
4907  { NULL, NULL }
4908 };
4909 static x11_reply_info bigreq_replies[] = {
4910  { 0, bigreqEnable_Reply },
4911  { 0, NULL }
4912 };
4913 
4914 static void dispatch_bigreq(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
4915 {
4916  int minor, length;
4917  minor = CARD8(bigreq_extension_minor);
4918  length = REQUEST_LENGTH();
4919 
4920  col_append_fstr(pinfo->cinfo, COL_INFO, "-%s",
4921  val_to_str(minor, bigreq_extension_minor,
4922  "<Unknown opcode %d>"));
4923  switch (minor) {
4924  case 0:
4925  bigreqEnable(tvb, pinfo, offsetp, t, byte_order, length);
4926  break;
4927  /* No need for a default case here, since Unknown is printed above,
4928  and UNDECODED() is taken care of by dissect_x11_request */
4929  }
4930 }
4931 
4932 static void register_bigreq(void)
4933 {
4934  set_handler("BIG-REQUESTS", dispatch_bigreq, bigreq_errors, bigreq_events, NULL, bigreq_replies);
4935 }
4936 
4937 static void struct_xproto_RECTANGLE(tvbuff_t *tvb, int *offsetp, proto_tree *root, guint byte_order _U_, int count)
4938 {
4939  int i;
4940  for (i = 0; i < count; i++) {
4941  proto_item *item;
4942  proto_tree *t;
4943 
4944  item = proto_tree_add_item(root, hf_x11_struct_xproto_RECTANGLE, tvb, *offsetp, 8, ENC_NA);
4945  t = proto_item_add_subtree(item, ett_x11_rectangle);
4946  proto_tree_add_item(t, hf_x11_struct_xproto_RECTANGLE_x, tvb, *offsetp, 2, byte_order);
4947  *offsetp += 2;
4948  proto_tree_add_item(t, hf_x11_struct_xproto_RECTANGLE_y, tvb, *offsetp, 2, byte_order);
4949  *offsetp += 2;
4950  proto_tree_add_item(t, hf_x11_struct_xproto_RECTANGLE_width, tvb, *offsetp, 2, byte_order);
4951  *offsetp += 2;
4952  proto_tree_add_item(t, hf_x11_struct_xproto_RECTANGLE_height, tvb, *offsetp, 2, byte_order);
4953  *offsetp += 2;
4954  }
4955 }
4956 
4957 static int struct_size_xproto_STR(tvbuff_t *tvb _U_, int *offsetp _U_, guint byte_order _U_)
4958 {
4959  int size = 0;
4960  int f_name_len;
4961  f_name_len = tvb_get_guint8(tvb, *offsetp + size + 0);
4962  size += f_name_len * 1;
4963  return size + 1;
4964 }
4965 
4966 static void struct_xproto_STR(tvbuff_t *tvb, int *offsetp, proto_tree *root, guint byte_order _U_, int count)
4967 {
4968  int i;
4969  for (i = 0; i < count; i++) {
4970  proto_item *item;
4971  proto_tree *t;
4972  int f_name_len;
4973 
4974  item = proto_tree_add_item(root, hf_x11_struct_xproto_STR, tvb, *offsetp, struct_size_xproto_STR(tvb, offsetp, byte_order), ENC_NA);
4975  t = proto_item_add_subtree(item, ett_x11_rectangle);
4976  f_name_len = tvb_get_guint8(tvb, *offsetp);
4977  proto_tree_add_item(t, hf_x11_struct_xproto_STR_name_len, tvb, *offsetp, 1, byte_order);
4978  *offsetp += 1;
4979  listOfByte(tvb, offsetp, t, hf_x11_struct_xproto_STR_name, f_name_len, byte_order);
4980  }
4981 }
4982 
4983 static void struct_render_DIRECTFORMAT(tvbuff_t *tvb, int *offsetp, proto_tree *root, guint byte_order _U_, int count)
4984 {
4985  int i;
4986  for (i = 0; i < count; i++) {
4987  proto_item *item;
4988  proto_tree *t;
4989 
4990  item = proto_tree_add_item(root, hf_x11_struct_render_DIRECTFORMAT, tvb, *offsetp, 16, ENC_NA);
4991  t = proto_item_add_subtree(item, ett_x11_rectangle);
4992  proto_tree_add_item(t, hf_x11_struct_render_DIRECTFORMAT_red_shift, tvb, *offsetp, 2, byte_order);
4993  *offsetp += 2;
4994  proto_tree_add_item(t, hf_x11_struct_render_DIRECTFORMAT_red_mask, tvb, *offsetp, 2, byte_order);
4995  *offsetp += 2;
4996  proto_tree_add_item(t, hf_x11_struct_render_DIRECTFORMAT_green_shift, tvb, *offsetp, 2, byte_order);
4997  *offsetp += 2;
4998  proto_tree_add_item(t, hf_x11_struct_render_DIRECTFORMAT_green_mask, tvb, *offsetp, 2, byte_order);
4999  *offsetp += 2;
5000  proto_tree_add_item(t, hf_x11_struct_render_DIRECTFORMAT_blue_shift, tvb, *offsetp, 2, byte_order);
5001  *offsetp += 2;
5002  proto_tree_add_item(t, hf_x11_struct_render_DIRECTFORMAT_blue_mask, tvb, *offsetp, 2, byte_order);
5003  *offsetp += 2;
5004  proto_tree_add_item(t, hf_x11_struct_render_DIRECTFORMAT_alpha_shift, tvb, *offsetp, 2, byte_order);
5005  *offsetp += 2;
5006  proto_tree_add_item(t, hf_x11_struct_render_DIRECTFORMAT_alpha_mask, tvb, *offsetp, 2, byte_order);
5007  *offsetp += 2;
5008  }
5009 }
5010 
5011 static void struct_render_PICTFORMINFO(tvbuff_t *tvb, int *offsetp, proto_tree *root, guint byte_order _U_, int count)
5012 {
5013  int i;
5014  for (i = 0; i < count; i++) {
5015  proto_item *item;
5016  proto_tree *t;
5017 
5018  item = proto_tree_add_item(root, hf_x11_struct_render_PICTFORMINFO, tvb, *offsetp, 28, ENC_NA);
5019  t = proto_item_add_subtree(item, ett_x11_rectangle);
5020  proto_tree_add_item(t, hf_x11_struct_render_PICTFORMINFO_id, tvb, *offsetp, 4, byte_order);
5021  *offsetp += 4;
5022  field8(tvb, offsetp, t, hf_x11_struct_render_PICTFORMINFO_type, byte_order);
5023  proto_tree_add_item(t, hf_x11_struct_render_PICTFORMINFO_depth, tvb, *offsetp, 1, byte_order);
5024  *offsetp += 1;
5025  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 2, ENC_NA);
5026  *offsetp += 2;
5027  struct_render_DIRECTFORMAT(tvb, offsetp, t, byte_order, 1);
5028  proto_tree_add_item(t, hf_x11_struct_render_PICTFORMINFO_colormap, tvb, *offsetp, 4, byte_order);
5029  *offsetp += 4;
5030  }
5031 }
5032 
5033 static void struct_render_PICTVISUAL(tvbuff_t *tvb, int *offsetp, proto_tree *root, guint byte_order _U_, int count)
5034 {
5035  int i;
5036  for (i = 0; i < count; i++) {
5037  proto_item *item;
5038  proto_tree *t;
5039 
5040  item = proto_tree_add_item(root, hf_x11_struct_render_PICTVISUAL, tvb, *offsetp, 8, ENC_NA);
5041  t = proto_item_add_subtree(item, ett_x11_rectangle);
5042  proto_tree_add_item(t, hf_x11_struct_render_PICTVISUAL_visual, tvb, *offsetp, 4, byte_order);
5043  *offsetp += 4;
5044  proto_tree_add_item(t, hf_x11_struct_render_PICTVISUAL_format, tvb, *offsetp, 4, byte_order);
5045  *offsetp += 4;
5046  }
5047 }
5048 
5049 static int struct_size_render_PICTDEPTH(tvbuff_t *tvb _U_, int *offsetp _U_, guint byte_order _U_)
5050 {
5051  int size = 0;
5052  int f_num_visuals;
5053  f_num_visuals = tvb_get_guint16(tvb, *offsetp + size + 2, byte_order);
5054  size += f_num_visuals * 8;
5055  return size + 8;
5056 }
5057 
5058 static void struct_render_PICTDEPTH(tvbuff_t *tvb, int *offsetp, proto_tree *root, guint byte_order _U_, int count)
5059 {
5060  int i;
5061  for (i = 0; i < count; i++) {
5062  proto_item *item;
5063  proto_tree *t;
5064  int f_num_visuals;
5065 
5066  item = proto_tree_add_item(root, hf_x11_struct_render_PICTDEPTH, tvb, *offsetp, struct_size_render_PICTDEPTH(tvb, offsetp, byte_order), ENC_NA);
5067  t = proto_item_add_subtree(item, ett_x11_rectangle);
5068  proto_tree_add_item(t, hf_x11_struct_render_PICTDEPTH_depth, tvb, *offsetp, 1, byte_order);
5069  *offsetp += 1;
5070  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
5071  *offsetp += 1;
5072  f_num_visuals = tvb_get_guint16(tvb, *offsetp, byte_order);
5073  proto_tree_add_item(t, hf_x11_struct_render_PICTDEPTH_num_visuals, tvb, *offsetp, 2, byte_order);
5074  *offsetp += 2;
5075  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 4, ENC_NA);
5076  *offsetp += 4;
5077  struct_render_PICTVISUAL(tvb, offsetp, t, byte_order, f_num_visuals);
5078  }
5079 }
5080 
5081 static int struct_size_render_PICTSCREEN(tvbuff_t *tvb _U_, int *offsetp _U_, guint byte_order _U_)
5082 {
5083  int size = 0;
5084  int i, off;
5085  int f_num_depths;
5086  f_num_depths = tvb_get_guint32(tvb, *offsetp + size + 0, byte_order);
5087  for (i = 0; i < f_num_depths; i++) {
5088  off = (*offsetp) + size + 8;
5089  size += struct_size_render_PICTDEPTH(tvb, &off, byte_order);
5090  }
5091  return size + 8;
5092 }
5093 
5094 static void struct_render_PICTSCREEN(tvbuff_t *tvb, int *offsetp, proto_tree *root, guint byte_order _U_, int count)
5095 {
5096  int i;
5097  for (i = 0; i < count; i++) {
5098  proto_item *item;
5099  proto_tree *t;
5100  int f_num_depths;
5101 
5102  item = proto_tree_add_item(root, hf_x11_struct_render_PICTSCREEN, tvb, *offsetp, struct_size_render_PICTSCREEN(tvb, offsetp, byte_order), ENC_NA);
5103  t = proto_item_add_subtree(item, ett_x11_rectangle);
5104  f_num_depths = tvb_get_guint32(tvb, *offsetp, byte_order);
5105  proto_tree_add_item(t, hf_x11_struct_render_PICTSCREEN_num_depths, tvb, *offsetp, 4, byte_order);
5106  *offsetp += 4;
5107  proto_tree_add_item(t, hf_x11_struct_render_PICTSCREEN_fallback, tvb, *offsetp, 4, byte_order);
5108  *offsetp += 4;
5109  struct_render_PICTDEPTH(tvb, offsetp, t, byte_order, f_num_depths);
5110  }
5111 }
5112 
5113 static void struct_render_INDEXVALUE(tvbuff_t *tvb, int *offsetp, proto_tree *root, guint byte_order _U_, int count)
5114 {
5115  int i;
5116  for (i = 0; i < count; i++) {
5117  proto_item *item;
5118  proto_tree *t;
5119 
5120  item = proto_tree_add_item(root, hf_x11_struct_render_INDEXVALUE, tvb, *offsetp, 12, ENC_NA);
5121  t = proto_item_add_subtree(item, ett_x11_rectangle);
5122  proto_tree_add_item(t, hf_x11_struct_render_INDEXVALUE_pixel, tvb, *offsetp, 4, byte_order);
5123  *offsetp += 4;
5124  proto_tree_add_item(t, hf_x11_struct_render_INDEXVALUE_red, tvb, *offsetp, 2, byte_order);
5125  *offsetp += 2;
5126  proto_tree_add_item(t, hf_x11_struct_render_INDEXVALUE_green, tvb, *offsetp, 2, byte_order);
5127  *offsetp += 2;
5128  proto_tree_add_item(t, hf_x11_struct_render_INDEXVALUE_blue, tvb, *offsetp, 2, byte_order);
5129  *offsetp += 2;
5130  proto_tree_add_item(t, hf_x11_struct_render_INDEXVALUE_alpha, tvb, *offsetp, 2, byte_order);
5131  *offsetp += 2;
5132  }
5133 }
5134 
5135 static void struct_render_COLOR(tvbuff_t *tvb, int *offsetp, proto_tree *root, guint byte_order _U_, int count)
5136 {
5137  int i;
5138  for (i = 0; i < count; i++) {
5139  proto_item *item;
5140  proto_tree *t;
5141 
5142  item = proto_tree_add_item(root, hf_x11_struct_render_COLOR, tvb, *offsetp, 8, ENC_NA);
5143  t = proto_item_add_subtree(item, ett_x11_rectangle);
5144  proto_tree_add_item(t, hf_x11_struct_render_COLOR_red, tvb, *offsetp, 2, byte_order);
5145  *offsetp += 2;
5146  proto_tree_add_item(t, hf_x11_struct_render_COLOR_green, tvb, *offsetp, 2, byte_order);
5147  *offsetp += 2;
5148  proto_tree_add_item(t, hf_x11_struct_render_COLOR_blue, tvb, *offsetp, 2, byte_order);
5149  *offsetp += 2;
5150  proto_tree_add_item(t, hf_x11_struct_render_COLOR_alpha, tvb, *offsetp, 2, byte_order);
5151  *offsetp += 2;
5152  }
5153 }
5154 
5155 static void struct_render_POINTFIX(tvbuff_t *tvb, int *offsetp, proto_tree *root, guint byte_order _U_, int count)
5156 {
5157  int i;
5158  for (i = 0; i < count; i++) {
5159  proto_item *item;
5160  proto_tree *t;
5161 
5162  item = proto_tree_add_item(root, hf_x11_struct_render_POINTFIX, tvb, *offsetp, 8, ENC_NA);
5163  t = proto_item_add_subtree(item, ett_x11_rectangle);
5164  proto_tree_add_item(t, hf_x11_struct_render_POINTFIX_x, tvb, *offsetp, 4, byte_order);
5165  *offsetp += 4;
5166  proto_tree_add_item(t, hf_x11_struct_render_POINTFIX_y, tvb, *offsetp, 4, byte_order);
5167  *offsetp += 4;
5168  }
5169 }
5170 
5171 static void struct_render_LINEFIX(tvbuff_t *tvb, int *offsetp, proto_tree *root, guint byte_order _U_, int count)
5172 {
5173  int i;
5174  for (i = 0; i < count; i++) {
5175  proto_item *item;
5176  proto_tree *t;
5177 
5178  item = proto_tree_add_item(root, hf_x11_struct_render_LINEFIX, tvb, *offsetp, 16, ENC_NA);
5179  t = proto_item_add_subtree(item, ett_x11_rectangle);
5180  struct_render_POINTFIX(tvb, offsetp, t, byte_order, 1);
5181  struct_render_POINTFIX(tvb, offsetp, t, byte_order, 1);
5182  }
5183 }
5184 
5185 static void struct_render_TRIANGLE(tvbuff_t *tvb, int *offsetp, proto_tree *root, guint byte_order _U_, int count)
5186 {
5187  int i;
5188  for (i = 0; i < count; i++) {
5189  proto_item *item;
5190  proto_tree *t;
5191 
5192  item = proto_tree_add_item(root, hf_x11_struct_render_TRIANGLE, tvb, *offsetp, 24, ENC_NA);
5193  t = proto_item_add_subtree(item, ett_x11_rectangle);
5194  struct_render_POINTFIX(tvb, offsetp, t, byte_order, 1);
5195  struct_render_POINTFIX(tvb, offsetp, t, byte_order, 1);
5196  struct_render_POINTFIX(tvb, offsetp, t, byte_order, 1);
5197  }
5198 }
5199 
5200 static void struct_render_TRAPEZOID(tvbuff_t *tvb, int *offsetp, proto_tree *root, guint byte_order _U_, int count)
5201 {
5202  int i;
5203  for (i = 0; i < count; i++) {
5204  proto_item *item;
5205  proto_tree *t;
5206 
5207  item = proto_tree_add_item(root, hf_x11_struct_render_TRAPEZOID, tvb, *offsetp, 40, ENC_NA);
5208  t = proto_item_add_subtree(item, ett_x11_rectangle);
5209  proto_tree_add_item(t, hf_x11_struct_render_TRAPEZOID_top, tvb, *offsetp, 4, byte_order);
5210  *offsetp += 4;
5211  proto_tree_add_item(t, hf_x11_struct_render_TRAPEZOID_bottom, tvb, *offsetp, 4, byte_order);
5212  *offsetp += 4;
5213  struct_render_LINEFIX(tvb, offsetp, t, byte_order, 1);
5214  struct_render_LINEFIX(tvb, offsetp, t, byte_order, 1);
5215  }
5216 }
5217 
5218 static void struct_render_GLYPHINFO(tvbuff_t *tvb, int *offsetp, proto_tree *root, guint byte_order _U_, int count)
5219 {
5220  int i;
5221  for (i = 0; i < count; i++) {
5222  proto_item *item;
5223  proto_tree *t;
5224 
5225  item = proto_tree_add_item(root, hf_x11_struct_render_GLYPHINFO, tvb, *offsetp, 12, ENC_NA);
5226  t = proto_item_add_subtree(item, ett_x11_rectangle);
5227  proto_tree_add_item(t, hf_x11_struct_render_GLYPHINFO_width, tvb, *offsetp, 2, byte_order);
5228  *offsetp += 2;
5229  proto_tree_add_item(t, hf_x11_struct_render_GLYPHINFO_height, tvb, *offsetp, 2, byte_order);
5230  *offsetp += 2;
5231  proto_tree_add_item(t, hf_x11_struct_render_GLYPHINFO_x, tvb, *offsetp, 2, byte_order);
5232  *offsetp += 2;
5233  proto_tree_add_item(t, hf_x11_struct_render_GLYPHINFO_y, tvb, *offsetp, 2, byte_order);
5234  *offsetp += 2;
5235  proto_tree_add_item(t, hf_x11_struct_render_GLYPHINFO_x_off, tvb, *offsetp, 2, byte_order);
5236  *offsetp += 2;
5237  proto_tree_add_item(t, hf_x11_struct_render_GLYPHINFO_y_off, tvb, *offsetp, 2, byte_order);
5238  *offsetp += 2;
5239  }
5240 }
5241 
5242 static void struct_render_TRANSFORM(tvbuff_t *tvb, int *offsetp, proto_tree *root, guint byte_order _U_, int count)
5243 {
5244  int i;
5245  for (i = 0; i < count; i++) {
5246  proto_item *item;
5247  proto_tree *t;
5248 
5249  item = proto_tree_add_item(root, hf_x11_struct_render_TRANSFORM, tvb, *offsetp, 36, ENC_NA);
5250  t = proto_item_add_subtree(item, ett_x11_rectangle);
5251  proto_tree_add_item(t, hf_x11_struct_render_TRANSFORM_matrix11, tvb, *offsetp, 4, byte_order);
5252  *offsetp += 4;
5253  proto_tree_add_item(t, hf_x11_struct_render_TRANSFORM_matrix12, tvb, *offsetp, 4, byte_order);
5254  *offsetp += 4;
5255  proto_tree_add_item(t, hf_x11_struct_render_TRANSFORM_matrix13, tvb, *offsetp, 4, byte_order);
5256  *offsetp += 4;
5257  proto_tree_add_item(t, hf_x11_struct_render_TRANSFORM_matrix21, tvb, *offsetp, 4, byte_order);
5258  *offsetp += 4;
5259  proto_tree_add_item(t, hf_x11_struct_render_TRANSFORM_matrix22, tvb, *offsetp, 4, byte_order);
5260  *offsetp += 4;
5261  proto_tree_add_item(t, hf_x11_struct_render_TRANSFORM_matrix23, tvb, *offsetp, 4, byte_order);
5262  *offsetp += 4;
5263  proto_tree_add_item(t, hf_x11_struct_render_TRANSFORM_matrix31, tvb, *offsetp, 4, byte_order);
5264  *offsetp += 4;
5265  proto_tree_add_item(t, hf_x11_struct_render_TRANSFORM_matrix32, tvb, *offsetp, 4, byte_order);
5266  *offsetp += 4;
5267  proto_tree_add_item(t, hf_x11_struct_render_TRANSFORM_matrix33, tvb, *offsetp, 4, byte_order);
5268  *offsetp += 4;
5269  }
5270 }
5271 
5272 static void struct_render_ANIMCURSORELT(tvbuff_t *tvb, int *offsetp, proto_tree *root, guint byte_order _U_, int count)
5273 {
5274  int i;
5275  for (i = 0; i < count; i++) {
5276  proto_item *item;
5277  proto_tree *t;
5278 
5279  item = proto_tree_add_item(root, hf_x11_struct_render_ANIMCURSORELT, tvb, *offsetp, 8, ENC_NA);
5280  t = proto_item_add_subtree(item, ett_x11_rectangle);
5281  proto_tree_add_item(t, hf_x11_struct_render_ANIMCURSORELT_cursor, tvb, *offsetp, 4, byte_order);
5282  *offsetp += 4;
5283  proto_tree_add_item(t, hf_x11_struct_render_ANIMCURSORELT_delay, tvb, *offsetp, 4, byte_order);
5284  *offsetp += 4;
5285  }
5286 }
5287 
5288 static void struct_render_SPANFIX(tvbuff_t *tvb, int *offsetp, proto_tree *root, guint byte_order _U_, int count)
5289 {
5290  int i;
5291  for (i = 0; i < count; i++) {
5292  proto_item *item;
5293  proto_tree *t;
5294 
5295  item = proto_tree_add_item(root, hf_x11_struct_render_SPANFIX, tvb, *offsetp, 12, ENC_NA);
5296  t = proto_item_add_subtree(item, ett_x11_rectangle);
5297  proto_tree_add_item(t, hf_x11_struct_render_SPANFIX_l, tvb, *offsetp, 4, byte_order);
5298  *offsetp += 4;
5299  proto_tree_add_item(t, hf_x11_struct_render_SPANFIX_r, tvb, *offsetp, 4, byte_order);
5300  *offsetp += 4;
5301  proto_tree_add_item(t, hf_x11_struct_render_SPANFIX_y, tvb, *offsetp, 4, byte_order);
5302  *offsetp += 4;
5303  }
5304 }
5305 
5306 static void struct_render_TRAP(tvbuff_t *tvb, int *offsetp, proto_tree *root, guint byte_order _U_, int count)
5307 {
5308  int i;
5309  for (i = 0; i < count; i++) {
5310  proto_item *item;
5311  proto_tree *t;
5312 
5313  item = proto_tree_add_item(root, hf_x11_struct_render_TRAP, tvb, *offsetp, 24, ENC_NA);
5314  t = proto_item_add_subtree(item, ett_x11_rectangle);
5315  struct_render_SPANFIX(tvb, offsetp, t, byte_order, 1);
5316  struct_render_SPANFIX(tvb, offsetp, t, byte_order, 1);
5317  }
5318 }
5319 
5320 static void compositeQueryVersion(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
5321 {
5322  proto_tree_add_item(t, hf_x11_composite_QueryVersion_client_major_version, tvb, *offsetp, 4, byte_order);
5323  *offsetp += 4;
5324  proto_tree_add_item(t, hf_x11_composite_QueryVersion_client_minor_version, tvb, *offsetp, 4, byte_order);
5325  *offsetp += 4;
5326 }
5327 static void compositeQueryVersion_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
5328 {
5329  int sequence_number;
5330 
5331  col_append_fstr(pinfo->cinfo, COL_INFO, "-QueryVersion");
5332 
5333  REPLY(reply);
5334  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
5335  *offsetp += 1;
5336  sequence_number = tvb_get_guint16(tvb, *offsetp, byte_order);
5337  proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
5338  "%d (composite-QueryVersion)", sequence_number);
5339  *offsetp += 2;
5340  proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
5341  *offsetp += 4;
5342  proto_tree_add_item(t, hf_x11_composite_QueryVersion_reply_major_version, tvb, *offsetp, 4, byte_order);
5343  *offsetp += 4;
5344  proto_tree_add_item(t, hf_x11_composite_QueryVersion_reply_minor_version, tvb, *offsetp, 4, byte_order);
5345  *offsetp += 4;
5346  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 16, ENC_NA);
5347  *offsetp += 16;
5348 }
5349 
5350 static void compositeRedirectWindow(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
5351 {
5352  proto_tree_add_item(t, hf_x11_composite_RedirectWindow_window, tvb, *offsetp, 4, byte_order);
5353  *offsetp += 4;
5354  field8(tvb, offsetp, t, hf_x11_composite_RedirectWindow_update, byte_order);
5355  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 3, ENC_NA);
5356  *offsetp += 3;
5357 }
5358 
5359 static void compositeRedirectSubwindows(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
5360 {
5361  proto_tree_add_item(t, hf_x11_composite_RedirectSubwindows_window, tvb, *offsetp, 4, byte_order);
5362  *offsetp += 4;
5363  field8(tvb, offsetp, t, hf_x11_composite_RedirectSubwindows_update, byte_order);
5364  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 3, ENC_NA);
5365  *offsetp += 3;
5366 }
5367 
5368 static void compositeUnredirectWindow(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
5369 {
5370  proto_tree_add_item(t, hf_x11_composite_UnredirectWindow_window, tvb, *offsetp, 4, byte_order);
5371  *offsetp += 4;
5372  field8(tvb, offsetp, t, hf_x11_composite_UnredirectWindow_update, byte_order);
5373  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 3, ENC_NA);
5374  *offsetp += 3;
5375 }
5376 
5377 static void compositeUnredirectSubwindows(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
5378 {
5379  proto_tree_add_item(t, hf_x11_composite_UnredirectSubwindows_window, tvb, *offsetp, 4, byte_order);
5380  *offsetp += 4;
5381  field8(tvb, offsetp, t, hf_x11_composite_UnredirectSubwindows_update, byte_order);
5382  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 3, ENC_NA);
5383  *offsetp += 3;
5384 }
5385 
5386 static void compositeCreateRegionFromBorderClip(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
5387 {
5388  proto_tree_add_item(t, hf_x11_composite_CreateRegionFromBorderClip_region, tvb, *offsetp, 4, byte_order);
5389  *offsetp += 4;
5390  proto_tree_add_item(t, hf_x11_composite_CreateRegionFromBorderClip_window, tvb, *offsetp, 4, byte_order);
5391  *offsetp += 4;
5392 }
5393 
5394 static void compositeNameWindowPixmap(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
5395 {
5396  proto_tree_add_item(t, hf_x11_composite_NameWindowPixmap_window, tvb, *offsetp, 4, byte_order);
5397  *offsetp += 4;
5398  proto_tree_add_item(t, hf_x11_composite_NameWindowPixmap_pixmap, tvb, *offsetp, 4, byte_order);
5399  *offsetp += 4;
5400 }
5401 
5402 static void compositeGetOverlayWindow(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
5403 {
5404  proto_tree_add_item(t, hf_x11_composite_GetOverlayWindow_window, tvb, *offsetp, 4, byte_order);
5405  *offsetp += 4;
5406 }
5407 static void compositeGetOverlayWindow_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
5408 {
5409  int sequence_number;
5410 
5411  col_append_fstr(pinfo->cinfo, COL_INFO, "-GetOverlayWindow");
5412 
5413  REPLY(reply);
5414  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
5415  *offsetp += 1;
5416  sequence_number = tvb_get_guint16(tvb, *offsetp, byte_order);
5417  proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
5418  "%d (composite-GetOverlayWindow)", sequence_number);
5419  *offsetp += 2;
5420  proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
5421  *offsetp += 4;
5422  proto_tree_add_item(t, hf_x11_composite_GetOverlayWindow_reply_overlay_win, tvb, *offsetp, 4, byte_order);
5423  *offsetp += 4;
5424  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 20, ENC_NA);
5425  *offsetp += 20;
5426 }
5427 
5428 static void compositeReleaseOverlayWindow(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
5429 {
5430  proto_tree_add_item(t, hf_x11_composite_ReleaseOverlayWindow_window, tvb, *offsetp, 4, byte_order);
5431  *offsetp += 4;
5432 }
5433 static const value_string composite_extension_minor[] = {
5434  { 0, "QueryVersion" },
5435  { 1, "RedirectWindow" },
5436  { 2, "RedirectSubwindows" },
5437  { 3, "UnredirectWindow" },
5438  { 4, "UnredirectSubwindows" },
5439  { 5, "CreateRegionFromBorderClip" },
5440  { 6, "NameWindowPixmap" },
5441  { 7, "GetOverlayWindow" },
5442  { 8, "ReleaseOverlayWindow" },
5443  { 0, NULL }
5444 };
5445 const x11_event_info composite_events[] = {
5446  { NULL, NULL }
5447 };
5448 static x11_reply_info composite_replies[] = {
5449  { 0, compositeQueryVersion_Reply },
5450  { 7, compositeGetOverlayWindow_Reply },
5451  { 0, NULL }
5452 };
5453 
5454 static void dispatch_composite(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
5455 {
5456  int minor, length;
5457  minor = CARD8(composite_extension_minor);
5458  length = REQUEST_LENGTH();
5459 
5460  col_append_fstr(pinfo->cinfo, COL_INFO, "-%s",
5461  val_to_str(minor, composite_extension_minor,
5462  "<Unknown opcode %d>"));
5463  switch (minor) {
5464  case 0:
5465  compositeQueryVersion(tvb, pinfo, offsetp, t, byte_order, length);
5466  break;
5467  case 1:
5468  compositeRedirectWindow(tvb, pinfo, offsetp, t, byte_order, length);
5469  break;
5470  case 2:
5471  compositeRedirectSubwindows(tvb, pinfo, offsetp, t, byte_order, length);
5472  break;
5473  case 3:
5474  compositeUnredirectWindow(tvb, pinfo, offsetp, t, byte_order, length);
5475  break;
5476  case 4:
5477  compositeUnredirectSubwindows(tvb, pinfo, offsetp, t, byte_order, length);
5478  break;
5479  case 5:
5480  compositeCreateRegionFromBorderClip(tvb, pinfo, offsetp, t, byte_order, length);
5481  break;
5482  case 6:
5483  compositeNameWindowPixmap(tvb, pinfo, offsetp, t, byte_order, length);
5484  break;
5485  case 7:
5486  compositeGetOverlayWindow(tvb, pinfo, offsetp, t, byte_order, length);
5487  break;
5488  case 8:
5489  compositeReleaseOverlayWindow(tvb, pinfo, offsetp, t, byte_order, length);
5490  break;
5491  /* No need for a default case here, since Unknown is printed above,
5492  and UNDECODED() is taken care of by dissect_x11_request */
5493  }
5494 }
5495 
5496 static void register_composite(void)
5497 {
5498  set_handler("Composite", dispatch_composite, composite_errors, composite_events, NULL, composite_replies);
5499 }
5500 
5501 static void damageQueryVersion(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
5502 {
5503  proto_tree_add_item(t, hf_x11_damage_QueryVersion_client_major_version, tvb, *offsetp, 4, byte_order);
5504  *offsetp += 4;
5505  proto_tree_add_item(t, hf_x11_damage_QueryVersion_client_minor_version, tvb, *offsetp, 4, byte_order);
5506  *offsetp += 4;
5507 }
5508 static void damageQueryVersion_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
5509 {
5510  int sequence_number;
5511 
5512  col_append_fstr(pinfo->cinfo, COL_INFO, "-QueryVersion");
5513 
5514  REPLY(reply);
5515  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
5516  *offsetp += 1;
5517  sequence_number = tvb_get_guint16(tvb, *offsetp, byte_order);
5518  proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
5519  "%d (damage-QueryVersion)", sequence_number);
5520  *offsetp += 2;
5521  proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
5522  *offsetp += 4;
5523  proto_tree_add_item(t, hf_x11_damage_QueryVersion_reply_major_version, tvb, *offsetp, 4, byte_order);
5524  *offsetp += 4;
5525  proto_tree_add_item(t, hf_x11_damage_QueryVersion_reply_minor_version, tvb, *offsetp, 4, byte_order);
5526  *offsetp += 4;
5527  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 16, ENC_NA);
5528  *offsetp += 16;
5529 }
5530 
5531 static void damageCreate(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
5532 {
5533  proto_tree_add_item(t, hf_x11_damage_Create_damage, tvb, *offsetp, 4, byte_order);
5534  *offsetp += 4;
5535  proto_tree_add_item(t, hf_x11_damage_Create_drawable, tvb, *offsetp, 4, byte_order);
5536  *offsetp += 4;
5537  field8(tvb, offsetp, t, hf_x11_damage_Create_level, byte_order);
5538  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 3, ENC_NA);
5539  *offsetp += 3;
5540 }
5541 
5542 static void damageDestroy(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
5543 {
5544  proto_tree_add_item(t, hf_x11_damage_Destroy_damage, tvb, *offsetp, 4, byte_order);
5545  *offsetp += 4;
5546 }
5547 
5548 static void damageSubtract(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
5549 {
5550  proto_tree_add_item(t, hf_x11_damage_Subtract_damage, tvb, *offsetp, 4, byte_order);
5551  *offsetp += 4;
5552  field32(tvb, offsetp, t, hf_x11_damage_Subtract_repair, byte_order);
5553  field32(tvb, offsetp, t, hf_x11_damage_Subtract_parts, byte_order);
5554 }
5555 
5556 static void damageAdd(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
5557 {
5558  proto_tree_add_item(t, hf_x11_damage_Add_drawable, tvb, *offsetp, 4, byte_order);
5559  *offsetp += 4;
5560  proto_tree_add_item(t, hf_x11_damage_Add_region, tvb, *offsetp, 4, byte_order);
5561  *offsetp += 4;
5562 }
5563 static const value_string damage_extension_minor[] = {
5564  { 0, "QueryVersion" },
5565  { 1, "Create" },
5566  { 2, "Destroy" },
5567  { 3, "Subtract" },
5568  { 4, "Add" },
5569  { 0, NULL }
5570 };
5571 const x11_event_info damage_events[] = {
5572  { NULL, NULL }
5573 };
5574 static x11_reply_info damage_replies[] = {
5575  { 0, damageQueryVersion_Reply },
5576  { 0, NULL }
5577 };
5578 
5579 static void dispatch_damage(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
5580 {
5581  int minor, length;
5582  minor = CARD8(damage_extension_minor);
5583  length = REQUEST_LENGTH();
5584 
5585  col_append_fstr(pinfo->cinfo, COL_INFO, "-%s",
5586  val_to_str(minor, damage_extension_minor,
5587  "<Unknown opcode %d>"));
5588  switch (minor) {
5589  case 0:
5590  damageQueryVersion(tvb, pinfo, offsetp, t, byte_order, length);
5591  break;
5592  case 1:
5593  damageCreate(tvb, pinfo, offsetp, t, byte_order, length);
5594  break;
5595  case 2:
5596  damageDestroy(tvb, pinfo, offsetp, t, byte_order, length);
5597  break;
5598  case 3:
5599  damageSubtract(tvb, pinfo, offsetp, t, byte_order, length);
5600  break;
5601  case 4:
5602  damageAdd(tvb, pinfo, offsetp, t, byte_order, length);
5603  break;
5604  /* No need for a default case here, since Unknown is printed above,
5605  and UNDECODED() is taken care of by dissect_x11_request */
5606  }
5607 }
5608 
5609 static void register_damage(void)
5610 {
5611  set_handler("DAMAGE", dispatch_damage, damage_errors, damage_events, NULL, damage_replies);
5612 }
5613 
5614 static void dpmsGetVersion(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
5615 {
5616  proto_tree_add_item(t, hf_x11_dpms_GetVersion_client_major_version, tvb, *offsetp, 2, byte_order);
5617  *offsetp += 2;
5618  proto_tree_add_item(t, hf_x11_dpms_GetVersion_client_minor_version, tvb, *offsetp, 2, byte_order);
5619  *offsetp += 2;
5620 }
5621 static void dpmsGetVersion_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
5622 {
5623  int sequence_number;
5624 
5625  col_append_fstr(pinfo->cinfo, COL_INFO, "-GetVersion");
5626 
5627  REPLY(reply);
5628  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
5629  *offsetp += 1;
5630  sequence_number = tvb_get_guint16(tvb, *offsetp, byte_order);
5631  proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
5632  "%d (dpms-GetVersion)", sequence_number);
5633  *offsetp += 2;
5634  proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
5635  *offsetp += 4;
5636  proto_tree_add_item(t, hf_x11_dpms_GetVersion_reply_server_major_version, tvb, *offsetp, 2, byte_order);
5637  *offsetp += 2;
5638  proto_tree_add_item(t, hf_x11_dpms_GetVersion_reply_server_minor_version, tvb, *offsetp, 2, byte_order);
5639  *offsetp += 2;
5640 }
5641 
5642 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_)
5643 {
5644 }
5645 static void dpmsCapable_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
5646 {
5647  int sequence_number;
5648 
5649  col_append_fstr(pinfo->cinfo, COL_INFO, "-Capable");
5650 
5651  REPLY(reply);
5652  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
5653  *offsetp += 1;
5654  sequence_number = tvb_get_guint16(tvb, *offsetp, byte_order);
5655  proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
5656  "%d (dpms-Capable)", sequence_number);
5657  *offsetp += 2;
5658  proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
5659  *offsetp += 4;
5660  proto_tree_add_item(t, hf_x11_dpms_Capable_reply_capable, tvb, *offsetp, 1, byte_order);
5661  *offsetp += 1;
5662  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 23, ENC_NA);
5663  *offsetp += 23;
5664 }
5665 
5666 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_)
5667 {
5668 }
5669 static void dpmsGetTimeouts_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
5670 {
5671  int sequence_number;
5672 
5673  col_append_fstr(pinfo->cinfo, COL_INFO, "-GetTimeouts");
5674 
5675  REPLY(reply);
5676  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
5677  *offsetp += 1;
5678  sequence_number = tvb_get_guint16(tvb, *offsetp, byte_order);
5679  proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
5680  "%d (dpms-GetTimeouts)", sequence_number);
5681  *offsetp += 2;
5682  proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
5683  *offsetp += 4;
5684  proto_tree_add_item(t, hf_x11_dpms_GetTimeouts_reply_standby_timeout, tvb, *offsetp, 2, byte_order);
5685  *offsetp += 2;
5686  proto_tree_add_item(t, hf_x11_dpms_GetTimeouts_reply_suspend_timeout, tvb, *offsetp, 2, byte_order);
5687  *offsetp += 2;
5688  proto_tree_add_item(t, hf_x11_dpms_GetTimeouts_reply_off_timeout, tvb, *offsetp, 2, byte_order);
5689  *offsetp += 2;
5690  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 18, ENC_NA);
5691  *offsetp += 18;
5692 }
5693 
5694 static void dpmsSetTimeouts(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
5695 {
5696  proto_tree_add_item(t, hf_x11_dpms_SetTimeouts_standby_timeout, tvb, *offsetp, 2, byte_order);
5697  *offsetp += 2;
5698  proto_tree_add_item(t, hf_x11_dpms_SetTimeouts_suspend_timeout, tvb, *offsetp, 2, byte_order);
5699  *offsetp += 2;
5700  proto_tree_add_item(t, hf_x11_dpms_SetTimeouts_off_timeout, tvb, *offsetp, 2, byte_order);
5701  *offsetp += 2;
5702 }
5703 
5704 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_)
5705 {
5706 }
5707 
5708 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_)
5709 {
5710 }
5711 
5712 static void dpmsForceLevel(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
5713 {
5714  field16(tvb, offsetp, t, hf_x11_dpms_ForceLevel_power_level, byte_order);
5715 }
5716 
5717 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_)
5718 {
5719 }
5720 static void dpmsInfo_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
5721 {
5722  int sequence_number;
5723 
5724  col_append_fstr(pinfo->cinfo, COL_INFO, "-Info");
5725 
5726  REPLY(reply);
5727  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
5728  *offsetp += 1;
5729  sequence_number = tvb_get_guint16(tvb, *offsetp, byte_order);
5730  proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
5731  "%d (dpms-Info)", sequence_number);
5732  *offsetp += 2;
5733  proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
5734  *offsetp += 4;
5735  field16(tvb, offsetp, t, hf_x11_dpms_Info_reply_power_level, byte_order);
5736  proto_tree_add_item(t, hf_x11_dpms_Info_reply_state, tvb, *offsetp, 1, byte_order);
5737  *offsetp += 1;
5738  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 21, ENC_NA);
5739  *offsetp += 21;
5740 }
5741 static const value_string dpms_extension_minor[] = {
5742  { 0, "GetVersion" },
5743  { 1, "Capable" },
5744  { 2, "GetTimeouts" },
5745  { 3, "SetTimeouts" },
5746  { 4, "Enable" },
5747  { 5, "Disable" },
5748  { 6, "ForceLevel" },
5749  { 7, "Info" },
5750  { 0, NULL }
5751 };
5752 const x11_event_info dpms_events[] = {
5753  { NULL, NULL }
5754 };
5755 static x11_reply_info dpms_replies[] = {
5756  { 0, dpmsGetVersion_Reply },
5757  { 1, dpmsCapable_Reply },
5758  { 2, dpmsGetTimeouts_Reply },
5759  { 7, dpmsInfo_Reply },
5760  { 0, NULL }
5761 };
5762 
5763 static void dispatch_dpms(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
5764 {
5765  int minor, length;
5766  minor = CARD8(dpms_extension_minor);
5767  length = REQUEST_LENGTH();
5768 
5769  col_append_fstr(pinfo->cinfo, COL_INFO, "-%s",
5770  val_to_str(minor, dpms_extension_minor,
5771  "<Unknown opcode %d>"));
5772  switch (minor) {
5773  case 0:
5774  dpmsGetVersion(tvb, pinfo, offsetp, t, byte_order, length);
5775  break;
5776  case 1:
5777  dpmsCapable(tvb, pinfo, offsetp, t, byte_order, length);
5778  break;
5779  case 2:
5780  dpmsGetTimeouts(tvb, pinfo, offsetp, t, byte_order, length);
5781  break;
5782  case 3:
5783  dpmsSetTimeouts(tvb, pinfo, offsetp, t, byte_order, length);
5784  break;
5785  case 4:
5786  dpmsEnable(tvb, pinfo, offsetp, t, byte_order, length);
5787  break;
5788  case 5:
5789  dpmsDisable(tvb, pinfo, offsetp, t, byte_order, length);
5790  break;
5791  case 6:
5792  dpmsForceLevel(tvb, pinfo, offsetp, t, byte_order, length);
5793  break;
5794  case 7:
5795  dpmsInfo(tvb, pinfo, offsetp, t, byte_order, length);
5796  break;
5797  /* No need for a default case here, since Unknown is printed above,
5798  and UNDECODED() is taken care of by dissect_x11_request */
5799  }
5800 }
5801 
5802 static void register_dpms(void)
5803 {
5804  set_handler("DPMS", dispatch_dpms, dpms_errors, dpms_events, NULL, dpms_replies);
5805 }
5806 
5807 static void struct_dri2_DRI2Buffer(tvbuff_t *tvb, int *offsetp, proto_tree *root, guint byte_order _U_, int count)
5808 {
5809  int i;
5810  for (i = 0; i < count; i++) {
5811  proto_item *item;
5812  proto_tree *t;
5813 
5814  item = proto_tree_add_item(root, hf_x11_struct_dri2_DRI2Buffer, tvb, *offsetp, 20, ENC_NA);
5815  t = proto_item_add_subtree(item, ett_x11_rectangle);
5816  field32(tvb, offsetp, t, hf_x11_struct_dri2_DRI2Buffer_attachment, byte_order);
5817  proto_tree_add_item(t, hf_x11_struct_dri2_DRI2Buffer_name, tvb, *offsetp, 4, byte_order);
5818  *offsetp += 4;
5819  proto_tree_add_item(t, hf_x11_struct_dri2_DRI2Buffer_pitch, tvb, *offsetp, 4, byte_order);
5820  *offsetp += 4;
5821  proto_tree_add_item(t, hf_x11_struct_dri2_DRI2Buffer_cpp, tvb, *offsetp, 4, byte_order);
5822  *offsetp += 4;
5823  proto_tree_add_item(t, hf_x11_struct_dri2_DRI2Buffer_flags, tvb, *offsetp, 4, byte_order);
5824  *offsetp += 4;
5825  }
5826 }
5827 
5828 static void struct_dri2_AttachFormat(tvbuff_t *tvb, int *offsetp, proto_tree *root, guint byte_order _U_, int count)
5829 {
5830  int i;
5831  for (i = 0; i < count; i++) {
5832  proto_item *item;
5833  proto_tree *t;
5834 
5835  item = proto_tree_add_item(root, hf_x11_struct_dri2_AttachFormat, tvb, *offsetp, 8, ENC_NA);
5836  t = proto_item_add_subtree(item, ett_x11_rectangle);
5837  field32(tvb, offsetp, t, hf_x11_struct_dri2_AttachFormat_attachment, byte_order);
5838  proto_tree_add_item(t, hf_x11_struct_dri2_AttachFormat_format, tvb, *offsetp, 4, byte_order);
5839  *offsetp += 4;
5840  }
5841 }
5842 
5843 static void dri2QueryVersion(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
5844 {
5845  proto_tree_add_item(t, hf_x11_dri2_QueryVersion_major_version, tvb, *offsetp, 4, byte_order);
5846  *offsetp += 4;
5847  proto_tree_add_item(t, hf_x11_dri2_QueryVersion_minor_version, tvb, *offsetp, 4, byte_order);
5848  *offsetp += 4;
5849 }
5850 static void dri2QueryVersion_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
5851 {
5852  int sequence_number;
5853 
5854  col_append_fstr(pinfo->cinfo, COL_INFO, "-QueryVersion");
5855 
5856  REPLY(reply);
5857  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
5858  *offsetp += 1;
5859  sequence_number = tvb_get_guint16(tvb, *offsetp, byte_order);
5860  proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
5861  "%d (dri2-QueryVersion)", sequence_number);
5862  *offsetp += 2;
5863  proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
5864  *offsetp += 4;
5865  proto_tree_add_item(t, hf_x11_dri2_QueryVersion_reply_major_version, tvb, *offsetp, 4, byte_order);
5866  *offsetp += 4;
5867  proto_tree_add_item(t, hf_x11_dri2_QueryVersion_reply_minor_version, tvb, *offsetp, 4, byte_order);
5868  *offsetp += 4;
5869 }
5870 
5871 static void dri2Connect(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
5872 {
5873  proto_tree_add_item(t, hf_x11_dri2_Connect_window, tvb, *offsetp, 4, byte_order);
5874  *offsetp += 4;
5875  field32(tvb, offsetp, t, hf_x11_dri2_Connect_driver_type, byte_order);
5876 }
5877 static void dri2Connect_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
5878 {
5879  int sequence_number;
5880  int f_driver_name_length;
5881  int f_device_name_length;
5882 
5883  col_append_fstr(pinfo->cinfo, COL_INFO, "-Connect");
5884 
5885  REPLY(reply);
5886  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
5887  *offsetp += 1;
5888  sequence_number = tvb_get_guint16(tvb, *offsetp, byte_order);
5889  proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
5890  "%d (dri2-Connect)", sequence_number);
5891  *offsetp += 2;
5892  proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
5893  *offsetp += 4;
5894  f_driver_name_length = tvb_get_guint32(tvb, *offsetp, byte_order);
5895  proto_tree_add_item(t, hf_x11_dri2_Connect_reply_driver_name_length, tvb, *offsetp, 4, byte_order);
5896  *offsetp += 4;
5897  f_device_name_length = tvb_get_guint32(tvb, *offsetp, byte_order);
5898  proto_tree_add_item(t, hf_x11_dri2_Connect_reply_device_name_length, tvb, *offsetp, 4, byte_order);
5899  *offsetp += 4;
5900  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 16, ENC_NA);
5901  *offsetp += 16;
5902  listOfByte(tvb, offsetp, t, hf_x11_dri2_Connect_reply_driver_name, f_driver_name_length, byte_order);
5903  listOfByte(tvb, offsetp, t, hf_x11_dri2_Connect_reply_alignment_pad, (((f_driver_name_length + 3) & (~3)) - f_driver_name_length), byte_order);
5904  listOfByte(tvb, offsetp, t, hf_x11_dri2_Connect_reply_device_name, f_device_name_length, byte_order);
5905 }
5906 
5907 static void dri2Authenticate(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
5908 {
5909  proto_tree_add_item(t, hf_x11_dri2_Authenticate_window, tvb, *offsetp, 4, byte_order);
5910  *offsetp += 4;
5911  proto_tree_add_item(t, hf_x11_dri2_Authenticate_magic, tvb, *offsetp, 4, byte_order);
5912  *offsetp += 4;
5913 }
5914 static void dri2Authenticate_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
5915 {
5916  int sequence_number;
5917 
5918  col_append_fstr(pinfo->cinfo, COL_INFO, "-Authenticate");
5919 
5920  REPLY(reply);
5921  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
5922  *offsetp += 1;
5923  sequence_number = tvb_get_guint16(tvb, *offsetp, byte_order);
5924  proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
5925  "%d (dri2-Authenticate)", sequence_number);
5926  *offsetp += 2;
5927  proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
5928  *offsetp += 4;
5929  proto_tree_add_item(t, hf_x11_dri2_Authenticate_reply_authenticated, tvb, *offsetp, 4, byte_order);
5930  *offsetp += 4;
5931 }
5932 
5933 static void dri2CreateDrawable(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_CreateDrawable_drawable, tvb, *offsetp, 4, byte_order);
5936  *offsetp += 4;
5937 }
5938 
5939 static void dri2DestroyDrawable(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
5940 {
5941  proto_tree_add_item(t, hf_x11_dri2_DestroyDrawable_drawable, tvb, *offsetp, 4, byte_order);
5942  *offsetp += 4;
5943 }
5944 
5945 static void dri2GetBuffers(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
5946 {
5947  proto_tree_add_item(t, hf_x11_dri2_GetBuffers_drawable, tvb, *offsetp, 4, byte_order);
5948  *offsetp += 4;
5949  proto_tree_add_item(t, hf_x11_dri2_GetBuffers_count, tvb, *offsetp, 4, byte_order);
5950  *offsetp += 4;
5951  listOfCard32(tvb, offsetp, t, hf_x11_dri2_GetBuffers_attachments, hf_x11_dri2_GetBuffers_attachments_item, (length - 12) / 4, byte_order);
5952 }
5953 static void dri2GetBuffers_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
5954 {
5955  int sequence_number;
5956  int f_count;
5957 
5958  col_append_fstr(pinfo->cinfo, COL_INFO, "-GetBuffers");
5959 
5960  REPLY(reply);
5961  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
5962  *offsetp += 1;
5963  sequence_number = tvb_get_guint16(tvb, *offsetp, byte_order);
5964  proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
5965  "%d (dri2-GetBuffers)", sequence_number);
5966  *offsetp += 2;
5967  proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
5968  *offsetp += 4;
5969  proto_tree_add_item(t, hf_x11_dri2_GetBuffers_reply_width, tvb, *offsetp, 4, byte_order);
5970  *offsetp += 4;
5971  proto_tree_add_item(t, hf_x11_dri2_GetBuffers_reply_height, tvb, *offsetp, 4, byte_order);
5972  *offsetp += 4;
5973  f_count = tvb_get_guint32(tvb, *offsetp, byte_order);
5974  proto_tree_add_item(t, hf_x11_dri2_GetBuffers_reply_count, tvb, *offsetp, 4, byte_order);
5975  *offsetp += 4;
5976  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 12, ENC_NA);
5977  *offsetp += 12;
5978  struct_dri2_DRI2Buffer(tvb, offsetp, t, byte_order, f_count);
5979 }
5980 
5981 static void dri2CopyRegion(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
5982 {
5983  proto_tree_add_item(t, hf_x11_dri2_CopyRegion_drawable, tvb, *offsetp, 4, byte_order);
5984  *offsetp += 4;
5985  proto_tree_add_item(t, hf_x11_dri2_CopyRegion_region, tvb, *offsetp, 4, byte_order);
5986  *offsetp += 4;
5987  proto_tree_add_item(t, hf_x11_dri2_CopyRegion_dest, tvb, *offsetp, 4, byte_order);
5988  *offsetp += 4;
5989  proto_tree_add_item(t, hf_x11_dri2_CopyRegion_src, tvb, *offsetp, 4, byte_order);
5990  *offsetp += 4;
5991 }
5992 static void dri2CopyRegion_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
5993 {
5994  int sequence_number;
5995 
5996  col_append_fstr(pinfo->cinfo, COL_INFO, "-CopyRegion");
5997 
5998  REPLY(reply);
5999  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
6000  *offsetp += 1;
6001  sequence_number = tvb_get_guint16(tvb, *offsetp, byte_order);
6002  proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
6003  "%d (dri2-CopyRegion)", sequence_number);
6004  *offsetp += 2;
6005  proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
6006  *offsetp += 4;
6007 }
6008 
6009 static void dri2GetBuffersWithFormat(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
6010 {
6011  proto_tree_add_item(t, hf_x11_dri2_GetBuffersWithFormat_drawable, tvb, *offsetp, 4, byte_order);
6012  *offsetp += 4;
6013  proto_tree_add_item(t, hf_x11_dri2_GetBuffersWithFormat_count, tvb, *offsetp, 4, byte_order);
6014  *offsetp += 4;
6015  struct_dri2_AttachFormat(tvb, offsetp, t, byte_order, (length - 12) / 8);
6016 }
6017 static void dri2GetBuffersWithFormat_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
6018 {
6019  int sequence_number;
6020  int f_count;
6021 
6022  col_append_fstr(pinfo->cinfo, COL_INFO, "-GetBuffersWithFormat");
6023 
6024  REPLY(reply);
6025  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
6026  *offsetp += 1;
6027  sequence_number = tvb_get_guint16(tvb, *offsetp, byte_order);
6028  proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
6029  "%d (dri2-GetBuffersWithFormat)", sequence_number);
6030  *offsetp += 2;
6031  proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
6032  *offsetp += 4;
6033  proto_tree_add_item(t, hf_x11_dri2_GetBuffersWithFormat_reply_width, tvb, *offsetp, 4, byte_order);
6034  *offsetp += 4;
6035  proto_tree_add_item(t, hf_x11_dri2_GetBuffersWithFormat_reply_height, tvb, *offsetp, 4, byte_order);
6036  *offsetp += 4;
6037  f_count = tvb_get_guint32(tvb, *offsetp, byte_order);
6038  proto_tree_add_item(t, hf_x11_dri2_GetBuffersWithFormat_reply_count, tvb, *offsetp, 4, byte_order);
6039  *offsetp += 4;
6040  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 12, ENC_NA);
6041  *offsetp += 12;
6042  struct_dri2_DRI2Buffer(tvb, offsetp, t, byte_order, f_count);
6043 }
6044 
6045 static void dri2SwapBuffers(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
6046 {
6047  proto_tree_add_item(t, hf_x11_dri2_SwapBuffers_drawable, tvb, *offsetp, 4, byte_order);
6048  *offsetp += 4;
6049  proto_tree_add_item(t, hf_x11_dri2_SwapBuffers_target_msc_hi, tvb, *offsetp, 4, byte_order);
6050  *offsetp += 4;
6051  proto_tree_add_item(t, hf_x11_dri2_SwapBuffers_target_msc_lo, tvb, *offsetp, 4, byte_order);
6052  *offsetp += 4;
6053  proto_tree_add_item(t, hf_x11_dri2_SwapBuffers_divisor_hi, tvb, *offsetp, 4, byte_order);
6054  *offsetp += 4;
6055  proto_tree_add_item(t, hf_x11_dri2_SwapBuffers_divisor_lo, tvb, *offsetp, 4, byte_order);
6056  *offsetp += 4;
6057  proto_tree_add_item(t, hf_x11_dri2_SwapBuffers_remainder_hi, tvb, *offsetp, 4, byte_order);
6058  *offsetp += 4;
6059  proto_tree_add_item(t, hf_x11_dri2_SwapBuffers_remainder_lo, tvb, *offsetp, 4, byte_order);
6060  *offsetp += 4;
6061 }
6062 static void dri2SwapBuffers_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
6063 {
6064  int sequence_number;
6065 
6066  col_append_fstr(pinfo->cinfo, COL_INFO, "-SwapBuffers");
6067 
6068  REPLY(reply);
6069  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
6070  *offsetp += 1;
6071  sequence_number = tvb_get_guint16(tvb, *offsetp, byte_order);
6072  proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
6073  "%d (dri2-SwapBuffers)", sequence_number);
6074  *offsetp += 2;
6075  proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
6076  *offsetp += 4;
6077  proto_tree_add_item(t, hf_x11_dri2_SwapBuffers_reply_swap_hi, tvb, *offsetp, 4, byte_order);
6078  *offsetp += 4;
6079  proto_tree_add_item(t, hf_x11_dri2_SwapBuffers_reply_swap_lo, tvb, *offsetp, 4, byte_order);
6080  *offsetp += 4;
6081 }
6082 
6083 static void dri2GetMSC(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
6084 {
6085  proto_tree_add_item(t, hf_x11_dri2_GetMSC_drawable, tvb, *offsetp, 4, byte_order);
6086  *offsetp += 4;
6087 }
6088 static void dri2GetMSC_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
6089 {
6090  int sequence_number;
6091 
6092  col_append_fstr(pinfo->cinfo, COL_INFO, "-GetMSC");
6093 
6094  REPLY(reply);
6095  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
6096  *offsetp += 1;
6097  sequence_number = tvb_get_guint16(tvb, *offsetp, byte_order);
6098  proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
6099  "%d (dri2-GetMSC)", sequence_number);
6100  *offsetp += 2;
6101  proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
6102  *offsetp += 4;
6103  proto_tree_add_item(t, hf_x11_dri2_GetMSC_reply_ust_hi, tvb, *offsetp, 4, byte_order);
6104  *offsetp += 4;
6105  proto_tree_add_item(t, hf_x11_dri2_GetMSC_reply_ust_lo, tvb, *offsetp, 4, byte_order);
6106  *offsetp += 4;
6107  proto_tree_add_item(t, hf_x11_dri2_GetMSC_reply_msc_hi, tvb, *offsetp, 4, byte_order);
6108  *offsetp += 4;
6109  proto_tree_add_item(t, hf_x11_dri2_GetMSC_reply_msc_lo, tvb, *offsetp, 4, byte_order);
6110  *offsetp += 4;
6111  proto_tree_add_item(t, hf_x11_dri2_GetMSC_reply_sbc_hi, tvb, *offsetp, 4, byte_order);
6112  *offsetp += 4;
6113  proto_tree_add_item(t, hf_x11_dri2_GetMSC_reply_sbc_lo, tvb, *offsetp, 4, byte_order);
6114  *offsetp += 4;
6115 }
6116 
6117 static void dri2WaitMSC(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
6118 {
6119  proto_tree_add_item(t, hf_x11_dri2_WaitMSC_drawable, tvb, *offsetp, 4, byte_order);
6120  *offsetp += 4;
6121  proto_tree_add_item(t, hf_x11_dri2_WaitMSC_target_msc_hi, tvb, *offsetp, 4, byte_order);
6122  *offsetp += 4;
6123  proto_tree_add_item(t, hf_x11_dri2_WaitMSC_target_msc_lo, tvb, *offsetp, 4, byte_order);
6124  *offsetp += 4;
6125  proto_tree_add_item(t, hf_x11_dri2_WaitMSC_divisor_hi, tvb, *offsetp, 4, byte_order);
6126  *offsetp += 4;
6127  proto_tree_add_item(t, hf_x11_dri2_WaitMSC_divisor_lo, tvb, *offsetp, 4, byte_order);
6128  *offsetp += 4;
6129  proto_tree_add_item(t, hf_x11_dri2_WaitMSC_remainder_hi, tvb, *offsetp, 4, byte_order);
6130  *offsetp += 4;
6131  proto_tree_add_item(t, hf_x11_dri2_WaitMSC_remainder_lo, tvb, *offsetp, 4, byte_order);
6132  *offsetp += 4;
6133 }
6134 static void dri2WaitMSC_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
6135 {
6136  int sequence_number;
6137 
6138  col_append_fstr(pinfo->cinfo, COL_INFO, "-WaitMSC");
6139 
6140  REPLY(reply);
6141  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
6142  *offsetp += 1;
6143  sequence_number = tvb_get_guint16(tvb, *offsetp, byte_order);
6144  proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
6145  "%d (dri2-WaitMSC)", sequence_number);
6146  *offsetp += 2;
6147  proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
6148  *offsetp += 4;
6149  proto_tree_add_item(t, hf_x11_dri2_WaitMSC_reply_ust_hi, tvb, *offsetp, 4, byte_order);
6150  *offsetp += 4;
6151  proto_tree_add_item(t, hf_x11_dri2_WaitMSC_reply_ust_lo, tvb, *offsetp, 4, byte_order);
6152  *offsetp += 4;
6153  proto_tree_add_item(t, hf_x11_dri2_WaitMSC_reply_msc_hi, tvb, *offsetp, 4, byte_order);
6154  *offsetp += 4;
6155  proto_tree_add_item(t, hf_x11_dri2_WaitMSC_reply_msc_lo, tvb, *offsetp, 4, byte_order);
6156  *offsetp += 4;
6157  proto_tree_add_item(t, hf_x11_dri2_WaitMSC_reply_sbc_hi, tvb, *offsetp, 4, byte_order);
6158  *offsetp += 4;
6159  proto_tree_add_item(t, hf_x11_dri2_WaitMSC_reply_sbc_lo, tvb, *offsetp, 4, byte_order);
6160  *offsetp += 4;
6161 }
6162 
6163 static void dri2WaitSBC(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
6164 {
6165  proto_tree_add_item(t, hf_x11_dri2_WaitSBC_drawable, tvb, *offsetp, 4, byte_order);
6166  *offsetp += 4;
6167  proto_tree_add_item(t, hf_x11_dri2_WaitSBC_target_sbc_hi, tvb, *offsetp, 4, byte_order);
6168  *offsetp += 4;
6169  proto_tree_add_item(t, hf_x11_dri2_WaitSBC_target_sbc_lo, tvb, *offsetp, 4, byte_order);
6170  *offsetp += 4;
6171 }
6172 static void dri2WaitSBC_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
6173 {
6174  int sequence_number;
6175 
6176  col_append_fstr(pinfo->cinfo, COL_INFO, "-WaitSBC");
6177 
6178  REPLY(reply);
6179  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
6180  *offsetp += 1;
6181  sequence_number = tvb_get_guint16(tvb, *offsetp, byte_order);
6182  proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
6183  "%d (dri2-WaitSBC)", sequence_number);
6184  *offsetp += 2;
6185  proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
6186  *offsetp += 4;
6187  proto_tree_add_item(t, hf_x11_dri2_WaitSBC_reply_ust_hi, tvb, *offsetp, 4, byte_order);
6188  *offsetp += 4;
6189  proto_tree_add_item(t, hf_x11_dri2_WaitSBC_reply_ust_lo, tvb, *offsetp, 4, byte_order);
6190  *offsetp += 4;
6191  proto_tree_add_item(t, hf_x11_dri2_WaitSBC_reply_msc_hi, tvb, *offsetp, 4, byte_order);
6192  *offsetp += 4;
6193  proto_tree_add_item(t, hf_x11_dri2_WaitSBC_reply_msc_lo, tvb, *offsetp, 4, byte_order);
6194  *offsetp += 4;
6195  proto_tree_add_item(t, hf_x11_dri2_WaitSBC_reply_sbc_hi, tvb, *offsetp, 4, byte_order);
6196  *offsetp += 4;
6197  proto_tree_add_item(t, hf_x11_dri2_WaitSBC_reply_sbc_lo, tvb, *offsetp, 4, byte_order);
6198  *offsetp += 4;
6199 }
6200 
6201 static void dri2SwapInterval(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
6202 {
6203  proto_tree_add_item(t, hf_x11_dri2_SwapInterval_drawable, tvb, *offsetp, 4, byte_order);
6204  *offsetp += 4;
6205  proto_tree_add_item(t, hf_x11_dri2_SwapInterval_interval, tvb, *offsetp, 4, byte_order);
6206  *offsetp += 4;
6207 }
6208 
6209 static void dri2GetParam(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
6210 {
6211  proto_tree_add_item(t, hf_x11_dri2_GetParam_drawable, tvb, *offsetp, 4, byte_order);
6212  *offsetp += 4;
6213  proto_tree_add_item(t, hf_x11_dri2_GetParam_param, tvb, *offsetp, 4, byte_order);
6214  *offsetp += 4;
6215 }
6216 static void dri2GetParam_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
6217 {
6218  int sequence_number;
6219 
6220  col_append_fstr(pinfo->cinfo, COL_INFO, "-GetParam");
6221 
6222  REPLY(reply);
6223  proto_tree_add_item(t, hf_x11_dri2_GetParam_reply_is_param_recognized, tvb, *offsetp, 1, byte_order);
6224  *offsetp += 1;
6225  sequence_number = tvb_get_guint16(tvb, *offsetp, byte_order);
6226  proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
6227  "%d (dri2-GetParam)", sequence_number);
6228  *offsetp += 2;
6229  proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
6230  *offsetp += 4;
6231  proto_tree_add_item(t, hf_x11_dri2_GetParam_reply_value_hi, tvb, *offsetp, 4, byte_order);
6232  *offsetp += 4;
6233  proto_tree_add_item(t, hf_x11_dri2_GetParam_reply_value_lo, tvb, *offsetp, 4, byte_order);
6234  *offsetp += 4;
6235 }
6236 
6237 static void dri2InvalidateBuffers(tvbuff_t *tvb, int *offsetp, proto_tree *t, guint byte_order)
6238 {
6239  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
6240  *offsetp += 1;
6241  CARD16(event_sequencenumber);
6242  proto_tree_add_item(t, hf_x11_dri2_InvalidateBuffers_drawable, tvb, *offsetp, 4, byte_order);
6243  *offsetp += 4;
6244 }
6245 
6246 static const value_string dri2_extension_minor[] = {
6247  { 0, "QueryVersion" },
6248  { 1, "Connect" },
6249  { 2, "Authenticate" },
6250  { 3, "CreateDrawable" },
6251  { 4, "DestroyDrawable" },
6252  { 5, "GetBuffers" },
6253  { 6, "CopyRegion" },
6254  { 7, "GetBuffersWithFormat" },
6255  { 8, "SwapBuffers" },
6256  { 9, "GetMSC" },
6257  { 10, "WaitMSC" },
6258  { 11, "WaitSBC" },
6259  { 12, "SwapInterval" },
6260  { 13, "GetParam" },
6261  { 0, NULL }
6262 };
6263 const x11_event_info dri2_events[] = {
6264  { "dri2-InvalidateBuffers", dri2InvalidateBuffers },
6265  { NULL, NULL }
6266 };
6267 static x11_reply_info dri2_replies[] = {
6268  { 0, dri2QueryVersion_Reply },
6269  { 1, dri2Connect_Reply },
6270  { 2, dri2Authenticate_Reply },
6271  { 5, dri2GetBuffers_Reply },
6272  { 6, dri2CopyRegion_Reply },
6273  { 7, dri2GetBuffersWithFormat_Reply },
6274  { 8, dri2SwapBuffers_Reply },
6275  { 9, dri2GetMSC_Reply },
6276  { 10, dri2WaitMSC_Reply },
6277  { 11, dri2WaitSBC_Reply },
6278  { 13, dri2GetParam_Reply },
6279  { 0, NULL }
6280 };
6281 
6282 static void dispatch_dri2(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
6283 {
6284  int minor, length;
6285  minor = CARD8(dri2_extension_minor);
6286  length = REQUEST_LENGTH();
6287 
6288  col_append_fstr(pinfo->cinfo, COL_INFO, "-%s",
6289  val_to_str(minor, dri2_extension_minor,
6290  "<Unknown opcode %d>"));
6291  switch (minor) {
6292  case 0:
6293  dri2QueryVersion(tvb, pinfo, offsetp, t, byte_order, length);
6294  break;
6295  case 1:
6296  dri2Connect(tvb, pinfo, offsetp, t, byte_order, length);
6297  break;
6298  case 2:
6299  dri2Authenticate(tvb, pinfo, offsetp, t, byte_order, length);
6300  break;
6301  case 3:
6302  dri2CreateDrawable(tvb, pinfo, offsetp, t, byte_order, length);
6303  break;
6304  case 4:
6305  dri2DestroyDrawable(tvb, pinfo, offsetp, t, byte_order, length);
6306  break;
6307  case 5:
6308  dri2GetBuffers(tvb, pinfo, offsetp, t, byte_order, length);
6309  break;
6310  case 6:
6311  dri2CopyRegion(tvb, pinfo, offsetp, t, byte_order, length);
6312  break;
6313  case 7:
6314  dri2GetBuffersWithFormat(tvb, pinfo, offsetp, t, byte_order, length);
6315  break;
6316  case 8:
6317  dri2SwapBuffers(tvb, pinfo, offsetp, t, byte_order, length);
6318  break;
6319  case 9:
6320  dri2GetMSC(tvb, pinfo, offsetp, t, byte_order, length);
6321  break;
6322  case 10:
6323  dri2WaitMSC(tvb, pinfo, offsetp, t, byte_order, length);
6324  break;
6325  case 11:
6326  dri2WaitSBC(tvb, pinfo, offsetp, t, byte_order, length);
6327  break;
6328  case 12:
6329  dri2SwapInterval(tvb, pinfo, offsetp, t, byte_order, length);
6330  break;
6331  case 13:
6332  dri2GetParam(tvb, pinfo, offsetp, t, byte_order, length);
6333  break;
6334  /* No need for a default case here, since Unknown is printed above,
6335  and UNDECODED() is taken care of by dissect_x11_request */
6336  }
6337 }
6338 
6339 static void register_dri2(void)
6340 {
6341  set_handler("DRI2", dispatch_dri2, dri2_errors, dri2_events, NULL, dri2_replies);
6342 }
6343 
6344 static void dri3QueryVersion(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
6345 {
6346  proto_tree_add_item(t, hf_x11_dri3_QueryVersion_major_version, tvb, *offsetp, 4, byte_order);
6347  *offsetp += 4;
6348  proto_tree_add_item(t, hf_x11_dri3_QueryVersion_minor_version, tvb, *offsetp, 4, byte_order);
6349  *offsetp += 4;
6350 }
6351 static void dri3QueryVersion_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
6352 {
6353  int sequence_number;
6354 
6355  col_append_fstr(pinfo->cinfo, COL_INFO, "-QueryVersion");
6356 
6357  REPLY(reply);
6358  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
6359  *offsetp += 1;
6360  sequence_number = tvb_get_guint16(tvb, *offsetp, byte_order);
6361  proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
6362  "%d (dri3-QueryVersion)", sequence_number);
6363  *offsetp += 2;
6364  proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
6365  *offsetp += 4;
6366  proto_tree_add_item(t, hf_x11_dri3_QueryVersion_reply_major_version, tvb, *offsetp, 4, byte_order);
6367  *offsetp += 4;
6368  proto_tree_add_item(t, hf_x11_dri3_QueryVersion_reply_minor_version, tvb, *offsetp, 4, byte_order);
6369  *offsetp += 4;
6370 }
6371 
6372 static void dri3Open(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
6373 {
6374  proto_tree_add_item(t, hf_x11_dri3_Open_drawable, tvb, *offsetp, 4, byte_order);
6375  *offsetp += 4;
6376  proto_tree_add_item(t, hf_x11_dri3_Open_provider, tvb, *offsetp, 4, byte_order);
6377  *offsetp += 4;
6378 }
6379 static void dri3Open_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
6380 {
6381  int sequence_number;
6382 
6383  col_append_fstr(pinfo->cinfo, COL_INFO, "-Open");
6384 
6385  REPLY(reply);
6386  proto_tree_add_item(t, hf_x11_dri3_Open_reply_nfd, tvb, *offsetp, 1, byte_order);
6387  *offsetp += 1;
6388  sequence_number = tvb_get_guint16(tvb, *offsetp, byte_order);
6389  proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
6390  "%d (dri3-Open)", sequence_number);
6391  *offsetp += 2;
6392  proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
6393  *offsetp += 4;
6394  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 24, ENC_NA);
6395  *offsetp += 24;
6396 }
6397 
6398 static void dri3PixmapFromBuffer(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
6399 {
6400  proto_tree_add_item(t, hf_x11_dri3_PixmapFromBuffer_pixmap, tvb, *offsetp, 4, byte_order);
6401  *offsetp += 4;
6402  proto_tree_add_item(t, hf_x11_dri3_PixmapFromBuffer_drawable, tvb, *offsetp, 4, byte_order);
6403  *offsetp += 4;
6404  proto_tree_add_item(t, hf_x11_dri3_PixmapFromBuffer_size, tvb, *offsetp, 4, byte_order);
6405  *offsetp += 4;
6406  proto_tree_add_item(t, hf_x11_dri3_PixmapFromBuffer_width, tvb, *offsetp, 2, byte_order);
6407  *offsetp += 2;
6408  proto_tree_add_item(t, hf_x11_dri3_PixmapFromBuffer_height, tvb, *offsetp, 2, byte_order);
6409  *offsetp += 2;
6410  proto_tree_add_item(t, hf_x11_dri3_PixmapFromBuffer_stride, tvb, *offsetp, 2, byte_order);
6411  *offsetp += 2;
6412  proto_tree_add_item(t, hf_x11_dri3_PixmapFromBuffer_depth, tvb, *offsetp, 1, byte_order);
6413  *offsetp += 1;
6414  proto_tree_add_item(t, hf_x11_dri3_PixmapFromBuffer_bpp, tvb, *offsetp, 1, byte_order);
6415  *offsetp += 1;
6416 }
6417 
6418 static void dri3BufferFromPixmap(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
6419 {
6420  proto_tree_add_item(t, hf_x11_dri3_BufferFromPixmap_pixmap, tvb, *offsetp, 4, byte_order);
6421  *offsetp += 4;
6422 }
6423 static void dri3BufferFromPixmap_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
6424 {
6425  int sequence_number;
6426 
6427  col_append_fstr(pinfo->cinfo, COL_INFO, "-BufferFromPixmap");
6428 
6429  REPLY(reply);
6430  proto_tree_add_item(t, hf_x11_dri3_BufferFromPixmap_reply_nfd, tvb, *offsetp, 1, byte_order);
6431  *offsetp += 1;
6432  sequence_number = tvb_get_guint16(tvb, *offsetp, byte_order);
6433  proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
6434  "%d (dri3-BufferFromPixmap)", sequence_number);
6435  *offsetp += 2;
6436  proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
6437  *offsetp += 4;
6438  proto_tree_add_item(t, hf_x11_dri3_BufferFromPixmap_reply_size, tvb, *offsetp, 4, byte_order);
6439  *offsetp += 4;
6440  proto_tree_add_item(t, hf_x11_dri3_BufferFromPixmap_reply_width, tvb, *offsetp, 2, byte_order);
6441  *offsetp += 2;
6442  proto_tree_add_item(t, hf_x11_dri3_BufferFromPixmap_reply_height, tvb, *offsetp, 2, byte_order);
6443  *offsetp += 2;
6444  proto_tree_add_item(t, hf_x11_dri3_BufferFromPixmap_reply_stride, tvb, *offsetp, 2, byte_order);
6445  *offsetp += 2;
6446  proto_tree_add_item(t, hf_x11_dri3_BufferFromPixmap_reply_depth, tvb, *offsetp, 1, byte_order);
6447  *offsetp += 1;
6448  proto_tree_add_item(t, hf_x11_dri3_BufferFromPixmap_reply_bpp, tvb, *offsetp, 1, byte_order);
6449  *offsetp += 1;
6450  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 12, ENC_NA);
6451  *offsetp += 12;
6452 }
6453 
6454 static void dri3FenceFromFD(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_FenceFromFD_drawable, tvb, *offsetp, 4, byte_order);
6457  *offsetp += 4;
6458  proto_tree_add_item(t, hf_x11_dri3_FenceFromFD_fence, tvb, *offsetp, 4, byte_order);
6459  *offsetp += 4;
6460  proto_tree_add_item(t, hf_x11_dri3_FenceFromFD_initially_triggered, tvb, *offsetp, 1, byte_order);
6461  *offsetp += 1;
6462  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 3, ENC_NA);
6463  *offsetp += 3;
6464 }
6465 
6466 static void dri3FDFromFence(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
6467 {
6468  proto_tree_add_item(t, hf_x11_dri3_FDFromFence_drawable, tvb, *offsetp, 4, byte_order);
6469  *offsetp += 4;
6470  proto_tree_add_item(t, hf_x11_dri3_FDFromFence_fence, tvb, *offsetp, 4, byte_order);
6471  *offsetp += 4;
6472 }
6473 static void dri3FDFromFence_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
6474 {
6475  int sequence_number;
6476 
6477  col_append_fstr(pinfo->cinfo, COL_INFO, "-FDFromFence");
6478 
6479  REPLY(reply);
6480  proto_tree_add_item(t, hf_x11_dri3_FDFromFence_reply_nfd, tvb, *offsetp, 1, byte_order);
6481  *offsetp += 1;
6482  sequence_number = tvb_get_guint16(tvb, *offsetp, byte_order);
6483  proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
6484  "%d (dri3-FDFromFence)", sequence_number);
6485  *offsetp += 2;
6486  proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
6487  *offsetp += 4;
6488  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 24, ENC_NA);
6489  *offsetp += 24;
6490 }
6491 static const value_string dri3_extension_minor[] = {
6492  { 0, "QueryVersion" },
6493  { 1, "Open" },
6494  { 2, "PixmapFromBuffer" },
6495  { 3, "BufferFromPixmap" },
6496  { 4, "FenceFromFD" },
6497  { 5, "FDFromFence" },
6498  { 0, NULL }
6499 };
6500 const x11_event_info dri3_events[] = {
6501  { NULL, NULL }
6502 };
6503 static x11_reply_info dri3_replies[] = {
6504  { 0, dri3QueryVersion_Reply },
6505  { 1, dri3Open_Reply },
6506  { 3, dri3BufferFromPixmap_Reply },
6507  { 5, dri3FDFromFence_Reply },
6508  { 0, NULL }
6509 };
6510 
6511 static void dispatch_dri3(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
6512 {
6513  int minor, length;
6514  minor = CARD8(dri3_extension_minor);
6515  length = REQUEST_LENGTH();
6516 
6517  col_append_fstr(pinfo->cinfo, COL_INFO, "-%s",
6518  val_to_str(minor, dri3_extension_minor,
6519  "<Unknown opcode %d>"));
6520  switch (minor) {
6521  case 0:
6522  dri3QueryVersion(tvb, pinfo, offsetp, t, byte_order, length);
6523  break;
6524  case 1:
6525  dri3Open(tvb, pinfo, offsetp, t, byte_order, length);
6526  break;
6527  case 2:
6528  dri3PixmapFromBuffer(tvb, pinfo, offsetp, t, byte_order, length);
6529  break;
6530  case 3:
6531  dri3BufferFromPixmap(tvb, pinfo, offsetp, t, byte_order, length);
6532  break;
6533  case 4:
6534  dri3FenceFromFD(tvb, pinfo, offsetp, t, byte_order, length);
6535  break;
6536  case 5:
6537  dri3FDFromFence(tvb, pinfo, offsetp, t, byte_order, length);
6538  break;
6539  /* No need for a default case here, since Unknown is printed above,
6540  and UNDECODED() is taken care of by dissect_x11_request */
6541  }
6542 }
6543 
6544 static void register_dri3(void)
6545 {
6546  set_handler("DRI3", dispatch_dri3, dri3_errors, dri3_events, NULL, dri3_replies);
6547 }
6548 
6549 static void geQueryVersion(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
6550 {
6551  proto_tree_add_item(t, hf_x11_ge_QueryVersion_client_major_version, tvb, *offsetp, 2, byte_order);
6552  *offsetp += 2;
6553  proto_tree_add_item(t, hf_x11_ge_QueryVersion_client_minor_version, tvb, *offsetp, 2, byte_order);
6554  *offsetp += 2;
6555 }
6556 static void geQueryVersion_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
6557 {
6558  int sequence_number;
6559 
6560  col_append_fstr(pinfo->cinfo, COL_INFO, "-QueryVersion");
6561 
6562  REPLY(reply);
6563  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
6564  *offsetp += 1;
6565  sequence_number = tvb_get_guint16(tvb, *offsetp, byte_order);
6566  proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
6567  "%d (ge-QueryVersion)", sequence_number);
6568  *offsetp += 2;
6569  proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
6570  *offsetp += 4;
6571  proto_tree_add_item(t, hf_x11_ge_QueryVersion_reply_major_version, tvb, *offsetp, 2, byte_order);
6572  *offsetp += 2;
6573  proto_tree_add_item(t, hf_x11_ge_QueryVersion_reply_minor_version, tvb, *offsetp, 2, byte_order);
6574  *offsetp += 2;
6575  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 20, ENC_NA);
6576  *offsetp += 20;
6577 }
6578 static const value_string ge_extension_minor[] = {
6579  { 0, "QueryVersion" },
6580  { 0, NULL }
6581 };
6582 const x11_event_info ge_events[] = {
6583  { NULL, NULL }
6584 };
6585 static x11_reply_info ge_replies[] = {
6586  { 0, geQueryVersion_Reply },
6587  { 0, NULL }
6588 };
6589 
6590 static void dispatch_ge(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
6591 {
6592  int minor, length;
6593  minor = CARD8(ge_extension_minor);
6594  length = REQUEST_LENGTH();
6595 
6596  col_append_fstr(pinfo->cinfo, COL_INFO, "-%s",
6597  val_to_str(minor, ge_extension_minor,
6598  "<Unknown opcode %d>"));
6599  switch (minor) {
6600  case 0:
6601  geQueryVersion(tvb, pinfo, offsetp, t, byte_order, length);
6602  break;
6603  /* No need for a default case here, since Unknown is printed above,
6604  and UNDECODED() is taken care of by dissect_x11_request */
6605  }
6606 }
6607 
6608 static void register_ge(void)
6609 {
6610  set_handler("Generic Event Extension", dispatch_ge, ge_errors, ge_events, NULL, ge_replies);
6611 }
6612 
6613 static void glxBufferSwapComplete(tvbuff_t *tvb, int *offsetp, proto_tree *t, guint byte_order)
6614 {
6615  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
6616  *offsetp += 1;
6617  CARD16(event_sequencenumber);
6618  proto_tree_add_item(t, hf_x11_glx_BufferSwapComplete_event_type, tvb, *offsetp, 2, byte_order);
6619  *offsetp += 2;
6620  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 2, ENC_NA);
6621  *offsetp += 2;
6622  proto_tree_add_item(t, hf_x11_glx_BufferSwapComplete_drawable, tvb, *offsetp, 4, byte_order);
6623  *offsetp += 4;
6624  proto_tree_add_item(t, hf_x11_glx_BufferSwapComplete_ust_hi, tvb, *offsetp, 4, byte_order);
6625  *offsetp += 4;
6626  proto_tree_add_item(t, hf_x11_glx_BufferSwapComplete_ust_lo, tvb, *offsetp, 4, byte_order);
6627  *offsetp += 4;
6628  proto_tree_add_item(t, hf_x11_glx_BufferSwapComplete_msc_hi, tvb, *offsetp, 4, byte_order);
6629  *offsetp += 4;
6630  proto_tree_add_item(t, hf_x11_glx_BufferSwapComplete_msc_lo, tvb, *offsetp, 4, byte_order);
6631  *offsetp += 4;
6632  proto_tree_add_item(t, hf_x11_glx_BufferSwapComplete_sbc, tvb, *offsetp, 4, byte_order);
6633  *offsetp += 4;
6634 }
6635 
6636 
6637 static void glxRender(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
6638 {
6639  proto_tree_add_item(t, hf_x11_glx_Render_context_tag, tvb, *offsetp, 4, byte_order);
6640  *offsetp += 4;
6641  dispatch_glx_render(tvb, pinfo, offsetp, t, byte_order, (length - 8));
6642 }
6643 
6644 static void glxRenderLarge(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
6645 {
6646  int f_data_len;
6647  proto_tree_add_item(t, hf_x11_glx_RenderLarge_context_tag, tvb, *offsetp, 4, byte_order);
6648  *offsetp += 4;
6649  proto_tree_add_item(t, hf_x11_glx_RenderLarge_request_num, tvb, *offsetp, 2, byte_order);
6650  *offsetp += 2;
6651  proto_tree_add_item(t, hf_x11_glx_RenderLarge_request_total, tvb, *offsetp, 2, byte_order);
6652  *offsetp += 2;
6653  f_data_len = tvb_get_guint32(tvb, *offsetp, byte_order);
6654  proto_tree_add_item(t, hf_x11_glx_RenderLarge_data_len, tvb, *offsetp, 4, byte_order);
6655  *offsetp += 4;
6656  listOfByte(tvb, offsetp, t, hf_x11_glx_RenderLarge_data, f_data_len, byte_order);
6657  length -= f_data_len * 1;
6658 }
6659 
6660 static void glxCreateContext(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
6661 {
6662  proto_tree_add_item(t, hf_x11_glx_CreateContext_context, tvb, *offsetp, 4, byte_order);
6663  *offsetp += 4;
6664  proto_tree_add_item(t, hf_x11_glx_CreateContext_visual, tvb, *offsetp, 4, byte_order);
6665  *offsetp += 4;
6666  proto_tree_add_item(t, hf_x11_glx_CreateContext_screen, tvb, *offsetp, 4, byte_order);
6667  *offsetp += 4;
6668  proto_tree_add_item(t, hf_x11_glx_CreateContext_share_list, tvb, *offsetp, 4, byte_order);
6669  *offsetp += 4;
6670  proto_tree_add_item(t, hf_x11_glx_CreateContext_is_direct, tvb, *offsetp, 1, byte_order);
6671  *offsetp += 1;
6672  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 3, ENC_NA);
6673  *offsetp += 3;
6674 }
6675 
6676 static void glxDestroyContext(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
6677 {
6678  proto_tree_add_item(t, hf_x11_glx_DestroyContext_context, tvb, *offsetp, 4, byte_order);
6679  *offsetp += 4;
6680 }
6681 
6682 static void glxMakeCurrent(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
6683 {
6684  proto_tree_add_item(t, hf_x11_glx_MakeCurrent_drawable, tvb, *offsetp, 4, byte_order);
6685  *offsetp += 4;
6686  proto_tree_add_item(t, hf_x11_glx_MakeCurrent_context, tvb, *offsetp, 4, byte_order);
6687  *offsetp += 4;
6688  proto_tree_add_item(t, hf_x11_glx_MakeCurrent_old_context_tag, tvb, *offsetp, 4, byte_order);
6689  *offsetp += 4;
6690 }
6691 static void glxMakeCurrent_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
6692 {
6693  int sequence_number;
6694 
6695  col_append_fstr(pinfo->cinfo, COL_INFO, "-MakeCurrent");
6696 
6697  REPLY(reply);
6698  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
6699  *offsetp += 1;
6700  sequence_number = tvb_get_guint16(tvb, *offsetp, byte_order);
6701  proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
6702  "%d (glx-MakeCurrent)", sequence_number);
6703  *offsetp += 2;
6704  proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
6705  *offsetp += 4;
6706  proto_tree_add_item(t, hf_x11_glx_MakeCurrent_reply_context_tag, tvb, *offsetp, 4, byte_order);
6707  *offsetp += 4;
6708  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 20, ENC_NA);
6709  *offsetp += 20;
6710 }
6711 
6712 static void glxIsDirect(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
6713 {
6714  proto_tree_add_item(t, hf_x11_glx_IsDirect_context, tvb, *offsetp, 4, byte_order);
6715  *offsetp += 4;
6716 }
6717 static void glxIsDirect_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
6718 {
6719  int sequence_number;
6720 
6721  col_append_fstr(pinfo->cinfo, COL_INFO, "-IsDirect");
6722 
6723  REPLY(reply);
6724  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
6725  *offsetp += 1;
6726  sequence_number = tvb_get_guint16(tvb, *offsetp, byte_order);
6727  proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
6728  "%d (glx-IsDirect)", sequence_number);
6729  *offsetp += 2;
6730  proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
6731  *offsetp += 4;
6732  proto_tree_add_item(t, hf_x11_glx_IsDirect_reply_is_direct, tvb, *offsetp, 1, byte_order);
6733  *offsetp += 1;
6734  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 23, ENC_NA);
6735  *offsetp += 23;
6736 }
6737 
6738 static void glxQueryVersion(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
6739 {
6740  proto_tree_add_item(t, hf_x11_glx_QueryVersion_major_version, tvb, *offsetp, 4, byte_order);
6741  *offsetp += 4;
6742  proto_tree_add_item(t, hf_x11_glx_QueryVersion_minor_version, tvb, *offsetp, 4, byte_order);
6743  *offsetp += 4;
6744 }
6745 static void glxQueryVersion_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
6746 {
6747  int sequence_number;
6748 
6749  col_append_fstr(pinfo->cinfo, COL_INFO, "-QueryVersion");
6750 
6751  REPLY(reply);
6752  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
6753  *offsetp += 1;
6754  sequence_number = tvb_get_guint16(tvb, *offsetp, byte_order);
6755  proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
6756  "%d (glx-QueryVersion)", sequence_number);
6757  *offsetp += 2;
6758  proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
6759  *offsetp += 4;
6760  proto_tree_add_item(t, hf_x11_glx_QueryVersion_reply_major_version, tvb, *offsetp, 4, byte_order);
6761  *offsetp += 4;
6762  proto_tree_add_item(t, hf_x11_glx_QueryVersion_reply_minor_version, tvb, *offsetp, 4, byte_order);
6763  *offsetp += 4;
6764  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 16, ENC_NA);
6765  *offsetp += 16;
6766 }
6767 
6768 static void glxWaitGL(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
6769 {
6770  proto_tree_add_item(t, hf_x11_glx_WaitGL_context_tag, tvb, *offsetp, 4, byte_order);
6771  *offsetp += 4;
6772 }
6773 
6774 static void glxWaitX(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
6775 {
6776  proto_tree_add_item(t, hf_x11_glx_WaitX_context_tag, tvb, *offsetp, 4, byte_order);
6777  *offsetp += 4;
6778 }
6779 
6780 static void glxCopyContext(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
6781 {
6782  proto_tree_add_item(t, hf_x11_glx_CopyContext_src, tvb, *offsetp, 4, byte_order);
6783  *offsetp += 4;
6784  proto_tree_add_item(t, hf_x11_glx_CopyContext_dest, tvb, *offsetp, 4, byte_order);
6785  *offsetp += 4;
6786  proto_tree_add_item(t, hf_x11_glx_CopyContext_mask, tvb, *offsetp, 4, byte_order);
6787  *offsetp += 4;
6788  proto_tree_add_item(t, hf_x11_glx_CopyContext_src_context_tag, tvb, *offsetp, 4, byte_order);
6789  *offsetp += 4;
6790 }
6791 
6792 static void glxSwapBuffers(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
6793 {
6794  proto_tree_add_item(t, hf_x11_glx_SwapBuffers_context_tag, tvb, *offsetp, 4, byte_order);
6795  *offsetp += 4;
6796  proto_tree_add_item(t, hf_x11_glx_SwapBuffers_drawable, tvb, *offsetp, 4, byte_order);
6797  *offsetp += 4;
6798 }
6799 
6800 static void glxUseXFont(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
6801 {
6802  proto_tree_add_item(t, hf_x11_glx_UseXFont_context_tag, tvb, *offsetp, 4, byte_order);
6803  *offsetp += 4;
6804  proto_tree_add_item(t, hf_x11_glx_UseXFont_font, tvb, *offsetp, 4, byte_order);
6805  *offsetp += 4;
6806  proto_tree_add_item(t, hf_x11_glx_UseXFont_first, tvb, *offsetp, 4, byte_order);
6807  *offsetp += 4;
6808  proto_tree_add_item(t, hf_x11_glx_UseXFont_count, tvb, *offsetp, 4, byte_order);
6809  *offsetp += 4;
6810  proto_tree_add_item(t, hf_x11_glx_UseXFont_list_base, tvb, *offsetp, 4, byte_order);
6811  *offsetp += 4;
6812 }
6813 
6814 static void glxCreateGLXPixmap(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
6815 {
6816  proto_tree_add_item(t, hf_x11_glx_CreateGLXPixmap_screen, tvb, *offsetp, 4, byte_order);
6817  *offsetp += 4;
6818  proto_tree_add_item(t, hf_x11_glx_CreateGLXPixmap_visual, tvb, *offsetp, 4, byte_order);
6819  *offsetp += 4;
6820  proto_tree_add_item(t, hf_x11_glx_CreateGLXPixmap_pixmap, tvb, *offsetp, 4, byte_order);
6821  *offsetp += 4;
6822  proto_tree_add_item(t, hf_x11_glx_CreateGLXPixmap_glx_pixmap, tvb, *offsetp, 4, byte_order);
6823  *offsetp += 4;
6824 }
6825 
6826 static void glxGetVisualConfigs(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
6827 {
6828  proto_tree_add_item(t, hf_x11_glx_GetVisualConfigs_screen, tvb, *offsetp, 4, byte_order);
6829  *offsetp += 4;
6830 }
6831 static void glxGetVisualConfigs_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
6832 {
6833  int sequence_number;
6834  int f_length;
6835 
6836  col_append_fstr(pinfo->cinfo, COL_INFO, "-GetVisualConfigs");
6837 
6838  REPLY(reply);
6839  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
6840  *offsetp += 1;
6841  sequence_number = tvb_get_guint16(tvb, *offsetp, byte_order);
6842  proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
6843  "%d (glx-GetVisualConfigs)", sequence_number);
6844  *offsetp += 2;
6845  f_length = tvb_get_guint32(tvb, *offsetp, byte_order);
6846  proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
6847  *offsetp += 4;
6848  proto_tree_add_item(t, hf_x11_glx_GetVisualConfigs_reply_num_visuals, tvb, *offsetp, 4, byte_order);
6849  *offsetp += 4;
6850  proto_tree_add_item(t, hf_x11_glx_GetVisualConfigs_reply_num_properties, tvb, *offsetp, 4, byte_order);
6851  *offsetp += 4;
6852  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 16, ENC_NA);
6853  *offsetp += 16;
6854  listOfCard32(tvb, offsetp, t, hf_x11_glx_GetVisualConfigs_reply_property_list, hf_x11_glx_GetVisualConfigs_reply_property_list_item, f_length, byte_order);
6855 }
6856 
6857 static void glxDestroyGLXPixmap(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
6858 {
6859  proto_tree_add_item(t, hf_x11_glx_DestroyGLXPixmap_glx_pixmap, tvb, *offsetp, 4, byte_order);
6860  *offsetp += 4;
6861 }
6862 
6863 static void glxVendorPrivate(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_VendorPrivate_vendor_code, tvb, *offsetp, 4, byte_order);
6866  *offsetp += 4;
6867  proto_tree_add_item(t, hf_x11_glx_VendorPrivate_context_tag, tvb, *offsetp, 4, byte_order);
6868  *offsetp += 4;
6869  listOfByte(tvb, offsetp, t, hf_x11_glx_VendorPrivate_data, (length - 12) / 1, byte_order);
6870 }
6871 
6872 static void glxVendorPrivateWithReply(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
6873 {
6874  proto_tree_add_item(t, hf_x11_glx_VendorPrivateWithReply_vendor_code, tvb, *offsetp, 4, byte_order);
6875  *offsetp += 4;
6876  proto_tree_add_item(t, hf_x11_glx_VendorPrivateWithReply_context_tag, tvb, *offsetp, 4, byte_order);
6877  *offsetp += 4;
6878  listOfByte(tvb, offsetp, t, hf_x11_glx_VendorPrivateWithReply_data, (length - 12) / 1, byte_order);
6879 }
6880 static void glxVendorPrivateWithReply_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
6881 {
6882  int sequence_number;
6883  int f_length;
6884 
6885  col_append_fstr(pinfo->cinfo, COL_INFO, "-VendorPrivateWithReply");
6886 
6887  REPLY(reply);
6888  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
6889  *offsetp += 1;
6890  sequence_number = tvb_get_guint16(tvb, *offsetp, byte_order);
6891  proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
6892  "%d (glx-VendorPrivateWithReply)", sequence_number);
6893  *offsetp += 2;
6894  f_length = tvb_get_guint32(tvb, *offsetp, byte_order);
6895  proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
6896  *offsetp += 4;
6897  proto_tree_add_item(t, hf_x11_glx_VendorPrivateWithReply_reply_retval, tvb, *offsetp, 4, byte_order);
6898  *offsetp += 4;
6899  listOfByte(tvb, offsetp, t, hf_x11_glx_VendorPrivateWithReply_reply_data1, 24, byte_order);
6900  listOfByte(tvb, offsetp, t, hf_x11_glx_VendorPrivateWithReply_reply_data2, (f_length * 4), byte_order);
6901 }
6902 
6903 static void glxQueryExtensionsString(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
6904 {
6905  proto_tree_add_item(t, hf_x11_glx_QueryExtensionsString_screen, tvb, *offsetp, 4, byte_order);
6906  *offsetp += 4;
6907 }
6908 static void glxQueryExtensionsString_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
6909 {
6910  int sequence_number;
6911 
6912  col_append_fstr(pinfo->cinfo, COL_INFO, "-QueryExtensionsString");
6913 
6914  REPLY(reply);
6915  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
6916  *offsetp += 1;
6917  sequence_number = tvb_get_guint16(tvb, *offsetp, byte_order);
6918  proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
6919  "%d (glx-QueryExtensionsString)", sequence_number);
6920  *offsetp += 2;
6921  proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
6922  *offsetp += 4;
6923  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 4, ENC_NA);
6924  *offsetp += 4;
6925  proto_tree_add_item(t, hf_x11_glx_QueryExtensionsString_reply_n, tvb, *offsetp, 4, byte_order);
6926  *offsetp += 4;
6927  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 16, ENC_NA);
6928  *offsetp += 16;
6929 }
6930 
6931 static void glxQueryServerString(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
6932 {
6933  proto_tree_add_item(t, hf_x11_glx_QueryServerString_screen, tvb, *offsetp, 4, byte_order);
6934  *offsetp += 4;
6935  proto_tree_add_item(t, hf_x11_glx_QueryServerString_name, tvb, *offsetp, 4, byte_order);
6936  *offsetp += 4;
6937 }
6938 static void glxQueryServerString_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
6939 {
6940  int sequence_number;
6941  int f_str_len;
6942 
6943  col_append_fstr(pinfo->cinfo, COL_INFO, "-QueryServerString");
6944 
6945  REPLY(reply);
6946  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
6947  *offsetp += 1;
6948  sequence_number = tvb_get_guint16(tvb, *offsetp, byte_order);
6949  proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
6950  "%d (glx-QueryServerString)", sequence_number);
6951  *offsetp += 2;
6952  proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
6953  *offsetp += 4;
6954  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 4, ENC_NA);
6955  *offsetp += 4;
6956  f_str_len = tvb_get_guint32(tvb, *offsetp, byte_order);
6957  proto_tree_add_item(t, hf_x11_glx_QueryServerString_reply_str_len, tvb, *offsetp, 4, byte_order);
6958  *offsetp += 4;
6959  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 16, ENC_NA);
6960  *offsetp += 16;
6961  listOfByte(tvb, offsetp, t, hf_x11_glx_QueryServerString_reply_string, f_str_len, byte_order);
6962 }
6963 
6964 static void glxClientInfo(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
6965 {
6966  int f_str_len;
6967  proto_tree_add_item(t, hf_x11_glx_ClientInfo_major_version, tvb, *offsetp, 4, byte_order);
6968  *offsetp += 4;
6969  proto_tree_add_item(t, hf_x11_glx_ClientInfo_minor_version, tvb, *offsetp, 4, byte_order);
6970  *offsetp += 4;
6971  f_str_len = tvb_get_guint32(tvb, *offsetp, byte_order);
6972  proto_tree_add_item(t, hf_x11_glx_ClientInfo_str_len, tvb, *offsetp, 4, byte_order);
6973  *offsetp += 4;
6974  listOfByte(tvb, offsetp, t, hf_x11_glx_ClientInfo_string, f_str_len, byte_order);
6975  length -= f_str_len * 1;
6976 }
6977 
6978 static void glxGetFBConfigs(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
6979 {
6980  proto_tree_add_item(t, hf_x11_glx_GetFBConfigs_screen, tvb, *offsetp, 4, byte_order);
6981  *offsetp += 4;
6982 }
6983 static void glxGetFBConfigs_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
6984 {
6985  int sequence_number;
6986  int f_length;
6987 
6988  col_append_fstr(pinfo->cinfo, COL_INFO, "-GetFBConfigs");
6989 
6990  REPLY(reply);
6991  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
6992  *offsetp += 1;
6993  sequence_number = tvb_get_guint16(tvb, *offsetp, byte_order);
6994  proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
6995  "%d (glx-GetFBConfigs)", sequence_number);
6996  *offsetp += 2;
6997  f_length = tvb_get_guint32(tvb, *offsetp, byte_order);
6998  proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
6999  *offsetp += 4;
7000  proto_tree_add_item(t, hf_x11_glx_GetFBConfigs_reply_num_FB_configs, tvb, *offsetp, 4, byte_order);
7001  *offsetp += 4;
7002  proto_tree_add_item(t, hf_x11_glx_GetFBConfigs_reply_num_properties, tvb, *offsetp, 4, byte_order);
7003  *offsetp += 4;
7004  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 16, ENC_NA);
7005  *offsetp += 16;
7006  listOfCard32(tvb, offsetp, t, hf_x11_glx_GetFBConfigs_reply_property_list, hf_x11_glx_GetFBConfigs_reply_property_list_item, f_length, byte_order);
7007 }
7008 
7009 static void glxCreatePixmap(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
7010 {
7011  int f_num_attribs;
7012  proto_tree_add_item(t, hf_x11_glx_CreatePixmap_screen, tvb, *offsetp, 4, byte_order);
7013  *offsetp += 4;
7014  proto_tree_add_item(t, hf_x11_glx_CreatePixmap_fbconfig, tvb, *offsetp, 4, byte_order);
7015  *offsetp += 4;
7016  proto_tree_add_item(t, hf_x11_glx_CreatePixmap_pixmap, tvb, *offsetp, 4, byte_order);
7017  *offsetp += 4;
7018  proto_tree_add_item(t, hf_x11_glx_CreatePixmap_glx_pixmap, tvb, *offsetp, 4, byte_order);
7019  *offsetp += 4;
7020  f_num_attribs = tvb_get_guint32(tvb, *offsetp, byte_order);
7021  proto_tree_add_item(t, hf_x11_glx_CreatePixmap_num_attribs, tvb, *offsetp, 4, byte_order);
7022  *offsetp += 4;
7023  listOfCard32(tvb, offsetp, t, hf_x11_glx_CreatePixmap_attribs, hf_x11_glx_CreatePixmap_attribs_item, (f_num_attribs * 2), byte_order);
7024  length -= (f_num_attribs * 2) * 4;
7025 }
7026 
7027 static void glxDestroyPixmap(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
7028 {
7029  proto_tree_add_item(t, hf_x11_glx_DestroyPixmap_glx_pixmap, tvb, *offsetp, 4, byte_order);
7030  *offsetp += 4;
7031 }
7032 
7033 static void glxCreateNewContext(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
7034 {
7035  proto_tree_add_item(t, hf_x11_glx_CreateNewContext_context, tvb, *offsetp, 4, byte_order);
7036  *offsetp += 4;
7037  proto_tree_add_item(t, hf_x11_glx_CreateNewContext_fbconfig, tvb, *offsetp, 4, byte_order);
7038  *offsetp += 4;
7039  proto_tree_add_item(t, hf_x11_glx_CreateNewContext_screen, tvb, *offsetp, 4, byte_order);
7040  *offsetp += 4;
7041  proto_tree_add_item(t, hf_x11_glx_CreateNewContext_render_type, tvb, *offsetp, 4, byte_order);
7042  *offsetp += 4;
7043  proto_tree_add_item(t, hf_x11_glx_CreateNewContext_share_list, tvb, *offsetp, 4, byte_order);
7044  *offsetp += 4;
7045  proto_tree_add_item(t, hf_x11_glx_CreateNewContext_is_direct, tvb, *offsetp, 1, byte_order);
7046  *offsetp += 1;
7047  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 3, ENC_NA);
7048  *offsetp += 3;
7049 }
7050 
7051 static void glxQueryContext(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
7052 {
7053  proto_tree_add_item(t, hf_x11_glx_QueryContext_context, tvb, *offsetp, 4, byte_order);
7054  *offsetp += 4;
7055 }
7056 static void glxQueryContext_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
7057 {
7058  int sequence_number;
7059  int f_num_attribs;
7060 
7061  col_append_fstr(pinfo->cinfo, COL_INFO, "-QueryContext");
7062 
7063  REPLY(reply);
7064  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
7065  *offsetp += 1;
7066  sequence_number = tvb_get_guint16(tvb, *offsetp, byte_order);
7067  proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
7068  "%d (glx-QueryContext)", sequence_number);
7069  *offsetp += 2;
7070  proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
7071  *offsetp += 4;
7072  f_num_attribs = tvb_get_guint32(tvb, *offsetp, byte_order);
7073  proto_tree_add_item(t, hf_x11_glx_QueryContext_reply_num_attribs, tvb, *offsetp, 4, byte_order);
7074  *offsetp += 4;
7075  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 20, ENC_NA);
7076  *offsetp += 20;
7077  listOfCard32(tvb, offsetp, t, hf_x11_glx_QueryContext_reply_attribs, hf_x11_glx_QueryContext_reply_attribs_item, (f_num_attribs * 2), byte_order);
7078 }
7079 
7080 static void glxMakeContextCurrent(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
7081 {
7082  proto_tree_add_item(t, hf_x11_glx_MakeContextCurrent_old_context_tag, tvb, *offsetp, 4, byte_order);
7083  *offsetp += 4;
7084  proto_tree_add_item(t, hf_x11_glx_MakeContextCurrent_drawable, tvb, *offsetp, 4, byte_order);
7085  *offsetp += 4;
7086  proto_tree_add_item(t, hf_x11_glx_MakeContextCurrent_read_drawable, tvb, *offsetp, 4, byte_order);
7087  *offsetp += 4;
7088  proto_tree_add_item(t, hf_x11_glx_MakeContextCurrent_context, tvb, *offsetp, 4, byte_order);
7089  *offsetp += 4;
7090 }
7091 static void glxMakeContextCurrent_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
7092 {
7093  int sequence_number;
7094 
7095  col_append_fstr(pinfo->cinfo, COL_INFO, "-MakeContextCurrent");
7096 
7097  REPLY(reply);
7098  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
7099  *offsetp += 1;
7100  sequence_number = tvb_get_guint16(tvb, *offsetp, byte_order);
7101  proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
7102  "%d (glx-MakeContextCurrent)", sequence_number);
7103  *offsetp += 2;
7104  proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
7105  *offsetp += 4;
7106  proto_tree_add_item(t, hf_x11_glx_MakeContextCurrent_reply_context_tag, tvb, *offsetp, 4, byte_order);
7107  *offsetp += 4;
7108  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 20, ENC_NA);
7109  *offsetp += 20;
7110 }
7111 
7112 static void glxCreatePbuffer(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
7113 {
7114  int f_num_attribs;
7115  proto_tree_add_item(t, hf_x11_glx_CreatePbuffer_screen, tvb, *offsetp, 4, byte_order);
7116  *offsetp += 4;
7117  proto_tree_add_item(t, hf_x11_glx_CreatePbuffer_fbconfig, tvb, *offsetp, 4, byte_order);
7118  *offsetp += 4;
7119  proto_tree_add_item(t, hf_x11_glx_CreatePbuffer_pbuffer, tvb, *offsetp, 4, byte_order);
7120  *offsetp += 4;
7121  f_num_attribs = tvb_get_guint32(tvb, *offsetp, byte_order);
7122  proto_tree_add_item(t, hf_x11_glx_CreatePbuffer_num_attribs, tvb, *offsetp, 4, byte_order);
7123  *offsetp += 4;
7124  listOfCard32(tvb, offsetp, t, hf_x11_glx_CreatePbuffer_attribs, hf_x11_glx_CreatePbuffer_attribs_item, (f_num_attribs * 2), byte_order);
7125  length -= (f_num_attribs * 2) * 4;
7126 }
7127 
7128 static void glxDestroyPbuffer(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
7129 {
7130  proto_tree_add_item(t, hf_x11_glx_DestroyPbuffer_pbuffer, tvb, *offsetp, 4, byte_order);
7131  *offsetp += 4;
7132 }
7133 
7134 static void glxGetDrawableAttributes(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
7135 {
7136  proto_tree_add_item(t, hf_x11_glx_GetDrawableAttributes_drawable, tvb, *offsetp, 4, byte_order);
7137  *offsetp += 4;
7138 }
7139 static void glxGetDrawableAttributes_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
7140 {
7141  int sequence_number;
7142  int f_num_attribs;
7143 
7144  col_append_fstr(pinfo->cinfo, COL_INFO, "-GetDrawableAttributes");
7145 
7146  REPLY(reply);
7147  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
7148  *offsetp += 1;
7149  sequence_number = tvb_get_guint16(tvb, *offsetp, byte_order);
7150  proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
7151  "%d (glx-GetDrawableAttributes)", sequence_number);
7152  *offsetp += 2;
7153  proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
7154  *offsetp += 4;
7155  f_num_attribs = tvb_get_guint32(tvb, *offsetp, byte_order);
7156  proto_tree_add_item(t, hf_x11_glx_GetDrawableAttributes_reply_num_attribs, tvb, *offsetp, 4, byte_order);
7157  *offsetp += 4;
7158  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 20, ENC_NA);
7159  *offsetp += 20;
7160  listOfCard32(tvb, offsetp, t, hf_x11_glx_GetDrawableAttributes_reply_attribs, hf_x11_glx_GetDrawableAttributes_reply_attribs_item, (f_num_attribs * 2), byte_order);
7161 }
7162 
7163 static void glxChangeDrawableAttributes(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
7164 {
7165  int f_num_attribs;
7166  proto_tree_add_item(t, hf_x11_glx_ChangeDrawableAttributes_drawable, tvb, *offsetp, 4, byte_order);
7167  *offsetp += 4;
7168  f_num_attribs = tvb_get_guint32(tvb, *offsetp, byte_order);
7169  proto_tree_add_item(t, hf_x11_glx_ChangeDrawableAttributes_num_attribs, tvb, *offsetp, 4, byte_order);
7170  *offsetp += 4;
7171  listOfCard32(tvb, offsetp, t, hf_x11_glx_ChangeDrawableAttributes_attribs, hf_x11_glx_ChangeDrawableAttributes_attribs_item, (f_num_attribs * 2), byte_order);
7172  length -= (f_num_attribs * 2) * 4;
7173 }
7174 
7175 static void glxCreateWindow(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
7176 {
7177  int f_num_attribs;
7178  proto_tree_add_item(t, hf_x11_glx_CreateWindow_screen, tvb, *offsetp, 4, byte_order);
7179  *offsetp += 4;
7180  proto_tree_add_item(t, hf_x11_glx_CreateWindow_fbconfig, tvb, *offsetp, 4, byte_order);
7181  *offsetp += 4;
7182  proto_tree_add_item(t, hf_x11_glx_CreateWindow_window, tvb, *offsetp, 4, byte_order);
7183  *offsetp += 4;
7184  proto_tree_add_item(t, hf_x11_glx_CreateWindow_glx_window, tvb, *offsetp, 4, byte_order);
7185  *offsetp += 4;
7186  f_num_attribs = tvb_get_guint32(tvb, *offsetp, byte_order);
7187  proto_tree_add_item(t, hf_x11_glx_CreateWindow_num_attribs, tvb, *offsetp, 4, byte_order);
7188  *offsetp += 4;
7189  listOfCard32(tvb, offsetp, t, hf_x11_glx_CreateWindow_attribs, hf_x11_glx_CreateWindow_attribs_item, (f_num_attribs * 2), byte_order);
7190  length -= (f_num_attribs * 2) * 4;
7191 }
7192 
7193 static void glxDeleteWindow(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
7194 {
7195  proto_tree_add_item(t, hf_x11_glx_DeleteWindow_glxwindow, tvb, *offsetp, 4, byte_order);
7196  *offsetp += 4;
7197 }
7198 
7199 static void glxSetClientInfoARB(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
7200 {
7201  int f_num_versions;
7202  int f_gl_str_len;
7203  int f_glx_str_len;
7204  proto_tree_add_item(t, hf_x11_glx_SetClientInfoARB_major_version, tvb, *offsetp, 4, byte_order);
7205  *offsetp += 4;
7206  proto_tree_add_item(t, hf_x11_glx_SetClientInfoARB_minor_version, tvb, *offsetp, 4, byte_order);
7207  *offsetp += 4;
7208  f_num_versions = tvb_get_guint32(tvb, *offsetp, byte_order);
7209  proto_tree_add_item(t, hf_x11_glx_SetClientInfoARB_num_versions, tvb, *offsetp, 4, byte_order);
7210  *offsetp += 4;
7211  f_gl_str_len = tvb_get_guint32(tvb, *offsetp, byte_order);
7212  proto_tree_add_item(t, hf_x11_glx_SetClientInfoARB_gl_str_len, tvb, *offsetp, 4, byte_order);
7213  *offsetp += 4;
7214  f_glx_str_len = tvb_get_guint32(tvb, *offsetp, byte_order);
7215  proto_tree_add_item(t, hf_x11_glx_SetClientInfoARB_glx_str_len, tvb, *offsetp, 4, byte_order);
7216  *offsetp += 4;
7217  listOfCard32(tvb, offsetp, t, hf_x11_glx_SetClientInfoARB_gl_versions, hf_x11_glx_SetClientInfoARB_gl_versions_item, (f_num_versions * 2), byte_order);
7218  length -= (f_num_versions * 2) * 4;
7219  listOfByte(tvb, offsetp, t, hf_x11_glx_SetClientInfoARB_gl_extension_string, f_gl_str_len, byte_order);
7220  length -= f_gl_str_len * 1;
7221  listOfByte(tvb, offsetp, t, hf_x11_glx_SetClientInfoARB_glx_extension_string, f_glx_str_len, byte_order);
7222  length -= f_glx_str_len * 1;
7223 }
7224 
7225 static void glxCreateContextAttribsARB(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
7226 {
7227  int f_num_attribs;
7228  proto_tree_add_item(t, hf_x11_glx_CreateContextAttribsARB_context, tvb, *offsetp, 4, byte_order);
7229  *offsetp += 4;
7230  proto_tree_add_item(t, hf_x11_glx_CreateContextAttribsARB_fbconfig, tvb, *offsetp, 4, byte_order);
7231  *offsetp += 4;
7232  proto_tree_add_item(t, hf_x11_glx_CreateContextAttribsARB_screen, tvb, *offsetp, 4, byte_order);
7233  *offsetp += 4;
7234  proto_tree_add_item(t, hf_x11_glx_CreateContextAttribsARB_share_list, tvb, *offsetp, 4, byte_order);
7235  *offsetp += 4;
7236  proto_tree_add_item(t, hf_x11_glx_CreateContextAttribsARB_is_direct, tvb, *offsetp, 1, byte_order);
7237  *offsetp += 1;
7238  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 3, ENC_NA);
7239  *offsetp += 3;
7240  f_num_attribs = tvb_get_guint32(tvb, *offsetp, byte_order);
7241  proto_tree_add_item(t, hf_x11_glx_CreateContextAttribsARB_num_attribs, tvb, *offsetp, 4, byte_order);
7242  *offsetp += 4;
7243  listOfCard32(tvb, offsetp, t, hf_x11_glx_CreateContextAttribsARB_attribs, hf_x11_glx_CreateContextAttribsARB_attribs_item, (f_num_attribs * 2), byte_order);
7244  length -= (f_num_attribs * 2) * 4;
7245 }
7246 
7247 static void glxSetClientInfo2ARB(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
7248 {
7249  int f_num_versions;
7250  int f_gl_str_len;
7251  int f_glx_str_len;
7252  proto_tree_add_item(t, hf_x11_glx_SetClientInfo2ARB_major_version, tvb, *offsetp, 4, byte_order);
7253  *offsetp += 4;
7254  proto_tree_add_item(t, hf_x11_glx_SetClientInfo2ARB_minor_version, tvb, *offsetp, 4, byte_order);
7255  *offsetp += 4;
7256  f_num_versions = tvb_get_guint32(tvb, *offsetp, byte_order);
7257  proto_tree_add_item(t, hf_x11_glx_SetClientInfo2ARB_num_versions, tvb, *offsetp, 4, byte_order);
7258  *offsetp += 4;
7259  f_gl_str_len = tvb_get_guint32(tvb, *offsetp, byte_order);
7260  proto_tree_add_item(t, hf_x11_glx_SetClientInfo2ARB_gl_str_len, tvb, *offsetp, 4, byte_order);
7261  *offsetp += 4;
7262  f_glx_str_len = tvb_get_guint32(tvb, *offsetp, byte_order);
7263  proto_tree_add_item(t, hf_x11_glx_SetClientInfo2ARB_glx_str_len, tvb, *offsetp, 4, byte_order);
7264  *offsetp += 4;
7265  listOfCard32(tvb, offsetp, t, hf_x11_glx_SetClientInfo2ARB_gl_versions, hf_x11_glx_SetClientInfo2ARB_gl_versions_item, (f_num_versions * 3), byte_order);
7266  length -= (f_num_versions * 3) * 4;
7267  listOfByte(tvb, offsetp, t, hf_x11_glx_SetClientInfo2ARB_gl_extension_string, f_gl_str_len, byte_order);
7268  length -= f_gl_str_len * 1;
7269  listOfByte(tvb, offsetp, t, hf_x11_glx_SetClientInfo2ARB_glx_extension_string, f_glx_str_len, byte_order);
7270  length -= f_glx_str_len * 1;
7271 }
7272 
7273 static void glxNewList(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
7274 {
7275  proto_tree_add_item(t, hf_x11_glx_NewList_context_tag, tvb, *offsetp, 4, byte_order);
7276  *offsetp += 4;
7277  proto_tree_add_item(t, hf_x11_glx_NewList_list, tvb, *offsetp, 4, byte_order);
7278  *offsetp += 4;
7279  proto_tree_add_item(t, hf_x11_glx_NewList_mode, tvb, *offsetp, 4, byte_order);
7280  *offsetp += 4;
7281 }
7282 
7283 static void glxEndList(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
7284 {
7285  proto_tree_add_item(t, hf_x11_glx_EndList_context_tag, tvb, *offsetp, 4, byte_order);
7286  *offsetp += 4;
7287 }
7288 
7289 static void glxDeleteLists(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
7290 {
7291  proto_tree_add_item(t, hf_x11_glx_DeleteLists_context_tag, tvb, *offsetp, 4, byte_order);
7292  *offsetp += 4;
7293  proto_tree_add_item(t, hf_x11_glx_DeleteLists_list, tvb, *offsetp, 4, byte_order);
7294  *offsetp += 4;
7295  proto_tree_add_item(t, hf_x11_glx_DeleteLists_range, tvb, *offsetp, 4, byte_order);
7296  *offsetp += 4;
7297 }
7298 
7299 static void glxGenLists(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
7300 {
7301  proto_tree_add_item(t, hf_x11_glx_GenLists_context_tag, tvb, *offsetp, 4, byte_order);
7302  *offsetp += 4;
7303  proto_tree_add_item(t, hf_x11_glx_GenLists_range, tvb, *offsetp, 4, byte_order);
7304  *offsetp += 4;
7305 }
7306 static void glxGenLists_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
7307 {
7308  int sequence_number;
7309 
7310  col_append_fstr(pinfo->cinfo, COL_INFO, "-GenLists");
7311 
7312  REPLY(reply);
7313  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
7314  *offsetp += 1;
7315  sequence_number = tvb_get_guint16(tvb, *offsetp, byte_order);
7316  proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
7317  "%d (glx-GenLists)", sequence_number);
7318  *offsetp += 2;
7319  proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
7320  *offsetp += 4;
7321  proto_tree_add_item(t, hf_x11_glx_GenLists_reply_ret_val, tvb, *offsetp, 4, byte_order);
7322  *offsetp += 4;
7323 }
7324 
7325 static void glxFeedbackBuffer(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
7326 {
7327  proto_tree_add_item(t, hf_x11_glx_FeedbackBuffer_context_tag, tvb, *offsetp, 4, byte_order);
7328  *offsetp += 4;
7329  proto_tree_add_item(t, hf_x11_glx_FeedbackBuffer_size, tvb, *offsetp, 4, byte_order);
7330  *offsetp += 4;
7331  proto_tree_add_item(t, hf_x11_glx_FeedbackBuffer_type, tvb, *offsetp, 4, byte_order);
7332  *offsetp += 4;
7333 }
7334 
7335 static void glxSelectBuffer(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
7336 {
7337  proto_tree_add_item(t, hf_x11_glx_SelectBuffer_context_tag, tvb, *offsetp, 4, byte_order);
7338  *offsetp += 4;
7339  proto_tree_add_item(t, hf_x11_glx_SelectBuffer_size, tvb, *offsetp, 4, byte_order);
7340  *offsetp += 4;
7341 }
7342 
7343 static void glxRenderMode(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
7344 {
7345  proto_tree_add_item(t, hf_x11_glx_RenderMode_context_tag, tvb, *offsetp, 4, byte_order);
7346  *offsetp += 4;
7347  proto_tree_add_item(t, hf_x11_glx_RenderMode_mode, tvb, *offsetp, 4, byte_order);
7348  *offsetp += 4;
7349 }
7350 static void glxRenderMode_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
7351 {
7352  int sequence_number;
7353  int f_n;
7354 
7355  col_append_fstr(pinfo->cinfo, COL_INFO, "-RenderMode");
7356 
7357  REPLY(reply);
7358  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
7359  *offsetp += 1;
7360  sequence_number = tvb_get_guint16(tvb, *offsetp, byte_order);
7361  proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
7362  "%d (glx-RenderMode)", sequence_number);
7363  *offsetp += 2;
7364  proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
7365  *offsetp += 4;
7366  proto_tree_add_item(t, hf_x11_glx_RenderMode_reply_ret_val, tvb, *offsetp, 4, byte_order);
7367  *offsetp += 4;
7368  f_n = tvb_get_guint32(tvb, *offsetp, byte_order);
7369  proto_tree_add_item(t, hf_x11_glx_RenderMode_reply_n, tvb, *offsetp, 4, byte_order);
7370  *offsetp += 4;
7371  proto_tree_add_item(t, hf_x11_glx_RenderMode_reply_new_mode, tvb, *offsetp, 4, byte_order);
7372  *offsetp += 4;
7373  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 12, ENC_NA);
7374  *offsetp += 12;
7375  listOfCard32(tvb, offsetp, t, hf_x11_glx_RenderMode_reply_data, hf_x11_glx_RenderMode_reply_data_item, f_n, byte_order);
7376 }
7377 
7378 static void glxFinish(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
7379 {
7380  proto_tree_add_item(t, hf_x11_glx_Finish_context_tag, tvb, *offsetp, 4, byte_order);
7381  *offsetp += 4;
7382 }
7383 static void glxFinish_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
7384 {
7385  int sequence_number;
7386 
7387  col_append_fstr(pinfo->cinfo, COL_INFO, "-Finish");
7388 
7389  REPLY(reply);
7390  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
7391  *offsetp += 1;
7392  sequence_number = tvb_get_guint16(tvb, *offsetp, byte_order);
7393  proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
7394  "%d (glx-Finish)", sequence_number);
7395  *offsetp += 2;
7396  proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
7397  *offsetp += 4;
7398 }
7399 
7400 static void glxPixelStoref(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
7401 {
7402  proto_tree_add_item(t, hf_x11_glx_PixelStoref_context_tag, tvb, *offsetp, 4, byte_order);
7403  *offsetp += 4;
7404  proto_tree_add_item(t, hf_x11_glx_PixelStoref_pname, tvb, *offsetp, 4, byte_order);
7405  *offsetp += 4;
7406  proto_tree_add_item(t, hf_x11_glx_PixelStoref_datum, tvb, *offsetp, 4, byte_order);
7407  *offsetp += 4;
7408 }
7409 
7410 static void glxPixelStorei(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
7411 {
7412  proto_tree_add_item(t, hf_x11_glx_PixelStorei_context_tag, tvb, *offsetp, 4, byte_order);
7413  *offsetp += 4;
7414  proto_tree_add_item(t, hf_x11_glx_PixelStorei_pname, tvb, *offsetp, 4, byte_order);
7415  *offsetp += 4;
7416  proto_tree_add_item(t, hf_x11_glx_PixelStorei_datum, tvb, *offsetp, 4, byte_order);
7417  *offsetp += 4;
7418 }
7419 
7420 static void glxReadPixels(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
7421 {
7422  proto_tree_add_item(t, hf_x11_glx_ReadPixels_context_tag, tvb, *offsetp, 4, byte_order);
7423  *offsetp += 4;
7424  proto_tree_add_item(t, hf_x11_glx_ReadPixels_x, tvb, *offsetp, 4, byte_order);
7425  *offsetp += 4;
7426  proto_tree_add_item(t, hf_x11_glx_ReadPixels_y, tvb, *offsetp, 4, byte_order);
7427  *offsetp += 4;
7428  proto_tree_add_item(t, hf_x11_glx_ReadPixels_width, tvb, *offsetp, 4, byte_order);
7429  *offsetp += 4;
7430  proto_tree_add_item(t, hf_x11_glx_ReadPixels_height, tvb, *offsetp, 4, byte_order);
7431  *offsetp += 4;
7432  proto_tree_add_item(t, hf_x11_glx_ReadPixels_format, tvb, *offsetp, 4, byte_order);
7433  *offsetp += 4;
7434  proto_tree_add_item(t, hf_x11_glx_ReadPixels_type, tvb, *offsetp, 4, byte_order);
7435  *offsetp += 4;
7436  proto_tree_add_item(t, hf_x11_glx_ReadPixels_swap_bytes, tvb, *offsetp, 1, byte_order);
7437  *offsetp += 1;
7438  proto_tree_add_item(t, hf_x11_glx_ReadPixels_lsb_first, tvb, *offsetp, 1, byte_order);
7439  *offsetp += 1;
7440 }
7441 static void glxReadPixels_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
7442 {
7443  int sequence_number;
7444  int f_length;
7445 
7446  col_append_fstr(pinfo->cinfo, COL_INFO, "-ReadPixels");
7447 
7448  REPLY(reply);
7449  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
7450  *offsetp += 1;
7451  sequence_number = tvb_get_guint16(tvb, *offsetp, byte_order);
7452  proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
7453  "%d (glx-ReadPixels)", sequence_number);
7454  *offsetp += 2;
7455  f_length = tvb_get_guint32(tvb, *offsetp, byte_order);
7456  proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
7457  *offsetp += 4;
7458  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 24, ENC_NA);
7459  *offsetp += 24;
7460  listOfByte(tvb, offsetp, t, hf_x11_glx_ReadPixels_reply_data, (f_length * 4), byte_order);
7461 }
7462 
7463 static void glxGetBooleanv(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
7464 {
7465  proto_tree_add_item(t, hf_x11_glx_GetBooleanv_context_tag, tvb, *offsetp, 4, byte_order);
7466  *offsetp += 4;
7467  proto_tree_add_item(t, hf_x11_glx_GetBooleanv_pname, tvb, *offsetp, 4, byte_order);
7468  *offsetp += 4;
7469 }
7470 static void glxGetBooleanv_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
7471 {
7472  int sequence_number;
7473  int f_n;
7474 
7475  col_append_fstr(pinfo->cinfo, COL_INFO, "-GetBooleanv");
7476 
7477  REPLY(reply);
7478  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
7479  *offsetp += 1;
7480  sequence_number = tvb_get_guint16(tvb, *offsetp, byte_order);
7481  proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
7482  "%d (glx-GetBooleanv)", sequence_number);
7483  *offsetp += 2;
7484  proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
7485  *offsetp += 4;
7486  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 4, ENC_NA);
7487  *offsetp += 4;
7488  f_n = tvb_get_guint32(tvb, *offsetp, byte_order);
7489  proto_tree_add_item(t, hf_x11_glx_GetBooleanv_reply_n, tvb, *offsetp, 4, byte_order);
7490  *offsetp += 4;
7491  proto_tree_add_item(t, hf_x11_glx_GetBooleanv_reply_datum, tvb, *offsetp, 1, byte_order);
7492  *offsetp += 1;
7493  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 15, ENC_NA);
7494  *offsetp += 15;
7495  listOfByte(tvb, offsetp, t, hf_x11_glx_GetBooleanv_reply_data, f_n, byte_order);
7496 }
7497 
7498 static void glxGetClipPlane(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
7499 {
7500  proto_tree_add_item(t, hf_x11_glx_GetClipPlane_context_tag, tvb, *offsetp, 4, byte_order);
7501  *offsetp += 4;
7502  proto_tree_add_item(t, hf_x11_glx_GetClipPlane_plane, tvb, *offsetp, 4, byte_order);
7503  *offsetp += 4;
7504 }
7505 static void glxGetClipPlane_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
7506 {
7507  int sequence_number;
7508  int f_length;
7509 
7510  col_append_fstr(pinfo->cinfo, COL_INFO, "-GetClipPlane");
7511 
7512  REPLY(reply);
7513  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
7514  *offsetp += 1;
7515  sequence_number = tvb_get_guint16(tvb, *offsetp, byte_order);
7516  proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
7517  "%d (glx-GetClipPlane)", sequence_number);
7518  *offsetp += 2;
7519  f_length = tvb_get_guint32(tvb, *offsetp, byte_order);
7520  proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
7521  *offsetp += 4;
7522  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 24, ENC_NA);
7523  *offsetp += 24;
7524  listOfDouble(tvb, offsetp, t, hf_x11_glx_GetClipPlane_reply_data, hf_x11_glx_GetClipPlane_reply_data_item, (f_length / 2), byte_order);
7525 }
7526 
7527 static void glxGetDoublev(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
7528 {
7529  proto_tree_add_item(t, hf_x11_glx_GetDoublev_context_tag, tvb, *offsetp, 4, byte_order);
7530  *offsetp += 4;
7531  proto_tree_add_item(t, hf_x11_glx_GetDoublev_pname, tvb, *offsetp, 4, byte_order);
7532  *offsetp += 4;
7533 }
7534 static void glxGetDoublev_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
7535 {
7536  int sequence_number;
7537  int f_n;
7538 
7539  col_append_fstr(pinfo->cinfo, COL_INFO, "-GetDoublev");
7540 
7541  REPLY(reply);
7542  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
7543  *offsetp += 1;
7544  sequence_number = tvb_get_guint16(tvb, *offsetp, byte_order);
7545  proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
7546  "%d (glx-GetDoublev)", sequence_number);
7547  *offsetp += 2;
7548  proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
7549  *offsetp += 4;
7550  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 4, ENC_NA);
7551  *offsetp += 4;
7552  f_n = tvb_get_guint32(tvb, *offsetp, byte_order);
7553  proto_tree_add_item(t, hf_x11_glx_GetDoublev_reply_n, tvb, *offsetp, 4, byte_order);
7554  *offsetp += 4;
7555  proto_tree_add_item(t, hf_x11_glx_GetDoublev_reply_datum, tvb, *offsetp, 8, byte_order);
7556  *offsetp += 8;
7557  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 8, ENC_NA);
7558  *offsetp += 8;
7559  listOfDouble(tvb, offsetp, t, hf_x11_glx_GetDoublev_reply_data, hf_x11_glx_GetDoublev_reply_data_item, f_n, byte_order);
7560 }
7561 
7562 static void glxGetError(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
7563 {
7564  proto_tree_add_item(t, hf_x11_glx_GetError_context_tag, tvb, *offsetp, 4, byte_order);
7565  *offsetp += 4;
7566 }
7567 static void glxGetError_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
7568 {
7569  int sequence_number;
7570 
7571  col_append_fstr(pinfo->cinfo, COL_INFO, "-GetError");
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-GetError)", sequence_number);
7579  *offsetp += 2;
7580  proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
7581  *offsetp += 4;
7582  proto_tree_add_item(t, hf_x11_glx_GetError_reply_error, tvb, *offsetp, 4, byte_order);
7583  *offsetp += 4;
7584 }
7585 
7586 static void glxGetFloatv(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
7587 {
7588  proto_tree_add_item(t, hf_x11_glx_GetFloatv_context_tag, tvb, *offsetp, 4, byte_order);
7589  *offsetp += 4;
7590  proto_tree_add_item(t, hf_x11_glx_GetFloatv_pname, tvb, *offsetp, 4, byte_order);
7591  *offsetp += 4;
7592 }
7593 static void glxGetFloatv_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
7594 {
7595  int sequence_number;
7596  int f_n;
7597 
7598  col_append_fstr(pinfo->cinfo, COL_INFO, "-GetFloatv");
7599 
7600  REPLY(reply);
7601  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
7602  *offsetp += 1;
7603  sequence_number = tvb_get_guint16(tvb, *offsetp, byte_order);
7604  proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
7605  "%d (glx-GetFloatv)", sequence_number);
7606  *offsetp += 2;
7607  proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
7608  *offsetp += 4;
7609  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 4, ENC_NA);
7610  *offsetp += 4;
7611  f_n = tvb_get_guint32(tvb, *offsetp, byte_order);
7612  proto_tree_add_item(t, hf_x11_glx_GetFloatv_reply_n, tvb, *offsetp, 4, byte_order);
7613  *offsetp += 4;
7614  proto_tree_add_item(t, hf_x11_glx_GetFloatv_reply_datum, tvb, *offsetp, 4, byte_order);
7615  *offsetp += 4;
7616  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 12, ENC_NA);
7617  *offsetp += 12;
7618  listOfFloat(tvb, offsetp, t, hf_x11_glx_GetFloatv_reply_data, hf_x11_glx_GetFloatv_reply_data_item, f_n, byte_order);
7619 }
7620 
7621 static void glxGetIntegerv(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
7622 {
7623  proto_tree_add_item(t, hf_x11_glx_GetIntegerv_context_tag, tvb, *offsetp, 4, byte_order);
7624  *offsetp += 4;
7625  proto_tree_add_item(t, hf_x11_glx_GetIntegerv_pname, tvb, *offsetp, 4, byte_order);
7626  *offsetp += 4;
7627 }
7628 static void glxGetIntegerv_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
7629 {
7630  int sequence_number;
7631  int f_n;
7632 
7633  col_append_fstr(pinfo->cinfo, COL_INFO, "-GetIntegerv");
7634 
7635  REPLY(reply);
7636  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
7637  *offsetp += 1;
7638  sequence_number = tvb_get_guint16(tvb, *offsetp, byte_order);
7639  proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
7640  "%d (glx-GetIntegerv)", sequence_number);
7641  *offsetp += 2;
7642  proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
7643  *offsetp += 4;
7644  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 4, ENC_NA);
7645  *offsetp += 4;
7646  f_n = tvb_get_guint32(tvb, *offsetp, byte_order);
7647  proto_tree_add_item(t, hf_x11_glx_GetIntegerv_reply_n, tvb, *offsetp, 4, byte_order);
7648  *offsetp += 4;
7649  proto_tree_add_item(t, hf_x11_glx_GetIntegerv_reply_datum, tvb, *offsetp, 4, byte_order);
7650  *offsetp += 4;
7651  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 12, ENC_NA);
7652  *offsetp += 12;
7653  listOfInt32(tvb, offsetp, t, hf_x11_glx_GetIntegerv_reply_data, hf_x11_glx_GetIntegerv_reply_data_item, f_n, byte_order);
7654 }
7655 
7656 static void glxGetLightfv(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
7657 {
7658  proto_tree_add_item(t, hf_x11_glx_GetLightfv_context_tag, tvb, *offsetp, 4, byte_order);
7659  *offsetp += 4;
7660  proto_tree_add_item(t, hf_x11_glx_GetLightfv_light, tvb, *offsetp, 4, byte_order);
7661  *offsetp += 4;
7662  proto_tree_add_item(t, hf_x11_glx_GetLightfv_pname, tvb, *offsetp, 4, byte_order);
7663  *offsetp += 4;
7664 }
7665 static void glxGetLightfv_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
7666 {
7667  int sequence_number;
7668  int f_n;
7669 
7670  col_append_fstr(pinfo->cinfo, COL_INFO, "-GetLightfv");
7671 
7672  REPLY(reply);
7673  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
7674  *offsetp += 1;
7675  sequence_number = tvb_get_guint16(tvb, *offsetp, byte_order);
7676  proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
7677  "%d (glx-GetLightfv)", sequence_number);
7678  *offsetp += 2;
7679  proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
7680  *offsetp += 4;
7681  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 4, ENC_NA);
7682  *offsetp += 4;
7683  f_n = tvb_get_guint32(tvb, *offsetp, byte_order);
7684  proto_tree_add_item(t, hf_x11_glx_GetLightfv_reply_n, tvb, *offsetp, 4, byte_order);
7685  *offsetp += 4;
7686  proto_tree_add_item(t, hf_x11_glx_GetLightfv_reply_datum, tvb, *offsetp, 4, byte_order);
7687  *offsetp += 4;
7688  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 12, ENC_NA);
7689  *offsetp += 12;
7690  listOfFloat(tvb, offsetp, t, hf_x11_glx_GetLightfv_reply_data, hf_x11_glx_GetLightfv_reply_data_item, f_n, byte_order);
7691 }
7692 
7693 static void glxGetLightiv(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
7694 {
7695  proto_tree_add_item(t, hf_x11_glx_GetLightiv_context_tag, tvb, *offsetp, 4, byte_order);
7696  *offsetp += 4;
7697  proto_tree_add_item(t, hf_x11_glx_GetLightiv_light, tvb, *offsetp, 4, byte_order);
7698  *offsetp += 4;
7699  proto_tree_add_item(t, hf_x11_glx_GetLightiv_pname, tvb, *offsetp, 4, byte_order);
7700  *offsetp += 4;
7701 }
7702 static void glxGetLightiv_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
7703 {
7704  int sequence_number;
7705  int f_n;
7706 
7707  col_append_fstr(pinfo->cinfo, COL_INFO, "-GetLightiv");
7708 
7709  REPLY(reply);
7710  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
7711  *offsetp += 1;
7712  sequence_number = tvb_get_guint16(tvb, *offsetp, byte_order);
7713  proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
7714  "%d (glx-GetLightiv)", sequence_number);
7715  *offsetp += 2;
7716  proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
7717  *offsetp += 4;
7718  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 4, ENC_NA);
7719  *offsetp += 4;
7720  f_n = tvb_get_guint32(tvb, *offsetp, byte_order);
7721  proto_tree_add_item(t, hf_x11_glx_GetLightiv_reply_n, tvb, *offsetp, 4, byte_order);
7722  *offsetp += 4;
7723  proto_tree_add_item(t, hf_x11_glx_GetLightiv_reply_datum, tvb, *offsetp, 4, byte_order);
7724  *offsetp += 4;
7725  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 12, ENC_NA);
7726  *offsetp += 12;
7727  listOfInt32(tvb, offsetp, t, hf_x11_glx_GetLightiv_reply_data, hf_x11_glx_GetLightiv_reply_data_item, f_n, byte_order);
7728 }
7729 
7730 static void glxGetMapdv(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
7731 {
7732  proto_tree_add_item(t, hf_x11_glx_GetMapdv_context_tag, tvb, *offsetp, 4, byte_order);
7733  *offsetp += 4;
7734  proto_tree_add_item(t, hf_x11_glx_GetMapdv_target, tvb, *offsetp, 4, byte_order);
7735  *offsetp += 4;
7736  proto_tree_add_item(t, hf_x11_glx_GetMapdv_query, tvb, *offsetp, 4, byte_order);
7737  *offsetp += 4;
7738 }
7739 static void glxGetMapdv_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
7740 {
7741  int sequence_number;
7742  int f_n;
7743 
7744  col_append_fstr(pinfo->cinfo, COL_INFO, "-GetMapdv");
7745 
7746  REPLY(reply);
7747  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
7748  *offsetp += 1;
7749  sequence_number = tvb_get_guint16(tvb, *offsetp, byte_order);
7750  proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
7751  "%d (glx-GetMapdv)", sequence_number);
7752  *offsetp += 2;
7753  proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
7754  *offsetp += 4;
7755  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 4, ENC_NA);
7756  *offsetp += 4;
7757  f_n = tvb_get_guint32(tvb, *offsetp, byte_order);
7758  proto_tree_add_item(t, hf_x11_glx_GetMapdv_reply_n, tvb, *offsetp, 4, byte_order);
7759  *offsetp += 4;
7760  proto_tree_add_item(t, hf_x11_glx_GetMapdv_reply_datum, tvb, *offsetp, 8, byte_order);
7761  *offsetp += 8;
7762  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 8, ENC_NA);
7763  *offsetp += 8;
7764  listOfDouble(tvb, offsetp, t, hf_x11_glx_GetMapdv_reply_data, hf_x11_glx_GetMapdv_reply_data_item, f_n, byte_order);
7765 }
7766 
7767 static void glxGetMapfv(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
7768 {
7769  proto_tree_add_item(t, hf_x11_glx_GetMapfv_context_tag, tvb, *offsetp, 4, byte_order);
7770  *offsetp += 4;
7771  proto_tree_add_item(t, hf_x11_glx_GetMapfv_target, tvb, *offsetp, 4, byte_order);
7772  *offsetp += 4;
7773  proto_tree_add_item(t, hf_x11_glx_GetMapfv_query, tvb, *offsetp, 4, byte_order);
7774  *offsetp += 4;
7775 }
7776 static void glxGetMapfv_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
7777 {
7778  int sequence_number;
7779  int f_n;
7780 
7781  col_append_fstr(pinfo->cinfo, COL_INFO, "-GetMapfv");
7782 
7783  REPLY(reply);
7784  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
7785  *offsetp += 1;
7786  sequence_number = tvb_get_guint16(tvb, *offsetp, byte_order);
7787  proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
7788  "%d (glx-GetMapfv)", sequence_number);
7789  *offsetp += 2;
7790  proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
7791  *offsetp += 4;
7792  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 4, ENC_NA);
7793  *offsetp += 4;
7794  f_n = tvb_get_guint32(tvb, *offsetp, byte_order);
7795  proto_tree_add_item(t, hf_x11_glx_GetMapfv_reply_n, tvb, *offsetp, 4, byte_order);
7796  *offsetp += 4;
7797  proto_tree_add_item(t, hf_x11_glx_GetMapfv_reply_datum, tvb, *offsetp, 4, byte_order);
7798  *offsetp += 4;
7799  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 12, ENC_NA);
7800  *offsetp += 12;
7801  listOfFloat(tvb, offsetp, t, hf_x11_glx_GetMapfv_reply_data, hf_x11_glx_GetMapfv_reply_data_item, f_n, byte_order);
7802 }
7803 
7804 static void glxGetMapiv(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
7805 {
7806  proto_tree_add_item(t, hf_x11_glx_GetMapiv_context_tag, tvb, *offsetp, 4, byte_order);
7807  *offsetp += 4;
7808  proto_tree_add_item(t, hf_x11_glx_GetMapiv_target, tvb, *offsetp, 4, byte_order);
7809  *offsetp += 4;
7810  proto_tree_add_item(t, hf_x11_glx_GetMapiv_query, tvb, *offsetp, 4, byte_order);
7811  *offsetp += 4;
7812 }
7813 static void glxGetMapiv_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
7814 {
7815  int sequence_number;
7816  int f_n;
7817 
7818  col_append_fstr(pinfo->cinfo, COL_INFO, "-GetMapiv");
7819 
7820  REPLY(reply);
7821  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
7822  *offsetp += 1;
7823  sequence_number = tvb_get_guint16(tvb, *offsetp, byte_order);
7824  proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
7825  "%d (glx-GetMapiv)", sequence_number);
7826  *offsetp += 2;
7827  proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
7828  *offsetp += 4;
7829  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 4, ENC_NA);
7830  *offsetp += 4;
7831  f_n = tvb_get_guint32(tvb, *offsetp, byte_order);
7832  proto_tree_add_item(t, hf_x11_glx_GetMapiv_reply_n, tvb, *offsetp, 4, byte_order);
7833  *offsetp += 4;
7834  proto_tree_add_item(t, hf_x11_glx_GetMapiv_reply_datum, tvb, *offsetp, 4, byte_order);
7835  *offsetp += 4;
7836  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 12, ENC_NA);
7837  *offsetp += 12;
7838  listOfInt32(tvb, offsetp, t, hf_x11_glx_GetMapiv_reply_data, hf_x11_glx_GetMapiv_reply_data_item, f_n, byte_order);
7839 }
7840 
7841 static void glxGetMaterialfv(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
7842 {
7843  proto_tree_add_item(t, hf_x11_glx_GetMaterialfv_context_tag, tvb, *offsetp, 4, byte_order);
7844  *offsetp += 4;
7845  proto_tree_add_item(t, hf_x11_glx_GetMaterialfv_face, tvb, *offsetp, 4, byte_order);
7846  *offsetp += 4;
7847  proto_tree_add_item(t, hf_x11_glx_GetMaterialfv_pname, tvb, *offsetp, 4, byte_order);
7848  *offsetp += 4;
7849 }
7850 static void glxGetMaterialfv_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
7851 {
7852  int sequence_number;
7853  int f_n;
7854 
7855  col_append_fstr(pinfo->cinfo, COL_INFO, "-GetMaterialfv");
7856 
7857  REPLY(reply);
7858  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
7859  *offsetp += 1;
7860  sequence_number = tvb_get_guint16(tvb, *offsetp, byte_order);
7861  proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
7862  "%d (glx-GetMaterialfv)", sequence_number);
7863  *offsetp += 2;
7864  proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
7865  *offsetp += 4;
7866  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 4, ENC_NA);
7867  *offsetp += 4;
7868  f_n = tvb_get_guint32(tvb, *offsetp, byte_order);
7869  proto_tree_add_item(t, hf_x11_glx_GetMaterialfv_reply_n, tvb, *offsetp, 4, byte_order);
7870  *offsetp += 4;
7871  proto_tree_add_item(t, hf_x11_glx_GetMaterialfv_reply_datum, tvb, *offsetp, 4, byte_order);
7872  *offsetp += 4;
7873  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 12, ENC_NA);
7874  *offsetp += 12;
7875  listOfFloat(tvb, offsetp, t, hf_x11_glx_GetMaterialfv_reply_data, hf_x11_glx_GetMaterialfv_reply_data_item, f_n, byte_order);
7876 }
7877 
7878 static void glxGetMaterialiv(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
7879 {
7880  proto_tree_add_item(t, hf_x11_glx_GetMaterialiv_context_tag, tvb, *offsetp, 4, byte_order);
7881  *offsetp += 4;
7882  proto_tree_add_item(t, hf_x11_glx_GetMaterialiv_face, tvb, *offsetp, 4, byte_order);
7883  *offsetp += 4;
7884  proto_tree_add_item(t, hf_x11_glx_GetMaterialiv_pname, tvb, *offsetp, 4, byte_order);
7885  *offsetp += 4;
7886 }
7887 static void glxGetMaterialiv_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
7888 {
7889  int sequence_number;
7890  int f_n;
7891 
7892  col_append_fstr(pinfo->cinfo, COL_INFO, "-GetMaterialiv");
7893 
7894  REPLY(reply);
7895  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
7896  *offsetp += 1;
7897  sequence_number = tvb_get_guint16(tvb, *offsetp, byte_order);
7898  proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
7899  "%d (glx-GetMaterialiv)", sequence_number);
7900  *offsetp += 2;
7901  proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
7902  *offsetp += 4;
7903  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 4, ENC_NA);
7904  *offsetp += 4;
7905  f_n = tvb_get_guint32(tvb, *offsetp, byte_order);
7906  proto_tree_add_item(t, hf_x11_glx_GetMaterialiv_reply_n, tvb, *offsetp, 4, byte_order);
7907  *offsetp += 4;
7908  proto_tree_add_item(t, hf_x11_glx_GetMaterialiv_reply_datum, tvb, *offsetp, 4, byte_order);
7909  *offsetp += 4;
7910  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 12, ENC_NA);
7911  *offsetp += 12;
7912  listOfInt32(tvb, offsetp, t, hf_x11_glx_GetMaterialiv_reply_data, hf_x11_glx_GetMaterialiv_reply_data_item, f_n, byte_order);
7913 }
7914 
7915 static void glxGetPixelMapfv(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
7916 {
7917  proto_tree_add_item(t, hf_x11_glx_GetPixelMapfv_context_tag, tvb, *offsetp, 4, byte_order);
7918  *offsetp += 4;
7919  proto_tree_add_item(t, hf_x11_glx_GetPixelMapfv_map, tvb, *offsetp, 4, byte_order);
7920  *offsetp += 4;
7921 }
7922 static void glxGetPixelMapfv_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
7923 {
7924  int sequence_number;
7925  int f_n;
7926 
7927  col_append_fstr(pinfo->cinfo, COL_INFO, "-GetPixelMapfv");
7928 
7929  REPLY(reply);
7930  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
7931  *offsetp += 1;
7932  sequence_number = tvb_get_guint16(tvb, *offsetp, byte_order);
7933  proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
7934  "%d (glx-GetPixelMapfv)", sequence_number);
7935  *offsetp += 2;
7936  proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
7937  *offsetp += 4;
7938  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 4, ENC_NA);
7939  *offsetp += 4;
7940  f_n = tvb_get_guint32(tvb, *offsetp, byte_order);
7941  proto_tree_add_item(t, hf_x11_glx_GetPixelMapfv_reply_n, tvb, *offsetp, 4, byte_order);
7942  *offsetp += 4;
7943  proto_tree_add_item(t, hf_x11_glx_GetPixelMapfv_reply_datum, tvb, *offsetp, 4, byte_order);
7944  *offsetp += 4;
7945  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 12, ENC_NA);
7946  *offsetp += 12;
7947  listOfFloat(tvb, offsetp, t, hf_x11_glx_GetPixelMapfv_reply_data, hf_x11_glx_GetPixelMapfv_reply_data_item, f_n, byte_order);
7948 }
7949 
7950 static void glxGetPixelMapuiv(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
7951 {
7952  proto_tree_add_item(t, hf_x11_glx_GetPixelMapuiv_context_tag, tvb, *offsetp, 4, byte_order);
7953  *offsetp += 4;
7954  proto_tree_add_item(t, hf_x11_glx_GetPixelMapuiv_map, tvb, *offsetp, 4, byte_order);
7955  *offsetp += 4;
7956 }
7957 static void glxGetPixelMapuiv_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
7958 {
7959  int sequence_number;
7960  int f_n;
7961 
7962  col_append_fstr(pinfo->cinfo, COL_INFO, "-GetPixelMapuiv");
7963 
7964  REPLY(reply);
7965  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
7966  *offsetp += 1;
7967  sequence_number = tvb_get_guint16(tvb, *offsetp, byte_order);
7968  proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
7969  "%d (glx-GetPixelMapuiv)", sequence_number);
7970  *offsetp += 2;
7971  proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
7972  *offsetp += 4;
7973  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 4, ENC_NA);
7974  *offsetp += 4;
7975  f_n = tvb_get_guint32(tvb, *offsetp, byte_order);
7976  proto_tree_add_item(t, hf_x11_glx_GetPixelMapuiv_reply_n, tvb, *offsetp, 4, byte_order);
7977  *offsetp += 4;
7978  proto_tree_add_item(t, hf_x11_glx_GetPixelMapuiv_reply_datum, tvb, *offsetp, 4, byte_order);
7979  *offsetp += 4;
7980  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 12, ENC_NA);
7981  *offsetp += 12;
7982  listOfCard32(tvb, offsetp, t, hf_x11_glx_GetPixelMapuiv_reply_data, hf_x11_glx_GetPixelMapuiv_reply_data_item, f_n, byte_order);
7983 }
7984 
7985 static void glxGetPixelMapusv(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
7986 {
7987  proto_tree_add_item(t, hf_x11_glx_GetPixelMapusv_context_tag, tvb, *offsetp, 4, byte_order);
7988  *offsetp += 4;
7989  proto_tree_add_item(t, hf_x11_glx_GetPixelMapusv_map, tvb, *offsetp, 4, byte_order);
7990  *offsetp += 4;
7991 }
7992 static void glxGetPixelMapusv_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
7993 {
7994  int sequence_number;
7995  int f_n;
7996 
7997  col_append_fstr(pinfo->cinfo, COL_INFO, "-GetPixelMapusv");
7998 
7999  REPLY(reply);
8000  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
8001  *offsetp += 1;
8002  sequence_number = tvb_get_guint16(tvb, *offsetp, byte_order);
8003  proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
8004  "%d (glx-GetPixelMapusv)", sequence_number);
8005  *offsetp += 2;
8006  proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
8007  *offsetp += 4;
8008  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 4, ENC_NA);
8009  *offsetp += 4;
8010  f_n = tvb_get_guint32(tvb, *offsetp, byte_order);
8011  proto_tree_add_item(t, hf_x11_glx_GetPixelMapusv_reply_n, tvb, *offsetp, 4, byte_order);
8012  *offsetp += 4;
8013  proto_tree_add_item(t, hf_x11_glx_GetPixelMapusv_reply_datum, tvb, *offsetp, 2, byte_order);
8014  *offsetp += 2;
8015  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 16, ENC_NA);
8016  *offsetp += 16;
8017  listOfCard16(tvb, offsetp, t, hf_x11_glx_GetPixelMapusv_reply_data, hf_x11_glx_GetPixelMapusv_reply_data_item, f_n, byte_order);
8018 }
8019 
8020 static void glxGetPolygonStipple(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
8021 {
8022  proto_tree_add_item(t, hf_x11_glx_GetPolygonStipple_context_tag, tvb, *offsetp, 4, byte_order);
8023  *offsetp += 4;
8024  proto_tree_add_item(t, hf_x11_glx_GetPolygonStipple_lsb_first, tvb, *offsetp, 1, byte_order);
8025  *offsetp += 1;
8026 }
8027 static void glxGetPolygonStipple_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
8028 {
8029  int sequence_number;
8030  int f_length;
8031 
8032  col_append_fstr(pinfo->cinfo, COL_INFO, "-GetPolygonStipple");
8033 
8034  REPLY(reply);
8035  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
8036  *offsetp += 1;
8037  sequence_number = tvb_get_guint16(tvb, *offsetp, byte_order);
8038  proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
8039  "%d (glx-GetPolygonStipple)", sequence_number);
8040  *offsetp += 2;
8041  f_length = tvb_get_guint32(tvb, *offsetp, byte_order);
8042  proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
8043  *offsetp += 4;
8044  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 24, ENC_NA);
8045  *offsetp += 24;
8046  listOfByte(tvb, offsetp, t, hf_x11_glx_GetPolygonStipple_reply_data, (f_length * 4), byte_order);
8047 }
8048 
8049 static void glxGetString(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
8050 {
8051  proto_tree_add_item(t, hf_x11_glx_GetString_context_tag, tvb, *offsetp, 4, byte_order);
8052  *offsetp += 4;
8053  proto_tree_add_item(t, hf_x11_glx_GetString_name, tvb, *offsetp, 4, byte_order);
8054  *offsetp += 4;
8055 }
8056 static void glxGetString_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
8057 {
8058  int sequence_number;
8059  int f_n;
8060 
8061  col_append_fstr(pinfo->cinfo, COL_INFO, "-GetString");
8062 
8063  REPLY(reply);
8064  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
8065  *offsetp += 1;
8066  sequence_number = tvb_get_guint16(tvb, *offsetp, byte_order);
8067  proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
8068  "%d (glx-GetString)", sequence_number);
8069  *offsetp += 2;
8070  proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
8071  *offsetp += 4;
8072  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 4, ENC_NA);
8073  *offsetp += 4;
8074  f_n = tvb_get_guint32(tvb, *offsetp, byte_order);
8075  proto_tree_add_item(t, hf_x11_glx_GetString_reply_n, tvb, *offsetp, 4, byte_order);
8076  *offsetp += 4;
8077  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 16, ENC_NA);
8078  *offsetp += 16;
8079  listOfByte(tvb, offsetp, t, hf_x11_glx_GetString_reply_string, f_n, byte_order);
8080 }
8081 
8082 static void glxGetTexEnvfv(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
8083 {
8084  proto_tree_add_item(t, hf_x11_glx_GetTexEnvfv_context_tag, tvb, *offsetp, 4, byte_order);
8085  *offsetp += 4;
8086  proto_tree_add_item(t, hf_x11_glx_GetTexEnvfv_target, tvb, *offsetp, 4, byte_order);
8087  *offsetp += 4;
8088  proto_tree_add_item(t, hf_x11_glx_GetTexEnvfv_pname, tvb, *offsetp, 4, byte_order);
8089  *offsetp += 4;
8090 }
8091 static void glxGetTexEnvfv_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
8092 {
8093  int sequence_number;
8094  int f_n;
8095 
8096  col_append_fstr(pinfo->cinfo, COL_INFO, "-GetTexEnvfv");
8097 
8098  REPLY(reply);
8099  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
8100  *offsetp += 1;
8101  sequence_number = tvb_get_guint16(tvb, *offsetp, byte_order);
8102  proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
8103  "%d (glx-GetTexEnvfv)", sequence_number);
8104  *offsetp += 2;
8105  proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
8106  *offsetp += 4;
8107  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 4, ENC_NA);
8108  *offsetp += 4;
8109  f_n = tvb_get_guint32(tvb, *offsetp, byte_order);
8110  proto_tree_add_item(t, hf_x11_glx_GetTexEnvfv_reply_n, tvb, *offsetp, 4, byte_order);
8111  *offsetp += 4;
8112  proto_tree_add_item(t, hf_x11_glx_GetTexEnvfv_reply_datum, tvb, *offsetp, 4, byte_order);
8113  *offsetp += 4;
8114  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 12, ENC_NA);
8115  *offsetp += 12;
8116  listOfFloat(tvb, offsetp, t, hf_x11_glx_GetTexEnvfv_reply_data, hf_x11_glx_GetTexEnvfv_reply_data_item, f_n, byte_order);
8117 }
8118 
8119 static void glxGetTexEnviv(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
8120 {
8121  proto_tree_add_item(t, hf_x11_glx_GetTexEnviv_context_tag, tvb, *offsetp, 4, byte_order);
8122  *offsetp += 4;
8123  proto_tree_add_item(t, hf_x11_glx_GetTexEnviv_target, tvb, *offsetp, 4, byte_order);
8124  *offsetp += 4;
8125  proto_tree_add_item(t, hf_x11_glx_GetTexEnviv_pname, tvb, *offsetp, 4, byte_order);
8126  *offsetp += 4;
8127 }
8128 static void glxGetTexEnviv_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
8129 {
8130  int sequence_number;
8131  int f_n;
8132 
8133  col_append_fstr(pinfo->cinfo, COL_INFO, "-GetTexEnviv");
8134 
8135  REPLY(reply);
8136  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
8137  *offsetp += 1;
8138  sequence_number = tvb_get_guint16(tvb, *offsetp, byte_order);
8139  proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
8140  "%d (glx-GetTexEnviv)", sequence_number);
8141  *offsetp += 2;
8142  proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
8143  *offsetp += 4;
8144  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 4, ENC_NA);
8145  *offsetp += 4;
8146  f_n = tvb_get_guint32(tvb, *offsetp, byte_order);
8147  proto_tree_add_item(t, hf_x11_glx_GetTexEnviv_reply_n, tvb, *offsetp, 4, byte_order);
8148  *offsetp += 4;
8149  proto_tree_add_item(t, hf_x11_glx_GetTexEnviv_reply_datum, tvb, *offsetp, 4, byte_order);
8150  *offsetp += 4;
8151  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 12, ENC_NA);
8152  *offsetp += 12;
8153  listOfInt32(tvb, offsetp, t, hf_x11_glx_GetTexEnviv_reply_data, hf_x11_glx_GetTexEnviv_reply_data_item, f_n, byte_order);
8154 }
8155 
8156 static void glxGetTexGendv(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
8157 {
8158  proto_tree_add_item(t, hf_x11_glx_GetTexGendv_context_tag, tvb, *offsetp, 4, byte_order);
8159  *offsetp += 4;
8160  proto_tree_add_item(t, hf_x11_glx_GetTexGendv_coord, tvb, *offsetp, 4, byte_order);
8161  *offsetp += 4;
8162  proto_tree_add_item(t, hf_x11_glx_GetTexGendv_pname, tvb, *offsetp, 4, byte_order);
8163  *offsetp += 4;
8164 }
8165 static void glxGetTexGendv_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
8166 {
8167  int sequence_number;
8168  int f_n;
8169 
8170  col_append_fstr(pinfo->cinfo, COL_INFO, "-GetTexGendv");
8171 
8172  REPLY(reply);
8173  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
8174  *offsetp += 1;
8175  sequence_number = tvb_get_guint16(tvb, *offsetp, byte_order);
8176  proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
8177  "%d (glx-GetTexGendv)", sequence_number);
8178  *offsetp += 2;
8179  proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
8180  *offsetp += 4;
8181  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 4, ENC_NA);
8182  *offsetp += 4;
8183  f_n = tvb_get_guint32(tvb, *offsetp, byte_order);
8184  proto_tree_add_item(t, hf_x11_glx_GetTexGendv_reply_n, tvb, *offsetp, 4, byte_order);
8185  *offsetp += 4;
8186  proto_tree_add_item(t, hf_x11_glx_GetTexGendv_reply_datum, tvb, *offsetp, 8, byte_order);
8187  *offsetp += 8;
8188  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 8, ENC_NA);
8189  *offsetp += 8;
8190  listOfDouble(tvb, offsetp, t, hf_x11_glx_GetTexGendv_reply_data, hf_x11_glx_GetTexGendv_reply_data_item, f_n, byte_order);
8191 }
8192 
8193 static void glxGetTexGenfv(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
8194 {
8195  proto_tree_add_item(t, hf_x11_glx_GetTexGenfv_context_tag, tvb, *offsetp, 4, byte_order);
8196  *offsetp += 4;
8197  proto_tree_add_item(t, hf_x11_glx_GetTexGenfv_coord, tvb, *offsetp, 4, byte_order);
8198  *offsetp += 4;
8199  proto_tree_add_item(t, hf_x11_glx_GetTexGenfv_pname, tvb, *offsetp, 4, byte_order);
8200  *offsetp += 4;
8201 }
8202 static void glxGetTexGenfv_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
8203 {
8204  int sequence_number;
8205  int f_n;
8206 
8207  col_append_fstr(pinfo->cinfo, COL_INFO, "-GetTexGenfv");
8208 
8209  REPLY(reply);
8210  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
8211  *offsetp += 1;
8212  sequence_number = tvb_get_guint16(tvb, *offsetp, byte_order);
8213  proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
8214  "%d (glx-GetTexGenfv)", sequence_number);
8215  *offsetp += 2;
8216  proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
8217  *offsetp += 4;
8218  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 4, ENC_NA);
8219  *offsetp += 4;
8220  f_n = tvb_get_guint32(tvb, *offsetp, byte_order);
8221  proto_tree_add_item(t, hf_x11_glx_GetTexGenfv_reply_n, tvb, *offsetp, 4, byte_order);
8222  *offsetp += 4;
8223  proto_tree_add_item(t, hf_x11_glx_GetTexGenfv_reply_datum, tvb, *offsetp, 4, byte_order);
8224  *offsetp += 4;
8225  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 12, ENC_NA);
8226  *offsetp += 12;
8227  listOfFloat(tvb, offsetp, t, hf_x11_glx_GetTexGenfv_reply_data, hf_x11_glx_GetTexGenfv_reply_data_item, f_n, byte_order);
8228 }
8229 
8230 static void glxGetTexGeniv(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
8231 {
8232  proto_tree_add_item(t, hf_x11_glx_GetTexGeniv_context_tag, tvb, *offsetp, 4, byte_order);
8233  *offsetp += 4;
8234  proto_tree_add_item(t, hf_x11_glx_GetTexGeniv_coord, tvb, *offsetp, 4, byte_order);
8235  *offsetp += 4;
8236  proto_tree_add_item(t, hf_x11_glx_GetTexGeniv_pname, tvb, *offsetp, 4, byte_order);
8237  *offsetp += 4;
8238 }
8239 static void glxGetTexGeniv_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
8240 {
8241  int sequence_number;
8242  int f_n;
8243 
8244  col_append_fstr(pinfo->cinfo, COL_INFO, "-GetTexGeniv");
8245 
8246  REPLY(reply);
8247  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
8248  *offsetp += 1;
8249  sequence_number = tvb_get_guint16(tvb, *offsetp, byte_order);
8250  proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
8251  "%d (glx-GetTexGeniv)", sequence_number);
8252  *offsetp += 2;
8253  proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
8254  *offsetp += 4;
8255  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 4, ENC_NA);
8256  *offsetp += 4;
8257  f_n = tvb_get_guint32(tvb, *offsetp, byte_order);
8258  proto_tree_add_item(t, hf_x11_glx_GetTexGeniv_reply_n, tvb, *offsetp, 4, byte_order);
8259  *offsetp += 4;
8260  proto_tree_add_item(t, hf_x11_glx_GetTexGeniv_reply_datum, tvb, *offsetp, 4, byte_order);
8261  *offsetp += 4;
8262  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 12, ENC_NA);
8263  *offsetp += 12;
8264  listOfInt32(tvb, offsetp, t, hf_x11_glx_GetTexGeniv_reply_data, hf_x11_glx_GetTexGeniv_reply_data_item, f_n, byte_order);
8265 }
8266 
8267 static void glxGetTexImage(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
8268 {
8269  proto_tree_add_item(t, hf_x11_glx_GetTexImage_context_tag, tvb, *offsetp, 4, byte_order);
8270  *offsetp += 4;
8271  proto_tree_add_item(t, hf_x11_glx_GetTexImage_target, tvb, *offsetp, 4, byte_order);
8272  *offsetp += 4;
8273  proto_tree_add_item(t, hf_x11_glx_GetTexImage_level, tvb, *offsetp, 4, byte_order);
8274  *offsetp += 4;
8275  proto_tree_add_item(t, hf_x11_glx_GetTexImage_format, tvb, *offsetp, 4, byte_order);
8276  *offsetp += 4;
8277  proto_tree_add_item(t, hf_x11_glx_GetTexImage_type, tvb, *offsetp, 4, byte_order);
8278  *offsetp += 4;
8279  proto_tree_add_item(t, hf_x11_glx_GetTexImage_swap_bytes, tvb, *offsetp, 1, byte_order);
8280  *offsetp += 1;
8281 }
8282 static void glxGetTexImage_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
8283 {
8284  int sequence_number;
8285  int f_length;
8286 
8287  col_append_fstr(pinfo->cinfo, COL_INFO, "-GetTexImage");
8288 
8289  REPLY(reply);
8290  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
8291  *offsetp += 1;
8292  sequence_number = tvb_get_guint16(tvb, *offsetp, byte_order);
8293  proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
8294  "%d (glx-GetTexImage)", sequence_number);
8295  *offsetp += 2;
8296  f_length = tvb_get_guint32(tvb, *offsetp, byte_order);
8297  proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
8298  *offsetp += 4;
8299  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 8, ENC_NA);
8300  *offsetp += 8;
8301  proto_tree_add_item(t, hf_x11_glx_GetTexImage_reply_width, tvb, *offsetp, 4, byte_order);
8302  *offsetp += 4;
8303  proto_tree_add_item(t, hf_x11_glx_GetTexImage_reply_height, tvb, *offsetp, 4, byte_order);
8304  *offsetp += 4;
8305  proto_tree_add_item(t, hf_x11_glx_GetTexImage_reply_depth, tvb, *offsetp, 4, byte_order);
8306  *offsetp += 4;
8307  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 4, ENC_NA);
8308  *offsetp += 4;
8309  listOfByte(tvb, offsetp, t, hf_x11_glx_GetTexImage_reply_data, (f_length * 4), byte_order);
8310 }
8311 
8312 static void glxGetTexParameterfv(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
8313 {
8314  proto_tree_add_item(t, hf_x11_glx_GetTexParameterfv_context_tag, tvb, *offsetp, 4, byte_order);
8315  *offsetp += 4;
8316  proto_tree_add_item(t, hf_x11_glx_GetTexParameterfv_target, tvb, *offsetp, 4, byte_order);
8317  *offsetp += 4;
8318  proto_tree_add_item(t, hf_x11_glx_GetTexParameterfv_pname, tvb, *offsetp, 4, byte_order);
8319  *offsetp += 4;
8320 }
8321 static void glxGetTexParameterfv_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
8322 {
8323  int sequence_number;
8324  int f_n;
8325 
8326  col_append_fstr(pinfo->cinfo, COL_INFO, "-GetTexParameterfv");
8327 
8328  REPLY(reply);
8329  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
8330  *offsetp += 1;
8331  sequence_number = tvb_get_guint16(tvb, *offsetp, byte_order);
8332  proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
8333  "%d (glx-GetTexParameterfv)", sequence_number);
8334  *offsetp += 2;
8335  proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
8336  *offsetp += 4;
8337  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 4, ENC_NA);
8338  *offsetp += 4;
8339  f_n = tvb_get_guint32(tvb, *offsetp, byte_order);
8340  proto_tree_add_item(t, hf_x11_glx_GetTexParameterfv_reply_n, tvb, *offsetp, 4, byte_order);
8341  *offsetp += 4;
8342  proto_tree_add_item(t, hf_x11_glx_GetTexParameterfv_reply_datum, tvb, *offsetp, 4, byte_order);
8343  *offsetp += 4;
8344  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 12, ENC_NA);
8345  *offsetp += 12;
8346  listOfFloat(tvb, offsetp, t, hf_x11_glx_GetTexParameterfv_reply_data, hf_x11_glx_GetTexParameterfv_reply_data_item, f_n, byte_order);
8347 }
8348 
8349 static void glxGetTexParameteriv(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
8350 {
8351  proto_tree_add_item(t, hf_x11_glx_GetTexParameteriv_context_tag, tvb, *offsetp, 4, byte_order);
8352  *offsetp += 4;
8353  proto_tree_add_item(t, hf_x11_glx_GetTexParameteriv_target, tvb, *offsetp, 4, byte_order);
8354  *offsetp += 4;
8355  proto_tree_add_item(t, hf_x11_glx_GetTexParameteriv_pname, tvb, *offsetp, 4, byte_order);
8356  *offsetp += 4;
8357 }
8358 static void glxGetTexParameteriv_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
8359 {
8360  int sequence_number;
8361  int f_n;
8362 
8363  col_append_fstr(pinfo->cinfo, COL_INFO, "-GetTexParameteriv");
8364 
8365  REPLY(reply);
8366  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
8367  *offsetp += 1;
8368  sequence_number = tvb_get_guint16(tvb, *offsetp, byte_order);
8369  proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
8370  "%d (glx-GetTexParameteriv)", sequence_number);
8371  *offsetp += 2;
8372  proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
8373  *offsetp += 4;
8374  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 4, ENC_NA);
8375  *offsetp += 4;
8376  f_n = tvb_get_guint32(tvb, *offsetp, byte_order);
8377  proto_tree_add_item(t, hf_x11_glx_GetTexParameteriv_reply_n, tvb, *offsetp, 4, byte_order);
8378  *offsetp += 4;
8379  proto_tree_add_item(t, hf_x11_glx_GetTexParameteriv_reply_datum, tvb, *offsetp, 4, byte_order);
8380  *offsetp += 4;
8381  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 12, ENC_NA);
8382  *offsetp += 12;
8383  listOfInt32(tvb, offsetp, t, hf_x11_glx_GetTexParameteriv_reply_data, hf_x11_glx_GetTexParameteriv_reply_data_item, f_n, byte_order);
8384 }
8385 
8386 static void glxGetTexLevelParameterfv(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
8387 {
8388  proto_tree_add_item(t, hf_x11_glx_GetTexLevelParameterfv_context_tag, tvb, *offsetp, 4, byte_order);
8389  *offsetp += 4;
8390  proto_tree_add_item(t, hf_x11_glx_GetTexLevelParameterfv_target, tvb, *offsetp, 4, byte_order);
8391  *offsetp += 4;
8392  proto_tree_add_item(t, hf_x11_glx_GetTexLevelParameterfv_level, tvb, *offsetp, 4, byte_order);
8393  *offsetp += 4;
8394  proto_tree_add_item(t, hf_x11_glx_GetTexLevelParameterfv_pname, tvb, *offsetp, 4, byte_order);
8395  *offsetp += 4;
8396 }
8397 static void glxGetTexLevelParameterfv_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
8398 {
8399  int sequence_number;
8400  int f_n;
8401 
8402  col_append_fstr(pinfo->cinfo, COL_INFO, "-GetTexLevelParameterfv");
8403 
8404  REPLY(reply);
8405  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
8406  *offsetp += 1;
8407  sequence_number = tvb_get_guint16(tvb, *offsetp, byte_order);
8408  proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
8409  "%d (glx-GetTexLevelParameterfv)", sequence_number);
8410  *offsetp += 2;
8411  proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
8412  *offsetp += 4;
8413  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 4, ENC_NA);
8414  *offsetp += 4;
8415  f_n = tvb_get_guint32(tvb, *offsetp, byte_order);
8416  proto_tree_add_item(t, hf_x11_glx_GetTexLevelParameterfv_reply_n, tvb, *offsetp, 4, byte_order);
8417  *offsetp += 4;
8418  proto_tree_add_item(t, hf_x11_glx_GetTexLevelParameterfv_reply_datum, tvb, *offsetp, 4, byte_order);
8419  *offsetp += 4;
8420  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 12, ENC_NA);
8421  *offsetp += 12;
8422  listOfFloat(tvb, offsetp, t, hf_x11_glx_GetTexLevelParameterfv_reply_data, hf_x11_glx_GetTexLevelParameterfv_reply_data_item, f_n, byte_order);
8423 }
8424 
8425 static void glxGetTexLevelParameteriv(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
8426 {
8427  proto_tree_add_item(t, hf_x11_glx_GetTexLevelParameteriv_context_tag, tvb, *offsetp, 4, byte_order);
8428  *offsetp += 4;
8429  proto_tree_add_item(t, hf_x11_glx_GetTexLevelParameteriv_target, tvb, *offsetp, 4, byte_order);
8430  *offsetp += 4;
8431  proto_tree_add_item(t, hf_x11_glx_GetTexLevelParameteriv_level, tvb, *offsetp, 4, byte_order);
8432  *offsetp += 4;
8433  proto_tree_add_item(t, hf_x11_glx_GetTexLevelParameteriv_pname, tvb, *offsetp, 4, byte_order);
8434  *offsetp += 4;
8435 }
8436 static void glxGetTexLevelParameteriv_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
8437 {
8438  int sequence_number;
8439  int f_n;
8440 
8441  col_append_fstr(pinfo->cinfo, COL_INFO, "-GetTexLevelParameteriv");
8442 
8443  REPLY(reply);
8444  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
8445  *offsetp += 1;
8446  sequence_number = tvb_get_guint16(tvb, *offsetp, byte_order);
8447  proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
8448  "%d (glx-GetTexLevelParameteriv)", sequence_number);
8449  *offsetp += 2;
8450  proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
8451  *offsetp += 4;
8452  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 4, ENC_NA);
8453  *offsetp += 4;
8454  f_n = tvb_get_guint32(tvb, *offsetp, byte_order);
8455  proto_tree_add_item(t, hf_x11_glx_GetTexLevelParameteriv_reply_n, tvb, *offsetp, 4, byte_order);
8456  *offsetp += 4;
8457  proto_tree_add_item(t, hf_x11_glx_GetTexLevelParameteriv_reply_datum, tvb, *offsetp, 4, byte_order);
8458  *offsetp += 4;
8459  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 12, ENC_NA);
8460  *offsetp += 12;
8461  listOfInt32(tvb, offsetp, t, hf_x11_glx_GetTexLevelParameteriv_reply_data, hf_x11_glx_GetTexLevelParameteriv_reply_data_item, f_n, byte_order);
8462 }
8463 
8464 static void glxIsEnabled(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
8465 {
8466  proto_tree_add_item(t, hf_x11_glx_IsEnabled_context_tag, tvb, *offsetp, 4, byte_order);
8467  *offsetp += 4;
8468  proto_tree_add_item(t, hf_x11_glx_IsEnabled_capability, tvb, *offsetp, 4, byte_order);
8469  *offsetp += 4;
8470 }
8471 static void glxIsEnabled_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
8472 {
8473  int sequence_number;
8474 
8475  col_append_fstr(pinfo->cinfo, COL_INFO, "-IsEnabled");
8476 
8477  REPLY(reply);
8478  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
8479  *offsetp += 1;
8480  sequence_number = tvb_get_guint16(tvb, *offsetp, byte_order);
8481  proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
8482  "%d (glx-IsEnabled)", sequence_number);
8483  *offsetp += 2;
8484  proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
8485  *offsetp += 4;
8486  proto_tree_add_item(t, hf_x11_glx_IsEnabled_reply_ret_val, tvb, *offsetp, 4, byte_order);
8487  *offsetp += 4;
8488 }
8489 
8490 static void glxIsList(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
8491 {
8492  proto_tree_add_item(t, hf_x11_glx_IsList_context_tag, tvb, *offsetp, 4, byte_order);
8493  *offsetp += 4;
8494  proto_tree_add_item(t, hf_x11_glx_IsList_list, tvb, *offsetp, 4, byte_order);
8495  *offsetp += 4;
8496 }
8497 static void glxIsList_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
8498 {
8499  int sequence_number;
8500 
8501  col_append_fstr(pinfo->cinfo, COL_INFO, "-IsList");
8502 
8503  REPLY(reply);
8504  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
8505  *offsetp += 1;
8506  sequence_number = tvb_get_guint16(tvb, *offsetp, byte_order);
8507  proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
8508  "%d (glx-IsList)", sequence_number);
8509  *offsetp += 2;
8510  proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
8511  *offsetp += 4;
8512  proto_tree_add_item(t, hf_x11_glx_IsList_reply_ret_val, tvb, *offsetp, 4, byte_order);
8513  *offsetp += 4;
8514 }
8515 
8516 static void glxFlush(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
8517 {
8518  proto_tree_add_item(t, hf_x11_glx_Flush_context_tag, tvb, *offsetp, 4, byte_order);
8519  *offsetp += 4;
8520 }
8521 
8522 static void glxAreTexturesResident(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
8523 {
8524  int f_n;
8525  proto_tree_add_item(t, hf_x11_glx_AreTexturesResident_context_tag, tvb, *offsetp, 4, byte_order);
8526  *offsetp += 4;
8527  f_n = tvb_get_guint32(tvb, *offsetp, byte_order);
8528  proto_tree_add_item(t, hf_x11_glx_AreTexturesResident_n, tvb, *offsetp, 4, byte_order);
8529  *offsetp += 4;
8530  listOfCard32(tvb, offsetp, t, hf_x11_glx_AreTexturesResident_textures, hf_x11_glx_AreTexturesResident_textures_item, f_n, byte_order);
8531  length -= f_n * 4;
8532 }
8533 static void glxAreTexturesResident_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
8534 {
8535  int sequence_number;
8536  int f_length;
8537 
8538  col_append_fstr(pinfo->cinfo, COL_INFO, "-AreTexturesResident");
8539 
8540  REPLY(reply);
8541  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
8542  *offsetp += 1;
8543  sequence_number = tvb_get_guint16(tvb, *offsetp, byte_order);
8544  proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
8545  "%d (glx-AreTexturesResident)", sequence_number);
8546  *offsetp += 2;
8547  f_length = tvb_get_guint32(tvb, *offsetp, byte_order);
8548  proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
8549  *offsetp += 4;
8550  proto_tree_add_item(t, hf_x11_glx_AreTexturesResident_reply_ret_val, tvb, *offsetp, 4, byte_order);
8551  *offsetp += 4;
8552  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 20, ENC_NA);
8553  *offsetp += 20;
8554  listOfByte(tvb, offsetp, t, hf_x11_glx_AreTexturesResident_reply_data, (f_length * 4), byte_order);
8555 }
8556 
8557 static void glxDeleteTextures(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
8558 {
8559  int f_n;
8560  proto_tree_add_item(t, hf_x11_glx_DeleteTextures_context_tag, tvb, *offsetp, 4, byte_order);
8561  *offsetp += 4;
8562  f_n = tvb_get_guint32(tvb, *offsetp, byte_order);
8563  proto_tree_add_item(t, hf_x11_glx_DeleteTextures_n, tvb, *offsetp, 4, byte_order);
8564  *offsetp += 4;
8565  listOfCard32(tvb, offsetp, t, hf_x11_glx_DeleteTextures_textures, hf_x11_glx_DeleteTextures_textures_item, f_n, byte_order);
8566  length -= f_n * 4;
8567 }
8568 
8569 static void glxGenTextures(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
8570 {
8571  proto_tree_add_item(t, hf_x11_glx_GenTextures_context_tag, tvb, *offsetp, 4, byte_order);
8572  *offsetp += 4;
8573  proto_tree_add_item(t, hf_x11_glx_GenTextures_n, tvb, *offsetp, 4, byte_order);
8574  *offsetp += 4;
8575 }
8576 static void glxGenTextures_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
8577 {
8578  int sequence_number;
8579  int f_length;
8580 
8581  col_append_fstr(pinfo->cinfo, COL_INFO, "-GenTextures");
8582 
8583  REPLY(reply);
8584  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
8585  *offsetp += 1;
8586  sequence_number = tvb_get_guint16(tvb, *offsetp, byte_order);
8587  proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
8588  "%d (glx-GenTextures)", sequence_number);
8589  *offsetp += 2;
8590  f_length = tvb_get_guint32(tvb, *offsetp, byte_order);
8591  proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
8592  *offsetp += 4;
8593  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 24, ENC_NA);
8594  *offsetp += 24;
8595  listOfCard32(tvb, offsetp, t, hf_x11_glx_GenTextures_reply_data, hf_x11_glx_GenTextures_reply_data_item, f_length, byte_order);
8596 }
8597 
8598 static void glxIsTexture(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
8599 {
8600  proto_tree_add_item(t, hf_x11_glx_IsTexture_context_tag, tvb, *offsetp, 4, byte_order);
8601  *offsetp += 4;
8602  proto_tree_add_item(t, hf_x11_glx_IsTexture_texture, tvb, *offsetp, 4, byte_order);
8603  *offsetp += 4;
8604 }
8605 static void glxIsTexture_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
8606 {
8607  int sequence_number;
8608 
8609  col_append_fstr(pinfo->cinfo, COL_INFO, "-IsTexture");
8610 
8611  REPLY(reply);
8612  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
8613  *offsetp += 1;
8614  sequence_number = tvb_get_guint16(tvb, *offsetp, byte_order);
8615  proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
8616  "%d (glx-IsTexture)", sequence_number);
8617  *offsetp += 2;
8618  proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
8619  *offsetp += 4;
8620  proto_tree_add_item(t, hf_x11_glx_IsTexture_reply_ret_val, tvb, *offsetp, 4, byte_order);
8621  *offsetp += 4;
8622 }
8623 
8624 static void glxGetColorTable(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
8625 {
8626  proto_tree_add_item(t, hf_x11_glx_GetColorTable_context_tag, tvb, *offsetp, 4, byte_order);
8627  *offsetp += 4;
8628  proto_tree_add_item(t, hf_x11_glx_GetColorTable_target, tvb, *offsetp, 4, byte_order);
8629  *offsetp += 4;
8630  proto_tree_add_item(t, hf_x11_glx_GetColorTable_format, tvb, *offsetp, 4, byte_order);
8631  *offsetp += 4;
8632  proto_tree_add_item(t, hf_x11_glx_GetColorTable_type, tvb, *offsetp, 4, byte_order);
8633  *offsetp += 4;
8634  proto_tree_add_item(t, hf_x11_glx_GetColorTable_swap_bytes, tvb, *offsetp, 1, byte_order);
8635  *offsetp += 1;
8636 }
8637 static void glxGetColorTable_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
8638 {
8639  int sequence_number;
8640  int f_length;
8641 
8642  col_append_fstr(pinfo->cinfo, COL_INFO, "-GetColorTable");
8643 
8644  REPLY(reply);
8645  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
8646  *offsetp += 1;
8647  sequence_number = tvb_get_guint16(tvb, *offsetp, byte_order);
8648  proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
8649  "%d (glx-GetColorTable)", sequence_number);
8650  *offsetp += 2;
8651  f_length = tvb_get_guint32(tvb, *offsetp, byte_order);
8652  proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
8653  *offsetp += 4;
8654  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 8, ENC_NA);
8655  *offsetp += 8;
8656  proto_tree_add_item(t, hf_x11_glx_GetColorTable_reply_width, tvb, *offsetp, 4, byte_order);
8657  *offsetp += 4;
8658  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 12, ENC_NA);
8659  *offsetp += 12;
8660  listOfByte(tvb, offsetp, t, hf_x11_glx_GetColorTable_reply_data, (f_length * 4), byte_order);
8661 }
8662 
8663 static void glxGetColorTableParameterfv(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
8664 {
8665  proto_tree_add_item(t, hf_x11_glx_GetColorTableParameterfv_context_tag, tvb, *offsetp, 4, byte_order);
8666  *offsetp += 4;
8667  proto_tree_add_item(t, hf_x11_glx_GetColorTableParameterfv_target, tvb, *offsetp, 4, byte_order);
8668  *offsetp += 4;
8669  proto_tree_add_item(t, hf_x11_glx_GetColorTableParameterfv_pname, tvb, *offsetp, 4, byte_order);
8670  *offsetp += 4;
8671 }
8672 static void glxGetColorTableParameterfv_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
8673 {
8674  int sequence_number;
8675  int f_n;
8676 
8677  col_append_fstr(pinfo->cinfo, COL_INFO, "-GetColorTableParameterfv");
8678 
8679  REPLY(reply);
8680  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
8681  *offsetp += 1;
8682  sequence_number = tvb_get_guint16(tvb, *offsetp, byte_order);
8683  proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
8684  "%d (glx-GetColorTableParameterfv)", sequence_number);
8685  *offsetp += 2;
8686  proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
8687  *offsetp += 4;
8688  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 4, ENC_NA);
8689  *offsetp += 4;
8690  f_n = tvb_get_guint32(tvb, *offsetp, byte_order);
8691  proto_tree_add_item(t, hf_x11_glx_GetColorTableParameterfv_reply_n, tvb, *offsetp, 4, byte_order);
8692  *offsetp += 4;
8693  proto_tree_add_item(t, hf_x11_glx_GetColorTableParameterfv_reply_datum, tvb, *offsetp, 4, byte_order);
8694  *offsetp += 4;
8695  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 12, ENC_NA);
8696  *offsetp += 12;
8697  listOfFloat(tvb, offsetp, t, hf_x11_glx_GetColorTableParameterfv_reply_data, hf_x11_glx_GetColorTableParameterfv_reply_data_item, f_n, byte_order);
8698 }
8699 
8700 static void glxGetColorTableParameteriv(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
8701 {
8702  proto_tree_add_item(t, hf_x11_glx_GetColorTableParameteriv_context_tag, tvb, *offsetp, 4, byte_order);
8703  *offsetp += 4;
8704  proto_tree_add_item(t, hf_x11_glx_GetColorTableParameteriv_target, tvb, *offsetp, 4, byte_order);
8705  *offsetp += 4;
8706  proto_tree_add_item(t, hf_x11_glx_GetColorTableParameteriv_pname, tvb, *offsetp, 4, byte_order);
8707  *offsetp += 4;
8708 }
8709 static void glxGetColorTableParameteriv_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
8710 {
8711  int sequence_number;
8712  int f_n;
8713 
8714  col_append_fstr(pinfo->cinfo, COL_INFO, "-GetColorTableParameteriv");
8715 
8716  REPLY(reply);
8717  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
8718  *offsetp += 1;
8719  sequence_number = tvb_get_guint16(tvb, *offsetp, byte_order);
8720  proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
8721  "%d (glx-GetColorTableParameteriv)", sequence_number);
8722  *offsetp += 2;
8723  proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
8724  *offsetp += 4;
8725  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 4, ENC_NA);
8726  *offsetp += 4;
8727  f_n = tvb_get_guint32(tvb, *offsetp, byte_order);
8728  proto_tree_add_item(t, hf_x11_glx_GetColorTableParameteriv_reply_n, tvb, *offsetp, 4, byte_order);
8729  *offsetp += 4;
8730  proto_tree_add_item(t, hf_x11_glx_GetColorTableParameteriv_reply_datum, tvb, *offsetp, 4, byte_order);
8731  *offsetp += 4;
8732  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 12, ENC_NA);
8733  *offsetp += 12;
8734  listOfInt32(tvb, offsetp, t, hf_x11_glx_GetColorTableParameteriv_reply_data, hf_x11_glx_GetColorTableParameteriv_reply_data_item, f_n, byte_order);
8735 }
8736 
8737 static void glxGetConvolutionFilter(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
8738 {
8739  proto_tree_add_item(t, hf_x11_glx_GetConvolutionFilter_context_tag, tvb, *offsetp, 4, byte_order);
8740  *offsetp += 4;
8741  proto_tree_add_item(t, hf_x11_glx_GetConvolutionFilter_target, tvb, *offsetp, 4, byte_order);
8742  *offsetp += 4;
8743  proto_tree_add_item(t, hf_x11_glx_GetConvolutionFilter_format, tvb, *offsetp, 4, byte_order);
8744  *offsetp += 4;
8745  proto_tree_add_item(t, hf_x11_glx_GetConvolutionFilter_type, tvb, *offsetp, 4, byte_order);
8746  *offsetp += 4;
8747  proto_tree_add_item(t, hf_x11_glx_GetConvolutionFilter_swap_bytes, tvb, *offsetp, 1, byte_order);
8748  *offsetp += 1;
8749 }
8750 static void glxGetConvolutionFilter_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
8751 {
8752  int sequence_number;
8753  int f_length;
8754 
8755  col_append_fstr(pinfo->cinfo, COL_INFO, "-GetConvolutionFilter");
8756 
8757  REPLY(reply);
8758  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
8759  *offsetp += 1;
8760  sequence_number = tvb_get_guint16(tvb, *offsetp, byte_order);
8761  proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
8762  "%d (glx-GetConvolutionFilter)", sequence_number);
8763  *offsetp += 2;
8764  f_length = tvb_get_guint32(tvb, *offsetp, byte_order);
8765  proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
8766  *offsetp += 4;
8767  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 8, ENC_NA);
8768  *offsetp += 8;
8769  proto_tree_add_item(t, hf_x11_glx_GetConvolutionFilter_reply_width, tvb, *offsetp, 4, byte_order);
8770  *offsetp += 4;
8771  proto_tree_add_item(t, hf_x11_glx_GetConvolutionFilter_reply_height, tvb, *offsetp, 4, byte_order);
8772  *offsetp += 4;
8773  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 8, ENC_NA);
8774  *offsetp += 8;
8775  listOfByte(tvb, offsetp, t, hf_x11_glx_GetConvolutionFilter_reply_data, (f_length * 4), byte_order);
8776 }
8777 
8778 static void glxGetConvolutionParameterfv(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
8779 {
8780  proto_tree_add_item(t, hf_x11_glx_GetConvolutionParameterfv_context_tag, tvb, *offsetp, 4, byte_order);
8781  *offsetp += 4;
8782  proto_tree_add_item(t, hf_x11_glx_GetConvolutionParameterfv_target, tvb, *offsetp, 4, byte_order);
8783  *offsetp += 4;
8784  proto_tree_add_item(t, hf_x11_glx_GetConvolutionParameterfv_pname, tvb, *offsetp, 4, byte_order);
8785  *offsetp += 4;
8786 }
8787 static void glxGetConvolutionParameterfv_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
8788 {
8789  int sequence_number;
8790  int f_n;
8791 
8792  col_append_fstr(pinfo->cinfo, COL_INFO, "-GetConvolutionParameterfv");
8793 
8794  REPLY(reply);
8795  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
8796  *offsetp += 1;
8797  sequence_number = tvb_get_guint16(tvb, *offsetp, byte_order);
8798  proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
8799  "%d (glx-GetConvolutionParameterfv)", sequence_number);
8800  *offsetp += 2;
8801  proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
8802  *offsetp += 4;
8803  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 4, ENC_NA);
8804  *offsetp += 4;
8805  f_n = tvb_get_guint32(tvb, *offsetp, byte_order);
8806  proto_tree_add_item(t, hf_x11_glx_GetConvolutionParameterfv_reply_n, tvb, *offsetp, 4, byte_order);
8807  *offsetp += 4;
8808  proto_tree_add_item(t, hf_x11_glx_GetConvolutionParameterfv_reply_datum, tvb, *offsetp, 4, byte_order);
8809  *offsetp += 4;
8810  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 12, ENC_NA);
8811  *offsetp += 12;
8812  listOfFloat(tvb, offsetp, t, hf_x11_glx_GetConvolutionParameterfv_reply_data, hf_x11_glx_GetConvolutionParameterfv_reply_data_item, f_n, byte_order);
8813 }
8814 
8815 static void glxGetConvolutionParameteriv(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
8816 {
8817  proto_tree_add_item(t, hf_x11_glx_GetConvolutionParameteriv_context_tag, tvb, *offsetp, 4, byte_order);
8818  *offsetp += 4;
8819  proto_tree_add_item(t, hf_x11_glx_GetConvolutionParameteriv_target, tvb, *offsetp, 4, byte_order);
8820  *offsetp += 4;
8821  proto_tree_add_item(t, hf_x11_glx_GetConvolutionParameteriv_pname, tvb, *offsetp, 4, byte_order);
8822  *offsetp += 4;
8823 }
8824 static void glxGetConvolutionParameteriv_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
8825 {
8826  int sequence_number;
8827  int f_n;
8828 
8829  col_append_fstr(pinfo->cinfo, COL_INFO, "-GetConvolutionParameteriv");
8830 
8831  REPLY(reply);
8832  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
8833  *offsetp += 1;
8834  sequence_number = tvb_get_guint16(tvb, *offsetp, byte_order);
8835  proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
8836  "%d (glx-GetConvolutionParameteriv)", sequence_number);
8837  *offsetp += 2;
8838  proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
8839  *offsetp += 4;
8840  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 4, ENC_NA);
8841  *offsetp += 4;
8842  f_n = tvb_get_guint32(tvb, *offsetp, byte_order);
8843  proto_tree_add_item(t, hf_x11_glx_GetConvolutionParameteriv_reply_n, tvb, *offsetp, 4, byte_order);
8844  *offsetp += 4;
8845  proto_tree_add_item(t, hf_x11_glx_GetConvolutionParameteriv_reply_datum, tvb, *offsetp, 4, byte_order);
8846  *offsetp += 4;
8847  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 12, ENC_NA);
8848  *offsetp += 12;
8849  listOfInt32(tvb, offsetp, t, hf_x11_glx_GetConvolutionParameteriv_reply_data, hf_x11_glx_GetConvolutionParameteriv_reply_data_item, f_n, byte_order);
8850 }
8851 
8852 static void glxGetSeparableFilter(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
8853 {
8854  proto_tree_add_item(t, hf_x11_glx_GetSeparableFilter_context_tag, tvb, *offsetp, 4, byte_order);
8855  *offsetp += 4;
8856  proto_tree_add_item(t, hf_x11_glx_GetSeparableFilter_target, tvb, *offsetp, 4, byte_order);
8857  *offsetp += 4;
8858  proto_tree_add_item(t, hf_x11_glx_GetSeparableFilter_format, tvb, *offsetp, 4, byte_order);
8859  *offsetp += 4;
8860  proto_tree_add_item(t, hf_x11_glx_GetSeparableFilter_type, tvb, *offsetp, 4, byte_order);
8861  *offsetp += 4;
8862  proto_tree_add_item(t, hf_x11_glx_GetSeparableFilter_swap_bytes, tvb, *offsetp, 1, byte_order);
8863  *offsetp += 1;
8864 }
8865 static void glxGetSeparableFilter_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
8866 {
8867  int sequence_number;
8868  int f_length;
8869 
8870  col_append_fstr(pinfo->cinfo, COL_INFO, "-GetSeparableFilter");
8871 
8872  REPLY(reply);
8873  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
8874  *offsetp += 1;
8875  sequence_number = tvb_get_guint16(tvb, *offsetp, byte_order);
8876  proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
8877  "%d (glx-GetSeparableFilter)", sequence_number);
8878  *offsetp += 2;
8879  f_length = tvb_get_guint32(tvb, *offsetp, byte_order);
8880  proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
8881  *offsetp += 4;
8882  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 8, ENC_NA);
8883  *offsetp += 8;
8884  proto_tree_add_item(t, hf_x11_glx_GetSeparableFilter_reply_row_w, tvb, *offsetp, 4, byte_order);
8885  *offsetp += 4;
8886  proto_tree_add_item(t, hf_x11_glx_GetSeparableFilter_reply_col_h, tvb, *offsetp, 4, byte_order);
8887  *offsetp += 4;
8888  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 8, ENC_NA);
8889  *offsetp += 8;
8890  listOfByte(tvb, offsetp, t, hf_x11_glx_GetSeparableFilter_reply_rows_and_cols, (f_length * 4), byte_order);
8891 }
8892 
8893 static void glxGetHistogram(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
8894 {
8895  proto_tree_add_item(t, hf_x11_glx_GetHistogram_context_tag, tvb, *offsetp, 4, byte_order);
8896  *offsetp += 4;
8897  proto_tree_add_item(t, hf_x11_glx_GetHistogram_target, tvb, *offsetp, 4, byte_order);
8898  *offsetp += 4;
8899  proto_tree_add_item(t, hf_x11_glx_GetHistogram_format, tvb, *offsetp, 4, byte_order);
8900  *offsetp += 4;
8901  proto_tree_add_item(t, hf_x11_glx_GetHistogram_type, tvb, *offsetp, 4, byte_order);
8902  *offsetp += 4;
8903  proto_tree_add_item(t, hf_x11_glx_GetHistogram_swap_bytes, tvb, *offsetp, 1, byte_order);
8904  *offsetp += 1;
8905  proto_tree_add_item(t, hf_x11_glx_GetHistogram_reset, tvb, *offsetp, 1, byte_order);
8906  *offsetp += 1;
8907 }
8908 static void glxGetHistogram_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
8909 {
8910  int sequence_number;
8911  int f_length;
8912 
8913  col_append_fstr(pinfo->cinfo, COL_INFO, "-GetHistogram");
8914 
8915  REPLY(reply);
8916  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
8917  *offsetp += 1;
8918  sequence_number = tvb_get_guint16(tvb, *offsetp, byte_order);
8919  proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
8920  "%d (glx-GetHistogram)", sequence_number);
8921  *offsetp += 2;
8922  f_length = tvb_get_guint32(tvb, *offsetp, byte_order);
8923  proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
8924  *offsetp += 4;
8925  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 8, ENC_NA);
8926  *offsetp += 8;
8927  proto_tree_add_item(t, hf_x11_glx_GetHistogram_reply_width, tvb, *offsetp, 4, byte_order);
8928  *offsetp += 4;
8929  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 12, ENC_NA);
8930  *offsetp += 12;
8931  listOfByte(tvb, offsetp, t, hf_x11_glx_GetHistogram_reply_data, (f_length * 4), byte_order);
8932 }
8933 
8934 static void glxGetHistogramParameterfv(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
8935 {
8936  proto_tree_add_item(t, hf_x11_glx_GetHistogramParameterfv_context_tag, tvb, *offsetp, 4, byte_order);
8937  *offsetp += 4;
8938  proto_tree_add_item(t, hf_x11_glx_GetHistogramParameterfv_target, tvb, *offsetp, 4, byte_order);
8939  *offsetp += 4;
8940  proto_tree_add_item(t, hf_x11_glx_GetHistogramParameterfv_pname, tvb, *offsetp, 4, byte_order);
8941  *offsetp += 4;
8942 }
8943 static void glxGetHistogramParameterfv_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
8944 {
8945  int sequence_number;
8946  int f_n;
8947 
8948  col_append_fstr(pinfo->cinfo, COL_INFO, "-GetHistogramParameterfv");
8949 
8950  REPLY(reply);
8951  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
8952  *offsetp += 1;
8953  sequence_number = tvb_get_guint16(tvb, *offsetp, byte_order);
8954  proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
8955  "%d (glx-GetHistogramParameterfv)", sequence_number);
8956  *offsetp += 2;
8957  proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
8958  *offsetp += 4;
8959  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 4, ENC_NA);
8960  *offsetp += 4;
8961  f_n = tvb_get_guint32(tvb, *offsetp, byte_order);
8962  proto_tree_add_item(t, hf_x11_glx_GetHistogramParameterfv_reply_n, tvb, *offsetp, 4, byte_order);
8963  *offsetp += 4;
8964  proto_tree_add_item(t, hf_x11_glx_GetHistogramParameterfv_reply_datum, tvb, *offsetp, 4, byte_order);
8965  *offsetp += 4;
8966  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 12, ENC_NA);
8967  *offsetp += 12;
8968  listOfFloat(tvb, offsetp, t, hf_x11_glx_GetHistogramParameterfv_reply_data, hf_x11_glx_GetHistogramParameterfv_reply_data_item, f_n, byte_order);
8969 }
8970 
8971 static void glxGetHistogramParameteriv(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
8972 {
8973  proto_tree_add_item(t, hf_x11_glx_GetHistogramParameteriv_context_tag, tvb, *offsetp, 4, byte_order);
8974  *offsetp += 4;
8975  proto_tree_add_item(t, hf_x11_glx_GetHistogramParameteriv_target, tvb, *offsetp, 4, byte_order);
8976  *offsetp += 4;
8977  proto_tree_add_item(t, hf_x11_glx_GetHistogramParameteriv_pname, tvb, *offsetp, 4, byte_order);
8978  *offsetp += 4;
8979 }
8980 static void glxGetHistogramParameteriv_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
8981 {
8982  int sequence_number;
8983  int f_n;
8984 
8985  col_append_fstr(pinfo->cinfo, COL_INFO, "-GetHistogramParameteriv");
8986 
8987  REPLY(reply);
8988  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
8989  *offsetp += 1;
8990  sequence_number = tvb_get_guint16(tvb, *offsetp, byte_order);
8991  proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
8992  "%d (glx-GetHistogramParameteriv)", sequence_number);
8993  *offsetp += 2;
8994  proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
8995  *offsetp += 4;
8996  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 4, ENC_NA);
8997  *offsetp += 4;
8998  f_n = tvb_get_guint32(tvb, *offsetp, byte_order);
8999  proto_tree_add_item(t, hf_x11_glx_GetHistogramParameteriv_reply_n, tvb, *offsetp, 4, byte_order);
9000  *offsetp += 4;
9001  proto_tree_add_item(t, hf_x11_glx_GetHistogramParameteriv_reply_datum, tvb, *offsetp, 4, byte_order);
9002  *offsetp += 4;
9003  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 12, ENC_NA);
9004  *offsetp += 12;
9005  listOfInt32(tvb, offsetp, t, hf_x11_glx_GetHistogramParameteriv_reply_data, hf_x11_glx_GetHistogramParameteriv_reply_data_item, f_n, byte_order);
9006 }
9007 
9008 static void glxGetMinmax(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
9009 {
9010  proto_tree_add_item(t, hf_x11_glx_GetMinmax_context_tag, tvb, *offsetp, 4, byte_order);
9011  *offsetp += 4;
9012  proto_tree_add_item(t, hf_x11_glx_GetMinmax_target, tvb, *offsetp, 4, byte_order);
9013  *offsetp += 4;
9014  proto_tree_add_item(t, hf_x11_glx_GetMinmax_format, tvb, *offsetp, 4, byte_order);
9015  *offsetp += 4;
9016  proto_tree_add_item(t, hf_x11_glx_GetMinmax_type, tvb, *offsetp, 4, byte_order);
9017  *offsetp += 4;
9018  proto_tree_add_item(t, hf_x11_glx_GetMinmax_swap_bytes, tvb, *offsetp, 1, byte_order);
9019  *offsetp += 1;
9020  proto_tree_add_item(t, hf_x11_glx_GetMinmax_reset, tvb, *offsetp, 1, byte_order);
9021  *offsetp += 1;
9022 }
9023 static void glxGetMinmax_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
9024 {
9025  int sequence_number;
9026  int f_length;
9027 
9028  col_append_fstr(pinfo->cinfo, COL_INFO, "-GetMinmax");
9029 
9030  REPLY(reply);
9031  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
9032  *offsetp += 1;
9033  sequence_number = tvb_get_guint16(tvb, *offsetp, byte_order);
9034  proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
9035  "%d (glx-GetMinmax)", sequence_number);
9036  *offsetp += 2;
9037  f_length = tvb_get_guint32(tvb, *offsetp, byte_order);
9038  proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
9039  *offsetp += 4;
9040  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 24, ENC_NA);
9041  *offsetp += 24;
9042  listOfByte(tvb, offsetp, t, hf_x11_glx_GetMinmax_reply_data, (f_length * 4), byte_order);
9043 }
9044 
9045 static void glxGetMinmaxParameterfv(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
9046 {
9047  proto_tree_add_item(t, hf_x11_glx_GetMinmaxParameterfv_context_tag, tvb, *offsetp, 4, byte_order);
9048  *offsetp += 4;
9049  proto_tree_add_item(t, hf_x11_glx_GetMinmaxParameterfv_target, tvb, *offsetp, 4, byte_order);
9050  *offsetp += 4;
9051  proto_tree_add_item(t, hf_x11_glx_GetMinmaxParameterfv_pname, tvb, *offsetp, 4, byte_order);
9052  *offsetp += 4;
9053 }
9054 static void glxGetMinmaxParameterfv_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
9055 {
9056  int sequence_number;
9057  int f_n;
9058 
9059  col_append_fstr(pinfo->cinfo, COL_INFO, "-GetMinmaxParameterfv");
9060 
9061  REPLY(reply);
9062  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
9063  *offsetp += 1;
9064  sequence_number = tvb_get_guint16(tvb, *offsetp, byte_order);
9065  proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
9066  "%d (glx-GetMinmaxParameterfv)", sequence_number);
9067  *offsetp += 2;
9068  proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
9069  *offsetp += 4;
9070  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 4, ENC_NA);
9071  *offsetp += 4;
9072  f_n = tvb_get_guint32(tvb, *offsetp, byte_order);
9073  proto_tree_add_item(t, hf_x11_glx_GetMinmaxParameterfv_reply_n, tvb, *offsetp, 4, byte_order);
9074  *offsetp += 4;
9075  proto_tree_add_item(t, hf_x11_glx_GetMinmaxParameterfv_reply_datum, tvb, *offsetp, 4, byte_order);
9076  *offsetp += 4;
9077  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 12, ENC_NA);
9078  *offsetp += 12;
9079  listOfFloat(tvb, offsetp, t, hf_x11_glx_GetMinmaxParameterfv_reply_data, hf_x11_glx_GetMinmaxParameterfv_reply_data_item, f_n, byte_order);
9080 }
9081 
9082 static void glxGetMinmaxParameteriv(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
9083 {
9084  proto_tree_add_item(t, hf_x11_glx_GetMinmaxParameteriv_context_tag, tvb, *offsetp, 4, byte_order);
9085  *offsetp += 4;
9086  proto_tree_add_item(t, hf_x11_glx_GetMinmaxParameteriv_target, tvb, *offsetp, 4, byte_order);
9087  *offsetp += 4;
9088  proto_tree_add_item(t, hf_x11_glx_GetMinmaxParameteriv_pname, tvb, *offsetp, 4, byte_order);
9089  *offsetp += 4;
9090 }
9091 static void glxGetMinmaxParameteriv_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
9092 {
9093  int sequence_number;
9094  int f_n;
9095 
9096  col_append_fstr(pinfo->cinfo, COL_INFO, "-GetMinmaxParameteriv");
9097 
9098  REPLY(reply);
9099  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
9100  *offsetp += 1;
9101  sequence_number = tvb_get_guint16(tvb, *offsetp, byte_order);
9102  proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
9103  "%d (glx-GetMinmaxParameteriv)", sequence_number);
9104  *offsetp += 2;
9105  proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
9106  *offsetp += 4;
9107  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 4, ENC_NA);
9108  *offsetp += 4;
9109  f_n = tvb_get_guint32(tvb, *offsetp, byte_order);
9110  proto_tree_add_item(t, hf_x11_glx_GetMinmaxParameteriv_reply_n, tvb, *offsetp, 4, byte_order);
9111  *offsetp += 4;
9112  proto_tree_add_item(t, hf_x11_glx_GetMinmaxParameteriv_reply_datum, tvb, *offsetp, 4, byte_order);
9113  *offsetp += 4;
9114  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 12, ENC_NA);
9115  *offsetp += 12;
9116  listOfInt32(tvb, offsetp, t, hf_x11_glx_GetMinmaxParameteriv_reply_data, hf_x11_glx_GetMinmaxParameteriv_reply_data_item, f_n, byte_order);
9117 }
9118 
9119 static void glxGetCompressedTexImageARB(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
9120 {
9121  proto_tree_add_item(t, hf_x11_glx_GetCompressedTexImageARB_context_tag, tvb, *offsetp, 4, byte_order);
9122  *offsetp += 4;
9123  proto_tree_add_item(t, hf_x11_glx_GetCompressedTexImageARB_target, tvb, *offsetp, 4, byte_order);
9124  *offsetp += 4;
9125  proto_tree_add_item(t, hf_x11_glx_GetCompressedTexImageARB_level, tvb, *offsetp, 4, byte_order);
9126  *offsetp += 4;
9127 }
9128 static void glxGetCompressedTexImageARB_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
9129 {
9130  int sequence_number;
9131  int f_length;
9132 
9133  col_append_fstr(pinfo->cinfo, COL_INFO, "-GetCompressedTexImageARB");
9134 
9135  REPLY(reply);
9136  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
9137  *offsetp += 1;
9138  sequence_number = tvb_get_guint16(tvb, *offsetp, byte_order);
9139  proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
9140  "%d (glx-GetCompressedTexImageARB)", sequence_number);
9141  *offsetp += 2;
9142  f_length = tvb_get_guint32(tvb, *offsetp, byte_order);
9143  proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
9144  *offsetp += 4;
9145  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 8, ENC_NA);
9146  *offsetp += 8;
9147  proto_tree_add_item(t, hf_x11_glx_GetCompressedTexImageARB_reply_size, tvb, *offsetp, 4, byte_order);
9148  *offsetp += 4;
9149  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 12, ENC_NA);
9150  *offsetp += 12;
9151  listOfByte(tvb, offsetp, t, hf_x11_glx_GetCompressedTexImageARB_reply_data, (f_length * 4), byte_order);
9152 }
9153 
9154 static void glxDeleteQueriesARB(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
9155 {
9156  int f_n;
9157  proto_tree_add_item(t, hf_x11_glx_DeleteQueriesARB_context_tag, tvb, *offsetp, 4, byte_order);
9158  *offsetp += 4;
9159  f_n = tvb_get_guint32(tvb, *offsetp, byte_order);
9160  proto_tree_add_item(t, hf_x11_glx_DeleteQueriesARB_n, tvb, *offsetp, 4, byte_order);
9161  *offsetp += 4;
9162  listOfCard32(tvb, offsetp, t, hf_x11_glx_DeleteQueriesARB_ids, hf_x11_glx_DeleteQueriesARB_ids_item, f_n, byte_order);
9163  length -= f_n * 4;
9164 }
9165 
9166 static void glxGenQueriesARB(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
9167 {
9168  proto_tree_add_item(t, hf_x11_glx_GenQueriesARB_context_tag, tvb, *offsetp, 4, byte_order);
9169  *offsetp += 4;
9170  proto_tree_add_item(t, hf_x11_glx_GenQueriesARB_n, tvb, *offsetp, 4, byte_order);
9171  *offsetp += 4;
9172 }
9173 static void glxGenQueriesARB_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
9174 {
9175  int sequence_number;
9176  int f_length;
9177 
9178  col_append_fstr(pinfo->cinfo, COL_INFO, "-GenQueriesARB");
9179 
9180  REPLY(reply);
9181  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
9182  *offsetp += 1;
9183  sequence_number = tvb_get_guint16(tvb, *offsetp, byte_order);
9184  proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
9185  "%d (glx-GenQueriesARB)", sequence_number);
9186  *offsetp += 2;
9187  f_length = tvb_get_guint32(tvb, *offsetp, byte_order);
9188  proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
9189  *offsetp += 4;
9190  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 24, ENC_NA);
9191  *offsetp += 24;
9192  listOfCard32(tvb, offsetp, t, hf_x11_glx_GenQueriesARB_reply_data, hf_x11_glx_GenQueriesARB_reply_data_item, f_length, byte_order);
9193 }
9194 
9195 static void glxIsQueryARB(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
9196 {
9197  proto_tree_add_item(t, hf_x11_glx_IsQueryARB_context_tag, tvb, *offsetp, 4, byte_order);
9198  *offsetp += 4;
9199  proto_tree_add_item(t, hf_x11_glx_IsQueryARB_id, tvb, *offsetp, 4, byte_order);
9200  *offsetp += 4;
9201 }
9202 static void glxIsQueryARB_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
9203 {
9204  int sequence_number;
9205 
9206  col_append_fstr(pinfo->cinfo, COL_INFO, "-IsQueryARB");
9207 
9208  REPLY(reply);
9209  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
9210  *offsetp += 1;
9211  sequence_number = tvb_get_guint16(tvb, *offsetp, byte_order);
9212  proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
9213  "%d (glx-IsQueryARB)", sequence_number);
9214  *offsetp += 2;
9215  proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
9216  *offsetp += 4;
9217  proto_tree_add_item(t, hf_x11_glx_IsQueryARB_reply_ret_val, tvb, *offsetp, 4, byte_order);
9218  *offsetp += 4;
9219 }
9220 
9221 static void glxGetQueryivARB(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
9222 {
9223  proto_tree_add_item(t, hf_x11_glx_GetQueryivARB_context_tag, tvb, *offsetp, 4, byte_order);
9224  *offsetp += 4;
9225  proto_tree_add_item(t, hf_x11_glx_GetQueryivARB_target, tvb, *offsetp, 4, byte_order);
9226  *offsetp += 4;
9227  proto_tree_add_item(t, hf_x11_glx_GetQueryivARB_pname, tvb, *offsetp, 4, byte_order);
9228  *offsetp += 4;
9229 }
9230 static void glxGetQueryivARB_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
9231 {
9232  int sequence_number;
9233  int f_n;
9234 
9235  col_append_fstr(pinfo->cinfo, COL_INFO, "-GetQueryivARB");
9236 
9237  REPLY(reply);
9238  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
9239  *offsetp += 1;
9240  sequence_number = tvb_get_guint16(tvb, *offsetp, byte_order);
9241  proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
9242  "%d (glx-GetQueryivARB)", sequence_number);
9243  *offsetp += 2;
9244  proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
9245  *offsetp += 4;
9246  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 4, ENC_NA);
9247  *offsetp += 4;
9248  f_n = tvb_get_guint32(tvb, *offsetp, byte_order);
9249  proto_tree_add_item(t, hf_x11_glx_GetQueryivARB_reply_n, tvb, *offsetp, 4, byte_order);
9250  *offsetp += 4;
9251  proto_tree_add_item(t, hf_x11_glx_GetQueryivARB_reply_datum, tvb, *offsetp, 4, byte_order);
9252  *offsetp += 4;
9253  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 12, ENC_NA);
9254  *offsetp += 12;
9255  listOfInt32(tvb, offsetp, t, hf_x11_glx_GetQueryivARB_reply_data, hf_x11_glx_GetQueryivARB_reply_data_item, f_n, byte_order);
9256 }
9257 
9258 static void glxGetQueryObjectivARB(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
9259 {
9260  proto_tree_add_item(t, hf_x11_glx_GetQueryObjectivARB_context_tag, tvb, *offsetp, 4, byte_order);
9261  *offsetp += 4;
9262  proto_tree_add_item(t, hf_x11_glx_GetQueryObjectivARB_id, tvb, *offsetp, 4, byte_order);
9263  *offsetp += 4;
9264  proto_tree_add_item(t, hf_x11_glx_GetQueryObjectivARB_pname, tvb, *offsetp, 4, byte_order);
9265  *offsetp += 4;
9266 }
9267 static void glxGetQueryObjectivARB_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
9268 {
9269  int sequence_number;
9270  int f_n;
9271 
9272  col_append_fstr(pinfo->cinfo, COL_INFO, "-GetQueryObjectivARB");
9273 
9274  REPLY(reply);
9275  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
9276  *offsetp += 1;
9277  sequence_number = tvb_get_guint16(tvb, *offsetp, byte_order);
9278  proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
9279  "%d (glx-GetQueryObjectivARB)", sequence_number);
9280  *offsetp += 2;
9281  proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
9282  *offsetp += 4;
9283  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 4, ENC_NA);
9284  *offsetp += 4;
9285  f_n = tvb_get_guint32(tvb, *offsetp, byte_order);
9286  proto_tree_add_item(t, hf_x11_glx_GetQueryObjectivARB_reply_n, tvb, *offsetp, 4, byte_order);
9287  *offsetp += 4;
9288  proto_tree_add_item(t, hf_x11_glx_GetQueryObjectivARB_reply_datum, tvb, *offsetp, 4, byte_order);
9289  *offsetp += 4;
9290  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 12, ENC_NA);
9291  *offsetp += 12;
9292  listOfInt32(tvb, offsetp, t, hf_x11_glx_GetQueryObjectivARB_reply_data, hf_x11_glx_GetQueryObjectivARB_reply_data_item, f_n, byte_order);
9293 }
9294 
9295 static void glxGetQueryObjectuivARB(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
9296 {
9297  proto_tree_add_item(t, hf_x11_glx_GetQueryObjectuivARB_context_tag, tvb, *offsetp, 4, byte_order);
9298  *offsetp += 4;
9299  proto_tree_add_item(t, hf_x11_glx_GetQueryObjectuivARB_id, tvb, *offsetp, 4, byte_order);
9300  *offsetp += 4;
9301  proto_tree_add_item(t, hf_x11_glx_GetQueryObjectuivARB_pname, tvb, *offsetp, 4, byte_order);
9302  *offsetp += 4;
9303 }
9304 static void glxGetQueryObjectuivARB_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
9305 {
9306  int sequence_number;
9307  int f_n;
9308 
9309  col_append_fstr(pinfo->cinfo, COL_INFO, "-GetQueryObjectuivARB");
9310 
9311  REPLY(reply);
9312  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
9313  *offsetp += 1;
9314  sequence_number = tvb_get_guint16(tvb, *offsetp, byte_order);
9315  proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
9316  "%d (glx-GetQueryObjectuivARB)", sequence_number);
9317  *offsetp += 2;
9318  proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
9319  *offsetp += 4;
9320  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 4, ENC_NA);
9321  *offsetp += 4;
9322  f_n = tvb_get_guint32(tvb, *offsetp, byte_order);
9323  proto_tree_add_item(t, hf_x11_glx_GetQueryObjectuivARB_reply_n, tvb, *offsetp, 4, byte_order);
9324  *offsetp += 4;
9325  proto_tree_add_item(t, hf_x11_glx_GetQueryObjectuivARB_reply_datum, tvb, *offsetp, 4, byte_order);
9326  *offsetp += 4;
9327  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 12, ENC_NA);
9328  *offsetp += 12;
9329  listOfCard32(tvb, offsetp, t, hf_x11_glx_GetQueryObjectuivARB_reply_data, hf_x11_glx_GetQueryObjectuivARB_reply_data_item, f_n, byte_order);
9330 }
9331 static const value_string glx_extension_minor[] = {
9332  { 1, "Render" },
9333  { 2, "RenderLarge" },
9334  { 3, "CreateContext" },
9335  { 4, "DestroyContext" },
9336  { 5, "MakeCurrent" },
9337  { 6, "IsDirect" },
9338  { 7, "QueryVersion" },
9339  { 8, "WaitGL" },
9340  { 9, "WaitX" },
9341  { 10, "CopyContext" },
9342  { 11, "SwapBuffers" },
9343  { 12, "UseXFont" },
9344  { 13, "CreateGLXPixmap" },
9345  { 14, "GetVisualConfigs" },
9346  { 15, "DestroyGLXPixmap" },
9347  { 16, "VendorPrivate" },
9348  { 17, "VendorPrivateWithReply" },
9349  { 18, "QueryExtensionsString" },
9350  { 19, "QueryServerString" },
9351  { 20, "ClientInfo" },
9352  { 21, "GetFBConfigs" },
9353  { 22, "CreatePixmap" },
9354  { 23, "DestroyPixmap" },
9355  { 24, "CreateNewContext" },
9356  { 25, "QueryContext" },
9357  { 26, "MakeContextCurrent" },
9358  { 27, "CreatePbuffer" },
9359  { 28, "DestroyPbuffer" },
9360  { 29, "GetDrawableAttributes" },
9361  { 30, "ChangeDrawableAttributes" },
9362  { 31, "CreateWindow" },
9363  { 32, "DeleteWindow" },
9364  { 33, "SetClientInfoARB" },
9365  { 34, "CreateContextAttribsARB" },
9366  { 35, "SetClientInfo2ARB" },
9367  { 101, "NewList" },
9368  { 102, "EndList" },
9369  { 103, "DeleteLists" },
9370  { 104, "GenLists" },
9371  { 105, "FeedbackBuffer" },
9372  { 106, "SelectBuffer" },
9373  { 107, "RenderMode" },
9374  { 108, "Finish" },
9375  { 109, "PixelStoref" },
9376  { 110, "PixelStorei" },
9377  { 111, "ReadPixels" },
9378  { 112, "GetBooleanv" },
9379  { 113, "GetClipPlane" },
9380  { 114, "GetDoublev" },
9381  { 115, "GetError" },
9382  { 116, "GetFloatv" },
9383  { 117, "GetIntegerv" },
9384  { 118, "GetLightfv" },
9385  { 119, "GetLightiv" },
9386  { 120, "GetMapdv" },
9387  { 121, "GetMapfv" },
9388  { 122, "GetMapiv" },
9389  { 123, "GetMaterialfv" },
9390  { 124, "GetMaterialiv" },
9391  { 125, "GetPixelMapfv" },
9392  { 126, "GetPixelMapuiv" },
9393  { 127, "GetPixelMapusv" },
9394  { 128, "GetPolygonStipple" },
9395  { 129, "GetString" },
9396  { 130, "GetTexEnvfv" },
9397  { 131, "GetTexEnviv" },
9398  { 132, "GetTexGendv" },
9399  { 133, "GetTexGenfv" },
9400  { 134, "GetTexGeniv" },
9401  { 135, "GetTexImage" },
9402  { 136, "GetTexParameterfv" },
9403  { 137, "GetTexParameteriv" },
9404  { 138, "GetTexLevelParameterfv" },
9405  { 139, "GetTexLevelParameteriv" },
9406  { 140, "IsEnabled" },
9407  { 141, "IsList" },
9408  { 142, "Flush" },
9409  { 143, "AreTexturesResident" },
9410  { 144, "DeleteTextures" },
9411  { 145, "GenTextures" },
9412  { 146, "IsTexture" },
9413  { 147, "GetColorTable" },
9414  { 148, "GetColorTableParameterfv" },
9415  { 149, "GetColorTableParameteriv" },
9416  { 150, "GetConvolutionFilter" },
9417  { 151, "GetConvolutionParameterfv" },
9418  { 152, "GetConvolutionParameteriv" },
9419  { 153, "GetSeparableFilter" },
9420  { 154, "GetHistogram" },
9421  { 155, "GetHistogramParameterfv" },
9422  { 156, "GetHistogramParameteriv" },
9423  { 157, "GetMinmax" },
9424  { 158, "GetMinmaxParameterfv" },
9425  { 159, "GetMinmaxParameteriv" },
9426  { 160, "GetCompressedTexImageARB" },
9427  { 161, "DeleteQueriesARB" },
9428  { 162, "GenQueriesARB" },
9429  { 163, "IsQueryARB" },
9430  { 164, "GetQueryivARB" },
9431  { 165, "GetQueryObjectivARB" },
9432  { 166, "GetQueryObjectuivARB" },
9433  { 0, NULL }
9434 };
9435 const x11_event_info glx_events[] = {
9436  { "glx-BufferSwapComplete", glxBufferSwapComplete },
9437  { NULL, NULL }
9438 };
9439 static x11_reply_info glx_replies[] = {
9440  { 5, glxMakeCurrent_Reply },
9441  { 6, glxIsDirect_Reply },
9442  { 7, glxQueryVersion_Reply },
9443  { 14, glxGetVisualConfigs_Reply },
9444  { 17, glxVendorPrivateWithReply_Reply },
9445  { 18, glxQueryExtensionsString_Reply },
9446  { 19, glxQueryServerString_Reply },
9447  { 21, glxGetFBConfigs_Reply },
9448  { 25, glxQueryContext_Reply },
9449  { 26, glxMakeContextCurrent_Reply },
9450  { 29, glxGetDrawableAttributes_Reply },
9451  { 104, glxGenLists_Reply },
9452  { 107, glxRenderMode_Reply },
9453  { 108, glxFinish_Reply },
9454  { 111, glxReadPixels_Reply },
9455  { 112, glxGetBooleanv_Reply },
9456  { 113, glxGetClipPlane_Reply },
9457  { 114, glxGetDoublev_Reply },
9458  { 115, glxGetError_Reply },
9459  { 116, glxGetFloatv_Reply },
9460  { 117, glxGetIntegerv_Reply },
9461  { 118, glxGetLightfv_Reply },
9462  { 119, glxGetLightiv_Reply },
9463  { 120, glxGetMapdv_Reply },
9464  { 121, glxGetMapfv_Reply },
9465  { 122, glxGetMapiv_Reply },
9466  { 123, glxGetMaterialfv_Reply },
9467  { 124, glxGetMaterialiv_Reply },
9468  { 125, glxGetPixelMapfv_Reply },
9469  { 126, glxGetPixelMapuiv_Reply },
9470  { 127, glxGetPixelMapusv_Reply },
9471  { 128, glxGetPolygonStipple_Reply },
9472  { 129, glxGetString_Reply },
9473  { 130, glxGetTexEnvfv_Reply },
9474  { 131, glxGetTexEnviv_Reply },
9475  { 132, glxGetTexGendv_Reply },
9476  { 133, glxGetTexGenfv_Reply },
9477  { 134, glxGetTexGeniv_Reply },
9478  { 135, glxGetTexImage_Reply },
9479  { 136, glxGetTexParameterfv_Reply },
9480  { 137, glxGetTexParameteriv_Reply },
9481  { 138, glxGetTexLevelParameterfv_Reply },
9482  { 139, glxGetTexLevelParameteriv_Reply },
9483  { 140, glxIsEnabled_Reply },
9484  { 141, glxIsList_Reply },
9485  { 143, glxAreTexturesResident_Reply },
9486  { 145, glxGenTextures_Reply },
9487  { 146, glxIsTexture_Reply },
9488  { 147, glxGetColorTable_Reply },
9489  { 148, glxGetColorTableParameterfv_Reply },
9490  { 149, glxGetColorTableParameteriv_Reply },
9491  { 150, glxGetConvolutionFilter_Reply },
9492  { 151, glxGetConvolutionParameterfv_Reply },
9493  { 152, glxGetConvolutionParameteriv_Reply },
9494  { 153, glxGetSeparableFilter_Reply },
9495  { 154, glxGetHistogram_Reply },
9496  { 155, glxGetHistogramParameterfv_Reply },
9497  { 156, glxGetHistogramParameteriv_Reply },
9498  { 157, glxGetMinmax_Reply },
9499  { 158, glxGetMinmaxParameterfv_Reply },
9500  { 159, glxGetMinmaxParameteriv_Reply },
9501  { 160, glxGetCompressedTexImageARB_Reply },
9502  { 162, glxGenQueriesARB_Reply },
9503  { 163, glxIsQueryARB_Reply },
9504  { 164, glxGetQueryivARB_Reply },
9505  { 165, glxGetQueryObjectivARB_Reply },
9506  { 166, glxGetQueryObjectuivARB_Reply },
9507  { 0, NULL }
9508 };
9509 
9510 static void dispatch_glx(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
9511 {
9512  int minor, length;
9513  minor = CARD8(glx_extension_minor);
9514  length = REQUEST_LENGTH();
9515 
9516  col_append_fstr(pinfo->cinfo, COL_INFO, "-%s",
9517  val_to_str(minor, glx_extension_minor,
9518  "<Unknown opcode %d>"));
9519  switch (minor) {
9520  case 1:
9521  glxRender(tvb, pinfo, offsetp, t, byte_order, length);
9522  break;
9523  case 2:
9524  glxRenderLarge(tvb, pinfo, offsetp, t, byte_order, length);
9525  break;
9526  case 3:
9527  glxCreateContext(tvb, pinfo, offsetp, t, byte_order, length);
9528  break;
9529  case 4:
9530  glxDestroyContext(tvb, pinfo, offsetp, t, byte_order, length);
9531  break;
9532  case 5:
9533  glxMakeCurrent(tvb, pinfo, offsetp, t, byte_order, length);
9534  break;
9535  case 6:
9536  glxIsDirect(tvb, pinfo, offsetp, t, byte_order, length);
9537  break;
9538  case 7:
9539  glxQueryVersion(tvb, pinfo, offsetp, t, byte_order, length);
9540  break;
9541  case 8:
9542  glxWaitGL(tvb, pinfo, offsetp, t, byte_order, length);
9543  break;
9544  case 9:
9545  glxWaitX(tvb, pinfo, offsetp, t, byte_order, length);
9546  break;
9547  case 10:
9548  glxCopyContext(tvb, pinfo, offsetp, t, byte_order, length);
9549  break;
9550  case 11:
9551  glxSwapBuffers(tvb, pinfo, offsetp, t, byte_order, length);
9552  break;
9553  case 12:
9554  glxUseXFont(tvb, pinfo, offsetp, t, byte_order, length);
9555  break;
9556  case 13:
9557  glxCreateGLXPixmap(tvb, pinfo, offsetp, t, byte_order, length);
9558  break;
9559  case 14:
9560  glxGetVisualConfigs(tvb, pinfo, offsetp, t, byte_order, length);
9561  break;
9562  case 15:
9563  glxDestroyGLXPixmap(tvb, pinfo, offsetp, t, byte_order, length);
9564  break;
9565  case 16:
9566  glxVendorPrivate(tvb, pinfo, offsetp, t, byte_order, length);
9567  break;
9568  case 17:
9569  glxVendorPrivateWithReply(tvb, pinfo, offsetp, t, byte_order, length);
9570  break;
9571  case 18:
9572  glxQueryExtensionsString(tvb, pinfo, offsetp, t, byte_order, length);
9573  break;
9574  case 19:
9575  glxQueryServerString(tvb, pinfo, offsetp, t, byte_order, length);
9576  break;
9577  case 20:
9578  glxClientInfo(tvb, pinfo, offsetp, t, byte_order, length);
9579  break;
9580  case 21:
9581  glxGetFBConfigs(tvb, pinfo, offsetp, t, byte_order, length);
9582  break;
9583  case 22:
9584  glxCreatePixmap(tvb, pinfo, offsetp, t, byte_order, length);
9585  break;
9586  case 23:
9587  glxDestroyPixmap(tvb, pinfo, offsetp, t, byte_order, length);
9588  break;
9589  case 24:
9590  glxCreateNewContext(tvb, pinfo, offsetp, t, byte_order, length);
9591  break;
9592  case 25:
9593  glxQueryContext(tvb, pinfo, offsetp, t, byte_order, length);
9594  break;
9595  case 26:
9596  glxMakeContextCurrent(tvb, pinfo, offsetp, t, byte_order, length);
9597  break;
9598  case 27:
9599  glxCreatePbuffer(tvb, pinfo, offsetp, t, byte_order, length);
9600  break;
9601  case 28:
9602  glxDestroyPbuffer(tvb, pinfo, offsetp, t, byte_order, length);
9603  break;
9604  case 29:
9605  glxGetDrawableAttributes(tvb, pinfo, offsetp, t, byte_order, length);
9606  break;
9607  case 30:
9608  glxChangeDrawableAttributes(tvb, pinfo, offsetp, t, byte_order, length);
9609  break;
9610  case 31:
9611  glxCreateWindow(tvb, pinfo, offsetp, t, byte_order, length);
9612  break;
9613  case 32:
9614  glxDeleteWindow(tvb, pinfo, offsetp, t, byte_order, length);
9615  break;
9616  case 33:
9617  glxSetClientInfoARB(tvb, pinfo, offsetp, t, byte_order, length);
9618  break;
9619  case 34:
9620  glxCreateContextAttribsARB(tvb, pinfo, offsetp, t, byte_order, length);
9621  break;
9622  case 35:
9623  glxSetClientInfo2ARB(tvb, pinfo, offsetp, t, byte_order, length);
9624  break;
9625  case 101:
9626  glxNewList(tvb, pinfo, offsetp, t, byte_order, length);
9627  break;
9628  case 102:
9629  glxEndList(tvb, pinfo, offsetp, t, byte_order, length);
9630  break;
9631  case 103:
9632  glxDeleteLists(tvb, pinfo, offsetp, t, byte_order, length);
9633  break;
9634  case 104:
9635  glxGenLists(tvb, pinfo, offsetp, t, byte_order, length);
9636  break;
9637  case 105:
9638  glxFeedbackBuffer(tvb, pinfo, offsetp, t, byte_order, length);
9639  break;
9640  case 106:
9641  glxSelectBuffer(tvb, pinfo, offsetp, t, byte_order, length);
9642  break;
9643  case 107:
9644  glxRenderMode(tvb, pinfo, offsetp, t, byte_order, length);
9645  break;
9646  case 108:
9647  glxFinish(tvb, pinfo, offsetp, t, byte_order, length);
9648  break;
9649  case 109:
9650  glxPixelStoref(tvb, pinfo, offsetp, t, byte_order, length);
9651  break;
9652  case 110:
9653  glxPixelStorei(tvb, pinfo, offsetp, t, byte_order, length);
9654  break;
9655  case 111:
9656  glxReadPixels(tvb, pinfo, offsetp, t, byte_order, length);
9657  break;
9658  case 112:
9659  glxGetBooleanv(tvb, pinfo, offsetp, t, byte_order, length);
9660  break;
9661  case 113:
9662  glxGetClipPlane(tvb, pinfo, offsetp, t, byte_order, length);
9663  break;
9664  case 114:
9665  glxGetDoublev(tvb, pinfo, offsetp, t, byte_order, length);
9666  break;
9667  case 115:
9668  glxGetError(tvb, pinfo, offsetp, t, byte_order, length);
9669  break;
9670  case 116:
9671  glxGetFloatv(tvb, pinfo, offsetp, t, byte_order, length);
9672  break;
9673  case 117:
9674  glxGetIntegerv(tvb, pinfo, offsetp, t, byte_order, length);
9675  break;
9676  case 118:
9677  glxGetLightfv(tvb, pinfo, offsetp, t, byte_order, length);
9678  break;
9679  case 119:
9680  glxGetLightiv(tvb, pinfo, offsetp, t, byte_order, length);
9681  break;
9682  case 120:
9683  glxGetMapdv(tvb, pinfo, offsetp, t, byte_order, length);
9684  break;
9685  case 121:
9686  glxGetMapfv(tvb, pinfo, offsetp, t, byte_order, length);
9687  break;
9688  case 122:
9689  glxGetMapiv(tvb, pinfo, offsetp, t, byte_order, length);
9690  break;
9691  case 123:
9692  glxGetMaterialfv(tvb, pinfo, offsetp, t, byte_order, length);
9693  break;
9694  case 124:
9695  glxGetMaterialiv(tvb, pinfo, offsetp, t, byte_order, length);
9696  break;
9697  case 125:
9698  glxGetPixelMapfv(tvb, pinfo, offsetp, t, byte_order, length);
9699  break;
9700  case 126:
9701  glxGetPixelMapuiv(tvb, pinfo, offsetp, t, byte_order, length);
9702  break;
9703  case 127:
9704  glxGetPixelMapusv(tvb, pinfo, offsetp, t, byte_order, length);
9705  break;
9706  case 128:
9707  glxGetPolygonStipple(tvb, pinfo, offsetp, t, byte_order, length);
9708  break;
9709  case 129:
9710  glxGetString(tvb, pinfo, offsetp, t, byte_order, length);
9711  break;
9712  case 130:
9713  glxGetTexEnvfv(tvb, pinfo, offsetp, t, byte_order, length);
9714  break;
9715  case 131:
9716  glxGetTexEnviv(tvb, pinfo, offsetp, t, byte_order, length);
9717  break;
9718  case 132:
9719  glxGetTexGendv(tvb, pinfo, offsetp, t, byte_order, length);
9720  break;
9721  case 133:
9722  glxGetTexGenfv(tvb, pinfo, offsetp, t, byte_order, length);
9723  break;
9724  case 134:
9725  glxGetTexGeniv(tvb, pinfo, offsetp, t, byte_order, length);
9726  break;
9727  case 135:
9728  glxGetTexImage(tvb, pinfo, offsetp, t, byte_order, length);
9729  break;
9730  case 136:
9731  glxGetTexParameterfv(tvb, pinfo, offsetp, t, byte_order, length);
9732  break;
9733  case 137:
9734  glxGetTexParameteriv(tvb, pinfo, offsetp, t, byte_order, length);
9735  break;
9736  case 138:
9737  glxGetTexLevelParameterfv(tvb, pinfo, offsetp, t, byte_order, length);
9738  break;
9739  case 139:
9740  glxGetTexLevelParameteriv(tvb, pinfo, offsetp, t, byte_order, length);
9741  break;
9742  case 140:
9743  glxIsEnabled(tvb, pinfo, offsetp, t, byte_order, length);
9744  break;
9745  case 141:
9746  glxIsList(tvb, pinfo, offsetp, t, byte_order, length);
9747  break;
9748  case 142:
9749  glxFlush(tvb, pinfo, offsetp, t, byte_order, length);
9750  break;
9751  case 143:
9752  glxAreTexturesResident(tvb, pinfo, offsetp, t, byte_order, length);
9753  break;
9754  case 144:
9755  glxDeleteTextures(tvb, pinfo, offsetp, t, byte_order, length);
9756  break;
9757  case 145:
9758  glxGenTextures(tvb, pinfo, offsetp, t, byte_order, length);
9759  break;
9760  case 146:
9761  glxIsTexture(tvb, pinfo, offsetp, t, byte_order, length);
9762  break;
9763  case 147:
9764  glxGetColorTable(tvb, pinfo, offsetp, t, byte_order, length);
9765  break;
9766  case 148:
9767  glxGetColorTableParameterfv(tvb, pinfo, offsetp, t, byte_order, length);
9768  break;
9769  case 149:
9770  glxGetColorTableParameteriv(tvb, pinfo, offsetp, t, byte_order, length);
9771  break;
9772  case 150:
9773  glxGetConvolutionFilter(tvb, pinfo, offsetp, t, byte_order, length);
9774  break;
9775  case 151:
9776  glxGetConvolutionParameterfv(tvb, pinfo, offsetp, t, byte_order, length);
9777  break;
9778  case 152:
9779  glxGetConvolutionParameteriv(tvb, pinfo, offsetp, t, byte_order, length);
9780  break;
9781  case 153:
9782  glxGetSeparableFilter(tvb, pinfo, offsetp, t, byte_order, length);
9783  break;
9784  case 154:
9785  glxGetHistogram(tvb, pinfo, offsetp, t, byte_order, length);
9786  break;
9787  case 155:
9788  glxGetHistogramParameterfv(tvb, pinfo, offsetp, t, byte_order, length);
9789  break;
9790  case 156:
9791  glxGetHistogramParameteriv(tvb, pinfo, offsetp, t, byte_order, length);
9792  break;
9793  case 157:
9794  glxGetMinmax(tvb, pinfo, offsetp, t, byte_order, length);
9795  break;
9796  case 158:
9797  glxGetMinmaxParameterfv(tvb, pinfo, offsetp, t, byte_order, length);
9798  break;
9799  case 159:
9800  glxGetMinmaxParameteriv(tvb, pinfo, offsetp, t, byte_order, length);
9801  break;
9802  case 160:
9803  glxGetCompressedTexImageARB(tvb, pinfo, offsetp, t, byte_order, length);
9804  break;
9805  case 161:
9806  glxDeleteQueriesARB(tvb, pinfo, offsetp, t, byte_order, length);
9807  break;
9808  case 162:
9809  glxGenQueriesARB(tvb, pinfo, offsetp, t, byte_order, length);
9810  break;
9811  case 163:
9812  glxIsQueryARB(tvb, pinfo, offsetp, t, byte_order, length);
9813  break;
9814  case 164:
9815  glxGetQueryivARB(tvb, pinfo, offsetp, t, byte_order, length);
9816  break;
9817  case 165:
9818  glxGetQueryObjectivARB(tvb, pinfo, offsetp, t, byte_order, length);
9819  break;
9820  case 166:
9821  glxGetQueryObjectuivARB(tvb, pinfo, offsetp, t, byte_order, length);
9822  break;
9823  /* No need for a default case here, since Unknown is printed above,
9824  and UNDECODED() is taken care of by dissect_x11_request */
9825  }
9826 }
9827 
9828 static void register_glx(void)
9829 {
9830  set_handler("GLX", dispatch_glx, glx_errors, glx_events, NULL, glx_replies);
9831 }
9832 
9833 static void struct_randr_ScreenSize(tvbuff_t *tvb, int *offsetp, proto_tree *root, guint byte_order _U_, int count)
9834 {
9835  int i;
9836  for (i = 0; i < count; i++) {
9837  proto_item *item;
9838  proto_tree *t;
9839 
9840  item = proto_tree_add_item(root, hf_x11_struct_randr_ScreenSize, tvb, *offsetp, 8, ENC_NA);
9841  t = proto_item_add_subtree(item, ett_x11_rectangle);
9842  proto_tree_add_item(t, hf_x11_struct_randr_ScreenSize_width, tvb, *offsetp, 2, byte_order);
9843  *offsetp += 2;
9844  proto_tree_add_item(t, hf_x11_struct_randr_ScreenSize_height, tvb, *offsetp, 2, byte_order);
9845  *offsetp += 2;
9846  proto_tree_add_item(t, hf_x11_struct_randr_ScreenSize_mwidth, tvb, *offsetp, 2, byte_order);
9847  *offsetp += 2;
9848  proto_tree_add_item(t, hf_x11_struct_randr_ScreenSize_mheight, tvb, *offsetp, 2, byte_order);
9849  *offsetp += 2;
9850  }
9851 }
9852 
9853 static int struct_size_randr_RefreshRates(tvbuff_t *tvb _U_, int *offsetp _U_, guint byte_order _U_)
9854 {
9855  int size = 0;
9856  int f_nRates;
9857  f_nRates = tvb_get_guint16(tvb, *offsetp + size + 0, byte_order);
9858  size += f_nRates * 2;
9859  return size + 2;
9860 }
9861 
9862 static void struct_randr_RefreshRates(tvbuff_t *tvb, int *offsetp, proto_tree *root, guint byte_order _U_, int count)
9863 {
9864  int i;
9865  for (i = 0; i < count; i++) {
9866  proto_item *item;
9867  proto_tree *t;
9868  int f_nRates;
9869 
9870  item = proto_tree_add_item(root, hf_x11_struct_randr_RefreshRates, tvb, *offsetp, struct_size_randr_RefreshRates(tvb, offsetp, byte_order), ENC_NA);
9871  t = proto_item_add_subtree(item, ett_x11_rectangle);
9872  f_nRates = tvb_get_guint16(tvb, *offsetp, byte_order);
9873  proto_tree_add_item(t, hf_x11_struct_randr_RefreshRates_nRates, tvb, *offsetp, 2, byte_order);
9874  *offsetp += 2;
9875  listOfCard16(tvb, offsetp, t, hf_x11_struct_randr_RefreshRates_rates, hf_x11_struct_randr_RefreshRates_rates_item, f_nRates, byte_order);
9876  }
9877 }
9878 
9879 static void struct_randr_ModeInfo(tvbuff_t *tvb, int *offsetp, proto_tree *root, guint byte_order _U_, int count)
9880 {
9881  int i;
9882  for (i = 0; i < count; i++) {
9883  proto_item *item;
9884  proto_tree *t;
9885 
9886  item = proto_tree_add_item(root, hf_x11_struct_randr_ModeInfo, tvb, *offsetp, 32, ENC_NA);
9887  t = proto_item_add_subtree(item, ett_x11_rectangle);
9888  proto_tree_add_item(t, hf_x11_struct_randr_ModeInfo_id, tvb, *offsetp, 4, byte_order);
9889  *offsetp += 4;
9890  proto_tree_add_item(t, hf_x11_struct_randr_ModeInfo_width, tvb, *offsetp, 2, byte_order);
9891  *offsetp += 2;
9892  proto_tree_add_item(t, hf_x11_struct_randr_ModeInfo_height, tvb, *offsetp, 2, byte_order);
9893  *offsetp += 2;
9894  proto_tree_add_item(t, hf_x11_struct_randr_ModeInfo_dot_clock, tvb, *offsetp, 4, byte_order);
9895  *offsetp += 4;
9896  proto_tree_add_item(t, hf_x11_struct_randr_ModeInfo_hsync_start, tvb, *offsetp, 2, byte_order);
9897  *offsetp += 2;
9898  proto_tree_add_item(t, hf_x11_struct_randr_ModeInfo_hsync_end, tvb, *offsetp, 2, byte_order);
9899  *offsetp += 2;
9900  proto_tree_add_item(t, hf_x11_struct_randr_ModeInfo_htotal, tvb, *offsetp, 2, byte_order);
9901  *offsetp += 2;
9902  proto_tree_add_item(t, hf_x11_struct_randr_ModeInfo_hskew, tvb, *offsetp, 2, byte_order);
9903  *offsetp += 2;
9904  proto_tree_add_item(t, hf_x11_struct_randr_ModeInfo_vsync_start, tvb, *offsetp, 2, byte_order);
9905  *offsetp += 2;
9906  proto_tree_add_item(t, hf_x11_struct_randr_ModeInfo_vsync_end, tvb, *offsetp, 2, byte_order);
9907  *offsetp += 2;
9908  proto_tree_add_item(t, hf_x11_struct_randr_ModeInfo_vtotal, tvb, *offsetp, 2, byte_order);
9909  *offsetp += 2;
9910  proto_tree_add_item(t, hf_x11_struct_randr_ModeInfo_name_len, tvb, *offsetp, 2, byte_order);
9911  *offsetp += 2;
9912  {
9913  const int* mode_flags_bits [] = {
9914  &hf_x11_struct_randr_ModeInfo_mode_flags_mask_HsyncPositive,
9915  &hf_x11_struct_randr_ModeInfo_mode_flags_mask_HsyncNegative,
9916  &hf_x11_struct_randr_ModeInfo_mode_flags_mask_VsyncPositive,
9917  &hf_x11_struct_randr_ModeInfo_mode_flags_mask_VsyncNegative,
9918  &hf_x11_struct_randr_ModeInfo_mode_flags_mask_Interlace,
9919  &hf_x11_struct_randr_ModeInfo_mode_flags_mask_DoubleScan,
9920  &hf_x11_struct_randr_ModeInfo_mode_flags_mask_Csync,
9921  &hf_x11_struct_randr_ModeInfo_mode_flags_mask_CsyncPositive,
9922  &hf_x11_struct_randr_ModeInfo_mode_flags_mask_CsyncNegative,
9923  &hf_x11_struct_randr_ModeInfo_mode_flags_mask_HskewPresent,
9924  &hf_x11_struct_randr_ModeInfo_mode_flags_mask_Bcast,
9925  &hf_x11_struct_randr_ModeInfo_mode_flags_mask_PixelMultiplex,
9926  &hf_x11_struct_randr_ModeInfo_mode_flags_mask_DoubleClock,
9927  &hf_x11_struct_randr_ModeInfo_mode_flags_mask_HalveClock,
9928  NULL
9929  };
9930  proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_struct_randr_ModeInfo_mode_flags, ett_x11_rectangle, mode_flags_bits, byte_order);
9931  }
9932  *offsetp += 4;
9933  }
9934 }
9935 
9936 static void struct_randr_CrtcChange(tvbuff_t *tvb, int *offsetp, proto_tree *root, guint byte_order _U_, int count)
9937 {
9938  int i;
9939  for (i = 0; i < count; i++) {
9940  proto_item *item;
9941  proto_tree *t;
9942 
9943  item = proto_tree_add_item(root, hf_x11_struct_randr_CrtcChange, tvb, *offsetp, 28, ENC_NA);
9944  t = proto_item_add_subtree(item, ett_x11_rectangle);
9945  proto_tree_add_item(t, hf_x11_struct_randr_CrtcChange_timestamp, tvb, *offsetp, 4, byte_order);
9946  *offsetp += 4;
9947  proto_tree_add_item(t, hf_x11_struct_randr_CrtcChange_window, tvb, *offsetp, 4, byte_order);
9948  *offsetp += 4;
9949  proto_tree_add_item(t, hf_x11_struct_randr_CrtcChange_crtc, tvb, *offsetp, 4, byte_order);
9950  *offsetp += 4;
9951  proto_tree_add_item(t, hf_x11_struct_randr_CrtcChange_mode, tvb, *offsetp, 4, byte_order);
9952  *offsetp += 4;
9953  {
9954  const int* rotation_bits [] = {
9955  &hf_x11_struct_randr_CrtcChange_rotation_mask_Rotate_0,
9956  &hf_x11_struct_randr_CrtcChange_rotation_mask_Rotate_90,
9957  &hf_x11_struct_randr_CrtcChange_rotation_mask_Rotate_180,
9958  &hf_x11_struct_randr_CrtcChange_rotation_mask_Rotate_270,
9959  &hf_x11_struct_randr_CrtcChange_rotation_mask_Reflect_X,
9960  &hf_x11_struct_randr_CrtcChange_rotation_mask_Reflect_Y,
9961  NULL
9962  };
9963  proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_struct_randr_CrtcChange_rotation, ett_x11_rectangle, rotation_bits, byte_order);
9964  }
9965  *offsetp += 2;
9966  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 2, ENC_NA);
9967  *offsetp += 2;
9968  proto_tree_add_item(t, hf_x11_struct_randr_CrtcChange_x, tvb, *offsetp, 2, byte_order);
9969  *offsetp += 2;
9970  proto_tree_add_item(t, hf_x11_struct_randr_CrtcChange_y, tvb, *offsetp, 2, byte_order);
9971  *offsetp += 2;
9972  proto_tree_add_item(t, hf_x11_struct_randr_CrtcChange_width, tvb, *offsetp, 2, byte_order);
9973  *offsetp += 2;
9974  proto_tree_add_item(t, hf_x11_struct_randr_CrtcChange_height, tvb, *offsetp, 2, byte_order);
9975  *offsetp += 2;
9976  }
9977 }
9978 
9979 static void struct_randr_OutputChange(tvbuff_t *tvb, int *offsetp, proto_tree *root, guint byte_order _U_, int count)
9980 {
9981  int i;
9982  for (i = 0; i < count; i++) {
9983  proto_item *item;
9984  proto_tree *t;
9985 
9986  item = proto_tree_add_item(root, hf_x11_struct_randr_OutputChange, tvb, *offsetp, 28, ENC_NA);
9987  t = proto_item_add_subtree(item, ett_x11_rectangle);
9988  proto_tree_add_item(t, hf_x11_struct_randr_OutputChange_timestamp, tvb, *offsetp, 4, byte_order);
9989  *offsetp += 4;
9990  proto_tree_add_item(t, hf_x11_struct_randr_OutputChange_config_timestamp, tvb, *offsetp, 4, byte_order);
9991  *offsetp += 4;
9992  proto_tree_add_item(t, hf_x11_struct_randr_OutputChange_window, tvb, *offsetp, 4, byte_order);
9993  *offsetp += 4;
9994  proto_tree_add_item(t, hf_x11_struct_randr_OutputChange_output, tvb, *offsetp, 4, byte_order);
9995  *offsetp += 4;
9996  proto_tree_add_item(t, hf_x11_struct_randr_OutputChange_crtc, tvb, *offsetp, 4, byte_order);
9997  *offsetp += 4;
9998  proto_tree_add_item(t, hf_x11_struct_randr_OutputChange_mode, tvb, *offsetp, 4, byte_order);
9999  *offsetp += 4;
10000  {
10001  const int* rotation_bits [] = {
10002  &hf_x11_struct_randr_OutputChange_rotation_mask_Rotate_0,
10003  &hf_x11_struct_randr_OutputChange_rotation_mask_Rotate_90,
10004  &hf_x11_struct_randr_OutputChange_rotation_mask_Rotate_180,
10005  &hf_x11_struct_randr_OutputChange_rotation_mask_Rotate_270,
10006  &hf_x11_struct_randr_OutputChange_rotation_mask_Reflect_X,
10007  &hf_x11_struct_randr_OutputChange_rotation_mask_Reflect_Y,
10008  NULL
10009  };
10010  proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_struct_randr_OutputChange_rotation, ett_x11_rectangle, rotation_bits, byte_order);
10011  }
10012  *offsetp += 2;
10013  field8(tvb, offsetp, t, hf_x11_struct_randr_OutputChange_connection, byte_order);
10014  field8(tvb, offsetp, t, hf_x11_struct_randr_OutputChange_subpixel_order, byte_order);
10015  }
10016 }
10017 
10018 static void struct_randr_OutputProperty(tvbuff_t *tvb, int *offsetp, proto_tree *root, guint byte_order _U_, int count)
10019 {
10020  int i;
10021  for (i = 0; i < count; i++) {
10022  proto_item *item;
10023  proto_tree *t;
10024 
10025  item = proto_tree_add_item(root, hf_x11_struct_randr_OutputProperty, tvb, *offsetp, 28, ENC_NA);
10026  t = proto_item_add_subtree(item, ett_x11_rectangle);
10027  proto_tree_add_item(t, hf_x11_struct_randr_OutputProperty_window, tvb, *offsetp, 4, byte_order);
10028  *offsetp += 4;
10029  proto_tree_add_item(t, hf_x11_struct_randr_OutputProperty_output, tvb, *offsetp, 4, byte_order);
10030  *offsetp += 4;
10031  proto_tree_add_item(t, hf_x11_struct_randr_OutputProperty_atom, tvb, *offsetp, 4, byte_order);
10032  *offsetp += 4;
10033  proto_tree_add_item(t, hf_x11_struct_randr_OutputProperty_timestamp, tvb, *offsetp, 4, byte_order);
10034  *offsetp += 4;
10035  field8(tvb, offsetp, t, hf_x11_struct_randr_OutputProperty_status, byte_order);
10036  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 11, ENC_NA);
10037  *offsetp += 11;
10038  }
10039 }
10040 
10041 static void struct_randr_ProviderChange(tvbuff_t *tvb, int *offsetp, proto_tree *root, guint byte_order _U_, int count)
10042 {
10043  int i;
10044  for (i = 0; i < count; i++) {
10045  proto_item *item;
10046  proto_tree *t;
10047 
10048  item = proto_tree_add_item(root, hf_x11_struct_randr_ProviderChange, tvb, *offsetp, 28, ENC_NA);
10049  t = proto_item_add_subtree(item, ett_x11_rectangle);
10050  proto_tree_add_item(t, hf_x11_struct_randr_ProviderChange_timestamp, tvb, *offsetp, 4, byte_order);
10051  *offsetp += 4;
10052  proto_tree_add_item(t, hf_x11_struct_randr_ProviderChange_window, tvb, *offsetp, 4, byte_order);
10053  *offsetp += 4;
10054  proto_tree_add_item(t, hf_x11_struct_randr_ProviderChange_provider, tvb, *offsetp, 4, byte_order);
10055  *offsetp += 4;
10056  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 16, ENC_NA);
10057  *offsetp += 16;
10058  }
10059 }
10060 
10061 static void struct_randr_ProviderProperty(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_ProviderProperty, 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_ProviderProperty_window, tvb, *offsetp, 4, byte_order);
10071  *offsetp += 4;
10072  proto_tree_add_item(t, hf_x11_struct_randr_ProviderProperty_provider, tvb, *offsetp, 4, byte_order);
10073  *offsetp += 4;
10074  proto_tree_add_item(t, hf_x11_struct_randr_ProviderProperty_atom, tvb, *offsetp, 4, byte_order);
10075  *offsetp += 4;
10076  proto_tree_add_item(t, hf_x11_struct_randr_ProviderProperty_timestamp, tvb, *offsetp, 4, byte_order);
10077  *offsetp += 4;
10078  proto_tree_add_item(t, hf_x11_struct_randr_ProviderProperty_state, tvb, *offsetp, 1, byte_order);
10079  *offsetp += 1;
10080  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 11, ENC_NA);
10081  *offsetp += 11;
10082  }
10083 }
10084 
10085 static void struct_randr_ResourceChange(tvbuff_t *tvb, int *offsetp, proto_tree *root, guint byte_order _U_, int count)
10086 {
10087  int i;
10088  for (i = 0; i < count; i++) {
10089  proto_item *item;
10090  proto_tree *t;
10091 
10092  item = proto_tree_add_item(root, hf_x11_struct_randr_ResourceChange, tvb, *offsetp, 28, ENC_NA);
10093  t = proto_item_add_subtree(item, ett_x11_rectangle);
10094  proto_tree_add_item(t, hf_x11_struct_randr_ResourceChange_timestamp, tvb, *offsetp, 4, byte_order);
10095  *offsetp += 4;
10096  proto_tree_add_item(t, hf_x11_struct_randr_ResourceChange_window, tvb, *offsetp, 4, byte_order);
10097  *offsetp += 4;
10098  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 20, ENC_NA);
10099  *offsetp += 20;
10100  }
10101 }
10102 
10103 static int struct_size_randr_MonitorInfo(tvbuff_t *tvb _U_, int *offsetp _U_, guint byte_order _U_)
10104 {
10105  int size = 0;
10106  int f_nOutput;
10107  f_nOutput = tvb_get_guint16(tvb, *offsetp + size + 6, byte_order);
10108  size += f_nOutput * 4;
10109  return size + 24;
10110 }
10111 
10112 static void struct_randr_MonitorInfo(tvbuff_t *tvb, int *offsetp, proto_tree *root, guint byte_order _U_, int count)
10113 {
10114  int i;
10115  for (i = 0; i < count; i++) {
10116  proto_item *item;
10117  proto_tree *t;
10118  int f_nOutput;
10119 
10120  item = proto_tree_add_item(root, hf_x11_struct_randr_MonitorInfo, tvb, *offsetp, struct_size_randr_MonitorInfo(tvb, offsetp, byte_order), ENC_NA);
10121  t = proto_item_add_subtree(item, ett_x11_rectangle);
10122  proto_tree_add_item(t, hf_x11_struct_randr_MonitorInfo_name, tvb, *offsetp, 4, byte_order);
10123  *offsetp += 4;
10124  proto_tree_add_item(t, hf_x11_struct_randr_MonitorInfo_primary, tvb, *offsetp, 1, byte_order);
10125  *offsetp += 1;
10126  proto_tree_add_item(t, hf_x11_struct_randr_MonitorInfo_automatic, tvb, *offsetp, 1, byte_order);
10127  *offsetp += 1;
10128  f_nOutput = tvb_get_guint16(tvb, *offsetp, byte_order);
10129  proto_tree_add_item(t, hf_x11_struct_randr_MonitorInfo_nOutput, tvb, *offsetp, 2, byte_order);
10130  *offsetp += 2;
10131  proto_tree_add_item(t, hf_x11_struct_randr_MonitorInfo_x, tvb, *offsetp, 2, byte_order);
10132  *offsetp += 2;
10133  proto_tree_add_item(t, hf_x11_struct_randr_MonitorInfo_y, tvb, *offsetp, 2, byte_order);
10134  *offsetp += 2;
10135  proto_tree_add_item(t, hf_x11_struct_randr_MonitorInfo_width, tvb, *offsetp, 2, byte_order);
10136  *offsetp += 2;
10137  proto_tree_add_item(t, hf_x11_struct_randr_MonitorInfo_height, tvb, *offsetp, 2, byte_order);
10138  *offsetp += 2;
10139  proto_tree_add_item(t, hf_x11_struct_randr_MonitorInfo_width_in_millimeters, tvb, *offsetp, 4, byte_order);
10140  *offsetp += 4;
10141  proto_tree_add_item(t, hf_x11_struct_randr_MonitorInfo_height_in_millimeters, tvb, *offsetp, 4, byte_order);
10142  *offsetp += 4;
10143  listOfCard32(tvb, offsetp, t, hf_x11_struct_randr_MonitorInfo_outputs, hf_x11_struct_randr_MonitorInfo_outputs_item, f_nOutput, byte_order);
10144  }
10145 }
10146 
10147 static void struct_sync_INT64(tvbuff_t *tvb, int *offsetp, proto_tree *root, guint byte_order _U_, int count)
10148 {
10149  int i;
10150  for (i = 0; i < count; i++) {
10151  proto_item *item;
10152  proto_tree *t;
10153 
10154  item = proto_tree_add_item(root, hf_x11_struct_sync_INT64, tvb, *offsetp, 8, ENC_NA);
10155  t = proto_item_add_subtree(item, ett_x11_rectangle);
10156  proto_tree_add_item(t, hf_x11_struct_sync_INT64_hi, tvb, *offsetp, 4, byte_order);
10157  *offsetp += 4;
10158  proto_tree_add_item(t, hf_x11_struct_sync_INT64_lo, tvb, *offsetp, 4, byte_order);
10159  *offsetp += 4;
10160  }
10161 }
10162 
10163 static int struct_size_sync_SYSTEMCOUNTER(tvbuff_t *tvb _U_, int *offsetp _U_, guint byte_order _U_)
10164 {
10165  int size = 0;
10166  int f_name_len;
10167  f_name_len = tvb_get_guint16(tvb, *offsetp + size + 12, byte_order);
10168  size += f_name_len * 1;
10169  size = (size + 3) & ~3;
10170  return size + 14;
10171 }
10172 
10173 static void struct_sync_SYSTEMCOUNTER(tvbuff_t *tvb, int *offsetp, proto_tree *root, guint byte_order _U_, int count)
10174 {
10175  int i;
10176  for (i = 0; i < count; i++) {
10177  proto_item *item;
10178  proto_tree *t;
10179  int f_name_len;
10180 
10181  item = proto_tree_add_item(root, hf_x11_struct_sync_SYSTEMCOUNTER, tvb, *offsetp, struct_size_sync_SYSTEMCOUNTER(tvb, offsetp, byte_order), ENC_NA);
10182  t = proto_item_add_subtree(item, ett_x11_rectangle);
10183  proto_tree_add_item(t, hf_x11_struct_sync_SYSTEMCOUNTER_counter, tvb, *offsetp, 4, byte_order);
10184  *offsetp += 4;
10185  struct_sync_INT64(tvb, offsetp, t, byte_order, 1);
10186  f_name_len = tvb_get_guint16(tvb, *offsetp, byte_order);
10187  proto_tree_add_item(t, hf_x11_struct_sync_SYSTEMCOUNTER_name_len, tvb, *offsetp, 2, byte_order);
10188  *offsetp += 2;
10189  listOfByte(tvb, offsetp, t, hf_x11_struct_sync_SYSTEMCOUNTER_name, f_name_len, byte_order);
10190  if (*offsetp % 4) {
10191  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, (4 - *offsetp % 4), ENC_NA);
10192  *offsetp += (4 - *offsetp % 4);
10193  }
10194  }
10195 }
10196 
10197 static void struct_sync_TRIGGER(tvbuff_t *tvb, int *offsetp, proto_tree *root, guint byte_order _U_, int count)
10198 {
10199  int i;
10200  for (i = 0; i < count; i++) {
10201  proto_item *item;
10202  proto_tree *t;
10203 
10204  item = proto_tree_add_item(root, hf_x11_struct_sync_TRIGGER, tvb, *offsetp, 20, ENC_NA);
10205  t = proto_item_add_subtree(item, ett_x11_rectangle);
10206  proto_tree_add_item(t, hf_x11_struct_sync_TRIGGER_counter, tvb, *offsetp, 4, byte_order);
10207  *offsetp += 4;
10208  field32(tvb, offsetp, t, hf_x11_struct_sync_TRIGGER_wait_type, byte_order);
10209  struct_sync_INT64(tvb, offsetp, t, byte_order, 1);
10210  field32(tvb, offsetp, t, hf_x11_struct_sync_TRIGGER_test_type, byte_order);
10211  }
10212 }
10213 
10214 static void struct_sync_WAITCONDITION(tvbuff_t *tvb, int *offsetp, proto_tree *root, guint byte_order _U_, int count)
10215 {
10216  int i;
10217  for (i = 0; i < count; i++) {
10218  proto_item *item;
10219  proto_tree *t;
10220 
10221  item = proto_tree_add_item(root, hf_x11_struct_sync_WAITCONDITION, tvb, *offsetp, 28, ENC_NA);
10222  t = proto_item_add_subtree(item, ett_x11_rectangle);
10223  struct_sync_TRIGGER(tvb, offsetp, t, byte_order, 1);
10224  struct_sync_INT64(tvb, offsetp, t, byte_order, 1);
10225  }
10226 }
10227 
10228 static void struct_present_Notify(tvbuff_t *tvb, int *offsetp, proto_tree *root, guint byte_order _U_, int count)
10229 {
10230  int i;
10231  for (i = 0; i < count; i++) {
10232  proto_item *item;
10233  proto_tree *t;
10234 
10235  item = proto_tree_add_item(root, hf_x11_struct_present_Notify, tvb, *offsetp, 8, ENC_NA);
10236  t = proto_item_add_subtree(item, ett_x11_rectangle);
10237  proto_tree_add_item(t, hf_x11_struct_present_Notify_window, tvb, *offsetp, 4, byte_order);
10238  *offsetp += 4;
10239  proto_tree_add_item(t, hf_x11_struct_present_Notify_serial, tvb, *offsetp, 4, byte_order);
10240  *offsetp += 4;
10241  }
10242 }
10243 
10244 static void presentQueryVersion(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
10245 {
10246  proto_tree_add_item(t, hf_x11_present_QueryVersion_major_version, tvb, *offsetp, 4, byte_order);
10247  *offsetp += 4;
10248  proto_tree_add_item(t, hf_x11_present_QueryVersion_minor_version, tvb, *offsetp, 4, byte_order);
10249  *offsetp += 4;
10250 }
10251 static void presentQueryVersion_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
10252 {
10253  int sequence_number;
10254 
10255  col_append_fstr(pinfo->cinfo, COL_INFO, "-QueryVersion");
10256 
10257  REPLY(reply);
10258  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
10259  *offsetp += 1;
10260  sequence_number = tvb_get_guint16(tvb, *offsetp, byte_order);
10261  proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
10262  "%d (present-QueryVersion)", sequence_number);
10263  *offsetp += 2;
10264  proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
10265  *offsetp += 4;
10266  proto_tree_add_item(t, hf_x11_present_QueryVersion_reply_major_version, tvb, *offsetp, 4, byte_order);
10267  *offsetp += 4;
10268  proto_tree_add_item(t, hf_x11_present_QueryVersion_reply_minor_version, tvb, *offsetp, 4, byte_order);
10269  *offsetp += 4;
10270 }
10271 
10272 static void presentPixmap(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
10273 {
10274  proto_tree_add_item(t, hf_x11_present_Pixmap_window, tvb, *offsetp, 4, byte_order);
10275  *offsetp += 4;
10276  proto_tree_add_item(t, hf_x11_present_Pixmap_pixmap, tvb, *offsetp, 4, byte_order);
10277  *offsetp += 4;
10278  proto_tree_add_item(t, hf_x11_present_Pixmap_serial, tvb, *offsetp, 4, byte_order);
10279  *offsetp += 4;
10280  proto_tree_add_item(t, hf_x11_present_Pixmap_valid, tvb, *offsetp, 4, byte_order);
10281  *offsetp += 4;
10282  proto_tree_add_item(t, hf_x11_present_Pixmap_update, tvb, *offsetp, 4, byte_order);
10283  *offsetp += 4;
10284  proto_tree_add_item(t, hf_x11_present_Pixmap_x_off, tvb, *offsetp, 2, byte_order);
10285  *offsetp += 2;
10286  proto_tree_add_item(t, hf_x11_present_Pixmap_y_off, tvb, *offsetp, 2, byte_order);
10287  *offsetp += 2;
10288  proto_tree_add_item(t, hf_x11_present_Pixmap_target_crtc, tvb, *offsetp, 4, byte_order);
10289  *offsetp += 4;
10290  proto_tree_add_item(t, hf_x11_present_Pixmap_wait_fence, tvb, *offsetp, 4, byte_order);
10291  *offsetp += 4;
10292  proto_tree_add_item(t, hf_x11_present_Pixmap_idle_fence, tvb, *offsetp, 4, byte_order);
10293  *offsetp += 4;
10294  proto_tree_add_item(t, hf_x11_present_Pixmap_options, tvb, *offsetp, 4, byte_order);
10295  *offsetp += 4;
10296  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 4, ENC_NA);
10297  *offsetp += 4;
10298  proto_tree_add_item(t, hf_x11_present_Pixmap_target_msc, tvb, *offsetp, 8, byte_order);
10299  *offsetp += 8;
10300  proto_tree_add_item(t, hf_x11_present_Pixmap_divisor, tvb, *offsetp, 8, byte_order);
10301  *offsetp += 8;
10302  proto_tree_add_item(t, hf_x11_present_Pixmap_remainder, tvb, *offsetp, 8, byte_order);
10303  *offsetp += 8;
10304  struct_present_Notify(tvb, offsetp, t, byte_order, (length - 72) / 8);
10305 }
10306 
10307 static void presentNotifyMSC(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
10308 {
10309  proto_tree_add_item(t, hf_x11_present_NotifyMSC_window, tvb, *offsetp, 4, byte_order);
10310  *offsetp += 4;
10311  proto_tree_add_item(t, hf_x11_present_NotifyMSC_serial, tvb, *offsetp, 4, byte_order);
10312  *offsetp += 4;
10313  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 4, ENC_NA);
10314  *offsetp += 4;
10315  proto_tree_add_item(t, hf_x11_present_NotifyMSC_target_msc, tvb, *offsetp, 8, byte_order);
10316  *offsetp += 8;
10317  proto_tree_add_item(t, hf_x11_present_NotifyMSC_divisor, tvb, *offsetp, 8, byte_order);
10318  *offsetp += 8;
10319  proto_tree_add_item(t, hf_x11_present_NotifyMSC_remainder, tvb, *offsetp, 8, byte_order);
10320  *offsetp += 8;
10321 }
10322 
10323 static void presentSelectInput(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
10324 {
10325  proto_tree_add_item(t, hf_x11_present_SelectInput_eid, tvb, *offsetp, 4, byte_order);
10326  *offsetp += 4;
10327  proto_tree_add_item(t, hf_x11_present_SelectInput_window, tvb, *offsetp, 4, byte_order);
10328  *offsetp += 4;
10329  {
10330  const int* event_mask_bits [] = {
10331  &hf_x11_present_SelectInput_event_mask_mask_ConfigureNotify,
10332  &hf_x11_present_SelectInput_event_mask_mask_CompleteNotify,
10333  &hf_x11_present_SelectInput_event_mask_mask_IdleNotify,
10334  &hf_x11_present_SelectInput_event_mask_mask_RedirectNotify,
10335  NULL
10336  };
10337  proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_present_SelectInput_event_mask, ett_x11_rectangle, event_mask_bits, byte_order);
10338  }
10339  *offsetp += 4;
10340 }
10341 
10342 static void presentQueryCapabilities(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
10343 {
10344  proto_tree_add_item(t, hf_x11_present_QueryCapabilities_target, tvb, *offsetp, 4, byte_order);
10345  *offsetp += 4;
10346 }
10347 static void presentQueryCapabilities_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
10348 {
10349  int sequence_number;
10350 
10351  col_append_fstr(pinfo->cinfo, COL_INFO, "-QueryCapabilities");
10352 
10353  REPLY(reply);
10354  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
10355  *offsetp += 1;
10356  sequence_number = tvb_get_guint16(tvb, *offsetp, byte_order);
10357  proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
10358  "%d (present-QueryCapabilities)", sequence_number);
10359  *offsetp += 2;
10360  proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
10361  *offsetp += 4;
10362  proto_tree_add_item(t, hf_x11_present_QueryCapabilities_reply_capabilities, tvb, *offsetp, 4, byte_order);
10363  *offsetp += 4;
10364 }
10365 
10366 static void presentCompleteNotify(tvbuff_t *tvb, int length _U_, int *offsetp, proto_tree *t, guint byte_order)
10367 {
10368  proto_tree_add_uint_format_value(t, hf_x11_minor_opcode, tvb, *offsetp, 2, 1,
10369  "CompleteNotify (1)");
10370  field8(tvb, offsetp, t, hf_x11_present_CompleteNotify_kind, byte_order);
10371  field8(tvb, offsetp, t, hf_x11_present_CompleteNotify_mode, byte_order);
10372  proto_tree_add_item(t, hf_x11_present_CompleteNotify_event, tvb, *offsetp, 4, byte_order);
10373  *offsetp += 4;
10374  proto_tree_add_item(t, hf_x11_present_CompleteNotify_window, tvb, *offsetp, 4, byte_order);
10375  *offsetp += 4;
10376  proto_tree_add_item(t, hf_x11_present_CompleteNotify_serial, tvb, *offsetp, 4, byte_order);
10377  *offsetp += 4;
10378  proto_tree_add_item(t, hf_x11_present_CompleteNotify_ust, tvb, *offsetp, 8, byte_order);
10379  *offsetp += 8;
10380  proto_tree_add_item(t, hf_x11_present_CompleteNotify_msc, tvb, *offsetp, 8, byte_order);
10381  *offsetp += 8;
10382 }
10383 
10384 
10385 static void presentIdleNotify(tvbuff_t *tvb, int length _U_, int *offsetp, proto_tree *t, guint byte_order)
10386 {
10387  proto_tree_add_uint_format_value(t, hf_x11_minor_opcode, tvb, *offsetp, 2, 2,
10388  "IdleNotify (2)");
10389  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 2, ENC_NA);
10390  *offsetp += 2;
10391  proto_tree_add_item(t, hf_x11_present_IdleNotify_event, tvb, *offsetp, 4, byte_order);
10392  *offsetp += 4;
10393  proto_tree_add_item(t, hf_x11_present_IdleNotify_window, tvb, *offsetp, 4, byte_order);
10394  *offsetp += 4;
10395  proto_tree_add_item(t, hf_x11_present_IdleNotify_serial, tvb, *offsetp, 4, byte_order);
10396  *offsetp += 4;
10397  proto_tree_add_item(t, hf_x11_present_IdleNotify_pixmap, tvb, *offsetp, 4, byte_order);
10398  *offsetp += 4;
10399  proto_tree_add_item(t, hf_x11_present_IdleNotify_idle_fence, tvb, *offsetp, 4, byte_order);
10400  *offsetp += 4;
10401 }
10402 
10403 
10404 static void presentRedirectNotify(tvbuff_t *tvb, int length _U_, int *offsetp, proto_tree *t, guint byte_order)
10405 {
10406  proto_tree_add_uint_format_value(t, hf_x11_minor_opcode, tvb, *offsetp, 2, 3,
10407  "RedirectNotify (3)");
10408  proto_tree_add_item(t, hf_x11_present_RedirectNotify_update_window, tvb, *offsetp, 1, byte_order);
10409  *offsetp += 1;
10410  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
10411  *offsetp += 1;
10412  proto_tree_add_item(t, hf_x11_present_RedirectNotify_event, tvb, *offsetp, 4, byte_order);
10413  *offsetp += 4;
10414  proto_tree_add_item(t, hf_x11_present_RedirectNotify_event_window, tvb, *offsetp, 4, byte_order);
10415  *offsetp += 4;
10416  proto_tree_add_item(t, hf_x11_present_RedirectNotify_window, tvb, *offsetp, 4, byte_order);
10417  *offsetp += 4;
10418  proto_tree_add_item(t, hf_x11_present_RedirectNotify_pixmap, tvb, *offsetp, 4, byte_order);
10419  *offsetp += 4;
10420  proto_tree_add_item(t, hf_x11_present_RedirectNotify_serial, tvb, *offsetp, 4, byte_order);
10421  *offsetp += 4;
10422  proto_tree_add_item(t, hf_x11_present_RedirectNotify_valid_region, tvb, *offsetp, 4, byte_order);
10423  *offsetp += 4;
10424  proto_tree_add_item(t, hf_x11_present_RedirectNotify_update_region, tvb, *offsetp, 4, byte_order);
10425  *offsetp += 4;
10426  struct_xproto_RECTANGLE(tvb, offsetp, t, byte_order, 1);
10427  struct_xproto_RECTANGLE(tvb, offsetp, t, byte_order, 1);
10428  proto_tree_add_item(t, hf_x11_present_RedirectNotify_x_off, tvb, *offsetp, 2, byte_order);
10429  *offsetp += 2;
10430  proto_tree_add_item(t, hf_x11_present_RedirectNotify_y_off, tvb, *offsetp, 2, byte_order);
10431  *offsetp += 2;
10432  proto_tree_add_item(t, hf_x11_present_RedirectNotify_target_crtc, tvb, *offsetp, 4, byte_order);
10433  *offsetp += 4;
10434  proto_tree_add_item(t, hf_x11_present_RedirectNotify_wait_fence, tvb, *offsetp, 4, byte_order);
10435  *offsetp += 4;
10436  proto_tree_add_item(t, hf_x11_present_RedirectNotify_idle_fence, tvb, *offsetp, 4, byte_order);
10437  *offsetp += 4;
10438  proto_tree_add_item(t, hf_x11_present_RedirectNotify_options, tvb, *offsetp, 4, byte_order);
10439  *offsetp += 4;
10440  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 4, ENC_NA);
10441  *offsetp += 4;
10442  proto_tree_add_item(t, hf_x11_present_RedirectNotify_target_msc, tvb, *offsetp, 8, byte_order);
10443  *offsetp += 8;
10444  proto_tree_add_item(t, hf_x11_present_RedirectNotify_divisor, tvb, *offsetp, 8, byte_order);
10445  *offsetp += 8;
10446  proto_tree_add_item(t, hf_x11_present_RedirectNotify_remainder, tvb, *offsetp, 8, byte_order);
10447  *offsetp += 8;
10448  struct_present_Notify(tvb, offsetp, t, byte_order, (length - 104) / 8);
10449 }
10450 
10451 static const value_string present_extension_minor[] = {
10452  { 0, "QueryVersion" },
10453  { 1, "Pixmap" },
10454  { 2, "NotifyMSC" },
10455  { 3, "SelectInput" },
10456  { 4, "QueryCapabilities" },
10457  { 0, NULL }
10458 };
10459 const x11_event_info present_events[] = {
10460  { NULL, NULL }
10461 };
10462 static const x11_generic_event_info present_generic_events[] = {
10463  { 1, presentCompleteNotify },
10464  { 2, presentIdleNotify },
10465  { 3, presentRedirectNotify },
10466  { 0, NULL },
10467 };
10468 
10469 static x11_reply_info present_replies[] = {
10470  { 0, presentQueryVersion_Reply },
10471  { 4, presentQueryCapabilities_Reply },
10472  { 0, NULL }
10473 };
10474 
10475 static void dispatch_present(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
10476 {
10477  int minor, length;
10478  minor = CARD8(present_extension_minor);
10479  length = REQUEST_LENGTH();
10480 
10481  col_append_fstr(pinfo->cinfo, COL_INFO, "-%s",
10482  val_to_str(minor, present_extension_minor,
10483  "<Unknown opcode %d>"));
10484  switch (minor) {
10485  case 0:
10486  presentQueryVersion(tvb, pinfo, offsetp, t, byte_order, length);
10487  break;
10488  case 1:
10489  presentPixmap(tvb, pinfo, offsetp, t, byte_order, length);
10490  break;
10491  case 2:
10492  presentNotifyMSC(tvb, pinfo, offsetp, t, byte_order, length);
10493  break;
10494  case 3:
10495  presentSelectInput(tvb, pinfo, offsetp, t, byte_order, length);
10496  break;
10497  case 4:
10498  presentQueryCapabilities(tvb, pinfo, offsetp, t, byte_order, length);
10499  break;
10500  /* No need for a default case here, since Unknown is printed above,
10501  and UNDECODED() is taken care of by dissect_x11_request */
10502  }
10503 }
10504 
10505 static void register_present(void)
10506 {
10507  set_handler("Present", dispatch_present, present_errors, present_events, present_generic_events, present_replies);
10508 }
10509 
10510 static void randrQueryVersion(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
10511 {
10512  proto_tree_add_item(t, hf_x11_randr_QueryVersion_major_version, tvb, *offsetp, 4, byte_order);
10513  *offsetp += 4;
10514  proto_tree_add_item(t, hf_x11_randr_QueryVersion_minor_version, tvb, *offsetp, 4, byte_order);
10515  *offsetp += 4;
10516 }
10517 static void randrQueryVersion_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
10518 {
10519  int sequence_number;
10520 
10521  col_append_fstr(pinfo->cinfo, COL_INFO, "-QueryVersion");
10522 
10523  REPLY(reply);
10524  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
10525  *offsetp += 1;
10526  sequence_number = tvb_get_guint16(tvb, *offsetp, byte_order);
10527  proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
10528  "%d (randr-QueryVersion)", sequence_number);
10529  *offsetp += 2;
10530  proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
10531  *offsetp += 4;
10532  proto_tree_add_item(t, hf_x11_randr_QueryVersion_reply_major_version, tvb, *offsetp, 4, byte_order);
10533  *offsetp += 4;
10534  proto_tree_add_item(t, hf_x11_randr_QueryVersion_reply_minor_version, tvb, *offsetp, 4, byte_order);
10535  *offsetp += 4;
10536  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 16, ENC_NA);
10537  *offsetp += 16;
10538 }
10539 
10540 static void randrSetScreenConfig(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
10541 {
10542  proto_tree_add_item(t, hf_x11_randr_SetScreenConfig_window, tvb, *offsetp, 4, byte_order);
10543  *offsetp += 4;
10544  proto_tree_add_item(t, hf_x11_randr_SetScreenConfig_timestamp, tvb, *offsetp, 4, byte_order);
10545  *offsetp += 4;
10546  proto_tree_add_item(t, hf_x11_randr_SetScreenConfig_config_timestamp, tvb, *offsetp, 4, byte_order);
10547  *offsetp += 4;
10548  proto_tree_add_item(t, hf_x11_randr_SetScreenConfig_sizeID, tvb, *offsetp, 2, byte_order);
10549  *offsetp += 2;
10550  {
10551  const int* rotation_bits [] = {
10552  &hf_x11_randr_SetScreenConfig_rotation_mask_Rotate_0,
10553  &hf_x11_randr_SetScreenConfig_rotation_mask_Rotate_90,
10554  &hf_x11_randr_SetScreenConfig_rotation_mask_Rotate_180,
10555  &hf_x11_randr_SetScreenConfig_rotation_mask_Rotate_270,
10556  &hf_x11_randr_SetScreenConfig_rotation_mask_Reflect_X,
10557  &hf_x11_randr_SetScreenConfig_rotation_mask_Reflect_Y,
10558  NULL
10559  };
10560  proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_randr_SetScreenConfig_rotation, ett_x11_rectangle, rotation_bits, byte_order);
10561  }
10562  *offsetp += 2;
10563  proto_tree_add_item(t, hf_x11_randr_SetScreenConfig_rate, tvb, *offsetp, 2, byte_order);
10564  *offsetp += 2;
10565  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 2, ENC_NA);
10566  *offsetp += 2;
10567 }
10568 static void randrSetScreenConfig_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
10569 {
10570  int sequence_number;
10571 
10572  col_append_fstr(pinfo->cinfo, COL_INFO, "-SetScreenConfig");
10573 
10574  REPLY(reply);
10575  field8(tvb, offsetp, t, hf_x11_randr_SetScreenConfig_reply_status, byte_order);
10576  sequence_number = tvb_get_guint16(tvb, *offsetp, byte_order);
10577  proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
10578  "%d (randr-SetScreenConfig)", sequence_number);
10579  *offsetp += 2;
10580  proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
10581  *offsetp += 4;
10582  proto_tree_add_item(t, hf_x11_randr_SetScreenConfig_reply_new_timestamp, tvb, *offsetp, 4, byte_order);
10583  *offsetp += 4;
10584  proto_tree_add_item(t, hf_x11_randr_SetScreenConfig_reply_config_timestamp, tvb, *offsetp, 4, byte_order);
10585  *offsetp += 4;
10586  proto_tree_add_item(t, hf_x11_randr_SetScreenConfig_reply_root, tvb, *offsetp, 4, byte_order);
10587  *offsetp += 4;
10588  field16(tvb, offsetp, t, hf_x11_randr_SetScreenConfig_reply_subpixel_order, byte_order);
10589  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 10, ENC_NA);
10590  *offsetp += 10;
10591 }
10592 
10593 static void randrSelectInput(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
10594 {
10595  proto_tree_add_item(t, hf_x11_randr_SelectInput_window, tvb, *offsetp, 4, byte_order);
10596  *offsetp += 4;
10597  {
10598  const int* enable_bits [] = {
10599  &hf_x11_randr_SelectInput_enable_mask_ScreenChange,
10600  &hf_x11_randr_SelectInput_enable_mask_CrtcChange,
10601  &hf_x11_randr_SelectInput_enable_mask_OutputChange,
10602  &hf_x11_randr_SelectInput_enable_mask_OutputProperty,
10603  &hf_x11_randr_SelectInput_enable_mask_ProviderChange,
10604  &hf_x11_randr_SelectInput_enable_mask_ProviderProperty,
10605  &hf_x11_randr_SelectInput_enable_mask_ResourceChange,
10606  NULL
10607  };
10608  proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_randr_SelectInput_enable, ett_x11_rectangle, enable_bits, byte_order);
10609  }
10610  *offsetp += 2;
10611  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 2, ENC_NA);
10612  *offsetp += 2;
10613 }
10614 
10615 static void randrGetScreenInfo(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
10616 {
10617  proto_tree_add_item(t, hf_x11_randr_GetScreenInfo_window, tvb, *offsetp, 4, byte_order);
10618  *offsetp += 4;
10619 }
10620 static void randrGetScreenInfo_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
10621 {
10622  int sequence_number;
10623  int f_nSizes;
10624  int f_nInfo;
10625 
10626  col_append_fstr(pinfo->cinfo, COL_INFO, "-GetScreenInfo");
10627 
10628  REPLY(reply);
10629  {
10630  const int* rotations_bits [] = {
10631  &hf_x11_randr_GetScreenInfo_reply_rotations_mask_Rotate_0,
10632  &hf_x11_randr_GetScreenInfo_reply_rotations_mask_Rotate_90,
10633  &hf_x11_randr_GetScreenInfo_reply_rotations_mask_Rotate_180,
10634  &hf_x11_randr_GetScreenInfo_reply_rotations_mask_Rotate_270,
10635  &hf_x11_randr_GetScreenInfo_reply_rotations_mask_Reflect_X,
10636  &hf_x11_randr_GetScreenInfo_reply_rotations_mask_Reflect_Y,
10637  NULL
10638  };
10639  proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_randr_GetScreenInfo_reply_rotations, ett_x11_rectangle, rotations_bits, byte_order);
10640  }
10641  *offsetp += 1;
10642  sequence_number = tvb_get_guint16(tvb, *offsetp, byte_order);
10643  proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
10644  "%d (randr-GetScreenInfo)", sequence_number);
10645  *offsetp += 2;
10646  proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
10647  *offsetp += 4;
10648  proto_tree_add_item(t, hf_x11_randr_GetScreenInfo_reply_root, tvb, *offsetp, 4, byte_order);
10649  *offsetp += 4;
10650  proto_tree_add_item(t, hf_x11_randr_GetScreenInfo_reply_timestamp, tvb, *offsetp, 4, byte_order);
10651  *offsetp += 4;
10652  proto_tree_add_item(t, hf_x11_randr_GetScreenInfo_reply_config_timestamp, tvb, *offsetp, 4, byte_order);
10653  *offsetp += 4;
10654  f_nSizes = tvb_get_guint16(tvb, *offsetp, byte_order);
10655  proto_tree_add_item(t, hf_x11_randr_GetScreenInfo_reply_nSizes, tvb, *offsetp, 2, byte_order);
10656  *offsetp += 2;
10657  proto_tree_add_item(t, hf_x11_randr_GetScreenInfo_reply_sizeID, tvb, *offsetp, 2, byte_order);
10658  *offsetp += 2;
10659  {
10660  const int* rotation_bits [] = {
10661  &hf_x11_randr_GetScreenInfo_reply_rotation_mask_Rotate_0,
10662  &hf_x11_randr_GetScreenInfo_reply_rotation_mask_Rotate_90,
10663  &hf_x11_randr_GetScreenInfo_reply_rotation_mask_Rotate_180,
10664  &hf_x11_randr_GetScreenInfo_reply_rotation_mask_Rotate_270,
10665  &hf_x11_randr_GetScreenInfo_reply_rotation_mask_Reflect_X,
10666  &hf_x11_randr_GetScreenInfo_reply_rotation_mask_Reflect_Y,
10667  NULL
10668  };
10669  proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_randr_GetScreenInfo_reply_rotation, ett_x11_rectangle, rotation_bits, byte_order);
10670  }
10671  *offsetp += 2;
10672  proto_tree_add_item(t, hf_x11_randr_GetScreenInfo_reply_rate, tvb, *offsetp, 2, byte_order);
10673  *offsetp += 2;
10674  f_nInfo = tvb_get_guint16(tvb, *offsetp, byte_order);
10675  proto_tree_add_item(t, hf_x11_randr_GetScreenInfo_reply_nInfo, tvb, *offsetp, 2, byte_order);
10676  *offsetp += 2;
10677  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 2, ENC_NA);
10678  *offsetp += 2;
10679  struct_randr_ScreenSize(tvb, offsetp, t, byte_order, f_nSizes);
10680  struct_randr_RefreshRates(tvb, offsetp, t, byte_order, (f_nInfo - f_nSizes));
10681 }
10682 
10683 static void randrGetScreenSizeRange(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
10684 {
10685  proto_tree_add_item(t, hf_x11_randr_GetScreenSizeRange_window, tvb, *offsetp, 4, byte_order);
10686  *offsetp += 4;
10687 }
10688 static void randrGetScreenSizeRange_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
10689 {
10690  int sequence_number;
10691 
10692  col_append_fstr(pinfo->cinfo, COL_INFO, "-GetScreenSizeRange");
10693 
10694  REPLY(reply);
10695  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
10696  *offsetp += 1;
10697  sequence_number = tvb_get_guint16(tvb, *offsetp, byte_order);
10698  proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
10699  "%d (randr-GetScreenSizeRange)", sequence_number);
10700  *offsetp += 2;
10701  proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
10702  *offsetp += 4;
10703  proto_tree_add_item(t, hf_x11_randr_GetScreenSizeRange_reply_min_width, tvb, *offsetp, 2, byte_order);
10704  *offsetp += 2;
10705  proto_tree_add_item(t, hf_x11_randr_GetScreenSizeRange_reply_min_height, tvb, *offsetp, 2, byte_order);
10706  *offsetp += 2;
10707  proto_tree_add_item(t, hf_x11_randr_GetScreenSizeRange_reply_max_width, tvb, *offsetp, 2, byte_order);
10708  *offsetp += 2;
10709  proto_tree_add_item(t, hf_x11_randr_GetScreenSizeRange_reply_max_height, tvb, *offsetp, 2, byte_order);
10710  *offsetp += 2;
10711  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 16, ENC_NA);
10712  *offsetp += 16;
10713 }
10714 
10715 static void randrSetScreenSize(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
10716 {
10717  proto_tree_add_item(t, hf_x11_randr_SetScreenSize_window, tvb, *offsetp, 4, byte_order);
10718  *offsetp += 4;
10719  proto_tree_add_item(t, hf_x11_randr_SetScreenSize_width, tvb, *offsetp, 2, byte_order);
10720  *offsetp += 2;
10721  proto_tree_add_item(t, hf_x11_randr_SetScreenSize_height, tvb, *offsetp, 2, byte_order);
10722  *offsetp += 2;
10723  proto_tree_add_item(t, hf_x11_randr_SetScreenSize_mm_width, tvb, *offsetp, 4, byte_order);
10724  *offsetp += 4;
10725  proto_tree_add_item(t, hf_x11_randr_SetScreenSize_mm_height, tvb, *offsetp, 4, byte_order);
10726  *offsetp += 4;
10727 }
10728 
10729 static void randrGetScreenResources(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
10730 {
10731  proto_tree_add_item(t, hf_x11_randr_GetScreenResources_window, tvb, *offsetp, 4, byte_order);
10732  *offsetp += 4;
10733 }
10734 static void randrGetScreenResources_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
10735 {
10736  int sequence_number;
10737  int f_num_crtcs;
10738  int f_num_outputs;
10739  int f_num_modes;
10740  int f_names_len;
10741 
10742  col_append_fstr(pinfo->cinfo, COL_INFO, "-GetScreenResources");
10743 
10744  REPLY(reply);
10745  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
10746  *offsetp += 1;
10747  sequence_number = tvb_get_guint16(tvb, *offsetp, byte_order);
10748  proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
10749  "%d (randr-GetScreenResources)", sequence_number);
10750  *offsetp += 2;
10751  proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
10752  *offsetp += 4;
10753  proto_tree_add_item(t, hf_x11_randr_GetScreenResources_reply_timestamp, tvb, *offsetp, 4, byte_order);
10754  *offsetp += 4;
10755  proto_tree_add_item(t, hf_x11_randr_GetScreenResources_reply_config_timestamp, tvb, *offsetp, 4, byte_order);
10756  *offsetp += 4;
10757  f_num_crtcs = tvb_get_guint16(tvb, *offsetp, byte_order);
10758  proto_tree_add_item(t, hf_x11_randr_GetScreenResources_reply_num_crtcs, tvb, *offsetp, 2, byte_order);
10759  *offsetp += 2;
10760  f_num_outputs = tvb_get_guint16(tvb, *offsetp, byte_order);
10761  proto_tree_add_item(t, hf_x11_randr_GetScreenResources_reply_num_outputs, tvb, *offsetp, 2, byte_order);
10762  *offsetp += 2;
10763  f_num_modes = tvb_get_guint16(tvb, *offsetp, byte_order);
10764  proto_tree_add_item(t, hf_x11_randr_GetScreenResources_reply_num_modes, tvb, *offsetp, 2, byte_order);
10765  *offsetp += 2;
10766  f_names_len = tvb_get_guint16(tvb, *offsetp, byte_order);
10767  proto_tree_add_item(t, hf_x11_randr_GetScreenResources_reply_names_len, tvb, *offsetp, 2, byte_order);
10768  *offsetp += 2;
10769  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 8, ENC_NA);
10770  *offsetp += 8;
10771  listOfCard32(tvb, offsetp, t, hf_x11_randr_GetScreenResources_reply_crtcs, hf_x11_randr_GetScreenResources_reply_crtcs_item, f_num_crtcs, byte_order);
10772  listOfCard32(tvb, offsetp, t, hf_x11_randr_GetScreenResources_reply_outputs, hf_x11_randr_GetScreenResources_reply_outputs_item, f_num_outputs, byte_order);
10773  struct_randr_ModeInfo(tvb, offsetp, t, byte_order, f_num_modes);
10774  listOfByte(tvb, offsetp, t, hf_x11_randr_GetScreenResources_reply_names, f_names_len, byte_order);
10775 }
10776 
10777 static void randrGetOutputInfo(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
10778 {
10779  proto_tree_add_item(t, hf_x11_randr_GetOutputInfo_output, tvb, *offsetp, 4, byte_order);
10780  *offsetp += 4;
10781  proto_tree_add_item(t, hf_x11_randr_GetOutputInfo_config_timestamp, tvb, *offsetp, 4, byte_order);
10782  *offsetp += 4;
10783 }
10784 static void randrGetOutputInfo_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
10785 {
10786  int sequence_number;
10787  int f_num_crtcs;
10788  int f_num_modes;
10789  int f_num_clones;
10790  int f_name_len;
10791 
10792  col_append_fstr(pinfo->cinfo, COL_INFO, "-GetOutputInfo");
10793 
10794  REPLY(reply);
10795  field8(tvb, offsetp, t, hf_x11_randr_GetOutputInfo_reply_status, byte_order);
10796  sequence_number = tvb_get_guint16(tvb, *offsetp, byte_order);
10797  proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
10798  "%d (randr-GetOutputInfo)", sequence_number);
10799  *offsetp += 2;
10800  proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
10801  *offsetp += 4;
10802  proto_tree_add_item(t, hf_x11_randr_GetOutputInfo_reply_timestamp, tvb, *offsetp, 4, byte_order);
10803  *offsetp += 4;
10804  proto_tree_add_item(t, hf_x11_randr_GetOutputInfo_reply_crtc, tvb, *offsetp, 4, byte_order);
10805  *offsetp += 4;
10806  proto_tree_add_item(t, hf_x11_randr_GetOutputInfo_reply_mm_width, tvb, *offsetp, 4, byte_order);
10807  *offsetp += 4;
10808  proto_tree_add_item(t, hf_x11_randr_GetOutputInfo_reply_mm_height, tvb, *offsetp, 4, byte_order);
10809  *offsetp += 4;
10810  field8(tvb, offsetp, t, hf_x11_randr_GetOutputInfo_reply_connection, byte_order);
10811  field8(tvb, offsetp, t, hf_x11_randr_GetOutputInfo_reply_subpixel_order, byte_order);
10812  f_num_crtcs = tvb_get_guint16(tvb, *offsetp, byte_order);
10813  proto_tree_add_item(t, hf_x11_randr_GetOutputInfo_reply_num_crtcs, tvb, *offsetp, 2, byte_order);
10814  *offsetp += 2;
10815  f_num_modes = tvb_get_guint16(tvb, *offsetp, byte_order);
10816  proto_tree_add_item(t, hf_x11_randr_GetOutputInfo_reply_num_modes, tvb, *offsetp, 2, byte_order);
10817  *offsetp += 2;
10818  proto_tree_add_item(t, hf_x11_randr_GetOutputInfo_reply_num_preferred, tvb, *offsetp, 2, byte_order);
10819  *offsetp += 2;
10820  f_num_clones = tvb_get_guint16(tvb, *offsetp, byte_order);
10821  proto_tree_add_item(t, hf_x11_randr_GetOutputInfo_reply_num_clones, tvb, *offsetp, 2, byte_order);
10822  *offsetp += 2;
10823  f_name_len = tvb_get_guint16(tvb, *offsetp, byte_order);
10824  proto_tree_add_item(t, hf_x11_randr_GetOutputInfo_reply_name_len, tvb, *offsetp, 2, byte_order);
10825  *offsetp += 2;
10826  listOfCard32(tvb, offsetp, t, hf_x11_randr_GetOutputInfo_reply_crtcs, hf_x11_randr_GetOutputInfo_reply_crtcs_item, f_num_crtcs, byte_order);
10827  listOfCard32(tvb, offsetp, t, hf_x11_randr_GetOutputInfo_reply_modes, hf_x11_randr_GetOutputInfo_reply_modes_item, f_num_modes, byte_order);
10828  listOfCard32(tvb, offsetp, t, hf_x11_randr_GetOutputInfo_reply_clones, hf_x11_randr_GetOutputInfo_reply_clones_item, f_num_clones, byte_order);
10829  listOfByte(tvb, offsetp, t, hf_x11_randr_GetOutputInfo_reply_name, f_name_len, byte_order);
10830 }
10831 
10832 static void randrListOutputProperties(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
10833 {
10834  proto_tree_add_item(t, hf_x11_randr_ListOutputProperties_output, tvb, *offsetp, 4, byte_order);
10835  *offsetp += 4;
10836 }
10837 static void randrListOutputProperties_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
10838 {
10839  int sequence_number;
10840  int f_num_atoms;
10841 
10842  col_append_fstr(pinfo->cinfo, COL_INFO, "-ListOutputProperties");
10843 
10844  REPLY(reply);
10845  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
10846  *offsetp += 1;
10847  sequence_number = tvb_get_guint16(tvb, *offsetp, byte_order);
10848  proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
10849  "%d (randr-ListOutputProperties)", sequence_number);
10850  *offsetp += 2;
10851  proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
10852  *offsetp += 4;
10853  f_num_atoms = tvb_get_guint16(tvb, *offsetp, byte_order);
10854  proto_tree_add_item(t, hf_x11_randr_ListOutputProperties_reply_num_atoms, tvb, *offsetp, 2, byte_order);
10855  *offsetp += 2;
10856  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 22, ENC_NA);
10857  *offsetp += 22;
10858  listOfCard32(tvb, offsetp, t, hf_x11_randr_ListOutputProperties_reply_atoms, hf_x11_randr_ListOutputProperties_reply_atoms_item, f_num_atoms, byte_order);
10859 }
10860 
10861 static void randrQueryOutputProperty(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
10862 {
10863  proto_tree_add_item(t, hf_x11_randr_QueryOutputProperty_output, tvb, *offsetp, 4, byte_order);
10864  *offsetp += 4;
10865  proto_tree_add_item(t, hf_x11_randr_QueryOutputProperty_property, tvb, *offsetp, 4, byte_order);
10866  *offsetp += 4;
10867 }
10868 static void randrQueryOutputProperty_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
10869 {
10870  int sequence_number;
10871  int f_length;
10872 
10873  col_append_fstr(pinfo->cinfo, COL_INFO, "-QueryOutputProperty");
10874 
10875  REPLY(reply);
10876  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
10877  *offsetp += 1;
10878  sequence_number = tvb_get_guint16(tvb, *offsetp, byte_order);
10879  proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
10880  "%d (randr-QueryOutputProperty)", sequence_number);
10881  *offsetp += 2;
10882  f_length = tvb_get_guint32(tvb, *offsetp, byte_order);
10883  proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
10884  *offsetp += 4;
10885  proto_tree_add_item(t, hf_x11_randr_QueryOutputProperty_reply_pending, tvb, *offsetp, 1, byte_order);
10886  *offsetp += 1;
10887  proto_tree_add_item(t, hf_x11_randr_QueryOutputProperty_reply_range, tvb, *offsetp, 1, byte_order);
10888  *offsetp += 1;
10889  proto_tree_add_item(t, hf_x11_randr_QueryOutputProperty_reply_immutable, tvb, *offsetp, 1, byte_order);
10890  *offsetp += 1;
10891  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 21, ENC_NA);
10892  *offsetp += 21;
10893  listOfInt32(tvb, offsetp, t, hf_x11_randr_QueryOutputProperty_reply_validValues, hf_x11_randr_QueryOutputProperty_reply_validValues_item, f_length, byte_order);
10894 }
10895 
10896 static void randrConfigureOutputProperty(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
10897 {
10898  proto_tree_add_item(t, hf_x11_randr_ConfigureOutputProperty_output, tvb, *offsetp, 4, byte_order);
10899  *offsetp += 4;
10900  proto_tree_add_item(t, hf_x11_randr_ConfigureOutputProperty_property, tvb, *offsetp, 4, byte_order);
10901  *offsetp += 4;
10902  proto_tree_add_item(t, hf_x11_randr_ConfigureOutputProperty_pending, tvb, *offsetp, 1, byte_order);
10903  *offsetp += 1;
10904  proto_tree_add_item(t, hf_x11_randr_ConfigureOutputProperty_range, tvb, *offsetp, 1, byte_order);
10905  *offsetp += 1;
10906  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 2, ENC_NA);
10907  *offsetp += 2;
10908  listOfInt32(tvb, offsetp, t, hf_x11_randr_ConfigureOutputProperty_values, hf_x11_randr_ConfigureOutputProperty_values_item, (length - 16) / 4, byte_order);
10909 }
10910 
10911 static void randrChangeOutputProperty(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
10912 {
10913  int f_format;
10914  int f_num_units;
10915  proto_tree_add_item(t, hf_x11_randr_ChangeOutputProperty_output, tvb, *offsetp, 4, byte_order);
10916  *offsetp += 4;
10917  proto_tree_add_item(t, hf_x11_randr_ChangeOutputProperty_property, tvb, *offsetp, 4, byte_order);
10918  *offsetp += 4;
10919  proto_tree_add_item(t, hf_x11_randr_ChangeOutputProperty_type, tvb, *offsetp, 4, byte_order);
10920  *offsetp += 4;
10921  f_format = tvb_get_guint8(tvb, *offsetp);
10922  proto_tree_add_item(t, hf_x11_randr_ChangeOutputProperty_format, tvb, *offsetp, 1, byte_order);
10923  *offsetp += 1;
10924  field8(tvb, offsetp, t, hf_x11_randr_ChangeOutputProperty_mode, byte_order);
10925  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 2, ENC_NA);
10926  *offsetp += 2;
10927  f_num_units = tvb_get_guint32(tvb, *offsetp, byte_order);
10928  proto_tree_add_item(t, hf_x11_randr_ChangeOutputProperty_num_units, tvb, *offsetp, 4, byte_order);
10929  *offsetp += 4;
10930  listOfByte(tvb, offsetp, t, hf_x11_randr_ChangeOutputProperty_data, ((f_num_units * f_format) / 8), byte_order);
10931  length -= ((f_num_units * f_format) / 8) * 1;
10932 }
10933 
10934 static void randrDeleteOutputProperty(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
10935 {
10936  proto_tree_add_item(t, hf_x11_randr_DeleteOutputProperty_output, tvb, *offsetp, 4, byte_order);
10937  *offsetp += 4;
10938  proto_tree_add_item(t, hf_x11_randr_DeleteOutputProperty_property, tvb, *offsetp, 4, byte_order);
10939  *offsetp += 4;
10940 }
10941 
10942 static void randrGetOutputProperty(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
10943 {
10944  proto_tree_add_item(t, hf_x11_randr_GetOutputProperty_output, tvb, *offsetp, 4, byte_order);
10945  *offsetp += 4;
10946  proto_tree_add_item(t, hf_x11_randr_GetOutputProperty_property, tvb, *offsetp, 4, byte_order);
10947  *offsetp += 4;
10948  field32(tvb, offsetp, t, hf_x11_randr_GetOutputProperty_type, byte_order);
10949  proto_tree_add_item(t, hf_x11_randr_GetOutputProperty_long_offset, tvb, *offsetp, 4, byte_order);
10950  *offsetp += 4;
10951  proto_tree_add_item(t, hf_x11_randr_GetOutputProperty_long_length, tvb, *offsetp, 4, byte_order);
10952  *offsetp += 4;
10953  proto_tree_add_item(t, hf_x11_randr_GetOutputProperty_delete, tvb, *offsetp, 1, byte_order);
10954  *offsetp += 1;
10955  proto_tree_add_item(t, hf_x11_randr_GetOutputProperty_pending, tvb, *offsetp, 1, byte_order);
10956  *offsetp += 1;
10957  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 2, ENC_NA);
10958  *offsetp += 2;
10959 }
10960 static void randrGetOutputProperty_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
10961 {
10962  int sequence_number;
10963  int f_format;
10964  int f_num_items;
10965 
10966  col_append_fstr(pinfo->cinfo, COL_INFO, "-GetOutputProperty");
10967 
10968  REPLY(reply);
10969  f_format = tvb_get_guint8(tvb, *offsetp);
10970  proto_tree_add_item(t, hf_x11_randr_GetOutputProperty_reply_format, tvb, *offsetp, 1, byte_order);
10971  *offsetp += 1;
10972  sequence_number = tvb_get_guint16(tvb, *offsetp, byte_order);
10973  proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
10974  "%d (randr-GetOutputProperty)", sequence_number);
10975  *offsetp += 2;
10976  proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
10977  *offsetp += 4;
10978  field32(tvb, offsetp, t, hf_x11_randr_GetOutputProperty_reply_type, byte_order);
10979  proto_tree_add_item(t, hf_x11_randr_GetOutputProperty_reply_bytes_after, tvb, *offsetp, 4, byte_order);
10980  *offsetp += 4;
10981  f_num_items = tvb_get_guint32(tvb, *offsetp, byte_order);
10982  proto_tree_add_item(t, hf_x11_randr_GetOutputProperty_reply_num_items, tvb, *offsetp, 4, byte_order);
10983  *offsetp += 4;
10984  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 12, ENC_NA);
10985  *offsetp += 12;
10986  listOfByte(tvb, offsetp, t, hf_x11_randr_GetOutputProperty_reply_data, (f_num_items * (f_format / 8)), byte_order);
10987 }
10988 
10989 static void randrCreateMode(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
10990 {
10991  proto_tree_add_item(t, hf_x11_randr_CreateMode_window, tvb, *offsetp, 4, byte_order);
10992  *offsetp += 4;
10993  struct_randr_ModeInfo(tvb, offsetp, t, byte_order, 1);
10994  listOfByte(tvb, offsetp, t, hf_x11_randr_CreateMode_name, (length - 40) / 1, byte_order);
10995 }
10996 static void randrCreateMode_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
10997 {
10998  int sequence_number;
10999 
11000  col_append_fstr(pinfo->cinfo, COL_INFO, "-CreateMode");
11001 
11002  REPLY(reply);
11003  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
11004  *offsetp += 1;
11005  sequence_number = tvb_get_guint16(tvb, *offsetp, byte_order);
11006  proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
11007  "%d (randr-CreateMode)", sequence_number);
11008  *offsetp += 2;
11009  proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
11010  *offsetp += 4;
11011  proto_tree_add_item(t, hf_x11_randr_CreateMode_reply_mode, tvb, *offsetp, 4, byte_order);
11012  *offsetp += 4;
11013  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 20, ENC_NA);
11014  *offsetp += 20;
11015 }
11016 
11017 static void randrDestroyMode(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
11018 {
11019  proto_tree_add_item(t, hf_x11_randr_DestroyMode_mode, tvb, *offsetp, 4, byte_order);
11020  *offsetp += 4;
11021 }
11022 
11023 static void randrAddOutputMode(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
11024 {
11025  proto_tree_add_item(t, hf_x11_randr_AddOutputMode_output, tvb, *offsetp, 4, byte_order);
11026  *offsetp += 4;
11027  proto_tree_add_item(t, hf_x11_randr_AddOutputMode_mode, tvb, *offsetp, 4, byte_order);
11028  *offsetp += 4;
11029 }
11030 
11031 static void randrDeleteOutputMode(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
11032 {
11033  proto_tree_add_item(t, hf_x11_randr_DeleteOutputMode_output, tvb, *offsetp, 4, byte_order);
11034  *offsetp += 4;
11035  proto_tree_add_item(t, hf_x11_randr_DeleteOutputMode_mode, tvb, *offsetp, 4, byte_order);
11036  *offsetp += 4;
11037 }
11038 
11039 static void randrGetCrtcInfo(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
11040 {
11041  proto_tree_add_item(t, hf_x11_randr_GetCrtcInfo_crtc, tvb, *offsetp, 4, byte_order);
11042  *offsetp += 4;
11043  proto_tree_add_item(t, hf_x11_randr_GetCrtcInfo_config_timestamp, tvb, *offsetp, 4, byte_order);
11044  *offsetp += 4;
11045 }
11046 static void randrGetCrtcInfo_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
11047 {
11048  int sequence_number;
11049  int f_num_outputs;
11050  int f_num_possible_outputs;
11051 
11052  col_append_fstr(pinfo->cinfo, COL_INFO, "-GetCrtcInfo");
11053 
11054  REPLY(reply);
11055  field8(tvb, offsetp, t, hf_x11_randr_GetCrtcInfo_reply_status, byte_order);
11056  sequence_number = tvb_get_guint16(tvb, *offsetp, byte_order);
11057  proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
11058  "%d (randr-GetCrtcInfo)", sequence_number);
11059  *offsetp += 2;
11060  proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
11061  *offsetp += 4;
11062  proto_tree_add_item(t, hf_x11_randr_GetCrtcInfo_reply_timestamp, tvb, *offsetp, 4, byte_order);
11063  *offsetp += 4;
11064  proto_tree_add_item(t, hf_x11_randr_GetCrtcInfo_reply_x, tvb, *offsetp, 2, byte_order);
11065  *offsetp += 2;
11066  proto_tree_add_item(t, hf_x11_randr_GetCrtcInfo_reply_y, tvb, *offsetp, 2, byte_order);
11067  *offsetp += 2;
11068  proto_tree_add_item(t, hf_x11_randr_GetCrtcInfo_reply_width, tvb, *offsetp, 2, byte_order);
11069  *offsetp += 2;
11070  proto_tree_add_item(t, hf_x11_randr_GetCrtcInfo_reply_height, tvb, *offsetp, 2, byte_order);
11071  *offsetp += 2;
11072  proto_tree_add_item(t, hf_x11_randr_GetCrtcInfo_reply_mode, tvb, *offsetp, 4, byte_order);
11073  *offsetp += 4;
11074  {
11075  const int* rotation_bits [] = {
11076  &hf_x11_randr_GetCrtcInfo_reply_rotation_mask_Rotate_0,
11077  &hf_x11_randr_GetCrtcInfo_reply_rotation_mask_Rotate_90,
11078  &hf_x11_randr_GetCrtcInfo_reply_rotation_mask_Rotate_180,
11079  &hf_x11_randr_GetCrtcInfo_reply_rotation_mask_Rotate_270,
11080  &hf_x11_randr_GetCrtcInfo_reply_rotation_mask_Reflect_X,
11081  &hf_x11_randr_GetCrtcInfo_reply_rotation_mask_Reflect_Y,
11082  NULL
11083  };
11084  proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_randr_GetCrtcInfo_reply_rotation, ett_x11_rectangle, rotation_bits, byte_order);
11085  }
11086  *offsetp += 2;
11087  {
11088  const int* rotations_bits [] = {
11089  &hf_x11_randr_GetCrtcInfo_reply_rotations_mask_Rotate_0,
11090  &hf_x11_randr_GetCrtcInfo_reply_rotations_mask_Rotate_90,
11091  &hf_x11_randr_GetCrtcInfo_reply_rotations_mask_Rotate_180,
11092  &hf_x11_randr_GetCrtcInfo_reply_rotations_mask_Rotate_270,
11093  &hf_x11_randr_GetCrtcInfo_reply_rotations_mask_Reflect_X,
11094  &hf_x11_randr_GetCrtcInfo_reply_rotations_mask_Reflect_Y,
11095  NULL
11096  };
11097  proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_randr_GetCrtcInfo_reply_rotations, ett_x11_rectangle, rotations_bits, byte_order);
11098  }
11099  *offsetp += 2;
11100  f_num_outputs = tvb_get_guint16(tvb, *offsetp, byte_order);
11101  proto_tree_add_item(t, hf_x11_randr_GetCrtcInfo_reply_num_outputs, tvb, *offsetp, 2, byte_order);
11102  *offsetp += 2;
11103  f_num_possible_outputs = tvb_get_guint16(tvb, *offsetp, byte_order);
11104  proto_tree_add_item(t, hf_x11_randr_GetCrtcInfo_reply_num_possible_outputs, tvb, *offsetp, 2, byte_order);
11105  *offsetp += 2;
11106  listOfCard32(tvb, offsetp, t, hf_x11_randr_GetCrtcInfo_reply_outputs, hf_x11_randr_GetCrtcInfo_reply_outputs_item, f_num_outputs, byte_order);
11107  listOfCard32(tvb, offsetp, t, hf_x11_randr_GetCrtcInfo_reply_possible, hf_x11_randr_GetCrtcInfo_reply_possible_item, f_num_possible_outputs, byte_order);
11108 }
11109 
11110 static void randrSetCrtcConfig(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
11111 {
11112  proto_tree_add_item(t, hf_x11_randr_SetCrtcConfig_crtc, tvb, *offsetp, 4, byte_order);
11113  *offsetp += 4;
11114  proto_tree_add_item(t, hf_x11_randr_SetCrtcConfig_timestamp, tvb, *offsetp, 4, byte_order);
11115  *offsetp += 4;
11116  proto_tree_add_item(t, hf_x11_randr_SetCrtcConfig_config_timestamp, tvb, *offsetp, 4, byte_order);
11117  *offsetp += 4;
11118  proto_tree_add_item(t, hf_x11_randr_SetCrtcConfig_x, tvb, *offsetp, 2, byte_order);
11119  *offsetp += 2;
11120  proto_tree_add_item(t, hf_x11_randr_SetCrtcConfig_y, tvb, *offsetp, 2, byte_order);
11121  *offsetp += 2;
11122  proto_tree_add_item(t, hf_x11_randr_SetCrtcConfig_mode, tvb, *offsetp, 4, byte_order);
11123  *offsetp += 4;
11124  {
11125  const int* rotation_bits [] = {
11126  &hf_x11_randr_SetCrtcConfig_rotation_mask_Rotate_0,
11127  &hf_x11_randr_SetCrtcConfig_rotation_mask_Rotate_90,
11128  &hf_x11_randr_SetCrtcConfig_rotation_mask_Rotate_180,
11129  &hf_x11_randr_SetCrtcConfig_rotation_mask_Rotate_270,
11130  &hf_x11_randr_SetCrtcConfig_rotation_mask_Reflect_X,
11131  &hf_x11_randr_SetCrtcConfig_rotation_mask_Reflect_Y,
11132  NULL
11133  };
11134  proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_randr_SetCrtcConfig_rotation, ett_x11_rectangle, rotation_bits, byte_order);
11135  }
11136  *offsetp += 2;
11137  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 2, ENC_NA);
11138  *offsetp += 2;
11139  listOfCard32(tvb, offsetp, t, hf_x11_randr_SetCrtcConfig_outputs, hf_x11_randr_SetCrtcConfig_outputs_item, (length - 28) / 4, byte_order);
11140 }
11141 static void randrSetCrtcConfig_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
11142 {
11143  int sequence_number;
11144 
11145  col_append_fstr(pinfo->cinfo, COL_INFO, "-SetCrtcConfig");
11146 
11147  REPLY(reply);
11148  field8(tvb, offsetp, t, hf_x11_randr_SetCrtcConfig_reply_status, byte_order);
11149  sequence_number = tvb_get_guint16(tvb, *offsetp, byte_order);
11150  proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
11151  "%d (randr-SetCrtcConfig)", sequence_number);
11152  *offsetp += 2;
11153  proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
11154  *offsetp += 4;
11155  proto_tree_add_item(t, hf_x11_randr_SetCrtcConfig_reply_timestamp, tvb, *offsetp, 4, byte_order);
11156  *offsetp += 4;
11157  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 20, ENC_NA);
11158  *offsetp += 20;
11159 }
11160 
11161 static void randrGetCrtcGammaSize(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
11162 {
11163  proto_tree_add_item(t, hf_x11_randr_GetCrtcGammaSize_crtc, tvb, *offsetp, 4, byte_order);
11164  *offsetp += 4;
11165 }
11166 static void randrGetCrtcGammaSize_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
11167 {
11168  int sequence_number;
11169 
11170  col_append_fstr(pinfo->cinfo, COL_INFO, "-GetCrtcGammaSize");
11171 
11172  REPLY(reply);
11173  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
11174  *offsetp += 1;
11175  sequence_number = tvb_get_guint16(tvb, *offsetp, byte_order);
11176  proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
11177  "%d (randr-GetCrtcGammaSize)", sequence_number);
11178  *offsetp += 2;
11179  proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
11180  *offsetp += 4;
11181  proto_tree_add_item(t, hf_x11_randr_GetCrtcGammaSize_reply_size, tvb, *offsetp, 2, byte_order);
11182  *offsetp += 2;
11183  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 22, ENC_NA);
11184  *offsetp += 22;
11185 }
11186 
11187 static void randrGetCrtcGamma(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_GetCrtcGamma_crtc, tvb, *offsetp, 4, byte_order);
11190  *offsetp += 4;
11191 }
11192 static void randrGetCrtcGamma_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
11193 {
11194  int sequence_number;
11195  int f_size;
11196 
11197  col_append_fstr(pinfo->cinfo, COL_INFO, "-GetCrtcGamma");
11198 
11199  REPLY(reply);
11200  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
11201  *offsetp += 1;
11202  sequence_number = tvb_get_guint16(tvb, *offsetp, byte_order);
11203  proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
11204  "%d (randr-GetCrtcGamma)", sequence_number);
11205  *offsetp += 2;
11206  proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
11207  *offsetp += 4;
11208  f_size = tvb_get_guint16(tvb, *offsetp, byte_order);
11209  proto_tree_add_item(t, hf_x11_randr_GetCrtcGamma_reply_size, tvb, *offsetp, 2, byte_order);
11210  *offsetp += 2;
11211  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 22, ENC_NA);
11212  *offsetp += 22;
11213  listOfCard16(tvb, offsetp, t, hf_x11_randr_GetCrtcGamma_reply_red, hf_x11_randr_GetCrtcGamma_reply_red_item, f_size, byte_order);
11214  listOfCard16(tvb, offsetp, t, hf_x11_randr_GetCrtcGamma_reply_green, hf_x11_randr_GetCrtcGamma_reply_green_item, f_size, byte_order);
11215  listOfCard16(tvb, offsetp, t, hf_x11_randr_GetCrtcGamma_reply_blue, hf_x11_randr_GetCrtcGamma_reply_blue_item, f_size, byte_order);
11216 }
11217 
11218 static void randrSetCrtcGamma(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
11219 {
11220  int f_size;
11221  proto_tree_add_item(t, hf_x11_randr_SetCrtcGamma_crtc, tvb, *offsetp, 4, byte_order);
11222  *offsetp += 4;
11223  f_size = tvb_get_guint16(tvb, *offsetp, byte_order);
11224  proto_tree_add_item(t, hf_x11_randr_SetCrtcGamma_size, tvb, *offsetp, 2, byte_order);
11225  *offsetp += 2;
11226  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 2, ENC_NA);
11227  *offsetp += 2;
11228  listOfCard16(tvb, offsetp, t, hf_x11_randr_SetCrtcGamma_red, hf_x11_randr_SetCrtcGamma_red_item, f_size, byte_order);
11229  length -= f_size * 2;
11230  listOfCard16(tvb, offsetp, t, hf_x11_randr_SetCrtcGamma_green, hf_x11_randr_SetCrtcGamma_green_item, f_size, byte_order);
11231  length -= f_size * 2;
11232  listOfCard16(tvb, offsetp, t, hf_x11_randr_SetCrtcGamma_blue, hf_x11_randr_SetCrtcGamma_blue_item, f_size, byte_order);
11233  length -= f_size * 2;
11234 }
11235 
11236 static void randrGetScreenResourcesCurrent(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
11237 {
11238  proto_tree_add_item(t, hf_x11_randr_GetScreenResourcesCurrent_window, tvb, *offsetp, 4, byte_order);
11239  *offsetp += 4;
11240 }
11241 static void randrGetScreenResourcesCurrent_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
11242 {
11243  int sequence_number;
11244  int f_num_crtcs;
11245  int f_num_outputs;
11246  int f_num_modes;
11247  int f_names_len;
11248 
11249  col_append_fstr(pinfo->cinfo, COL_INFO, "-GetScreenResourcesCurrent");
11250 
11251  REPLY(reply);
11252  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
11253  *offsetp += 1;
11254  sequence_number = tvb_get_guint16(tvb, *offsetp, byte_order);
11255  proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
11256  "%d (randr-GetScreenResourcesCurrent)", sequence_number);
11257  *offsetp += 2;
11258  proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
11259  *offsetp += 4;
11260  proto_tree_add_item(t, hf_x11_randr_GetScreenResourcesCurrent_reply_timestamp, tvb, *offsetp, 4, byte_order);
11261  *offsetp += 4;
11262  proto_tree_add_item(t, hf_x11_randr_GetScreenResourcesCurrent_reply_config_timestamp, tvb, *offsetp, 4, byte_order);
11263  *offsetp += 4;
11264  f_num_crtcs = tvb_get_guint16(tvb, *offsetp, byte_order);
11265  proto_tree_add_item(t, hf_x11_randr_GetScreenResourcesCurrent_reply_num_crtcs, tvb, *offsetp, 2, byte_order);
11266  *offsetp += 2;
11267  f_num_outputs = tvb_get_guint16(tvb, *offsetp, byte_order);
11268  proto_tree_add_item(t, hf_x11_randr_GetScreenResourcesCurrent_reply_num_outputs, tvb, *offsetp, 2, byte_order);
11269  *offsetp += 2;
11270  f_num_modes = tvb_get_guint16(tvb, *offsetp, byte_order);
11271  proto_tree_add_item(t, hf_x11_randr_GetScreenResourcesCurrent_reply_num_modes, tvb, *offsetp, 2, byte_order);
11272  *offsetp += 2;
11273  f_names_len = tvb_get_guint16(tvb, *offsetp, byte_order);
11274  proto_tree_add_item(t, hf_x11_randr_GetScreenResourcesCurrent_reply_names_len, tvb, *offsetp, 2, byte_order);
11275  *offsetp += 2;
11276  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 8, ENC_NA);
11277  *offsetp += 8;
11278  listOfCard32(tvb, offsetp, t, hf_x11_randr_GetScreenResourcesCurrent_reply_crtcs, hf_x11_randr_GetScreenResourcesCurrent_reply_crtcs_item, f_num_crtcs, byte_order);
11279  listOfCard32(tvb, offsetp, t, hf_x11_randr_GetScreenResourcesCurrent_reply_outputs, hf_x11_randr_GetScreenResourcesCurrent_reply_outputs_item, f_num_outputs, byte_order);
11280  struct_randr_ModeInfo(tvb, offsetp, t, byte_order, f_num_modes);
11281  listOfByte(tvb, offsetp, t, hf_x11_randr_GetScreenResourcesCurrent_reply_names, f_names_len, byte_order);
11282 }
11283 
11284 static void randrSetCrtcTransform(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
11285 {
11286  int f_filter_len;
11287  proto_tree_add_item(t, hf_x11_randr_SetCrtcTransform_crtc, tvb, *offsetp, 4, byte_order);
11288  *offsetp += 4;
11289  struct_render_TRANSFORM(tvb, offsetp, t, byte_order, 1);
11290  f_filter_len = tvb_get_guint16(tvb, *offsetp, byte_order);
11291  proto_tree_add_item(t, hf_x11_randr_SetCrtcTransform_filter_len, tvb, *offsetp, 2, byte_order);
11292  *offsetp += 2;
11293  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 2, ENC_NA);
11294  *offsetp += 2;
11295  listOfByte(tvb, offsetp, t, hf_x11_randr_SetCrtcTransform_filter_name, f_filter_len, byte_order);
11296  length -= f_filter_len * 1;
11297  if (*offsetp % 4) {
11298  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, (4 - *offsetp % 4), ENC_NA);
11299  *offsetp += (4 - *offsetp % 4);
11300  }
11301  length = ((length + 3) & ~3);
11302  listOfInt32(tvb, offsetp, t, hf_x11_randr_SetCrtcTransform_filter_params, hf_x11_randr_SetCrtcTransform_filter_params_item, (length - 48) / 4, byte_order);
11303 }
11304 
11305 static void randrGetCrtcTransform(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
11306 {
11307  proto_tree_add_item(t, hf_x11_randr_GetCrtcTransform_crtc, tvb, *offsetp, 4, byte_order);
11308  *offsetp += 4;
11309 }
11310 static void randrGetCrtcTransform_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
11311 {
11312  int sequence_number;
11313  int f_pending_len;
11314  int f_pending_nparams;
11315  int f_current_len;
11316  int f_current_nparams;
11317 
11318  col_append_fstr(pinfo->cinfo, COL_INFO, "-GetCrtcTransform");
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-GetCrtcTransform)", sequence_number);
11326  *offsetp += 2;
11327  proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
11328  *offsetp += 4;
11329  struct_render_TRANSFORM(tvb, offsetp, t, byte_order, 1);
11330  proto_tree_add_item(t, hf_x11_randr_GetCrtcTransform_reply_has_transforms, tvb, *offsetp, 1, byte_order);
11331  *offsetp += 1;
11332  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 3, ENC_NA);
11333  *offsetp += 3;
11334  struct_render_TRANSFORM(tvb, offsetp, t, byte_order, 1);
11335  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 4, ENC_NA);
11336  *offsetp += 4;
11337  f_pending_len = tvb_get_guint16(tvb, *offsetp, byte_order);
11338  proto_tree_add_item(t, hf_x11_randr_GetCrtcTransform_reply_pending_len, tvb, *offsetp, 2, byte_order);
11339  *offsetp += 2;
11340  f_pending_nparams = tvb_get_guint16(tvb, *offsetp, byte_order);
11341  proto_tree_add_item(t, hf_x11_randr_GetCrtcTransform_reply_pending_nparams, tvb, *offsetp, 2, byte_order);
11342  *offsetp += 2;
11343  f_current_len = tvb_get_guint16(tvb, *offsetp, byte_order);
11344  proto_tree_add_item(t, hf_x11_randr_GetCrtcTransform_reply_current_len, tvb, *offsetp, 2, byte_order);
11345  *offsetp += 2;
11346  f_current_nparams = tvb_get_guint16(tvb, *offsetp, byte_order);
11347  proto_tree_add_item(t, hf_x11_randr_GetCrtcTransform_reply_current_nparams, tvb, *offsetp, 2, byte_order);
11348  *offsetp += 2;
11349  listOfByte(tvb, offsetp, t, hf_x11_randr_GetCrtcTransform_reply_pending_filter_name, f_pending_len, byte_order);
11350  if (*offsetp % 4) {
11351  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, (4 - *offsetp % 4), ENC_NA);
11352  *offsetp += (4 - *offsetp % 4);
11353  }
11354  listOfInt32(tvb, offsetp, t, hf_x11_randr_GetCrtcTransform_reply_pending_params, hf_x11_randr_GetCrtcTransform_reply_pending_params_item, f_pending_nparams, byte_order);
11355  listOfByte(tvb, offsetp, t, hf_x11_randr_GetCrtcTransform_reply_current_filter_name, f_current_len, byte_order);
11356  if (*offsetp % 4) {
11357  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, (4 - *offsetp % 4), ENC_NA);
11358  *offsetp += (4 - *offsetp % 4);
11359  }
11360  listOfInt32(tvb, offsetp, t, hf_x11_randr_GetCrtcTransform_reply_current_params, hf_x11_randr_GetCrtcTransform_reply_current_params_item, f_current_nparams, byte_order);
11361 }
11362 
11363 static void randrGetPanning(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
11364 {
11365  proto_tree_add_item(t, hf_x11_randr_GetPanning_crtc, tvb, *offsetp, 4, byte_order);
11366  *offsetp += 4;
11367 }
11368 static void randrGetPanning_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
11369 {
11370  int sequence_number;
11371 
11372  col_append_fstr(pinfo->cinfo, COL_INFO, "-GetPanning");
11373 
11374  REPLY(reply);
11375  field8(tvb, offsetp, t, hf_x11_randr_GetPanning_reply_status, byte_order);
11376  sequence_number = tvb_get_guint16(tvb, *offsetp, byte_order);
11377  proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
11378  "%d (randr-GetPanning)", sequence_number);
11379  *offsetp += 2;
11380  proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
11381  *offsetp += 4;
11382  proto_tree_add_item(t, hf_x11_randr_GetPanning_reply_timestamp, tvb, *offsetp, 4, byte_order);
11383  *offsetp += 4;
11384  proto_tree_add_item(t, hf_x11_randr_GetPanning_reply_left, tvb, *offsetp, 2, byte_order);
11385  *offsetp += 2;
11386  proto_tree_add_item(t, hf_x11_randr_GetPanning_reply_top, tvb, *offsetp, 2, byte_order);
11387  *offsetp += 2;
11388  proto_tree_add_item(t, hf_x11_randr_GetPanning_reply_width, tvb, *offsetp, 2, byte_order);
11389  *offsetp += 2;
11390  proto_tree_add_item(t, hf_x11_randr_GetPanning_reply_height, tvb, *offsetp, 2, byte_order);
11391  *offsetp += 2;
11392  proto_tree_add_item(t, hf_x11_randr_GetPanning_reply_track_left, tvb, *offsetp, 2, byte_order);
11393  *offsetp += 2;
11394  proto_tree_add_item(t, hf_x11_randr_GetPanning_reply_track_top, tvb, *offsetp, 2, byte_order);
11395  *offsetp += 2;
11396  proto_tree_add_item(t, hf_x11_randr_GetPanning_reply_track_width, tvb, *offsetp, 2, byte_order);
11397  *offsetp += 2;
11398  proto_tree_add_item(t, hf_x11_randr_GetPanning_reply_track_height, tvb, *offsetp, 2, byte_order);
11399  *offsetp += 2;
11400  proto_tree_add_item(t, hf_x11_randr_GetPanning_reply_border_left, tvb, *offsetp, 2, byte_order);
11401  *offsetp += 2;
11402  proto_tree_add_item(t, hf_x11_randr_GetPanning_reply_border_top, tvb, *offsetp, 2, byte_order);
11403  *offsetp += 2;
11404  proto_tree_add_item(t, hf_x11_randr_GetPanning_reply_border_right, tvb, *offsetp, 2, byte_order);
11405  *offsetp += 2;
11406  proto_tree_add_item(t, hf_x11_randr_GetPanning_reply_border_bottom, tvb, *offsetp, 2, byte_order);
11407  *offsetp += 2;
11408 }
11409 
11410 static void randrSetPanning(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
11411 {
11412  proto_tree_add_item(t, hf_x11_randr_SetPanning_crtc, tvb, *offsetp, 4, byte_order);
11413  *offsetp += 4;
11414  proto_tree_add_item(t, hf_x11_randr_SetPanning_timestamp, tvb, *offsetp, 4, byte_order);
11415  *offsetp += 4;
11416  proto_tree_add_item(t, hf_x11_randr_SetPanning_left, tvb, *offsetp, 2, byte_order);
11417  *offsetp += 2;
11418  proto_tree_add_item(t, hf_x11_randr_SetPanning_top, tvb, *offsetp, 2, byte_order);
11419  *offsetp += 2;
11420  proto_tree_add_item(t, hf_x11_randr_SetPanning_width, tvb, *offsetp, 2, byte_order);
11421  *offsetp += 2;
11422  proto_tree_add_item(t, hf_x11_randr_SetPanning_height, tvb, *offsetp, 2, byte_order);
11423  *offsetp += 2;
11424  proto_tree_add_item(t, hf_x11_randr_SetPanning_track_left, tvb, *offsetp, 2, byte_order);
11425  *offsetp += 2;
11426  proto_tree_add_item(t, hf_x11_randr_SetPanning_track_top, tvb, *offsetp, 2, byte_order);
11427  *offsetp += 2;
11428  proto_tree_add_item(t, hf_x11_randr_SetPanning_track_width, tvb, *offsetp, 2, byte_order);
11429  *offsetp += 2;
11430  proto_tree_add_item(t, hf_x11_randr_SetPanning_track_height, tvb, *offsetp, 2, byte_order);
11431  *offsetp += 2;
11432  proto_tree_add_item(t, hf_x11_randr_SetPanning_border_left, tvb, *offsetp, 2, byte_order);
11433  *offsetp += 2;
11434  proto_tree_add_item(t, hf_x11_randr_SetPanning_border_top, tvb, *offsetp, 2, byte_order);
11435  *offsetp += 2;
11436  proto_tree_add_item(t, hf_x11_randr_SetPanning_border_right, tvb, *offsetp, 2, byte_order);
11437  *offsetp += 2;
11438  proto_tree_add_item(t, hf_x11_randr_SetPanning_border_bottom, tvb, *offsetp, 2, byte_order);
11439  *offsetp += 2;
11440 }
11441 static void randrSetPanning_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
11442 {
11443  int sequence_number;
11444 
11445  col_append_fstr(pinfo->cinfo, COL_INFO, "-SetPanning");
11446 
11447  REPLY(reply);
11448  field8(tvb, offsetp, t, hf_x11_randr_SetPanning_reply_status, byte_order);
11449  sequence_number = tvb_get_guint16(tvb, *offsetp, byte_order);
11450  proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
11451  "%d (randr-SetPanning)", sequence_number);
11452  *offsetp += 2;
11453  proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
11454  *offsetp += 4;
11455  proto_tree_add_item(t, hf_x11_randr_SetPanning_reply_timestamp, tvb, *offsetp, 4, byte_order);
11456  *offsetp += 4;
11457 }
11458 
11459 static void randrSetOutputPrimary(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
11460 {
11461  proto_tree_add_item(t, hf_x11_randr_SetOutputPrimary_window, tvb, *offsetp, 4, byte_order);
11462  *offsetp += 4;
11463  proto_tree_add_item(t, hf_x11_randr_SetOutputPrimary_output, tvb, *offsetp, 4, byte_order);
11464  *offsetp += 4;
11465 }
11466 
11467 static void randrGetOutputPrimary(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
11468 {
11469  proto_tree_add_item(t, hf_x11_randr_GetOutputPrimary_window, tvb, *offsetp, 4, byte_order);
11470  *offsetp += 4;
11471 }
11472 static void randrGetOutputPrimary_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
11473 {
11474  int sequence_number;
11475 
11476  col_append_fstr(pinfo->cinfo, COL_INFO, "-GetOutputPrimary");
11477 
11478  REPLY(reply);
11479  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
11480  *offsetp += 1;
11481  sequence_number = tvb_get_guint16(tvb, *offsetp, byte_order);
11482  proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
11483  "%d (randr-GetOutputPrimary)", sequence_number);
11484  *offsetp += 2;
11485  proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
11486  *offsetp += 4;
11487  proto_tree_add_item(t, hf_x11_randr_GetOutputPrimary_reply_output, tvb, *offsetp, 4, byte_order);
11488  *offsetp += 4;
11489 }
11490 
11491 static void randrGetProviders(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
11492 {
11493  proto_tree_add_item(t, hf_x11_randr_GetProviders_window, tvb, *offsetp, 4, byte_order);
11494  *offsetp += 4;
11495 }
11496 static void randrGetProviders_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
11497 {
11498  int sequence_number;
11499  int f_num_providers;
11500 
11501  col_append_fstr(pinfo->cinfo, COL_INFO, "-GetProviders");
11502 
11503  REPLY(reply);
11504  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
11505  *offsetp += 1;
11506  sequence_number = tvb_get_guint16(tvb, *offsetp, byte_order);
11507  proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
11508  "%d (randr-GetProviders)", sequence_number);
11509  *offsetp += 2;
11510  proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
11511  *offsetp += 4;
11512  proto_tree_add_item(t, hf_x11_randr_GetProviders_reply_timestamp, tvb, *offsetp, 4, byte_order);
11513  *offsetp += 4;
11514  f_num_providers = tvb_get_guint16(tvb, *offsetp, byte_order);
11515  proto_tree_add_item(t, hf_x11_randr_GetProviders_reply_num_providers, tvb, *offsetp, 2, byte_order);
11516  *offsetp += 2;
11517  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 18, ENC_NA);
11518  *offsetp += 18;
11519  listOfCard32(tvb, offsetp, t, hf_x11_randr_GetProviders_reply_providers, hf_x11_randr_GetProviders_reply_providers_item, f_num_providers, byte_order);
11520 }
11521 
11522 static void randrGetProviderInfo(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
11523 {
11524  proto_tree_add_item(t, hf_x11_randr_GetProviderInfo_provider, tvb, *offsetp, 4, byte_order);
11525  *offsetp += 4;
11526  proto_tree_add_item(t, hf_x11_randr_GetProviderInfo_config_timestamp, tvb, *offsetp, 4, byte_order);
11527  *offsetp += 4;
11528 }
11529 static void randrGetProviderInfo_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
11530 {
11531  int sequence_number;
11532  int f_num_crtcs;
11533  int f_num_outputs;
11534  int f_num_associated_providers;
11535  int f_name_len;
11536 
11537  col_append_fstr(pinfo->cinfo, COL_INFO, "-GetProviderInfo");
11538 
11539  REPLY(reply);
11540  proto_tree_add_item(t, hf_x11_randr_GetProviderInfo_reply_status, tvb, *offsetp, 1, byte_order);
11541  *offsetp += 1;
11542  sequence_number = tvb_get_guint16(tvb, *offsetp, byte_order);
11543  proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
11544  "%d (randr-GetProviderInfo)", sequence_number);
11545  *offsetp += 2;
11546  proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
11547  *offsetp += 4;
11548  proto_tree_add_item(t, hf_x11_randr_GetProviderInfo_reply_timestamp, tvb, *offsetp, 4, byte_order);
11549  *offsetp += 4;
11550  {
11551  const int* capabilities_bits [] = {
11552  &hf_x11_randr_GetProviderInfo_reply_capabilities_mask_SourceOutput,
11553  &hf_x11_randr_GetProviderInfo_reply_capabilities_mask_SinkOutput,
11554  &hf_x11_randr_GetProviderInfo_reply_capabilities_mask_SourceOffload,
11555  &hf_x11_randr_GetProviderInfo_reply_capabilities_mask_SinkOffload,
11556  NULL
11557  };
11558  proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_randr_GetProviderInfo_reply_capabilities, ett_x11_rectangle, capabilities_bits, byte_order);
11559  }
11560  *offsetp += 4;
11561  f_num_crtcs = tvb_get_guint16(tvb, *offsetp, byte_order);
11562  proto_tree_add_item(t, hf_x11_randr_GetProviderInfo_reply_num_crtcs, tvb, *offsetp, 2, byte_order);
11563  *offsetp += 2;
11564  f_num_outputs = tvb_get_guint16(tvb, *offsetp, byte_order);
11565  proto_tree_add_item(t, hf_x11_randr_GetProviderInfo_reply_num_outputs, tvb, *offsetp, 2, byte_order);
11566  *offsetp += 2;
11567  f_num_associated_providers = tvb_get_guint16(tvb, *offsetp, byte_order);
11568  proto_tree_add_item(t, hf_x11_randr_GetProviderInfo_reply_num_associated_providers, tvb, *offsetp, 2, byte_order);
11569  *offsetp += 2;
11570  f_name_len = tvb_get_guint16(tvb, *offsetp, byte_order);
11571  proto_tree_add_item(t, hf_x11_randr_GetProviderInfo_reply_name_len, tvb, *offsetp, 2, byte_order);
11572  *offsetp += 2;
11573  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 8, ENC_NA);
11574  *offsetp += 8;
11575  listOfCard32(tvb, offsetp, t, hf_x11_randr_GetProviderInfo_reply_crtcs, hf_x11_randr_GetProviderInfo_reply_crtcs_item, f_num_crtcs, byte_order);
11576  listOfCard32(tvb, offsetp, t, hf_x11_randr_GetProviderInfo_reply_outputs, hf_x11_randr_GetProviderInfo_reply_outputs_item, f_num_outputs, byte_order);
11577  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);
11578  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);
11579  listOfByte(tvb, offsetp, t, hf_x11_randr_GetProviderInfo_reply_name, f_name_len, byte_order);
11580 }
11581 
11582 static void randrSetProviderOffloadSink(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
11583 {
11584  proto_tree_add_item(t, hf_x11_randr_SetProviderOffloadSink_provider, tvb, *offsetp, 4, byte_order);
11585  *offsetp += 4;
11586  proto_tree_add_item(t, hf_x11_randr_SetProviderOffloadSink_sink_provider, tvb, *offsetp, 4, byte_order);
11587  *offsetp += 4;
11588  proto_tree_add_item(t, hf_x11_randr_SetProviderOffloadSink_config_timestamp, tvb, *offsetp, 4, byte_order);
11589  *offsetp += 4;
11590 }
11591 
11592 static void randrSetProviderOutputSource(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
11593 {
11594  proto_tree_add_item(t, hf_x11_randr_SetProviderOutputSource_provider, tvb, *offsetp, 4, byte_order);
11595  *offsetp += 4;
11596  proto_tree_add_item(t, hf_x11_randr_SetProviderOutputSource_source_provider, tvb, *offsetp, 4, byte_order);
11597  *offsetp += 4;
11598  proto_tree_add_item(t, hf_x11_randr_SetProviderOutputSource_config_timestamp, tvb, *offsetp, 4, byte_order);
11599  *offsetp += 4;
11600 }
11601 
11602 static void randrListProviderProperties(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
11603 {
11604  proto_tree_add_item(t, hf_x11_randr_ListProviderProperties_provider, tvb, *offsetp, 4, byte_order);
11605  *offsetp += 4;
11606 }
11607 static void randrListProviderProperties_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
11608 {
11609  int sequence_number;
11610  int f_num_atoms;
11611 
11612  col_append_fstr(pinfo->cinfo, COL_INFO, "-ListProviderProperties");
11613 
11614  REPLY(reply);
11615  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
11616  *offsetp += 1;
11617  sequence_number = tvb_get_guint16(tvb, *offsetp, byte_order);
11618  proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
11619  "%d (randr-ListProviderProperties)", sequence_number);
11620  *offsetp += 2;
11621  proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
11622  *offsetp += 4;
11623  f_num_atoms = tvb_get_guint16(tvb, *offsetp, byte_order);
11624  proto_tree_add_item(t, hf_x11_randr_ListProviderProperties_reply_num_atoms, tvb, *offsetp, 2, byte_order);
11625  *offsetp += 2;
11626  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 22, ENC_NA);
11627  *offsetp += 22;
11628  listOfCard32(tvb, offsetp, t, hf_x11_randr_ListProviderProperties_reply_atoms, hf_x11_randr_ListProviderProperties_reply_atoms_item, f_num_atoms, byte_order);
11629 }
11630 
11631 static void randrQueryProviderProperty(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
11632 {
11633  proto_tree_add_item(t, hf_x11_randr_QueryProviderProperty_provider, tvb, *offsetp, 4, byte_order);
11634  *offsetp += 4;
11635  proto_tree_add_item(t, hf_x11_randr_QueryProviderProperty_property, tvb, *offsetp, 4, byte_order);
11636  *offsetp += 4;
11637 }
11638 static void randrQueryProviderProperty_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
11639 {
11640  int sequence_number;
11641  int f_length;
11642 
11643  col_append_fstr(pinfo->cinfo, COL_INFO, "-QueryProviderProperty");
11644 
11645  REPLY(reply);
11646  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
11647  *offsetp += 1;
11648  sequence_number = tvb_get_guint16(tvb, *offsetp, byte_order);
11649  proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
11650  "%d (randr-QueryProviderProperty)", sequence_number);
11651  *offsetp += 2;
11652  f_length = tvb_get_guint32(tvb, *offsetp, byte_order);
11653  proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
11654  *offsetp += 4;
11655  proto_tree_add_item(t, hf_x11_randr_QueryProviderProperty_reply_pending, tvb, *offsetp, 1, byte_order);
11656  *offsetp += 1;
11657  proto_tree_add_item(t, hf_x11_randr_QueryProviderProperty_reply_range, tvb, *offsetp, 1, byte_order);
11658  *offsetp += 1;
11659  proto_tree_add_item(t, hf_x11_randr_QueryProviderProperty_reply_immutable, tvb, *offsetp, 1, byte_order);
11660  *offsetp += 1;
11661  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 21, ENC_NA);
11662  *offsetp += 21;
11663  listOfInt32(tvb, offsetp, t, hf_x11_randr_QueryProviderProperty_reply_valid_values, hf_x11_randr_QueryProviderProperty_reply_valid_values_item, f_length, byte_order);
11664 }
11665 
11666 static void randrConfigureProviderProperty(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
11667 {
11668  proto_tree_add_item(t, hf_x11_randr_ConfigureProviderProperty_provider, tvb, *offsetp, 4, byte_order);
11669  *offsetp += 4;
11670  proto_tree_add_item(t, hf_x11_randr_ConfigureProviderProperty_property, tvb, *offsetp, 4, byte_order);
11671  *offsetp += 4;
11672  proto_tree_add_item(t, hf_x11_randr_ConfigureProviderProperty_pending, tvb, *offsetp, 1, byte_order);
11673  *offsetp += 1;
11674  proto_tree_add_item(t, hf_x11_randr_ConfigureProviderProperty_range, tvb, *offsetp, 1, byte_order);
11675  *offsetp += 1;
11676  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 2, ENC_NA);
11677  *offsetp += 2;
11678  listOfInt32(tvb, offsetp, t, hf_x11_randr_ConfigureProviderProperty_values, hf_x11_randr_ConfigureProviderProperty_values_item, (length - 16) / 4, byte_order);
11679 }
11680 
11681 static void randrChangeProviderProperty(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
11682 {
11683  int f_format;
11684  int f_num_items;
11685  proto_tree_add_item(t, hf_x11_randr_ChangeProviderProperty_provider, tvb, *offsetp, 4, byte_order);
11686  *offsetp += 4;
11687  proto_tree_add_item(t, hf_x11_randr_ChangeProviderProperty_property, tvb, *offsetp, 4, byte_order);
11688  *offsetp += 4;
11689  proto_tree_add_item(t, hf_x11_randr_ChangeProviderProperty_type, tvb, *offsetp, 4, byte_order);
11690  *offsetp += 4;
11691  f_format = tvb_get_guint8(tvb, *offsetp);
11692  proto_tree_add_item(t, hf_x11_randr_ChangeProviderProperty_format, tvb, *offsetp, 1, byte_order);
11693  *offsetp += 1;
11694  proto_tree_add_item(t, hf_x11_randr_ChangeProviderProperty_mode, tvb, *offsetp, 1, byte_order);
11695  *offsetp += 1;
11696  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 2, ENC_NA);
11697  *offsetp += 2;
11698  f_num_items = tvb_get_guint32(tvb, *offsetp, byte_order);
11699  proto_tree_add_item(t, hf_x11_randr_ChangeProviderProperty_num_items, tvb, *offsetp, 4, byte_order);
11700  *offsetp += 4;
11701  listOfByte(tvb, offsetp, t, hf_x11_randr_ChangeProviderProperty_data, (f_num_items * (f_format / 8)), byte_order);
11702  length -= (f_num_items * (f_format / 8)) * 1;
11703 }
11704 
11705 static void randrDeleteProviderProperty(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
11706 {
11707  proto_tree_add_item(t, hf_x11_randr_DeleteProviderProperty_provider, tvb, *offsetp, 4, byte_order);
11708  *offsetp += 4;
11709  proto_tree_add_item(t, hf_x11_randr_DeleteProviderProperty_property, tvb, *offsetp, 4, byte_order);
11710  *offsetp += 4;
11711 }
11712 
11713 static void randrGetProviderProperty(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
11714 {
11715  proto_tree_add_item(t, hf_x11_randr_GetProviderProperty_provider, tvb, *offsetp, 4, byte_order);
11716  *offsetp += 4;
11717  proto_tree_add_item(t, hf_x11_randr_GetProviderProperty_property, tvb, *offsetp, 4, byte_order);
11718  *offsetp += 4;
11719  proto_tree_add_item(t, hf_x11_randr_GetProviderProperty_type, tvb, *offsetp, 4, byte_order);
11720  *offsetp += 4;
11721  proto_tree_add_item(t, hf_x11_randr_GetProviderProperty_long_offset, tvb, *offsetp, 4, byte_order);
11722  *offsetp += 4;
11723  proto_tree_add_item(t, hf_x11_randr_GetProviderProperty_long_length, tvb, *offsetp, 4, byte_order);
11724  *offsetp += 4;
11725  proto_tree_add_item(t, hf_x11_randr_GetProviderProperty_delete, tvb, *offsetp, 1, byte_order);
11726  *offsetp += 1;
11727  proto_tree_add_item(t, hf_x11_randr_GetProviderProperty_pending, tvb, *offsetp, 1, byte_order);
11728  *offsetp += 1;
11729  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 2, ENC_NA);
11730  *offsetp += 2;
11731 }
11732 static void randrGetProviderProperty_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
11733 {
11734  int sequence_number;
11735  int f_format;
11736  int f_num_items;
11737 
11738  col_append_fstr(pinfo->cinfo, COL_INFO, "-GetProviderProperty");
11739 
11740  REPLY(reply);
11741  f_format = tvb_get_guint8(tvb, *offsetp);
11742  proto_tree_add_item(t, hf_x11_randr_GetProviderProperty_reply_format, tvb, *offsetp, 1, byte_order);
11743  *offsetp += 1;
11744  sequence_number = tvb_get_guint16(tvb, *offsetp, byte_order);
11745  proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
11746  "%d (randr-GetProviderProperty)", sequence_number);
11747  *offsetp += 2;
11748  proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
11749  *offsetp += 4;
11750  proto_tree_add_item(t, hf_x11_randr_GetProviderProperty_reply_type, tvb, *offsetp, 4, byte_order);
11751  *offsetp += 4;
11752  proto_tree_add_item(t, hf_x11_randr_GetProviderProperty_reply_bytes_after, tvb, *offsetp, 4, byte_order);
11753  *offsetp += 4;
11754  f_num_items = tvb_get_guint32(tvb, *offsetp, byte_order);
11755  proto_tree_add_item(t, hf_x11_randr_GetProviderProperty_reply_num_items, tvb, *offsetp, 4, byte_order);
11756  *offsetp += 4;
11757  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 12, ENC_NA);
11758  *offsetp += 12;
11759  listOfByte(tvb, offsetp, t, hf_x11_randr_GetProviderProperty_reply_data, (f_num_items * (f_format / 8)), byte_order);
11760 }
11761 
11762 static void struct_randr_NotifyData(tvbuff_t *tvb, int *offsetp, proto_tree *root, guint byte_order, int count)
11763 {
11764  int i;
11765  int base = *offsetp;
11766  for (i = 0; i < count; i++) {
11767  proto_item *item;
11768  proto_tree *t;
11769  item = proto_tree_add_item(root, hf_x11_union_randr_NotifyData, tvb, base, 28, ENC_NA);
11770  t = proto_item_add_subtree(item, ett_x11_rectangle);
11771 
11772  *offsetp = base;
11773  struct_randr_CrtcChange(tvb, offsetp, t, byte_order, 1);
11774  *offsetp = base;
11775  struct_randr_OutputChange(tvb, offsetp, t, byte_order, 1);
11776  *offsetp = base;
11777  struct_randr_OutputProperty(tvb, offsetp, t, byte_order, 1);
11778  *offsetp = base;
11779  struct_randr_ProviderChange(tvb, offsetp, t, byte_order, 1);
11780  *offsetp = base;
11781  struct_randr_ProviderProperty(tvb, offsetp, t, byte_order, 1);
11782  *offsetp = base;
11783  struct_randr_ResourceChange(tvb, offsetp, t, byte_order, 1);
11784  base += 28;
11785  }
11786  *offsetp = base;
11787 }
11788 
11789 static void randrNotify(tvbuff_t *tvb, int *offsetp, proto_tree *t, guint byte_order)
11790 {
11791  field8(tvb, offsetp, t, hf_x11_randr_Notify_subCode, byte_order);
11792  CARD16(event_sequencenumber);
11793  struct_randr_NotifyData(tvb, offsetp, t, byte_order, 1);
11794 }
11795 
11796 
11797 static void randrGetMonitors(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
11798 {
11799  proto_tree_add_item(t, hf_x11_randr_GetMonitors_window, tvb, *offsetp, 4, byte_order);
11800  *offsetp += 4;
11801  proto_tree_add_item(t, hf_x11_randr_GetMonitors_get_active, tvb, *offsetp, 1, byte_order);
11802  *offsetp += 1;
11803 }
11804 static void randrGetMonitors_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
11805 {
11806  int sequence_number;
11807  int f_nMonitors;
11808 
11809  col_append_fstr(pinfo->cinfo, COL_INFO, "-GetMonitors");
11810 
11811  REPLY(reply);
11812  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
11813  *offsetp += 1;
11814  sequence_number = tvb_get_guint16(tvb, *offsetp, byte_order);
11815  proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
11816  "%d (randr-GetMonitors)", sequence_number);
11817  *offsetp += 2;
11818  proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
11819  *offsetp += 4;
11820  proto_tree_add_item(t, hf_x11_randr_GetMonitors_reply_timestamp, tvb, *offsetp, 4, byte_order);
11821  *offsetp += 4;
11822  f_nMonitors = tvb_get_guint32(tvb, *offsetp, byte_order);
11823  proto_tree_add_item(t, hf_x11_randr_GetMonitors_reply_nMonitors, tvb, *offsetp, 4, byte_order);
11824  *offsetp += 4;
11825  proto_tree_add_item(t, hf_x11_randr_GetMonitors_reply_nOutputs, tvb, *offsetp, 4, byte_order);
11826  *offsetp += 4;
11827  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 12, ENC_NA);
11828  *offsetp += 12;
11829  struct_randr_MonitorInfo(tvb, offsetp, t, byte_order, f_nMonitors);
11830 }
11831 
11832 static void randrSetMonitor(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
11833 {
11834  proto_tree_add_item(t, hf_x11_randr_SetMonitor_window, tvb, *offsetp, 4, byte_order);
11835  *offsetp += 4;
11836  struct_randr_MonitorInfo(tvb, offsetp, t, byte_order, 1);
11837 }
11838 
11839 static void randrDeleteMonitor(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
11840 {
11841  proto_tree_add_item(t, hf_x11_randr_DeleteMonitor_window, tvb, *offsetp, 4, byte_order);
11842  *offsetp += 4;
11843  proto_tree_add_item(t, hf_x11_randr_DeleteMonitor_name, tvb, *offsetp, 4, byte_order);
11844  *offsetp += 4;
11845 }
11846 static const value_string randr_extension_minor[] = {
11847  { 0, "QueryVersion" },
11848  { 2, "SetScreenConfig" },
11849  { 4, "SelectInput" },
11850  { 5, "GetScreenInfo" },
11851  { 6, "GetScreenSizeRange" },
11852  { 7, "SetScreenSize" },
11853  { 8, "GetScreenResources" },
11854  { 9, "GetOutputInfo" },
11855  { 10, "ListOutputProperties" },
11856  { 11, "QueryOutputProperty" },
11857  { 12, "ConfigureOutputProperty" },
11858  { 13, "ChangeOutputProperty" },
11859  { 14, "DeleteOutputProperty" },
11860  { 15, "GetOutputProperty" },
11861  { 16, "CreateMode" },
11862  { 17, "DestroyMode" },
11863  { 18, "AddOutputMode" },
11864  { 19, "DeleteOutputMode" },
11865  { 20, "GetCrtcInfo" },
11866  { 21, "SetCrtcConfig" },
11867  { 22, "GetCrtcGammaSize" },
11868  { 23, "GetCrtcGamma" },
11869  { 24, "SetCrtcGamma" },
11870  { 25, "GetScreenResourcesCurrent" },
11871  { 26, "SetCrtcTransform" },
11872  { 27, "GetCrtcTransform" },
11873  { 28, "GetPanning" },
11874  { 29, "SetPanning" },
11875  { 30, "SetOutputPrimary" },
11876  { 31, "GetOutputPrimary" },
11877  { 32, "GetProviders" },
11878  { 33, "GetProviderInfo" },
11879  { 34, "SetProviderOffloadSink" },
11880  { 35, "SetProviderOutputSource" },
11881  { 36, "ListProviderProperties" },
11882  { 37, "QueryProviderProperty" },
11883  { 38, "ConfigureProviderProperty" },
11884  { 39, "ChangeProviderProperty" },
11885  { 40, "DeleteProviderProperty" },
11886  { 41, "GetProviderProperty" },
11887  { 42, "GetMonitors" },
11888  { 43, "SetMonitor" },
11889  { 44, "DeleteMonitor" },
11890  { 0, NULL }
11891 };
11892 const x11_event_info randr_events[] = {
11893  { "randr-Notify", randrNotify },
11894  { NULL, NULL }
11895 };
11896 static x11_reply_info randr_replies[] = {
11897  { 0, randrQueryVersion_Reply },
11898  { 2, randrSetScreenConfig_Reply },
11899  { 5, randrGetScreenInfo_Reply },
11900  { 6, randrGetScreenSizeRange_Reply },
11901  { 8, randrGetScreenResources_Reply },
11902  { 9, randrGetOutputInfo_Reply },
11903  { 10, randrListOutputProperties_Reply },
11904  { 11, randrQueryOutputProperty_Reply },
11905  { 15, randrGetOutputProperty_Reply },
11906  { 16, randrCreateMode_Reply },
11907  { 20, randrGetCrtcInfo_Reply },
11908  { 21, randrSetCrtcConfig_Reply },
11909  { 22, randrGetCrtcGammaSize_Reply },
11910  { 23, randrGetCrtcGamma_Reply },
11911  { 25, randrGetScreenResourcesCurrent_Reply },
11912  { 27, randrGetCrtcTransform_Reply },
11913  { 28, randrGetPanning_Reply },
11914  { 29, randrSetPanning_Reply },
11915  { 31, randrGetOutputPrimary_Reply },
11916  { 32, randrGetProviders_Reply },
11917  { 33, randrGetProviderInfo_Reply },
11918  { 36, randrListProviderProperties_Reply },
11919  { 37, randrQueryProviderProperty_Reply },
11920  { 41, randrGetProviderProperty_Reply },
11921  { 42, randrGetMonitors_Reply },
11922  { 0, NULL }
11923 };
11924 
11925 static void dispatch_randr(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
11926 {
11927  int minor, length;
11928  minor = CARD8(randr_extension_minor);
11929  length = REQUEST_LENGTH();
11930 
11931  col_append_fstr(pinfo->cinfo, COL_INFO, "-%s",
11932  val_to_str(minor, randr_extension_minor,
11933  "<Unknown opcode %d>"));
11934  switch (minor) {
11935  case 0:
11936  randrQueryVersion(tvb, pinfo, offsetp, t, byte_order, length);
11937  break;
11938  case 2:
11939  randrSetScreenConfig(tvb, pinfo, offsetp, t, byte_order, length);
11940  break;
11941  case 4:
11942  randrSelectInput(tvb, pinfo, offsetp, t, byte_order, length);
11943  break;
11944  case 5:
11945  randrGetScreenInfo(tvb, pinfo, offsetp, t, byte_order, length);
11946  break;
11947  case 6:
11948  randrGetScreenSizeRange(tvb, pinfo, offsetp, t, byte_order, length);
11949  break;
11950  case 7:
11951  randrSetScreenSize(tvb, pinfo, offsetp, t, byte_order, length);
11952  break;
11953  case 8:
11954  randrGetScreenResources(tvb, pinfo, offsetp, t, byte_order, length);
11955  break;
11956  case 9:
11957  randrGetOutputInfo(tvb, pinfo, offsetp, t, byte_order, length);
11958  break;
11959  case 10:
11960  randrListOutputProperties(tvb, pinfo, offsetp, t, byte_order, length);
11961  break;
11962  case 11:
11963  randrQueryOutputProperty(tvb, pinfo, offsetp, t, byte_order, length);
11964  break;
11965  case 12:
11966  randrConfigureOutputProperty(tvb, pinfo, offsetp, t, byte_order, length);
11967  break;
11968  case 13:
11969  randrChangeOutputProperty(tvb, pinfo, offsetp, t, byte_order, length);
11970  break;
11971  case 14:
11972  randrDeleteOutputProperty(tvb, pinfo, offsetp, t, byte_order, length);
11973  break;
11974  case 15:
11975  randrGetOutputProperty(tvb, pinfo, offsetp, t, byte_order, length);
11976  break;
11977  case 16:
11978  randrCreateMode(tvb, pinfo, offsetp, t, byte_order, length);
11979  break;
11980  case 17:
11981  randrDestroyMode(tvb, pinfo, offsetp, t, byte_order, length);
11982  break;
11983  case 18:
11984  randrAddOutputMode(tvb, pinfo, offsetp, t, byte_order, length);
11985  break;
11986  case 19:
11987  randrDeleteOutputMode(tvb, pinfo, offsetp, t, byte_order, length);
11988  break;
11989  case 20:
11990  randrGetCrtcInfo(tvb, pinfo, offsetp, t, byte_order, length);
11991  break;
11992  case 21:
11993  randrSetCrtcConfig(tvb, pinfo, offsetp, t, byte_order, length);
11994  break;
11995  case 22:
11996  randrGetCrtcGammaSize(tvb, pinfo, offsetp, t, byte_order, length);
11997  break;
11998  case 23:
11999  randrGetCrtcGamma(tvb, pinfo, offsetp, t, byte_order, length);
12000  break;
12001  case 24:
12002  randrSetCrtcGamma(tvb, pinfo, offsetp, t, byte_order, length);
12003  break;
12004  case 25:
12005  randrGetScreenResourcesCurrent(tvb, pinfo, offsetp, t, byte_order, length);
12006  break;
12007  case 26:
12008  randrSetCrtcTransform(tvb, pinfo, offsetp, t, byte_order, length);
12009  break;
12010  case 27:
12011  randrGetCrtcTransform(tvb, pinfo, offsetp, t, byte_order, length);
12012  break;
12013  case 28:
12014  randrGetPanning(tvb, pinfo, offsetp, t, byte_order, length);
12015  break;
12016  case 29:
12017  randrSetPanning(tvb, pinfo, offsetp, t, byte_order, length);
12018  break;
12019  case 30:
12020  randrSetOutputPrimary(tvb, pinfo, offsetp, t, byte_order, length);
12021  break;
12022  case 31:
12023  randrGetOutputPrimary(tvb, pinfo, offsetp, t, byte_order, length);
12024  break;
12025  case 32:
12026  randrGetProviders(tvb, pinfo, offsetp, t, byte_order, length);
12027  break;
12028  case 33:
12029  randrGetProviderInfo(tvb, pinfo, offsetp, t, byte_order, length);
12030  break;
12031  case 34:
12032  randrSetProviderOffloadSink(tvb, pinfo, offsetp, t, byte_order, length);
12033  break;
12034  case 35:
12035  randrSetProviderOutputSource(tvb, pinfo, offsetp, t, byte_order, length);
12036  break;
12037  case 36:
12038  randrListProviderProperties(tvb, pinfo, offsetp, t, byte_order, length);
12039  break;
12040  case 37:
12041  randrQueryProviderProperty(tvb, pinfo, offsetp, t, byte_order, length);
12042  break;
12043  case 38:
12044  randrConfigureProviderProperty(tvb, pinfo, offsetp, t, byte_order, length);
12045  break;
12046  case 39:
12047  randrChangeProviderProperty(tvb, pinfo, offsetp, t, byte_order, length);
12048  break;
12049  case 40:
12050  randrDeleteProviderProperty(tvb, pinfo, offsetp, t, byte_order, length);
12051  break;
12052  case 41:
12053  randrGetProviderProperty(tvb, pinfo, offsetp, t, byte_order, length);
12054  break;
12055  case 42:
12056  randrGetMonitors(tvb, pinfo, offsetp, t, byte_order, length);
12057  break;
12058  case 43:
12059  randrSetMonitor(tvb, pinfo, offsetp, t, byte_order, length);
12060  break;
12061  case 44:
12062  randrDeleteMonitor(tvb, pinfo, offsetp, t, byte_order, length);
12063  break;
12064  /* No need for a default case here, since Unknown is printed above,
12065  and UNDECODED() is taken care of by dissect_x11_request */
12066  }
12067 }
12068 
12069 static void register_randr(void)
12070 {
12071  set_handler("RANDR", dispatch_randr, randr_errors, randr_events, NULL, randr_replies);
12072 }
12073 
12074 static void struct_record_Range8(tvbuff_t *tvb, int *offsetp, proto_tree *root, guint byte_order _U_, int count)
12075 {
12076  int i;
12077  for (i = 0; i < count; i++) {
12078  proto_item *item;
12079  proto_tree *t;
12080 
12081  item = proto_tree_add_item(root, hf_x11_struct_record_Range8, tvb, *offsetp, 2, ENC_NA);
12082  t = proto_item_add_subtree(item, ett_x11_rectangle);
12083  proto_tree_add_item(t, hf_x11_struct_record_Range8_first, tvb, *offsetp, 1, byte_order);
12084  *offsetp += 1;
12085  proto_tree_add_item(t, hf_x11_struct_record_Range8_last, tvb, *offsetp, 1, byte_order);
12086  *offsetp += 1;
12087  }
12088 }
12089 
12090 static void struct_record_Range16(tvbuff_t *tvb, int *offsetp, proto_tree *root, guint byte_order _U_, int count)
12091 {
12092  int i;
12093  for (i = 0; i < count; i++) {
12094  proto_item *item;
12095  proto_tree *t;
12096 
12097  item = proto_tree_add_item(root, hf_x11_struct_record_Range16, tvb, *offsetp, 4, ENC_NA);
12098  t = proto_item_add_subtree(item, ett_x11_rectangle);
12099  proto_tree_add_item(t, hf_x11_struct_record_Range16_first, tvb, *offsetp, 2, byte_order);
12100  *offsetp += 2;
12101  proto_tree_add_item(t, hf_x11_struct_record_Range16_last, tvb, *offsetp, 2, byte_order);
12102  *offsetp += 2;
12103  }
12104 }
12105 
12106 static void struct_record_ExtRange(tvbuff_t *tvb, int *offsetp, proto_tree *root, guint byte_order _U_, int count)
12107 {
12108  int i;
12109  for (i = 0; i < count; i++) {
12110  proto_item *item;
12111  proto_tree *t;
12112 
12113  item = proto_tree_add_item(root, hf_x11_struct_record_ExtRange, tvb, *offsetp, 6, ENC_NA);
12114  t = proto_item_add_subtree(item, ett_x11_rectangle);
12115  struct_record_Range8(tvb, offsetp, t, byte_order, 1);
12116  struct_record_Range16(tvb, offsetp, t, byte_order, 1);
12117  }
12118 }
12119 
12120 static void struct_record_Range(tvbuff_t *tvb, int *offsetp, proto_tree *root, guint byte_order _U_, int count)
12121 {
12122  int i;
12123  for (i = 0; i < count; i++) {
12124  proto_item *item;
12125  proto_tree *t;
12126 
12127  item = proto_tree_add_item(root, hf_x11_struct_record_Range, tvb, *offsetp, 24, ENC_NA);
12128  t = proto_item_add_subtree(item, ett_x11_rectangle);
12129  struct_record_Range8(tvb, offsetp, t, byte_order, 1);
12130  struct_record_Range8(tvb, offsetp, t, byte_order, 1);
12131  struct_record_ExtRange(tvb, offsetp, t, byte_order, 1);
12132  struct_record_ExtRange(tvb, offsetp, t, byte_order, 1);
12133  struct_record_Range8(tvb, offsetp, t, byte_order, 1);
12134  struct_record_Range8(tvb, offsetp, t, byte_order, 1);
12135  struct_record_Range8(tvb, offsetp, t, byte_order, 1);
12136  proto_tree_add_item(t, hf_x11_struct_record_Range_client_started, tvb, *offsetp, 1, byte_order);
12137  *offsetp += 1;
12138  proto_tree_add_item(t, hf_x11_struct_record_Range_client_died, tvb, *offsetp, 1, byte_order);
12139  *offsetp += 1;
12140  }
12141 }
12142 
12143 static int struct_size_record_ClientInfo(tvbuff_t *tvb _U_, int *offsetp _U_, guint byte_order _U_)
12144 {
12145  int size = 0;
12146  int f_num_ranges;
12147  f_num_ranges = tvb_get_guint32(tvb, *offsetp + size + 4, byte_order);
12148  size += f_num_ranges * 24;
12149  return size + 8;
12150 }
12151 
12152 static void struct_record_ClientInfo(tvbuff_t *tvb, int *offsetp, proto_tree *root, guint byte_order _U_, int count)
12153 {
12154  int i;
12155  for (i = 0; i < count; i++) {
12156  proto_item *item;
12157  proto_tree *t;
12158  int f_num_ranges;
12159 
12160  item = proto_tree_add_item(root, hf_x11_struct_record_ClientInfo, tvb, *offsetp, struct_size_record_ClientInfo(tvb, offsetp, byte_order), ENC_NA);
12161  t = proto_item_add_subtree(item, ett_x11_rectangle);
12162  proto_tree_add_item(t, hf_x11_struct_record_ClientInfo_client_resource, tvb, *offsetp, 4, byte_order);
12163  *offsetp += 4;
12164  f_num_ranges = tvb_get_guint32(tvb, *offsetp, byte_order);
12165  proto_tree_add_item(t, hf_x11_struct_record_ClientInfo_num_ranges, tvb, *offsetp, 4, byte_order);
12166  *offsetp += 4;
12167  struct_record_Range(tvb, offsetp, t, byte_order, f_num_ranges);
12168  }
12169 }
12170 
12171 static void recordQueryVersion(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
12172 {
12173  proto_tree_add_item(t, hf_x11_record_QueryVersion_major_version, tvb, *offsetp, 2, byte_order);
12174  *offsetp += 2;
12175  proto_tree_add_item(t, hf_x11_record_QueryVersion_minor_version, tvb, *offsetp, 2, byte_order);
12176  *offsetp += 2;
12177 }
12178 static void recordQueryVersion_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
12179 {
12180  int sequence_number;
12181 
12182  col_append_fstr(pinfo->cinfo, COL_INFO, "-QueryVersion");
12183 
12184  REPLY(reply);
12185  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
12186  *offsetp += 1;
12187  sequence_number = tvb_get_guint16(tvb, *offsetp, byte_order);
12188  proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
12189  "%d (record-QueryVersion)", sequence_number);
12190  *offsetp += 2;
12191  proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
12192  *offsetp += 4;
12193  proto_tree_add_item(t, hf_x11_record_QueryVersion_reply_major_version, tvb, *offsetp, 2, byte_order);
12194  *offsetp += 2;
12195  proto_tree_add_item(t, hf_x11_record_QueryVersion_reply_minor_version, tvb, *offsetp, 2, byte_order);
12196  *offsetp += 2;
12197 }
12198 
12199 static void recordCreateContext(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
12200 {
12201  int f_num_client_specs;
12202  int f_num_ranges;
12203  proto_tree_add_item(t, hf_x11_record_CreateContext_context, tvb, *offsetp, 4, byte_order);
12204  *offsetp += 4;
12205  proto_tree_add_item(t, hf_x11_record_CreateContext_element_header, tvb, *offsetp, 1, byte_order);
12206  *offsetp += 1;
12207  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 3, ENC_NA);
12208  *offsetp += 3;
12209  f_num_client_specs = tvb_get_guint32(tvb, *offsetp, byte_order);
12210  proto_tree_add_item(t, hf_x11_record_CreateContext_num_client_specs, tvb, *offsetp, 4, byte_order);
12211  *offsetp += 4;
12212  f_num_ranges = tvb_get_guint32(tvb, *offsetp, byte_order);
12213  proto_tree_add_item(t, hf_x11_record_CreateContext_num_ranges, tvb, *offsetp, 4, byte_order);
12214  *offsetp += 4;
12215  listOfCard32(tvb, offsetp, t, hf_x11_record_CreateContext_client_specs, hf_x11_record_CreateContext_client_specs_item, f_num_client_specs, byte_order);
12216  length -= f_num_client_specs * 4;
12217  struct_record_Range(tvb, offsetp, t, byte_order, f_num_ranges);
12218  length -= f_num_ranges * 24;
12219 }
12220 
12221 static void recordRegisterClients(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
12222 {
12223  int f_num_client_specs;
12224  int f_num_ranges;
12225  proto_tree_add_item(t, hf_x11_record_RegisterClients_context, tvb, *offsetp, 4, byte_order);
12226  *offsetp += 4;
12227  proto_tree_add_item(t, hf_x11_record_RegisterClients_element_header, tvb, *offsetp, 1, byte_order);
12228  *offsetp += 1;
12229  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 3, ENC_NA);
12230  *offsetp += 3;
12231  f_num_client_specs = tvb_get_guint32(tvb, *offsetp, byte_order);
12232  proto_tree_add_item(t, hf_x11_record_RegisterClients_num_client_specs, tvb, *offsetp, 4, byte_order);
12233  *offsetp += 4;
12234  f_num_ranges = tvb_get_guint32(tvb, *offsetp, byte_order);
12235  proto_tree_add_item(t, hf_x11_record_RegisterClients_num_ranges, tvb, *offsetp, 4, byte_order);
12236  *offsetp += 4;
12237  listOfCard32(tvb, offsetp, t, hf_x11_record_RegisterClients_client_specs, hf_x11_record_RegisterClients_client_specs_item, f_num_client_specs, byte_order);
12238  length -= f_num_client_specs * 4;
12239  struct_record_Range(tvb, offsetp, t, byte_order, f_num_ranges);
12240  length -= f_num_ranges * 24;
12241 }
12242 
12243 static void recordUnregisterClients(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
12244 {
12245  int f_num_client_specs;
12246  proto_tree_add_item(t, hf_x11_record_UnregisterClients_context, tvb, *offsetp, 4, byte_order);
12247  *offsetp += 4;
12248  f_num_client_specs = tvb_get_guint32(tvb, *offsetp, byte_order);
12249  proto_tree_add_item(t, hf_x11_record_UnregisterClients_num_client_specs, tvb, *offsetp, 4, byte_order);
12250  *offsetp += 4;
12251  listOfCard32(tvb, offsetp, t, hf_x11_record_UnregisterClients_client_specs, hf_x11_record_UnregisterClients_client_specs_item, f_num_client_specs, byte_order);
12252  length -= f_num_client_specs * 4;
12253 }
12254 
12255 static void recordGetContext(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
12256 {
12257  proto_tree_add_item(t, hf_x11_record_GetContext_context, tvb, *offsetp, 4, byte_order);
12258  *offsetp += 4;
12259 }
12260 static void recordGetContext_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
12261 {
12262  int sequence_number;
12263  int f_num_intercepted_clients;
12264 
12265  col_append_fstr(pinfo->cinfo, COL_INFO, "-GetContext");
12266 
12267  REPLY(reply);
12268  proto_tree_add_item(t, hf_x11_record_GetContext_reply_enabled, tvb, *offsetp, 1, byte_order);
12269  *offsetp += 1;
12270  sequence_number = tvb_get_guint16(tvb, *offsetp, byte_order);
12271  proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
12272  "%d (record-GetContext)", sequence_number);
12273  *offsetp += 2;
12274  proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
12275  *offsetp += 4;
12276  proto_tree_add_item(t, hf_x11_record_GetContext_reply_element_header, tvb, *offsetp, 1, byte_order);
12277  *offsetp += 1;
12278  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 3, ENC_NA);
12279  *offsetp += 3;
12280  f_num_intercepted_clients = tvb_get_guint32(tvb, *offsetp, byte_order);
12281  proto_tree_add_item(t, hf_x11_record_GetContext_reply_num_intercepted_clients, tvb, *offsetp, 4, byte_order);
12282  *offsetp += 4;
12283  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 16, ENC_NA);
12284  *offsetp += 16;
12285  struct_record_ClientInfo(tvb, offsetp, t, byte_order, f_num_intercepted_clients);
12286 }
12287 
12288 static void recordEnableContext(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
12289 {
12290  proto_tree_add_item(t, hf_x11_record_EnableContext_context, tvb, *offsetp, 4, byte_order);
12291  *offsetp += 4;
12292 }
12293 static void recordEnableContext_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
12294 {
12295  int sequence_number;
12296  int f_length;
12297 
12298  col_append_fstr(pinfo->cinfo, COL_INFO, "-EnableContext");
12299 
12300  REPLY(reply);
12301  proto_tree_add_item(t, hf_x11_record_EnableContext_reply_category, tvb, *offsetp, 1, byte_order);
12302  *offsetp += 1;
12303  sequence_number = tvb_get_guint16(tvb, *offsetp, byte_order);
12304  proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
12305  "%d (record-EnableContext)", sequence_number);
12306  *offsetp += 2;
12307  f_length = tvb_get_guint32(tvb, *offsetp, byte_order);
12308  proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
12309  *offsetp += 4;
12310  proto_tree_add_item(t, hf_x11_record_EnableContext_reply_element_header, tvb, *offsetp, 1, byte_order);
12311  *offsetp += 1;
12312  proto_tree_add_item(t, hf_x11_record_EnableContext_reply_client_swapped, tvb, *offsetp, 1, byte_order);
12313  *offsetp += 1;
12314  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 2, ENC_NA);
12315  *offsetp += 2;
12316  proto_tree_add_item(t, hf_x11_record_EnableContext_reply_xid_base, tvb, *offsetp, 4, byte_order);
12317  *offsetp += 4;
12318  proto_tree_add_item(t, hf_x11_record_EnableContext_reply_server_time, tvb, *offsetp, 4, byte_order);
12319  *offsetp += 4;
12320  proto_tree_add_item(t, hf_x11_record_EnableContext_reply_rec_sequence_num, tvb, *offsetp, 4, byte_order);
12321  *offsetp += 4;
12322  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 8, ENC_NA);
12323  *offsetp += 8;
12324  listOfByte(tvb, offsetp, t, hf_x11_record_EnableContext_reply_data, (f_length * 4), byte_order);
12325 }
12326 
12327 static void recordDisableContext(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
12328 {
12329  proto_tree_add_item(t, hf_x11_record_DisableContext_context, tvb, *offsetp, 4, byte_order);
12330  *offsetp += 4;
12331 }
12332 
12333 static void recordFreeContext(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
12334 {
12335  proto_tree_add_item(t, hf_x11_record_FreeContext_context, tvb, *offsetp, 4, byte_order);
12336  *offsetp += 4;
12337 }
12338 static const value_string record_extension_minor[] = {
12339  { 0, "QueryVersion" },
12340  { 1, "CreateContext" },
12341  { 2, "RegisterClients" },
12342  { 3, "UnregisterClients" },
12343  { 4, "GetContext" },
12344  { 5, "EnableContext" },
12345  { 6, "DisableContext" },
12346  { 7, "FreeContext" },
12347  { 0, NULL }
12348 };
12349 const x11_event_info record_events[] = {
12350  { NULL, NULL }
12351 };
12352 static x11_reply_info record_replies[] = {
12353  { 0, recordQueryVersion_Reply },
12354  { 4, recordGetContext_Reply },
12355  { 5, recordEnableContext_Reply },
12356  { 0, NULL }
12357 };
12358 
12359 static void dispatch_record(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
12360 {
12361  int minor, length;
12362  minor = CARD8(record_extension_minor);
12363  length = REQUEST_LENGTH();
12364 
12365  col_append_fstr(pinfo->cinfo, COL_INFO, "-%s",
12366  val_to_str(minor, record_extension_minor,
12367  "<Unknown opcode %d>"));
12368  switch (minor) {
12369  case 0:
12370  recordQueryVersion(tvb, pinfo, offsetp, t, byte_order, length);
12371  break;
12372  case 1:
12373  recordCreateContext(tvb, pinfo, offsetp, t, byte_order, length);
12374  break;
12375  case 2:
12376  recordRegisterClients(tvb, pinfo, offsetp, t, byte_order, length);
12377  break;
12378  case 3:
12379  recordUnregisterClients(tvb, pinfo, offsetp, t, byte_order, length);
12380  break;
12381  case 4:
12382  recordGetContext(tvb, pinfo, offsetp, t, byte_order, length);
12383  break;
12384  case 5:
12385  recordEnableContext(tvb, pinfo, offsetp, t, byte_order, length);
12386  break;
12387  case 6:
12388  recordDisableContext(tvb, pinfo, offsetp, t, byte_order, length);
12389  break;
12390  case 7:
12391  recordFreeContext(tvb, pinfo, offsetp, t, byte_order, length);
12392  break;
12393  /* No need for a default case here, since Unknown is printed above,
12394  and UNDECODED() is taken care of by dissect_x11_request */
12395  }
12396 }
12397 
12398 static void register_record(void)
12399 {
12400  set_handler("RECORD", dispatch_record, record_errors, record_events, NULL, record_replies);
12401 }
12402 
12403 static void renderQueryVersion(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
12404 {
12405  proto_tree_add_item(t, hf_x11_render_QueryVersion_client_major_version, tvb, *offsetp, 4, byte_order);
12406  *offsetp += 4;
12407  proto_tree_add_item(t, hf_x11_render_QueryVersion_client_minor_version, tvb, *offsetp, 4, byte_order);
12408  *offsetp += 4;
12409 }
12410 static void renderQueryVersion_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
12411 {
12412  int sequence_number;
12413 
12414  col_append_fstr(pinfo->cinfo, COL_INFO, "-QueryVersion");
12415 
12416  REPLY(reply);
12417  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
12418  *offsetp += 1;
12419  sequence_number = tvb_get_guint16(tvb, *offsetp, byte_order);
12420  proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
12421  "%d (render-QueryVersion)", sequence_number);
12422  *offsetp += 2;
12423  proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
12424  *offsetp += 4;
12425  proto_tree_add_item(t, hf_x11_render_QueryVersion_reply_major_version, tvb, *offsetp, 4, byte_order);
12426  *offsetp += 4;
12427  proto_tree_add_item(t, hf_x11_render_QueryVersion_reply_minor_version, tvb, *offsetp, 4, byte_order);
12428  *offsetp += 4;
12429  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 16, ENC_NA);
12430  *offsetp += 16;
12431 }
12432 
12433 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_)
12434 {
12435 }
12436 static void renderQueryPictFormats_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
12437 {
12438  int sequence_number;
12439  int f_num_formats;
12440  int f_num_screens;
12441  int f_num_subpixel;
12442 
12443  col_append_fstr(pinfo->cinfo, COL_INFO, "-QueryPictFormats");
12444 
12445  REPLY(reply);
12446  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
12447  *offsetp += 1;
12448  sequence_number = tvb_get_guint16(tvb, *offsetp, byte_order);
12449  proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
12450  "%d (render-QueryPictFormats)", sequence_number);
12451  *offsetp += 2;
12452  proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
12453  *offsetp += 4;
12454  f_num_formats = tvb_get_guint32(tvb, *offsetp, byte_order);
12455  proto_tree_add_item(t, hf_x11_render_QueryPictFormats_reply_num_formats, tvb, *offsetp, 4, byte_order);
12456  *offsetp += 4;
12457  f_num_screens = tvb_get_guint32(tvb, *offsetp, byte_order);
12458  proto_tree_add_item(t, hf_x11_render_QueryPictFormats_reply_num_screens, tvb, *offsetp, 4, byte_order);
12459  *offsetp += 4;
12460  proto_tree_add_item(t, hf_x11_render_QueryPictFormats_reply_num_depths, tvb, *offsetp, 4, byte_order);
12461  *offsetp += 4;
12462  proto_tree_add_item(t, hf_x11_render_QueryPictFormats_reply_num_visuals, tvb, *offsetp, 4, byte_order);
12463  *offsetp += 4;
12464  f_num_subpixel = tvb_get_guint32(tvb, *offsetp, byte_order);
12465  proto_tree_add_item(t, hf_x11_render_QueryPictFormats_reply_num_subpixel, tvb, *offsetp, 4, byte_order);
12466  *offsetp += 4;
12467  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 4, ENC_NA);
12468  *offsetp += 4;
12469  struct_render_PICTFORMINFO(tvb, offsetp, t, byte_order, f_num_formats);
12470  struct_render_PICTSCREEN(tvb, offsetp, t, byte_order, f_num_screens);
12471  listOfCard32(tvb, offsetp, t, hf_x11_render_QueryPictFormats_reply_subpixels, hf_x11_render_QueryPictFormats_reply_subpixels_item, f_num_subpixel, byte_order);
12472 }
12473 
12474 static void renderQueryPictIndexValues(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
12475 {
12476  proto_tree_add_item(t, hf_x11_render_QueryPictIndexValues_format, tvb, *offsetp, 4, byte_order);
12477  *offsetp += 4;
12478 }
12479 static void renderQueryPictIndexValues_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
12480 {
12481  int sequence_number;
12482  int f_num_values;
12483 
12484  col_append_fstr(pinfo->cinfo, COL_INFO, "-QueryPictIndexValues");
12485 
12486  REPLY(reply);
12487  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
12488  *offsetp += 1;
12489  sequence_number = tvb_get_guint16(tvb, *offsetp, byte_order);
12490  proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
12491  "%d (render-QueryPictIndexValues)", sequence_number);
12492  *offsetp += 2;
12493  proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
12494  *offsetp += 4;
12495  f_num_values = tvb_get_guint32(tvb, *offsetp, byte_order);
12496  proto_tree_add_item(t, hf_x11_render_QueryPictIndexValues_reply_num_values, tvb, *offsetp, 4, byte_order);
12497  *offsetp += 4;
12498  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 20, ENC_NA);
12499  *offsetp += 20;
12500  struct_render_INDEXVALUE(tvb, offsetp, t, byte_order, f_num_values);
12501 }
12502 
12503 static void renderCreatePicture(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
12504 {
12505  int f_value_mask;
12506  proto_tree_add_item(t, hf_x11_render_CreatePicture_pid, tvb, *offsetp, 4, byte_order);
12507  *offsetp += 4;
12508  proto_tree_add_item(t, hf_x11_render_CreatePicture_drawable, tvb, *offsetp, 4, byte_order);
12509  *offsetp += 4;
12510  proto_tree_add_item(t, hf_x11_render_CreatePicture_format, tvb, *offsetp, 4, byte_order);
12511  *offsetp += 4;
12512  f_value_mask = tvb_get_guint32(tvb, *offsetp, byte_order);
12513  {
12514  const int* value_mask_bits [] = {
12515  &hf_x11_render_CreatePicture_value_mask_mask_Repeat,
12516  &hf_x11_render_CreatePicture_value_mask_mask_AlphaMap,
12517  &hf_x11_render_CreatePicture_value_mask_mask_AlphaXOrigin,
12518  &hf_x11_render_CreatePicture_value_mask_mask_AlphaYOrigin,
12519  &hf_x11_render_CreatePicture_value_mask_mask_ClipXOrigin,
12520  &hf_x11_render_CreatePicture_value_mask_mask_ClipYOrigin,
12521  &hf_x11_render_CreatePicture_value_mask_mask_ClipMask,
12522  &hf_x11_render_CreatePicture_value_mask_mask_GraphicsExposure,
12523  &hf_x11_render_CreatePicture_value_mask_mask_SubwindowMode,
12524  &hf_x11_render_CreatePicture_value_mask_mask_PolyEdge,
12525  &hf_x11_render_CreatePicture_value_mask_mask_PolyMode,
12526  &hf_x11_render_CreatePicture_value_mask_mask_Dither,
12527  &hf_x11_render_CreatePicture_value_mask_mask_ComponentAlpha,
12528  NULL
12529  };
12530  proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_render_CreatePicture_value_mask, ett_x11_rectangle, value_mask_bits, byte_order);
12531  }
12532  *offsetp += 4;
12533  if (f_value_mask & (1U << 0)) {
12534  field32(tvb, offsetp, t, hf_x11_render_CreatePicture_Repeat_repeat, byte_order);
12535  }
12536  if (f_value_mask & (1U << 1)) {
12537  proto_tree_add_item(t, hf_x11_render_CreatePicture_AlphaMap_alphamap, tvb, *offsetp, 4, byte_order);
12538  *offsetp += 4;
12539  }
12540  if (f_value_mask & (1U << 2)) {
12541  proto_tree_add_item(t, hf_x11_render_CreatePicture_AlphaXOrigin_alphaxorigin, tvb, *offsetp, 4, byte_order);
12542  *offsetp += 4;
12543  }
12544  if (f_value_mask & (1U << 3)) {
12545  proto_tree_add_item(t, hf_x11_render_CreatePicture_AlphaYOrigin_alphayorigin, tvb, *offsetp, 4, byte_order);
12546  *offsetp += 4;
12547  }
12548  if (f_value_mask & (1U << 4)) {
12549  proto_tree_add_item(t, hf_x11_render_CreatePicture_ClipXOrigin_clipxorigin, tvb, *offsetp, 4, byte_order);
12550  *offsetp += 4;
12551  }
12552  if (f_value_mask & (1U << 5)) {
12553  proto_tree_add_item(t, hf_x11_render_CreatePicture_ClipYOrigin_clipyorigin, tvb, *offsetp, 4, byte_order);
12554  *offsetp += 4;
12555  }
12556  if (f_value_mask & (1U << 6)) {
12557  proto_tree_add_item(t, hf_x11_render_CreatePicture_ClipMask_clipmask, tvb, *offsetp, 4, byte_order);
12558  *offsetp += 4;
12559  }
12560  if (f_value_mask & (1U << 7)) {
12561  proto_tree_add_item(t, hf_x11_render_CreatePicture_GraphicsExposure_graphicsexposure, tvb, *offsetp, 4, byte_order);
12562  *offsetp += 4;
12563  }
12564  if (f_value_mask & (1U << 8)) {
12565  field32(tvb, offsetp, t, hf_x11_render_CreatePicture_SubwindowMode_subwindowmode, byte_order);
12566  }
12567  if (f_value_mask & (1U << 9)) {
12568  field32(tvb, offsetp, t, hf_x11_render_CreatePicture_PolyEdge_polyedge, byte_order);
12569  }
12570  if (f_value_mask & (1U << 10)) {
12571  field32(tvb, offsetp, t, hf_x11_render_CreatePicture_PolyMode_polymode, byte_order);
12572  }
12573  if (f_value_mask & (1U << 11)) {
12574  proto_tree_add_item(t, hf_x11_render_CreatePicture_Dither_dither, tvb, *offsetp, 4, byte_order);
12575  *offsetp += 4;
12576  }
12577  if (f_value_mask & (1U << 12)) {
12578  proto_tree_add_item(t, hf_x11_render_CreatePicture_ComponentAlpha_componentalpha, tvb, *offsetp, 4, byte_order);
12579  *offsetp += 4;
12580  }
12581 }
12582 
12583 static void renderChangePicture(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
12584 {
12585  int f_value_mask;
12586  proto_tree_add_item(t, hf_x11_render_ChangePicture_picture, tvb, *offsetp, 4, byte_order);
12587  *offsetp += 4;
12588  f_value_mask = tvb_get_guint32(tvb, *offsetp, byte_order);
12589  {
12590  const int* value_mask_bits [] = {
12591  &hf_x11_render_ChangePicture_value_mask_mask_Repeat,
12592  &hf_x11_render_ChangePicture_value_mask_mask_AlphaMap,
12593  &hf_x11_render_ChangePicture_value_mask_mask_AlphaXOrigin,
12594  &hf_x11_render_ChangePicture_value_mask_mask_AlphaYOrigin,
12595  &hf_x11_render_ChangePicture_value_mask_mask_ClipXOrigin,
12596  &hf_x11_render_ChangePicture_value_mask_mask_ClipYOrigin,
12597  &hf_x11_render_ChangePicture_value_mask_mask_ClipMask,
12598  &hf_x11_render_ChangePicture_value_mask_mask_GraphicsExposure,
12599  &hf_x11_render_ChangePicture_value_mask_mask_SubwindowMode,
12600  &hf_x11_render_ChangePicture_value_mask_mask_PolyEdge,
12601  &hf_x11_render_ChangePicture_value_mask_mask_PolyMode,
12602  &hf_x11_render_ChangePicture_value_mask_mask_Dither,
12603  &hf_x11_render_ChangePicture_value_mask_mask_ComponentAlpha,
12604  NULL
12605  };
12606  proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_render_ChangePicture_value_mask, ett_x11_rectangle, value_mask_bits, byte_order);
12607  }
12608  *offsetp += 4;
12609  if (f_value_mask & (1U << 0)) {
12610  field32(tvb, offsetp, t, hf_x11_render_ChangePicture_Repeat_repeat, byte_order);
12611  }
12612  if (f_value_mask & (1U << 1)) {
12613  proto_tree_add_item(t, hf_x11_render_ChangePicture_AlphaMap_alphamap, tvb, *offsetp, 4, byte_order);
12614  *offsetp += 4;
12615  }
12616  if (f_value_mask & (1U << 2)) {
12617  proto_tree_add_item(t, hf_x11_render_ChangePicture_AlphaXOrigin_alphaxorigin, tvb, *offsetp, 4, byte_order);
12618  *offsetp += 4;
12619  }
12620  if (f_value_mask & (1U << 3)) {
12621  proto_tree_add_item(t, hf_x11_render_ChangePicture_AlphaYOrigin_alphayorigin, tvb, *offsetp, 4, byte_order);
12622  *offsetp += 4;
12623  }
12624  if (f_value_mask & (1U << 4)) {
12625  proto_tree_add_item(t, hf_x11_render_ChangePicture_ClipXOrigin_clipxorigin, tvb, *offsetp, 4, byte_order);
12626  *offsetp += 4;
12627  }
12628  if (f_value_mask & (1U << 5)) {
12629  proto_tree_add_item(t, hf_x11_render_ChangePicture_ClipYOrigin_clipyorigin, tvb, *offsetp, 4, byte_order);
12630  *offsetp += 4;
12631  }
12632  if (f_value_mask & (1U << 6)) {
12633  proto_tree_add_item(t, hf_x11_render_ChangePicture_ClipMask_clipmask, tvb, *offsetp, 4, byte_order);
12634  *offsetp += 4;
12635  }
12636  if (f_value_mask & (1U << 7)) {
12637  proto_tree_add_item(t, hf_x11_render_ChangePicture_GraphicsExposure_graphicsexposure, tvb, *offsetp, 4, byte_order);
12638  *offsetp += 4;
12639  }
12640  if (f_value_mask & (1U << 8)) {
12641  field32(tvb, offsetp, t, hf_x11_render_ChangePicture_SubwindowMode_subwindowmode, byte_order);
12642  }
12643  if (f_value_mask & (1U << 9)) {
12644  field32(tvb, offsetp, t, hf_x11_render_ChangePicture_PolyEdge_polyedge, byte_order);
12645  }
12646  if (f_value_mask & (1U << 10)) {
12647  field32(tvb, offsetp, t, hf_x11_render_ChangePicture_PolyMode_polymode, byte_order);
12648  }
12649  if (f_value_mask & (1U << 11)) {
12650  proto_tree_add_item(t, hf_x11_render_ChangePicture_Dither_dither, tvb, *offsetp, 4, byte_order);
12651  *offsetp += 4;
12652  }
12653  if (f_value_mask & (1U << 12)) {
12654  proto_tree_add_item(t, hf_x11_render_ChangePicture_ComponentAlpha_componentalpha, tvb, *offsetp, 4, byte_order);
12655  *offsetp += 4;
12656  }
12657 }
12658 
12659 static void renderSetPictureClipRectangles(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
12660 {
12661  proto_tree_add_item(t, hf_x11_render_SetPictureClipRectangles_picture, tvb, *offsetp, 4, byte_order);
12662  *offsetp += 4;
12663  proto_tree_add_item(t, hf_x11_render_SetPictureClipRectangles_clip_x_origin, tvb, *offsetp, 2, byte_order);
12664  *offsetp += 2;
12665  proto_tree_add_item(t, hf_x11_render_SetPictureClipRectangles_clip_y_origin, tvb, *offsetp, 2, byte_order);
12666  *offsetp += 2;
12667  struct_xproto_RECTANGLE(tvb, offsetp, t, byte_order, (length - 12) / 8);
12668 }
12669 
12670 static void renderFreePicture(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
12671 {
12672  proto_tree_add_item(t, hf_x11_render_FreePicture_picture, tvb, *offsetp, 4, byte_order);
12673  *offsetp += 4;
12674 }
12675 
12676 static void renderComposite(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
12677 {
12678  field8(tvb, offsetp, t, hf_x11_render_Composite_op, byte_order);
12679  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 3, ENC_NA);
12680  *offsetp += 3;
12681  proto_tree_add_item(t, hf_x11_render_Composite_src, tvb, *offsetp, 4, byte_order);
12682  *offsetp += 4;
12683  field32(tvb, offsetp, t, hf_x11_render_Composite_mask, byte_order);
12684  proto_tree_add_item(t, hf_x11_render_Composite_dst, tvb, *offsetp, 4, byte_order);
12685  *offsetp += 4;
12686  proto_tree_add_item(t, hf_x11_render_Composite_src_x, tvb, *offsetp, 2, byte_order);
12687  *offsetp += 2;
12688  proto_tree_add_item(t, hf_x11_render_Composite_src_y, tvb, *offsetp, 2, byte_order);
12689  *offsetp += 2;
12690  proto_tree_add_item(t, hf_x11_render_Composite_mask_x, tvb, *offsetp, 2, byte_order);
12691  *offsetp += 2;
12692  proto_tree_add_item(t, hf_x11_render_Composite_mask_y, tvb, *offsetp, 2, byte_order);
12693  *offsetp += 2;
12694  proto_tree_add_item(t, hf_x11_render_Composite_dst_x, tvb, *offsetp, 2, byte_order);
12695  *offsetp += 2;
12696  proto_tree_add_item(t, hf_x11_render_Composite_dst_y, tvb, *offsetp, 2, byte_order);
12697  *offsetp += 2;
12698  proto_tree_add_item(t, hf_x11_render_Composite_width, tvb, *offsetp, 2, byte_order);
12699  *offsetp += 2;
12700  proto_tree_add_item(t, hf_x11_render_Composite_height, tvb, *offsetp, 2, byte_order);
12701  *offsetp += 2;
12702 }
12703 
12704 static void renderTrapezoids(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
12705 {
12706  field8(tvb, offsetp, t, hf_x11_render_Trapezoids_op, byte_order);
12707  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 3, ENC_NA);
12708  *offsetp += 3;
12709  proto_tree_add_item(t, hf_x11_render_Trapezoids_src, tvb, *offsetp, 4, byte_order);
12710  *offsetp += 4;
12711  proto_tree_add_item(t, hf_x11_render_Trapezoids_dst, tvb, *offsetp, 4, byte_order);
12712  *offsetp += 4;
12713  proto_tree_add_item(t, hf_x11_render_Trapezoids_mask_format, tvb, *offsetp, 4, byte_order);
12714  *offsetp += 4;
12715  proto_tree_add_item(t, hf_x11_render_Trapezoids_src_x, tvb, *offsetp, 2, byte_order);
12716  *offsetp += 2;
12717  proto_tree_add_item(t, hf_x11_render_Trapezoids_src_y, tvb, *offsetp, 2, byte_order);
12718  *offsetp += 2;
12719  struct_render_TRAPEZOID(tvb, offsetp, t, byte_order, (length - 24) / 40);
12720 }
12721 
12722 static void renderTriangles(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
12723 {
12724  field8(tvb, offsetp, t, hf_x11_render_Triangles_op, byte_order);
12725  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 3, ENC_NA);
12726  *offsetp += 3;
12727  proto_tree_add_item(t, hf_x11_render_Triangles_src, tvb, *offsetp, 4, byte_order);
12728  *offsetp += 4;
12729  proto_tree_add_item(t, hf_x11_render_Triangles_dst, tvb, *offsetp, 4, byte_order);
12730  *offsetp += 4;
12731  proto_tree_add_item(t, hf_x11_render_Triangles_mask_format, tvb, *offsetp, 4, byte_order);
12732  *offsetp += 4;
12733  proto_tree_add_item(t, hf_x11_render_Triangles_src_x, tvb, *offsetp, 2, byte_order);
12734  *offsetp += 2;
12735  proto_tree_add_item(t, hf_x11_render_Triangles_src_y, tvb, *offsetp, 2, byte_order);
12736  *offsetp += 2;
12737  struct_render_TRIANGLE(tvb, offsetp, t, byte_order, (length - 24) / 24);
12738 }
12739 
12740 static void renderTriStrip(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
12741 {
12742  field8(tvb, offsetp, t, hf_x11_render_TriStrip_op, byte_order);
12743  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 3, ENC_NA);
12744  *offsetp += 3;
12745  proto_tree_add_item(t, hf_x11_render_TriStrip_src, tvb, *offsetp, 4, byte_order);
12746  *offsetp += 4;
12747  proto_tree_add_item(t, hf_x11_render_TriStrip_dst, tvb, *offsetp, 4, byte_order);
12748  *offsetp += 4;
12749  proto_tree_add_item(t, hf_x11_render_TriStrip_mask_format, tvb, *offsetp, 4, byte_order);
12750  *offsetp += 4;
12751  proto_tree_add_item(t, hf_x11_render_TriStrip_src_x, tvb, *offsetp, 2, byte_order);
12752  *offsetp += 2;
12753  proto_tree_add_item(t, hf_x11_render_TriStrip_src_y, tvb, *offsetp, 2, byte_order);
12754  *offsetp += 2;
12755  struct_render_POINTFIX(tvb, offsetp, t, byte_order, (length - 24) / 8);
12756 }
12757 
12758 static void renderTriFan(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
12759 {
12760  field8(tvb, offsetp, t, hf_x11_render_TriFan_op, byte_order);
12761  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 3, ENC_NA);
12762  *offsetp += 3;
12763  proto_tree_add_item(t, hf_x11_render_TriFan_src, tvb, *offsetp, 4, byte_order);
12764  *offsetp += 4;
12765  proto_tree_add_item(t, hf_x11_render_TriFan_dst, tvb, *offsetp, 4, byte_order);
12766  *offsetp += 4;
12767  proto_tree_add_item(t, hf_x11_render_TriFan_mask_format, tvb, *offsetp, 4, byte_order);
12768  *offsetp += 4;
12769  proto_tree_add_item(t, hf_x11_render_TriFan_src_x, tvb, *offsetp, 2, byte_order);
12770  *offsetp += 2;
12771  proto_tree_add_item(t, hf_x11_render_TriFan_src_y, tvb, *offsetp, 2, byte_order);
12772  *offsetp += 2;
12773  struct_render_POINTFIX(tvb, offsetp, t, byte_order, (length - 24) / 8);
12774 }
12775 
12776 static void renderCreateGlyphSet(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
12777 {
12778  proto_tree_add_item(t, hf_x11_render_CreateGlyphSet_gsid, tvb, *offsetp, 4, byte_order);
12779  *offsetp += 4;
12780  proto_tree_add_item(t, hf_x11_render_CreateGlyphSet_format, tvb, *offsetp, 4, byte_order);
12781  *offsetp += 4;
12782 }
12783 
12784 static void renderReferenceGlyphSet(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
12785 {
12786  proto_tree_add_item(t, hf_x11_render_ReferenceGlyphSet_gsid, tvb, *offsetp, 4, byte_order);
12787  *offsetp += 4;
12788  proto_tree_add_item(t, hf_x11_render_ReferenceGlyphSet_existing, tvb, *offsetp, 4, byte_order);
12789  *offsetp += 4;
12790 }
12791 
12792 static void renderFreeGlyphSet(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
12793 {
12794  proto_tree_add_item(t, hf_x11_render_FreeGlyphSet_glyphset, tvb, *offsetp, 4, byte_order);
12795  *offsetp += 4;
12796 }
12797 
12798 static void renderAddGlyphs(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
12799 {
12800  int f_glyphs_len;
12801  proto_tree_add_item(t, hf_x11_render_AddGlyphs_glyphset, tvb, *offsetp, 4, byte_order);
12802  *offsetp += 4;
12803  f_glyphs_len = tvb_get_guint32(tvb, *offsetp, byte_order);
12804  proto_tree_add_item(t, hf_x11_render_AddGlyphs_glyphs_len, tvb, *offsetp, 4, byte_order);
12805  *offsetp += 4;
12806  listOfCard32(tvb, offsetp, t, hf_x11_render_AddGlyphs_glyphids, hf_x11_render_AddGlyphs_glyphids_item, f_glyphs_len, byte_order);
12807  length -= f_glyphs_len * 4;
12808  struct_render_GLYPHINFO(tvb, offsetp, t, byte_order, f_glyphs_len);
12809  length -= f_glyphs_len * 12;
12810  listOfByte(tvb, offsetp, t, hf_x11_render_AddGlyphs_data, (length - 12) / 1, byte_order);
12811 }
12812 
12813 static void renderFreeGlyphs(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
12814 {
12815  proto_tree_add_item(t, hf_x11_render_FreeGlyphs_glyphset, tvb, *offsetp, 4, byte_order);
12816  *offsetp += 4;
12817  listOfCard32(tvb, offsetp, t, hf_x11_render_FreeGlyphs_glyphs, hf_x11_render_FreeGlyphs_glyphs_item, (length - 8) / 4, byte_order);
12818 }
12819 
12820 static void renderCompositeGlyphs8(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
12821 {
12822  field8(tvb, offsetp, t, hf_x11_render_CompositeGlyphs8_op, byte_order);
12823  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 3, ENC_NA);
12824  *offsetp += 3;
12825  proto_tree_add_item(t, hf_x11_render_CompositeGlyphs8_src, tvb, *offsetp, 4, byte_order);
12826  *offsetp += 4;
12827  proto_tree_add_item(t, hf_x11_render_CompositeGlyphs8_dst, tvb, *offsetp, 4, byte_order);
12828  *offsetp += 4;
12829  proto_tree_add_item(t, hf_x11_render_CompositeGlyphs8_mask_format, tvb, *offsetp, 4, byte_order);
12830  *offsetp += 4;
12831  proto_tree_add_item(t, hf_x11_render_CompositeGlyphs8_glyphset, tvb, *offsetp, 4, byte_order);
12832  *offsetp += 4;
12833  proto_tree_add_item(t, hf_x11_render_CompositeGlyphs8_src_x, tvb, *offsetp, 2, byte_order);
12834  *offsetp += 2;
12835  proto_tree_add_item(t, hf_x11_render_CompositeGlyphs8_src_y, tvb, *offsetp, 2, byte_order);
12836  *offsetp += 2;
12837  listOfByte(tvb, offsetp, t, hf_x11_render_CompositeGlyphs8_glyphcmds, (length - 28) / 1, byte_order);
12838 }
12839 
12840 static void renderCompositeGlyphs16(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
12841 {
12842  field8(tvb, offsetp, t, hf_x11_render_CompositeGlyphs16_op, byte_order);
12843  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 3, ENC_NA);
12844  *offsetp += 3;
12845  proto_tree_add_item(t, hf_x11_render_CompositeGlyphs16_src, tvb, *offsetp, 4, byte_order);
12846  *offsetp += 4;
12847  proto_tree_add_item(t, hf_x11_render_CompositeGlyphs16_dst, tvb, *offsetp, 4, byte_order);
12848  *offsetp += 4;
12849  proto_tree_add_item(t, hf_x11_render_CompositeGlyphs16_mask_format, tvb, *offsetp, 4, byte_order);
12850  *offsetp += 4;
12851  proto_tree_add_item(t, hf_x11_render_CompositeGlyphs16_glyphset, tvb, *offsetp, 4, byte_order);
12852  *offsetp += 4;
12853  proto_tree_add_item(t, hf_x11_render_CompositeGlyphs16_src_x, tvb, *offsetp, 2, byte_order);
12854  *offsetp += 2;
12855  proto_tree_add_item(t, hf_x11_render_CompositeGlyphs16_src_y, tvb, *offsetp, 2, byte_order);
12856  *offsetp += 2;
12857  listOfByte(tvb, offsetp, t, hf_x11_render_CompositeGlyphs16_glyphcmds, (length - 28) / 1, byte_order);
12858 }
12859 
12860 static void renderCompositeGlyphs32(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
12861 {
12862  field8(tvb, offsetp, t, hf_x11_render_CompositeGlyphs32_op, byte_order);
12863  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 3, ENC_NA);
12864  *offsetp += 3;
12865  proto_tree_add_item(t, hf_x11_render_CompositeGlyphs32_src, tvb, *offsetp, 4, byte_order);
12866  *offsetp += 4;
12867  proto_tree_add_item(t, hf_x11_render_CompositeGlyphs32_dst, tvb, *offsetp, 4, byte_order);
12868  *offsetp += 4;
12869  proto_tree_add_item(t, hf_x11_render_CompositeGlyphs32_mask_format, tvb, *offsetp, 4, byte_order);
12870  *offsetp += 4;
12871  proto_tree_add_item(t, hf_x11_render_CompositeGlyphs32_glyphset, tvb, *offsetp, 4, byte_order);
12872  *offsetp += 4;
12873  proto_tree_add_item(t, hf_x11_render_CompositeGlyphs32_src_x, tvb, *offsetp, 2, byte_order);
12874  *offsetp += 2;
12875  proto_tree_add_item(t, hf_x11_render_CompositeGlyphs32_src_y, tvb, *offsetp, 2, byte_order);
12876  *offsetp += 2;
12877  listOfByte(tvb, offsetp, t, hf_x11_render_CompositeGlyphs32_glyphcmds, (length - 28) / 1, byte_order);
12878 }
12879 
12880 static void renderFillRectangles(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
12881 {
12882  field8(tvb, offsetp, t, hf_x11_render_FillRectangles_op, byte_order);
12883  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 3, ENC_NA);
12884  *offsetp += 3;
12885  proto_tree_add_item(t, hf_x11_render_FillRectangles_dst, tvb, *offsetp, 4, byte_order);
12886  *offsetp += 4;
12887  struct_render_COLOR(tvb, offsetp, t, byte_order, 1);
12888  struct_xproto_RECTANGLE(tvb, offsetp, t, byte_order, (length - 20) / 8);
12889 }
12890 
12891 static void renderCreateCursor(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
12892 {
12893  proto_tree_add_item(t, hf_x11_render_CreateCursor_cid, tvb, *offsetp, 4, byte_order);
12894  *offsetp += 4;
12895  proto_tree_add_item(t, hf_x11_render_CreateCursor_source, tvb, *offsetp, 4, byte_order);
12896  *offsetp += 4;
12897  proto_tree_add_item(t, hf_x11_render_CreateCursor_x, tvb, *offsetp, 2, byte_order);
12898  *offsetp += 2;
12899  proto_tree_add_item(t, hf_x11_render_CreateCursor_y, tvb, *offsetp, 2, byte_order);
12900  *offsetp += 2;
12901 }
12902 
12903 static void renderSetPictureTransform(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
12904 {
12905  proto_tree_add_item(t, hf_x11_render_SetPictureTransform_picture, tvb, *offsetp, 4, byte_order);
12906  *offsetp += 4;
12907  struct_render_TRANSFORM(tvb, offsetp, t, byte_order, 1);
12908 }
12909 
12910 static void renderQueryFilters(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
12911 {
12912  proto_tree_add_item(t, hf_x11_render_QueryFilters_drawable, tvb, *offsetp, 4, byte_order);
12913  *offsetp += 4;
12914 }
12915 static void renderQueryFilters_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
12916 {
12917  int sequence_number;
12918  int f_num_aliases;
12919  int f_num_filters;
12920 
12921  col_append_fstr(pinfo->cinfo, COL_INFO, "-QueryFilters");
12922 
12923  REPLY(reply);
12924  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
12925  *offsetp += 1;
12926  sequence_number = tvb_get_guint16(tvb, *offsetp, byte_order);
12927  proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
12928  "%d (render-QueryFilters)", sequence_number);
12929  *offsetp += 2;
12930  proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
12931  *offsetp += 4;
12932  f_num_aliases = tvb_get_guint32(tvb, *offsetp, byte_order);
12933  proto_tree_add_item(t, hf_x11_render_QueryFilters_reply_num_aliases, tvb, *offsetp, 4, byte_order);
12934  *offsetp += 4;
12935  f_num_filters = tvb_get_guint32(tvb, *offsetp, byte_order);
12936  proto_tree_add_item(t, hf_x11_render_QueryFilters_reply_num_filters, tvb, *offsetp, 4, byte_order);
12937  *offsetp += 4;
12938  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 16, ENC_NA);
12939  *offsetp += 16;
12940  listOfCard16(tvb, offsetp, t, hf_x11_render_QueryFilters_reply_aliases, hf_x11_render_QueryFilters_reply_aliases_item, f_num_aliases, byte_order);
12941  struct_xproto_STR(tvb, offsetp, t, byte_order, f_num_filters);
12942 }
12943 
12944 static void renderSetPictureFilter(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
12945 {
12946  int f_filter_len;
12947  proto_tree_add_item(t, hf_x11_render_SetPictureFilter_picture, tvb, *offsetp, 4, byte_order);
12948  *offsetp += 4;
12949  f_filter_len = tvb_get_guint16(tvb, *offsetp, byte_order);
12950  proto_tree_add_item(t, hf_x11_render_SetPictureFilter_filter_len, tvb, *offsetp, 2, byte_order);
12951  *offsetp += 2;
12952  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 2, ENC_NA);
12953  *offsetp += 2;
12954  listOfByte(tvb, offsetp, t, hf_x11_render_SetPictureFilter_filter, f_filter_len, byte_order);
12955  length -= f_filter_len * 1;
12956  if (*offsetp % 4) {
12957  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, (4 - *offsetp % 4), ENC_NA);
12958  *offsetp += (4 - *offsetp % 4);
12959  }
12960  length = ((length + 3) & ~3);
12961  listOfInt32(tvb, offsetp, t, hf_x11_render_SetPictureFilter_values, hf_x11_render_SetPictureFilter_values_item, (length - 12) / 4, byte_order);
12962 }
12963 
12964 static void renderCreateAnimCursor(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
12965 {
12966  proto_tree_add_item(t, hf_x11_render_CreateAnimCursor_cid, tvb, *offsetp, 4, byte_order);
12967  *offsetp += 4;
12968  struct_render_ANIMCURSORELT(tvb, offsetp, t, byte_order, (length - 8) / 8);
12969 }
12970 
12971 static void renderAddTraps(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
12972 {
12973  proto_tree_add_item(t, hf_x11_render_AddTraps_picture, tvb, *offsetp, 4, byte_order);
12974  *offsetp += 4;
12975  proto_tree_add_item(t, hf_x11_render_AddTraps_x_off, tvb, *offsetp, 2, byte_order);
12976  *offsetp += 2;
12977  proto_tree_add_item(t, hf_x11_render_AddTraps_y_off, tvb, *offsetp, 2, byte_order);
12978  *offsetp += 2;
12979  struct_render_TRAP(tvb, offsetp, t, byte_order, (length - 12) / 24);
12980 }
12981 
12982 static void renderCreateSolidFill(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
12983 {
12984  proto_tree_add_item(t, hf_x11_render_CreateSolidFill_picture, tvb, *offsetp, 4, byte_order);
12985  *offsetp += 4;
12986  struct_render_COLOR(tvb, offsetp, t, byte_order, 1);
12987 }
12988 
12989 static void renderCreateLinearGradient(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
12990 {
12991  int f_num_stops;
12992  proto_tree_add_item(t, hf_x11_render_CreateLinearGradient_picture, tvb, *offsetp, 4, byte_order);
12993  *offsetp += 4;
12994  struct_render_POINTFIX(tvb, offsetp, t, byte_order, 1);
12995  struct_render_POINTFIX(tvb, offsetp, t, byte_order, 1);
12996  f_num_stops = tvb_get_guint32(tvb, *offsetp, byte_order);
12997  proto_tree_add_item(t, hf_x11_render_CreateLinearGradient_num_stops, tvb, *offsetp, 4, byte_order);
12998  *offsetp += 4;
12999  listOfInt32(tvb, offsetp, t, hf_x11_render_CreateLinearGradient_stops, hf_x11_render_CreateLinearGradient_stops_item, f_num_stops, byte_order);
13000  length -= f_num_stops * 4;
13001  struct_render_COLOR(tvb, offsetp, t, byte_order, f_num_stops);
13002  length -= f_num_stops * 8;
13003 }
13004 
13005 static void renderCreateRadialGradient(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
13006 {
13007  int f_num_stops;
13008  proto_tree_add_item(t, hf_x11_render_CreateRadialGradient_picture, tvb, *offsetp, 4, byte_order);
13009  *offsetp += 4;
13010  struct_render_POINTFIX(tvb, offsetp, t, byte_order, 1);
13011  struct_render_POINTFIX(tvb, offsetp, t, byte_order, 1);
13012  proto_tree_add_item(t, hf_x11_render_CreateRadialGradient_inner_radius, tvb, *offsetp, 4, byte_order);
13013  *offsetp += 4;
13014  proto_tree_add_item(t, hf_x11_render_CreateRadialGradient_outer_radius, tvb, *offsetp, 4, byte_order);
13015  *offsetp += 4;
13016  f_num_stops = tvb_get_guint32(tvb, *offsetp, byte_order);
13017  proto_tree_add_item(t, hf_x11_render_CreateRadialGradient_num_stops, tvb, *offsetp, 4, byte_order);
13018  *offsetp += 4;
13019  listOfInt32(tvb, offsetp, t, hf_x11_render_CreateRadialGradient_stops, hf_x11_render_CreateRadialGradient_stops_item, f_num_stops, byte_order);
13020  length -= f_num_stops * 4;
13021  struct_render_COLOR(tvb, offsetp, t, byte_order, f_num_stops);
13022  length -= f_num_stops * 8;
13023 }
13024 
13025 static void renderCreateConicalGradient(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
13026 {
13027  int f_num_stops;
13028  proto_tree_add_item(t, hf_x11_render_CreateConicalGradient_picture, tvb, *offsetp, 4, byte_order);
13029  *offsetp += 4;
13030  struct_render_POINTFIX(tvb, offsetp, t, byte_order, 1);
13031  proto_tree_add_item(t, hf_x11_render_CreateConicalGradient_angle, tvb, *offsetp, 4, byte_order);
13032  *offsetp += 4;
13033  f_num_stops = tvb_get_guint32(tvb, *offsetp, byte_order);
13034  proto_tree_add_item(t, hf_x11_render_CreateConicalGradient_num_stops, tvb, *offsetp, 4, byte_order);
13035  *offsetp += 4;
13036  listOfInt32(tvb, offsetp, t, hf_x11_render_CreateConicalGradient_stops, hf_x11_render_CreateConicalGradient_stops_item, f_num_stops, byte_order);
13037  length -= f_num_stops * 4;
13038  struct_render_COLOR(tvb, offsetp, t, byte_order, f_num_stops);
13039  length -= f_num_stops * 8;
13040 }
13041 static const value_string render_extension_minor[] = {
13042  { 0, "QueryVersion" },
13043  { 1, "QueryPictFormats" },
13044  { 2, "QueryPictIndexValues" },
13045  { 4, "CreatePicture" },
13046  { 5, "ChangePicture" },
13047  { 6, "SetPictureClipRectangles" },
13048  { 7, "FreePicture" },
13049  { 8, "Composite" },
13050  { 10, "Trapezoids" },
13051  { 11, "Triangles" },
13052  { 12, "TriStrip" },
13053  { 13, "TriFan" },
13054  { 17, "CreateGlyphSet" },
13055  { 18, "ReferenceGlyphSet" },
13056  { 19, "FreeGlyphSet" },
13057  { 20, "AddGlyphs" },
13058  { 22, "FreeGlyphs" },
13059  { 23, "CompositeGlyphs8" },
13060  { 24, "CompositeGlyphs16" },
13061  { 25, "CompositeGlyphs32" },
13062  { 26, "FillRectangles" },
13063  { 27, "CreateCursor" },
13064  { 28, "SetPictureTransform" },
13065  { 29, "QueryFilters" },
13066  { 30, "SetPictureFilter" },
13067  { 31, "CreateAnimCursor" },
13068  { 32, "AddTraps" },
13069  { 33, "CreateSolidFill" },
13070  { 34, "CreateLinearGradient" },
13071  { 35, "CreateRadialGradient" },
13072  { 36, "CreateConicalGradient" },
13073  { 0, NULL }
13074 };
13075 const x11_event_info render_events[] = {
13076  { NULL, NULL }
13077 };
13078 static x11_reply_info render_replies[] = {
13079  { 0, renderQueryVersion_Reply },
13080  { 1, renderQueryPictFormats_Reply },
13081  { 2, renderQueryPictIndexValues_Reply },
13082  { 29, renderQueryFilters_Reply },
13083  { 0, NULL }
13084 };
13085 
13086 static void dispatch_render(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
13087 {
13088  int minor, length;
13089  minor = CARD8(render_extension_minor);
13090  length = REQUEST_LENGTH();
13091 
13092  col_append_fstr(pinfo->cinfo, COL_INFO, "-%s",
13093  val_to_str(minor, render_extension_minor,
13094  "<Unknown opcode %d>"));
13095  switch (minor) {
13096  case 0:
13097  renderQueryVersion(tvb, pinfo, offsetp, t, byte_order, length);
13098  break;
13099  case 1:
13100  renderQueryPictFormats(tvb, pinfo, offsetp, t, byte_order, length);
13101  break;
13102  case 2:
13103  renderQueryPictIndexValues(tvb, pinfo, offsetp, t, byte_order, length);
13104  break;
13105  case 4:
13106  renderCreatePicture(tvb, pinfo, offsetp, t, byte_order, length);
13107  break;
13108  case 5:
13109  renderChangePicture(tvb, pinfo, offsetp, t, byte_order, length);
13110  break;
13111  case 6:
13112  renderSetPictureClipRectangles(tvb, pinfo, offsetp, t, byte_order, length);
13113  break;
13114  case 7:
13115  renderFreePicture(tvb, pinfo, offsetp, t, byte_order, length);
13116  break;
13117  case 8:
13118  renderComposite(tvb, pinfo, offsetp, t, byte_order, length);
13119  break;
13120  case 10:
13121  renderTrapezoids(tvb, pinfo, offsetp, t, byte_order, length);
13122  break;
13123  case 11:
13124  renderTriangles(tvb, pinfo, offsetp, t, byte_order, length);
13125  break;
13126  case 12:
13127  renderTriStrip(tvb, pinfo, offsetp, t, byte_order, length);
13128  break;
13129  case 13:
13130  renderTriFan(tvb, pinfo, offsetp, t, byte_order, length);
13131  break;
13132  case 17:
13133  renderCreateGlyphSet(tvb, pinfo, offsetp, t, byte_order, length);
13134  break;
13135  case 18:
13136  renderReferenceGlyphSet(tvb, pinfo, offsetp, t, byte_order, length);
13137  break;
13138  case 19:
13139  renderFreeGlyphSet(tvb, pinfo, offsetp, t, byte_order, length);
13140  break;
13141  case 20:
13142  renderAddGlyphs(tvb, pinfo, offsetp, t, byte_order, length);
13143  break;
13144  case 22:
13145  renderFreeGlyphs(tvb, pinfo, offsetp, t, byte_order, length);
13146  break;
13147  case 23:
13148  renderCompositeGlyphs8(tvb, pinfo, offsetp, t, byte_order, length);
13149  break;
13150  case 24:
13151  renderCompositeGlyphs16(tvb, pinfo, offsetp, t, byte_order, length);
13152  break;
13153  case 25:
13154  renderCompositeGlyphs32(tvb, pinfo, offsetp, t, byte_order, length);
13155  break;
13156  case 26:
13157  renderFillRectangles(tvb, pinfo, offsetp, t, byte_order, length);
13158  break;
13159  case 27:
13160  renderCreateCursor(tvb, pinfo, offsetp, t, byte_order, length);
13161  break;
13162  case 28:
13163  renderSetPictureTransform(tvb, pinfo, offsetp, t, byte_order, length);
13164  break;
13165  case 29:
13166  renderQueryFilters(tvb, pinfo, offsetp, t, byte_order, length);
13167  break;
13168  case 30:
13169  renderSetPictureFilter(tvb, pinfo, offsetp, t, byte_order, length);
13170  break;
13171  case 31:
13172  renderCreateAnimCursor(tvb, pinfo, offsetp, t, byte_order, length);
13173  break;
13174  case 32:
13175  renderAddTraps(tvb, pinfo, offsetp, t, byte_order, length);
13176  break;
13177  case 33:
13178  renderCreateSolidFill(tvb, pinfo, offsetp, t, byte_order, length);
13179  break;
13180  case 34:
13181  renderCreateLinearGradient(tvb, pinfo, offsetp, t, byte_order, length);
13182  break;
13183  case 35:
13184  renderCreateRadialGradient(tvb, pinfo, offsetp, t, byte_order, length);
13185  break;
13186  case 36:
13187  renderCreateConicalGradient(tvb, pinfo, offsetp, t, byte_order, length);
13188  break;
13189  /* No need for a default case here, since Unknown is printed above,
13190  and UNDECODED() is taken care of by dissect_x11_request */
13191  }
13192 }
13193 
13194 static void register_render(void)
13195 {
13196  set_handler("RENDER", dispatch_render, render_errors, render_events, NULL, render_replies);
13197 }
13198 
13199 static void struct_res_Client(tvbuff_t *tvb, int *offsetp, proto_tree *root, guint byte_order _U_, int count)
13200 {
13201  int i;
13202  for (i = 0; i < count; i++) {
13203  proto_item *item;
13204  proto_tree *t;
13205 
13206  item = proto_tree_add_item(root, hf_x11_struct_res_Client, tvb, *offsetp, 8, ENC_NA);
13207  t = proto_item_add_subtree(item, ett_x11_rectangle);
13208  proto_tree_add_item(t, hf_x11_struct_res_Client_resource_base, tvb, *offsetp, 4, byte_order);
13209  *offsetp += 4;
13210  proto_tree_add_item(t, hf_x11_struct_res_Client_resource_mask, tvb, *offsetp, 4, byte_order);
13211  *offsetp += 4;
13212  }
13213 }
13214 
13215 static void struct_res_Type(tvbuff_t *tvb, int *offsetp, proto_tree *root, guint byte_order _U_, int count)
13216 {
13217  int i;
13218  for (i = 0; i < count; i++) {
13219  proto_item *item;
13220  proto_tree *t;
13221 
13222  item = proto_tree_add_item(root, hf_x11_struct_res_Type, tvb, *offsetp, 8, ENC_NA);
13223  t = proto_item_add_subtree(item, ett_x11_rectangle);
13224  proto_tree_add_item(t, hf_x11_struct_res_Type_resource_type, tvb, *offsetp, 4, byte_order);
13225  *offsetp += 4;
13226  proto_tree_add_item(t, hf_x11_struct_res_Type_count, tvb, *offsetp, 4, byte_order);
13227  *offsetp += 4;
13228  }
13229 }
13230 
13231 static void struct_res_ClientIdSpec(tvbuff_t *tvb, int *offsetp, proto_tree *root, guint byte_order _U_, int count)
13232 {
13233  int i;
13234  for (i = 0; i < count; i++) {
13235  proto_item *item;
13236  proto_tree *t;
13237 
13238  item = proto_tree_add_item(root, hf_x11_struct_res_ClientIdSpec, tvb, *offsetp, 8, ENC_NA);
13239  t = proto_item_add_subtree(item, ett_x11_rectangle);
13240  proto_tree_add_item(t, hf_x11_struct_res_ClientIdSpec_client, tvb, *offsetp, 4, byte_order);
13241  *offsetp += 4;
13242  {
13243  const int* mask_bits [] = {
13244  &hf_x11_struct_res_ClientIdSpec_mask_mask_ClientXID,
13245  &hf_x11_struct_res_ClientIdSpec_mask_mask_LocalClientPID,
13246  NULL
13247  };
13248  proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_struct_res_ClientIdSpec_mask, ett_x11_rectangle, mask_bits, byte_order);
13249  }
13250  *offsetp += 4;
13251  }
13252 }
13253 
13254 static int struct_size_res_ClientIdValue(tvbuff_t *tvb _U_, int *offsetp _U_, guint byte_order _U_)
13255 {
13256  int size = 0;
13257  int f_length;
13258  f_length = tvb_get_guint32(tvb, *offsetp + size + 8, byte_order);
13259  size += (f_length / 4) * 4;
13260  return size + 12;
13261 }
13262 
13263 static void struct_res_ClientIdValue(tvbuff_t *tvb, int *offsetp, proto_tree *root, guint byte_order _U_, int count)
13264 {
13265  int i;
13266  for (i = 0; i < count; i++) {
13267  proto_item *item;
13268  proto_tree *t;
13269  int f_length;
13270 
13271  item = proto_tree_add_item(root, hf_x11_struct_res_ClientIdValue, tvb, *offsetp, struct_size_res_ClientIdValue(tvb, offsetp, byte_order), ENC_NA);
13272  t = proto_item_add_subtree(item, ett_x11_rectangle);
13273  struct_res_ClientIdSpec(tvb, offsetp, t, byte_order, 1);
13274  f_length = tvb_get_guint32(tvb, *offsetp, byte_order);
13275  proto_tree_add_item(t, hf_x11_struct_res_ClientIdValue_length, tvb, *offsetp, 4, byte_order);
13276  *offsetp += 4;
13277  listOfCard32(tvb, offsetp, t, hf_x11_struct_res_ClientIdValue_value, hf_x11_struct_res_ClientIdValue_value_item, (f_length / 4), byte_order);
13278  }
13279 }
13280 
13281 static void struct_res_ResourceIdSpec(tvbuff_t *tvb, int *offsetp, proto_tree *root, guint byte_order _U_, int count)
13282 {
13283  int i;
13284  for (i = 0; i < count; i++) {
13285  proto_item *item;
13286  proto_tree *t;
13287 
13288  item = proto_tree_add_item(root, hf_x11_struct_res_ResourceIdSpec, tvb, *offsetp, 8, ENC_NA);
13289  t = proto_item_add_subtree(item, ett_x11_rectangle);
13290  proto_tree_add_item(t, hf_x11_struct_res_ResourceIdSpec_resource, tvb, *offsetp, 4, byte_order);
13291  *offsetp += 4;
13292  proto_tree_add_item(t, hf_x11_struct_res_ResourceIdSpec_type, tvb, *offsetp, 4, byte_order);
13293  *offsetp += 4;
13294  }
13295 }
13296 
13297 static void struct_res_ResourceSizeSpec(tvbuff_t *tvb, int *offsetp, proto_tree *root, guint byte_order _U_, int count)
13298 {
13299  int i;
13300  for (i = 0; i < count; i++) {
13301  proto_item *item;
13302  proto_tree *t;
13303 
13304  item = proto_tree_add_item(root, hf_x11_struct_res_ResourceSizeSpec, tvb, *offsetp, 20, ENC_NA);
13305  t = proto_item_add_subtree(item, ett_x11_rectangle);
13306  struct_res_ResourceIdSpec(tvb, offsetp, t, byte_order, 1);
13307  proto_tree_add_item(t, hf_x11_struct_res_ResourceSizeSpec_bytes, tvb, *offsetp, 4, byte_order);
13308  *offsetp += 4;
13309  proto_tree_add_item(t, hf_x11_struct_res_ResourceSizeSpec_ref_count, tvb, *offsetp, 4, byte_order);
13310  *offsetp += 4;
13311  proto_tree_add_item(t, hf_x11_struct_res_ResourceSizeSpec_use_count, tvb, *offsetp, 4, byte_order);
13312  *offsetp += 4;
13313  }
13314 }
13315 
13316 static int struct_size_res_ResourceSizeValue(tvbuff_t *tvb _U_, int *offsetp _U_, guint byte_order _U_)
13317 {
13318  int size = 0;
13319  int f_num_cross_references;
13320  f_num_cross_references = tvb_get_guint32(tvb, *offsetp + size + 20, byte_order);
13321  size += f_num_cross_references * 20;
13322  return size + 24;
13323 }
13324 
13325 static void struct_res_ResourceSizeValue(tvbuff_t *tvb, int *offsetp, proto_tree *root, guint byte_order _U_, int count)
13326 {
13327  int i;
13328  for (i = 0; i < count; i++) {
13329  proto_item *item;
13330  proto_tree *t;
13331  int f_num_cross_references;
13332 
13333  item = proto_tree_add_item(root, hf_x11_struct_res_ResourceSizeValue, tvb, *offsetp, struct_size_res_ResourceSizeValue(tvb, offsetp, byte_order), ENC_NA);
13334  t = proto_item_add_subtree(item, ett_x11_rectangle);
13335  struct_res_ResourceSizeSpec(tvb, offsetp, t, byte_order, 1);
13336  f_num_cross_references = tvb_get_guint32(tvb, *offsetp, byte_order);
13337  proto_tree_add_item(t, hf_x11_struct_res_ResourceSizeValue_num_cross_references, tvb, *offsetp, 4, byte_order);
13338  *offsetp += 4;
13339  struct_res_ResourceSizeSpec(tvb, offsetp, t, byte_order, f_num_cross_references);
13340  }
13341 }
13342 
13343 static void resQueryVersion(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
13344 {
13345  proto_tree_add_item(t, hf_x11_res_QueryVersion_client_major, tvb, *offsetp, 1, byte_order);
13346  *offsetp += 1;
13347  proto_tree_add_item(t, hf_x11_res_QueryVersion_client_minor, tvb, *offsetp, 1, byte_order);
13348  *offsetp += 1;
13349 }
13350 static void resQueryVersion_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
13351 {
13352  int sequence_number;
13353 
13354  col_append_fstr(pinfo->cinfo, COL_INFO, "-QueryVersion");
13355 
13356  REPLY(reply);
13357  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
13358  *offsetp += 1;
13359  sequence_number = tvb_get_guint16(tvb, *offsetp, byte_order);
13360  proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
13361  "%d (res-QueryVersion)", sequence_number);
13362  *offsetp += 2;
13363  proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
13364  *offsetp += 4;
13365  proto_tree_add_item(t, hf_x11_res_QueryVersion_reply_server_major, tvb, *offsetp, 2, byte_order);
13366  *offsetp += 2;
13367  proto_tree_add_item(t, hf_x11_res_QueryVersion_reply_server_minor, tvb, *offsetp, 2, byte_order);
13368  *offsetp += 2;
13369 }
13370 
13371 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_)
13372 {
13373 }
13374 static void resQueryClients_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
13375 {
13376  int sequence_number;
13377  int f_num_clients;
13378 
13379  col_append_fstr(pinfo->cinfo, COL_INFO, "-QueryClients");
13380 
13381  REPLY(reply);
13382  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
13383  *offsetp += 1;
13384  sequence_number = tvb_get_guint16(tvb, *offsetp, byte_order);
13385  proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
13386  "%d (res-QueryClients)", sequence_number);
13387  *offsetp += 2;
13388  proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
13389  *offsetp += 4;
13390  f_num_clients = tvb_get_guint32(tvb, *offsetp, byte_order);
13391  proto_tree_add_item(t, hf_x11_res_QueryClients_reply_num_clients, tvb, *offsetp, 4, byte_order);
13392  *offsetp += 4;
13393  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 20, ENC_NA);
13394  *offsetp += 20;
13395  struct_res_Client(tvb, offsetp, t, byte_order, f_num_clients);
13396 }
13397 
13398 static void resQueryClientResources(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
13399 {
13400  proto_tree_add_item(t, hf_x11_res_QueryClientResources_xid, tvb, *offsetp, 4, byte_order);
13401  *offsetp += 4;
13402 }
13403 static void resQueryClientResources_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
13404 {
13405  int sequence_number;
13406  int f_num_types;
13407 
13408  col_append_fstr(pinfo->cinfo, COL_INFO, "-QueryClientResources");
13409 
13410  REPLY(reply);
13411  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
13412  *offsetp += 1;
13413  sequence_number = tvb_get_guint16(tvb, *offsetp, byte_order);
13414  proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
13415  "%d (res-QueryClientResources)", sequence_number);
13416  *offsetp += 2;
13417  proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
13418  *offsetp += 4;
13419  f_num_types = tvb_get_guint32(tvb, *offsetp, byte_order);
13420  proto_tree_add_item(t, hf_x11_res_QueryClientResources_reply_num_types, tvb, *offsetp, 4, byte_order);
13421  *offsetp += 4;
13422  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 20, ENC_NA);
13423  *offsetp += 20;
13424  struct_res_Type(tvb, offsetp, t, byte_order, f_num_types);
13425 }
13426 
13427 static void resQueryClientPixmapBytes(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
13428 {
13429  proto_tree_add_item(t, hf_x11_res_QueryClientPixmapBytes_xid, tvb, *offsetp, 4, byte_order);
13430  *offsetp += 4;
13431 }
13432 static void resQueryClientPixmapBytes_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
13433 {
13434  int sequence_number;
13435 
13436  col_append_fstr(pinfo->cinfo, COL_INFO, "-QueryClientPixmapBytes");
13437 
13438  REPLY(reply);
13439  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
13440  *offsetp += 1;
13441  sequence_number = tvb_get_guint16(tvb, *offsetp, byte_order);
13442  proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
13443  "%d (res-QueryClientPixmapBytes)", sequence_number);
13444  *offsetp += 2;
13445  proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
13446  *offsetp += 4;
13447  proto_tree_add_item(t, hf_x11_res_QueryClientPixmapBytes_reply_bytes, tvb, *offsetp, 4, byte_order);
13448  *offsetp += 4;
13449  proto_tree_add_item(t, hf_x11_res_QueryClientPixmapBytes_reply_bytes_overflow, tvb, *offsetp, 4, byte_order);
13450  *offsetp += 4;
13451 }
13452 
13453 static void resQueryClientIds(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
13454 {
13455  int f_num_specs;
13456  f_num_specs = tvb_get_guint32(tvb, *offsetp, byte_order);
13457  proto_tree_add_item(t, hf_x11_res_QueryClientIds_num_specs, tvb, *offsetp, 4, byte_order);
13458  *offsetp += 4;
13459  struct_res_ClientIdSpec(tvb, offsetp, t, byte_order, f_num_specs);
13460  length -= f_num_specs * 8;
13461 }
13462 static void resQueryClientIds_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
13463 {
13464  int sequence_number;
13465  int f_num_ids;
13466 
13467  col_append_fstr(pinfo->cinfo, COL_INFO, "-QueryClientIds");
13468 
13469  REPLY(reply);
13470  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
13471  *offsetp += 1;
13472  sequence_number = tvb_get_guint16(tvb, *offsetp, byte_order);
13473  proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
13474  "%d (res-QueryClientIds)", sequence_number);
13475  *offsetp += 2;
13476  proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
13477  *offsetp += 4;
13478  f_num_ids = tvb_get_guint32(tvb, *offsetp, byte_order);
13479  proto_tree_add_item(t, hf_x11_res_QueryClientIds_reply_num_ids, tvb, *offsetp, 4, byte_order);
13480  *offsetp += 4;
13481  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 20, ENC_NA);
13482  *offsetp += 20;
13483  struct_res_ClientIdValue(tvb, offsetp, t, byte_order, f_num_ids);
13484 }
13485 
13486 static void resQueryResourceBytes(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
13487 {
13488  int f_num_specs;
13489  proto_tree_add_item(t, hf_x11_res_QueryResourceBytes_client, tvb, *offsetp, 4, byte_order);
13490  *offsetp += 4;
13491  f_num_specs = tvb_get_guint32(tvb, *offsetp, byte_order);
13492  proto_tree_add_item(t, hf_x11_res_QueryResourceBytes_num_specs, tvb, *offsetp, 4, byte_order);
13493  *offsetp += 4;
13494  struct_res_ResourceIdSpec(tvb, offsetp, t, byte_order, f_num_specs);
13495  length -= f_num_specs * 8;
13496 }
13497 static void resQueryResourceBytes_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
13498 {
13499  int sequence_number;
13500  int f_num_sizes;
13501 
13502  col_append_fstr(pinfo->cinfo, COL_INFO, "-QueryResourceBytes");
13503 
13504  REPLY(reply);
13505  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
13506  *offsetp += 1;
13507  sequence_number = tvb_get_guint16(tvb, *offsetp, byte_order);
13508  proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
13509  "%d (res-QueryResourceBytes)", sequence_number);
13510  *offsetp += 2;
13511  proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
13512  *offsetp += 4;
13513  f_num_sizes = tvb_get_guint32(tvb, *offsetp, byte_order);
13514  proto_tree_add_item(t, hf_x11_res_QueryResourceBytes_reply_num_sizes, tvb, *offsetp, 4, byte_order);
13515  *offsetp += 4;
13516  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 20, ENC_NA);
13517  *offsetp += 20;
13518  struct_res_ResourceSizeValue(tvb, offsetp, t, byte_order, f_num_sizes);
13519 }
13520 static const value_string res_extension_minor[] = {
13521  { 0, "QueryVersion" },
13522  { 1, "QueryClients" },
13523  { 2, "QueryClientResources" },
13524  { 3, "QueryClientPixmapBytes" },
13525  { 4, "QueryClientIds" },
13526  { 5, "QueryResourceBytes" },
13527  { 0, NULL }
13528 };
13529 const x11_event_info res_events[] = {
13530  { NULL, NULL }
13531 };
13532 static x11_reply_info res_replies[] = {
13533  { 0, resQueryVersion_Reply },
13534  { 1, resQueryClients_Reply },
13535  { 2, resQueryClientResources_Reply },
13536  { 3, resQueryClientPixmapBytes_Reply },
13537  { 4, resQueryClientIds_Reply },
13538  { 5, resQueryResourceBytes_Reply },
13539  { 0, NULL }
13540 };
13541 
13542 static void dispatch_res(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
13543 {
13544  int minor, length;
13545  minor = CARD8(res_extension_minor);
13546  length = REQUEST_LENGTH();
13547 
13548  col_append_fstr(pinfo->cinfo, COL_INFO, "-%s",
13549  val_to_str(minor, res_extension_minor,
13550  "<Unknown opcode %d>"));
13551  switch (minor) {
13552  case 0:
13553  resQueryVersion(tvb, pinfo, offsetp, t, byte_order, length);
13554  break;
13555  case 1:
13556  resQueryClients(tvb, pinfo, offsetp, t, byte_order, length);
13557  break;
13558  case 2:
13559  resQueryClientResources(tvb, pinfo, offsetp, t, byte_order, length);
13560  break;
13561  case 3:
13562  resQueryClientPixmapBytes(tvb, pinfo, offsetp, t, byte_order, length);
13563  break;
13564  case 4:
13565  resQueryClientIds(tvb, pinfo, offsetp, t, byte_order, length);
13566  break;
13567  case 5:
13568  resQueryResourceBytes(tvb, pinfo, offsetp, t, byte_order, length);
13569  break;
13570  /* No need for a default case here, since Unknown is printed above,
13571  and UNDECODED() is taken care of by dissect_x11_request */
13572  }
13573 }
13574 
13575 static void register_res(void)
13576 {
13577  set_handler("X-Resource", dispatch_res, res_errors, res_events, NULL, res_replies);
13578 }
13579 
13580 static void screensaverQueryVersion(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
13581 {
13582  proto_tree_add_item(t, hf_x11_screensaver_QueryVersion_client_major_version, tvb, *offsetp, 1, byte_order);
13583  *offsetp += 1;
13584  proto_tree_add_item(t, hf_x11_screensaver_QueryVersion_client_minor_version, tvb, *offsetp, 1, byte_order);
13585  *offsetp += 1;
13586  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 2, ENC_NA);
13587  *offsetp += 2;
13588 }
13589 static void screensaverQueryVersion_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
13590 {
13591  int sequence_number;
13592 
13593  col_append_fstr(pinfo->cinfo, COL_INFO, "-QueryVersion");
13594 
13595  REPLY(reply);
13596  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
13597  *offsetp += 1;
13598  sequence_number = tvb_get_guint16(tvb, *offsetp, byte_order);
13599  proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
13600  "%d (screensaver-QueryVersion)", sequence_number);
13601  *offsetp += 2;
13602  proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
13603  *offsetp += 4;
13604  proto_tree_add_item(t, hf_x11_screensaver_QueryVersion_reply_server_major_version, tvb, *offsetp, 2, byte_order);
13605  *offsetp += 2;
13606  proto_tree_add_item(t, hf_x11_screensaver_QueryVersion_reply_server_minor_version, tvb, *offsetp, 2, byte_order);
13607  *offsetp += 2;
13608  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 20, ENC_NA);
13609  *offsetp += 20;
13610 }
13611 
13612 static void screensaverQueryInfo(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
13613 {
13614  proto_tree_add_item(t, hf_x11_screensaver_QueryInfo_drawable, tvb, *offsetp, 4, byte_order);
13615  *offsetp += 4;
13616 }
13617 static void screensaverQueryInfo_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
13618 {
13619  int sequence_number;
13620 
13621  col_append_fstr(pinfo->cinfo, COL_INFO, "-QueryInfo");
13622 
13623  REPLY(reply);
13624  proto_tree_add_item(t, hf_x11_screensaver_QueryInfo_reply_state, tvb, *offsetp, 1, byte_order);
13625  *offsetp += 1;
13626  sequence_number = tvb_get_guint16(tvb, *offsetp, byte_order);
13627  proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
13628  "%d (screensaver-QueryInfo)", sequence_number);
13629  *offsetp += 2;
13630  proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
13631  *offsetp += 4;
13632  proto_tree_add_item(t, hf_x11_screensaver_QueryInfo_reply_saver_window, tvb, *offsetp, 4, byte_order);
13633  *offsetp += 4;
13634  proto_tree_add_item(t, hf_x11_screensaver_QueryInfo_reply_ms_until_server, tvb, *offsetp, 4, byte_order);
13635  *offsetp += 4;
13636  proto_tree_add_item(t, hf_x11_screensaver_QueryInfo_reply_ms_since_user_input, tvb, *offsetp, 4, byte_order);
13637  *offsetp += 4;
13638  proto_tree_add_item(t, hf_x11_screensaver_QueryInfo_reply_event_mask, tvb, *offsetp, 4, byte_order);
13639  *offsetp += 4;
13640  field8(tvb, offsetp, t, hf_x11_screensaver_QueryInfo_reply_kind, byte_order);
13641  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 7, ENC_NA);
13642  *offsetp += 7;
13643 }
13644 
13645 static void screensaverSelectInput(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
13646 {
13647  proto_tree_add_item(t, hf_x11_screensaver_SelectInput_drawable, tvb, *offsetp, 4, byte_order);
13648  *offsetp += 4;
13649  {
13650  const int* event_mask_bits [] = {
13651  &hf_x11_screensaver_SelectInput_event_mask_mask_NotifyMask,
13652  &hf_x11_screensaver_SelectInput_event_mask_mask_CycleMask,
13653  NULL
13654  };
13655  proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_screensaver_SelectInput_event_mask, ett_x11_rectangle, event_mask_bits, byte_order);
13656  }
13657  *offsetp += 4;
13658 }
13659 
13660 static void screensaverSetAttributes(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
13661 {
13662  int f_value_mask;
13663  proto_tree_add_item(t, hf_x11_screensaver_SetAttributes_drawable, tvb, *offsetp, 4, byte_order);
13664  *offsetp += 4;
13665  proto_tree_add_item(t, hf_x11_screensaver_SetAttributes_x, tvb, *offsetp, 2, byte_order);
13666  *offsetp += 2;
13667  proto_tree_add_item(t, hf_x11_screensaver_SetAttributes_y, tvb, *offsetp, 2, byte_order);
13668  *offsetp += 2;
13669  proto_tree_add_item(t, hf_x11_screensaver_SetAttributes_width, tvb, *offsetp, 2, byte_order);
13670  *offsetp += 2;
13671  proto_tree_add_item(t, hf_x11_screensaver_SetAttributes_height, tvb, *offsetp, 2, byte_order);
13672  *offsetp += 2;
13673  proto_tree_add_item(t, hf_x11_screensaver_SetAttributes_border_width, tvb, *offsetp, 2, byte_order);
13674  *offsetp += 2;
13675  field8(tvb, offsetp, t, hf_x11_screensaver_SetAttributes_class, byte_order);
13676  proto_tree_add_item(t, hf_x11_screensaver_SetAttributes_depth, tvb, *offsetp, 1, byte_order);
13677  *offsetp += 1;
13678  proto_tree_add_item(t, hf_x11_screensaver_SetAttributes_visual, tvb, *offsetp, 4, byte_order);
13679  *offsetp += 4;
13680  f_value_mask = tvb_get_guint32(tvb, *offsetp, byte_order);
13681  {
13682  const int* value_mask_bits [] = {
13683  &hf_x11_screensaver_SetAttributes_value_mask_mask_BackPixmap,
13684  &hf_x11_screensaver_SetAttributes_value_mask_mask_BackPixel,
13685  &hf_x11_screensaver_SetAttributes_value_mask_mask_BorderPixmap,
13686  &hf_x11_screensaver_SetAttributes_value_mask_mask_BorderPixel,
13687  &hf_x11_screensaver_SetAttributes_value_mask_mask_BitGravity,
13688  &hf_x11_screensaver_SetAttributes_value_mask_mask_WinGravity,
13689  &hf_x11_screensaver_SetAttributes_value_mask_mask_BackingStore,
13690  &hf_x11_screensaver_SetAttributes_value_mask_mask_BackingPlanes,
13691  &hf_x11_screensaver_SetAttributes_value_mask_mask_BackingPixel,
13692  &hf_x11_screensaver_SetAttributes_value_mask_mask_OverrideRedirect,
13693  &hf_x11_screensaver_SetAttributes_value_mask_mask_SaveUnder,
13694  &hf_x11_screensaver_SetAttributes_value_mask_mask_EventMask,
13695  &hf_x11_screensaver_SetAttributes_value_mask_mask_DontPropagate,
13696  &hf_x11_screensaver_SetAttributes_value_mask_mask_Colormap,
13697  &hf_x11_screensaver_SetAttributes_value_mask_mask_Cursor,
13698  NULL
13699  };
13700  proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_screensaver_SetAttributes_value_mask, ett_x11_rectangle, value_mask_bits, byte_order);
13701  }
13702  *offsetp += 4;
13703  if (f_value_mask & (1U << 0)) {
13704  field32(tvb, offsetp, t, hf_x11_screensaver_SetAttributes_BackPixmap_background_pixmap, byte_order);
13705  }
13706  if (f_value_mask & (1U << 1)) {
13707  proto_tree_add_item(t, hf_x11_screensaver_SetAttributes_BackPixel_background_pixel, tvb, *offsetp, 4, byte_order);
13708  *offsetp += 4;
13709  }
13710  if (f_value_mask & (1U << 2)) {
13711  field32(tvb, offsetp, t, hf_x11_screensaver_SetAttributes_BorderPixmap_border_pixmap, byte_order);
13712  }
13713  if (f_value_mask & (1U << 3)) {
13714  proto_tree_add_item(t, hf_x11_screensaver_SetAttributes_BorderPixel_border_pixel, tvb, *offsetp, 4, byte_order);
13715  *offsetp += 4;
13716  }
13717  if (f_value_mask & (1U << 4)) {
13718  field32(tvb, offsetp, t, hf_x11_screensaver_SetAttributes_BitGravity_bit_gravity, byte_order);
13719  }
13720  if (f_value_mask & (1U << 5)) {
13721  field32(tvb, offsetp, t, hf_x11_screensaver_SetAttributes_WinGravity_win_gravity, byte_order);
13722  }
13723  if (f_value_mask & (1U << 6)) {
13724  field32(tvb, offsetp, t, hf_x11_screensaver_SetAttributes_BackingStore_backing_store, byte_order);
13725  }
13726  if (f_value_mask & (1U << 7)) {
13727  proto_tree_add_item(t, hf_x11_screensaver_SetAttributes_BackingPlanes_backing_planes, tvb, *offsetp, 4, byte_order);
13728  *offsetp += 4;
13729  }
13730  if (f_value_mask & (1U << 8)) {
13731  proto_tree_add_item(t, hf_x11_screensaver_SetAttributes_BackingPixel_backing_pixel, tvb, *offsetp, 4, byte_order);
13732  *offsetp += 4;
13733  }
13734  if (f_value_mask & (1U << 9)) {
13735  proto_tree_add_item(t, hf_x11_screensaver_SetAttributes_OverrideRedirect_override_redirect, tvb, *offsetp, 4, byte_order);
13736  *offsetp += 4;
13737  }
13738  if (f_value_mask & (1U << 10)) {
13739  proto_tree_add_item(t, hf_x11_screensaver_SetAttributes_SaveUnder_save_under, tvb, *offsetp, 4, byte_order);
13740  *offsetp += 4;
13741  }
13742  if (f_value_mask & (1U << 11)) {
13743  {
13744  const int* event_mask_bits [] = {
13745  &hf_x11_screensaver_SetAttributes_EventMask_event_mask_mask_KeyPress,
13746  &hf_x11_screensaver_SetAttributes_EventMask_event_mask_mask_KeyRelease,
13747  &hf_x11_screensaver_SetAttributes_EventMask_event_mask_mask_ButtonPress,
13748  &hf_x11_screensaver_SetAttributes_EventMask_event_mask_mask_ButtonRelease,
13749  &hf_x11_screensaver_SetAttributes_EventMask_event_mask_mask_EnterWindow,
13750  &hf_x11_screensaver_SetAttributes_EventMask_event_mask_mask_LeaveWindow,
13751  &hf_x11_screensaver_SetAttributes_EventMask_event_mask_mask_PointerMotion,
13752  &hf_x11_screensaver_SetAttributes_EventMask_event_mask_mask_PointerMotionHint,
13753  &hf_x11_screensaver_SetAttributes_EventMask_event_mask_mask_Button1Motion,
13754  &hf_x11_screensaver_SetAttributes_EventMask_event_mask_mask_Button2Motion,
13755  &hf_x11_screensaver_SetAttributes_EventMask_event_mask_mask_Button3Motion,
13756  &hf_x11_screensaver_SetAttributes_EventMask_event_mask_mask_Button4Motion,
13757  &hf_x11_screensaver_SetAttributes_EventMask_event_mask_mask_Button5Motion,
13758  &hf_x11_screensaver_SetAttributes_EventMask_event_mask_mask_ButtonMotion,
13759  &hf_x11_screensaver_SetAttributes_EventMask_event_mask_mask_KeymapState,
13760  &hf_x11_screensaver_SetAttributes_EventMask_event_mask_mask_Exposure,
13761  &hf_x11_screensaver_SetAttributes_EventMask_event_mask_mask_VisibilityChange,
13762  &hf_x11_screensaver_SetAttributes_EventMask_event_mask_mask_StructureNotify,
13763  &hf_x11_screensaver_SetAttributes_EventMask_event_mask_mask_ResizeRedirect,
13764  &hf_x11_screensaver_SetAttributes_EventMask_event_mask_mask_SubstructureNotify,
13765  &hf_x11_screensaver_SetAttributes_EventMask_event_mask_mask_SubstructureRedirect,
13766  &hf_x11_screensaver_SetAttributes_EventMask_event_mask_mask_FocusChange,
13767  &hf_x11_screensaver_SetAttributes_EventMask_event_mask_mask_PropertyChange,
13768  &hf_x11_screensaver_SetAttributes_EventMask_event_mask_mask_ColorMapChange,
13769  &hf_x11_screensaver_SetAttributes_EventMask_event_mask_mask_OwnerGrabButton,
13770  NULL
13771  };
13772  proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_screensaver_SetAttributes_EventMask_event_mask, ett_x11_rectangle, event_mask_bits, byte_order);
13773  }
13774  *offsetp += 4;
13775  }
13776  if (f_value_mask & (1U << 12)) {
13777  {
13778  const int* do_not_propogate_mask_bits [] = {
13779  &hf_x11_screensaver_SetAttributes_DontPropagate_do_not_propogate_mask_mask_KeyPress,
13780  &hf_x11_screensaver_SetAttributes_DontPropagate_do_not_propogate_mask_mask_KeyRelease,
13781  &hf_x11_screensaver_SetAttributes_DontPropagate_do_not_propogate_mask_mask_ButtonPress,
13782  &hf_x11_screensaver_SetAttributes_DontPropagate_do_not_propogate_mask_mask_ButtonRelease,
13783  &hf_x11_screensaver_SetAttributes_DontPropagate_do_not_propogate_mask_mask_EnterWindow,
13784  &hf_x11_screensaver_SetAttributes_DontPropagate_do_not_propogate_mask_mask_LeaveWindow,
13785  &hf_x11_screensaver_SetAttributes_DontPropagate_do_not_propogate_mask_mask_PointerMotion,
13786  &hf_x11_screensaver_SetAttributes_DontPropagate_do_not_propogate_mask_mask_PointerMotionHint,
13787  &hf_x11_screensaver_SetAttributes_DontPropagate_do_not_propogate_mask_mask_Button1Motion,
13788  &hf_x11_screensaver_SetAttributes_DontPropagate_do_not_propogate_mask_mask_Button2Motion,
13789  &hf_x11_screensaver_SetAttributes_DontPropagate_do_not_propogate_mask_mask_Button3Motion,
13790  &hf_x11_screensaver_SetAttributes_DontPropagate_do_not_propogate_mask_mask_Button4Motion,
13791  &hf_x11_screensaver_SetAttributes_DontPropagate_do_not_propogate_mask_mask_Button5Motion,
13792  &hf_x11_screensaver_SetAttributes_DontPropagate_do_not_propogate_mask_mask_ButtonMotion,
13793  &hf_x11_screensaver_SetAttributes_DontPropagate_do_not_propogate_mask_mask_KeymapState,
13794  &hf_x11_screensaver_SetAttributes_DontPropagate_do_not_propogate_mask_mask_Exposure,
13795  &hf_x11_screensaver_SetAttributes_DontPropagate_do_not_propogate_mask_mask_VisibilityChange,
13796  &hf_x11_screensaver_SetAttributes_DontPropagate_do_not_propogate_mask_mask_StructureNotify,
13797  &hf_x11_screensaver_SetAttributes_DontPropagate_do_not_propogate_mask_mask_ResizeRedirect,
13798  &hf_x11_screensaver_SetAttributes_DontPropagate_do_not_propogate_mask_mask_SubstructureNotify,
13799  &hf_x11_screensaver_SetAttributes_DontPropagate_do_not_propogate_mask_mask_SubstructureRedirect,
13800  &hf_x11_screensaver_SetAttributes_DontPropagate_do_not_propogate_mask_mask_FocusChange,
13801  &hf_x11_screensaver_SetAttributes_DontPropagate_do_not_propogate_mask_mask_PropertyChange,
13802  &hf_x11_screensaver_SetAttributes_DontPropagate_do_not_propogate_mask_mask_ColorMapChange,
13803  &hf_x11_screensaver_SetAttributes_DontPropagate_do_not_propogate_mask_mask_OwnerGrabButton,
13804  NULL
13805  };
13806  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);
13807  }
13808  *offsetp += 4;
13809  }
13810  if (f_value_mask & (1U << 13)) {
13811  field32(tvb, offsetp, t, hf_x11_screensaver_SetAttributes_Colormap_colormap, byte_order);
13812  }
13813  if (f_value_mask & (1U << 14)) {
13814  field32(tvb, offsetp, t, hf_x11_screensaver_SetAttributes_Cursor_cursor, byte_order);
13815  }
13816 }
13817 
13818 static void screensaverUnsetAttributes(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
13819 {
13820  proto_tree_add_item(t, hf_x11_screensaver_UnsetAttributes_drawable, tvb, *offsetp, 4, byte_order);
13821  *offsetp += 4;
13822 }
13823 
13824 static void screensaverSuspend(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
13825 {
13826  proto_tree_add_item(t, hf_x11_screensaver_Suspend_suspend, tvb, *offsetp, 1, byte_order);
13827  *offsetp += 1;
13828  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 3, ENC_NA);
13829  *offsetp += 3;
13830 }
13831 static const value_string screensaver_extension_minor[] = {
13832  { 0, "QueryVersion" },
13833  { 1, "QueryInfo" },
13834  { 2, "SelectInput" },
13835  { 3, "SetAttributes" },
13836  { 4, "UnsetAttributes" },
13837  { 5, "Suspend" },
13838  { 0, NULL }
13839 };
13840 const x11_event_info screensaver_events[] = {
13841  { NULL, NULL }
13842 };
13843 static x11_reply_info screensaver_replies[] = {
13844  { 0, screensaverQueryVersion_Reply },
13845  { 1, screensaverQueryInfo_Reply },
13846  { 0, NULL }
13847 };
13848 
13849 static void dispatch_screensaver(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
13850 {
13851  int minor, length;
13852  minor = CARD8(screensaver_extension_minor);
13853  length = REQUEST_LENGTH();
13854 
13855  col_append_fstr(pinfo->cinfo, COL_INFO, "-%s",
13856  val_to_str(minor, screensaver_extension_minor,
13857  "<Unknown opcode %d>"));
13858  switch (minor) {
13859  case 0:
13860  screensaverQueryVersion(tvb, pinfo, offsetp, t, byte_order, length);
13861  break;
13862  case 1:
13863  screensaverQueryInfo(tvb, pinfo, offsetp, t, byte_order, length);
13864  break;
13865  case 2:
13866  screensaverSelectInput(tvb, pinfo, offsetp, t, byte_order, length);
13867  break;
13868  case 3:
13869  screensaverSetAttributes(tvb, pinfo, offsetp, t, byte_order, length);
13870  break;
13871  case 4:
13872  screensaverUnsetAttributes(tvb, pinfo, offsetp, t, byte_order, length);
13873  break;
13874  case 5:
13875  screensaverSuspend(tvb, pinfo, offsetp, t, byte_order, length);
13876  break;
13877  /* No need for a default case here, since Unknown is printed above,
13878  and UNDECODED() is taken care of by dissect_x11_request */
13879  }
13880 }
13881 
13882 static void register_screensaver(void)
13883 {
13884  set_handler("MIT-SCREEN-SAVER", dispatch_screensaver, screensaver_errors, screensaver_events, NULL, screensaver_replies);
13885 }
13886 
13887 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_)
13888 {
13889 }
13890 static void shapeQueryVersion_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
13891 {
13892  int sequence_number;
13893 
13894  col_append_fstr(pinfo->cinfo, COL_INFO, "-QueryVersion");
13895 
13896  REPLY(reply);
13897  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
13898  *offsetp += 1;
13899  sequence_number = tvb_get_guint16(tvb, *offsetp, byte_order);
13900  proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
13901  "%d (shape-QueryVersion)", sequence_number);
13902  *offsetp += 2;
13903  proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
13904  *offsetp += 4;
13905  proto_tree_add_item(t, hf_x11_shape_QueryVersion_reply_major_version, tvb, *offsetp, 2, byte_order);
13906  *offsetp += 2;
13907  proto_tree_add_item(t, hf_x11_shape_QueryVersion_reply_minor_version, tvb, *offsetp, 2, byte_order);
13908  *offsetp += 2;
13909 }
13910 
13911 static void shapeRectangles(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
13912 {
13913  field8(tvb, offsetp, t, hf_x11_shape_Rectangles_operation, byte_order);
13914  field8(tvb, offsetp, t, hf_x11_shape_Rectangles_destination_kind, byte_order);
13915  field8(tvb, offsetp, t, hf_x11_shape_Rectangles_ordering, byte_order);
13916  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
13917  *offsetp += 1;
13918  proto_tree_add_item(t, hf_x11_shape_Rectangles_destination_window, tvb, *offsetp, 4, byte_order);
13919  *offsetp += 4;
13920  proto_tree_add_item(t, hf_x11_shape_Rectangles_x_offset, tvb, *offsetp, 2, byte_order);
13921  *offsetp += 2;
13922  proto_tree_add_item(t, hf_x11_shape_Rectangles_y_offset, tvb, *offsetp, 2, byte_order);
13923  *offsetp += 2;
13924  struct_xproto_RECTANGLE(tvb, offsetp, t, byte_order, (length - 16) / 8);
13925 }
13926 
13927 static void shapeMask(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
13928 {
13929  field8(tvb, offsetp, t, hf_x11_shape_Mask_operation, byte_order);
13930  field8(tvb, offsetp, t, hf_x11_shape_Mask_destination_kind, byte_order);
13931  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 2, ENC_NA);
13932  *offsetp += 2;
13933  proto_tree_add_item(t, hf_x11_shape_Mask_destination_window, tvb, *offsetp, 4, byte_order);
13934  *offsetp += 4;
13935  proto_tree_add_item(t, hf_x11_shape_Mask_x_offset, tvb, *offsetp, 2, byte_order);
13936  *offsetp += 2;
13937  proto_tree_add_item(t, hf_x11_shape_Mask_y_offset, tvb, *offsetp, 2, byte_order);
13938  *offsetp += 2;
13939  field32(tvb, offsetp, t, hf_x11_shape_Mask_source_bitmap, byte_order);
13940 }
13941 
13942 static void shapeCombine(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
13943 {
13944  field8(tvb, offsetp, t, hf_x11_shape_Combine_operation, byte_order);
13945  field8(tvb, offsetp, t, hf_x11_shape_Combine_destination_kind, byte_order);
13946  field8(tvb, offsetp, t, hf_x11_shape_Combine_source_kind, byte_order);
13947  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
13948  *offsetp += 1;
13949  proto_tree_add_item(t, hf_x11_shape_Combine_destination_window, tvb, *offsetp, 4, byte_order);
13950  *offsetp += 4;
13951  proto_tree_add_item(t, hf_x11_shape_Combine_x_offset, tvb, *offsetp, 2, byte_order);
13952  *offsetp += 2;
13953  proto_tree_add_item(t, hf_x11_shape_Combine_y_offset, tvb, *offsetp, 2, byte_order);
13954  *offsetp += 2;
13955  proto_tree_add_item(t, hf_x11_shape_Combine_source_window, tvb, *offsetp, 4, byte_order);
13956  *offsetp += 4;
13957 }
13958 
13959 static void shapeOffset(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
13960 {
13961  field8(tvb, offsetp, t, hf_x11_shape_Offset_destination_kind, byte_order);
13962  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 3, ENC_NA);
13963  *offsetp += 3;
13964  proto_tree_add_item(t, hf_x11_shape_Offset_destination_window, tvb, *offsetp, 4, byte_order);
13965  *offsetp += 4;
13966  proto_tree_add_item(t, hf_x11_shape_Offset_x_offset, tvb, *offsetp, 2, byte_order);
13967  *offsetp += 2;
13968  proto_tree_add_item(t, hf_x11_shape_Offset_y_offset, tvb, *offsetp, 2, byte_order);
13969  *offsetp += 2;
13970 }
13971 
13972 static void shapeQueryExtents(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
13973 {
13974  proto_tree_add_item(t, hf_x11_shape_QueryExtents_destination_window, tvb, *offsetp, 4, byte_order);
13975  *offsetp += 4;
13976 }
13977 static void shapeQueryExtents_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
13978 {
13979  int sequence_number;
13980 
13981  col_append_fstr(pinfo->cinfo, COL_INFO, "-QueryExtents");
13982 
13983  REPLY(reply);
13984  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
13985  *offsetp += 1;
13986  sequence_number = tvb_get_guint16(tvb, *offsetp, byte_order);
13987  proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
13988  "%d (shape-QueryExtents)", sequence_number);
13989  *offsetp += 2;
13990  proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
13991  *offsetp += 4;
13992  proto_tree_add_item(t, hf_x11_shape_QueryExtents_reply_bounding_shaped, tvb, *offsetp, 1, byte_order);
13993  *offsetp += 1;
13994  proto_tree_add_item(t, hf_x11_shape_QueryExtents_reply_clip_shaped, tvb, *offsetp, 1, byte_order);
13995  *offsetp += 1;
13996  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 2, ENC_NA);
13997  *offsetp += 2;
13998  proto_tree_add_item(t, hf_x11_shape_QueryExtents_reply_bounding_shape_extents_x, tvb, *offsetp, 2, byte_order);
13999  *offsetp += 2;
14000  proto_tree_add_item(t, hf_x11_shape_QueryExtents_reply_bounding_shape_extents_y, tvb, *offsetp, 2, byte_order);
14001  *offsetp += 2;
14002  proto_tree_add_item(t, hf_x11_shape_QueryExtents_reply_bounding_shape_extents_width, tvb, *offsetp, 2, byte_order);
14003  *offsetp += 2;
14004  proto_tree_add_item(t, hf_x11_shape_QueryExtents_reply_bounding_shape_extents_height, tvb, *offsetp, 2, byte_order);
14005  *offsetp += 2;
14006  proto_tree_add_item(t, hf_x11_shape_QueryExtents_reply_clip_shape_extents_x, tvb, *offsetp, 2, byte_order);
14007  *offsetp += 2;
14008  proto_tree_add_item(t, hf_x11_shape_QueryExtents_reply_clip_shape_extents_y, tvb, *offsetp, 2, byte_order);
14009  *offsetp += 2;
14010  proto_tree_add_item(t, hf_x11_shape_QueryExtents_reply_clip_shape_extents_width, tvb, *offsetp, 2, byte_order);
14011  *offsetp += 2;
14012  proto_tree_add_item(t, hf_x11_shape_QueryExtents_reply_clip_shape_extents_height, tvb, *offsetp, 2, byte_order);
14013  *offsetp += 2;
14014 }
14015 
14016 static void shapeSelectInput(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
14017 {
14018  proto_tree_add_item(t, hf_x11_shape_SelectInput_destination_window, tvb, *offsetp, 4, byte_order);
14019  *offsetp += 4;
14020  proto_tree_add_item(t, hf_x11_shape_SelectInput_enable, tvb, *offsetp, 1, byte_order);
14021  *offsetp += 1;
14022  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 3, ENC_NA);
14023  *offsetp += 3;
14024 }
14025 
14026 static void shapeInputSelected(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
14027 {
14028  proto_tree_add_item(t, hf_x11_shape_InputSelected_destination_window, tvb, *offsetp, 4, byte_order);
14029  *offsetp += 4;
14030 }
14031 static void shapeInputSelected_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
14032 {
14033  int sequence_number;
14034 
14035  col_append_fstr(pinfo->cinfo, COL_INFO, "-InputSelected");
14036 
14037  REPLY(reply);
14038  proto_tree_add_item(t, hf_x11_shape_InputSelected_reply_enabled, tvb, *offsetp, 1, byte_order);
14039  *offsetp += 1;
14040  sequence_number = tvb_get_guint16(tvb, *offsetp, byte_order);
14041  proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
14042  "%d (shape-InputSelected)", sequence_number);
14043  *offsetp += 2;
14044  proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
14045  *offsetp += 4;
14046 }
14047 
14048 static void shapeGetRectangles(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
14049 {
14050  proto_tree_add_item(t, hf_x11_shape_GetRectangles_window, tvb, *offsetp, 4, byte_order);
14051  *offsetp += 4;
14052  field8(tvb, offsetp, t, hf_x11_shape_GetRectangles_source_kind, byte_order);
14053  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 3, ENC_NA);
14054  *offsetp += 3;
14055 }
14056 static void shapeGetRectangles_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
14057 {
14058  int sequence_number;
14059  int f_rectangles_len;
14060 
14061  col_append_fstr(pinfo->cinfo, COL_INFO, "-GetRectangles");
14062 
14063  REPLY(reply);
14064  field8(tvb, offsetp, t, hf_x11_shape_GetRectangles_reply_ordering, byte_order);
14065  sequence_number = tvb_get_guint16(tvb, *offsetp, byte_order);
14066  proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
14067  "%d (shape-GetRectangles)", sequence_number);
14068  *offsetp += 2;
14069  proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
14070  *offsetp += 4;
14071  f_rectangles_len = tvb_get_guint32(tvb, *offsetp, byte_order);
14072  proto_tree_add_item(t, hf_x11_shape_GetRectangles_reply_rectangles_len, tvb, *offsetp, 4, byte_order);
14073  *offsetp += 4;
14074  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 20, ENC_NA);
14075  *offsetp += 20;
14076  struct_xproto_RECTANGLE(tvb, offsetp, t, byte_order, f_rectangles_len);
14077 }
14078 static const value_string shape_extension_minor[] = {
14079  { 0, "QueryVersion" },
14080  { 1, "Rectangles" },
14081  { 2, "Mask" },
14082  { 3, "Combine" },
14083  { 4, "Offset" },
14084  { 5, "QueryExtents" },
14085  { 6, "SelectInput" },
14086  { 7, "InputSelected" },
14087  { 8, "GetRectangles" },
14088  { 0, NULL }
14089 };
14090 const x11_event_info shape_events[] = {
14091  { NULL, NULL }
14092 };
14093 static x11_reply_info shape_replies[] = {
14094  { 0, shapeQueryVersion_Reply },
14095  { 5, shapeQueryExtents_Reply },
14096  { 7, shapeInputSelected_Reply },
14097  { 8, shapeGetRectangles_Reply },
14098  { 0, NULL }
14099 };
14100 
14101 static void dispatch_shape(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
14102 {
14103  int minor, length;
14104  minor = CARD8(shape_extension_minor);
14105  length = REQUEST_LENGTH();
14106 
14107  col_append_fstr(pinfo->cinfo, COL_INFO, "-%s",
14108  val_to_str(minor, shape_extension_minor,
14109  "<Unknown opcode %d>"));
14110  switch (minor) {
14111  case 0:
14112  shapeQueryVersion(tvb, pinfo, offsetp, t, byte_order, length);
14113  break;
14114  case 1:
14115  shapeRectangles(tvb, pinfo, offsetp, t, byte_order, length);
14116  break;
14117  case 2:
14118  shapeMask(tvb, pinfo, offsetp, t, byte_order, length);
14119  break;
14120  case 3:
14121  shapeCombine(tvb, pinfo, offsetp, t, byte_order, length);
14122  break;
14123  case 4:
14124  shapeOffset(tvb, pinfo, offsetp, t, byte_order, length);
14125  break;
14126  case 5:
14127  shapeQueryExtents(tvb, pinfo, offsetp, t, byte_order, length);
14128  break;
14129  case 6:
14130  shapeSelectInput(tvb, pinfo, offsetp, t, byte_order, length);
14131  break;
14132  case 7:
14133  shapeInputSelected(tvb, pinfo, offsetp, t, byte_order, length);
14134  break;
14135  case 8:
14136  shapeGetRectangles(tvb, pinfo, offsetp, t, byte_order, length);
14137  break;
14138  /* No need for a default case here, since Unknown is printed above,
14139  and UNDECODED() is taken care of by dissect_x11_request */
14140  }
14141 }
14142 
14143 static void register_shape(void)
14144 {
14145  set_handler("SHAPE", dispatch_shape, shape_errors, shape_events, NULL, shape_replies);
14146 }
14147 
14148 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_)
14149 {
14150 }
14151 static void shmQueryVersion_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
14152 {
14153  int sequence_number;
14154 
14155  col_append_fstr(pinfo->cinfo, COL_INFO, "-QueryVersion");
14156 
14157  REPLY(reply);
14158  proto_tree_add_item(t, hf_x11_shm_QueryVersion_reply_shared_pixmaps, tvb, *offsetp, 1, byte_order);
14159  *offsetp += 1;
14160  sequence_number = tvb_get_guint16(tvb, *offsetp, byte_order);
14161  proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
14162  "%d (shm-QueryVersion)", sequence_number);
14163  *offsetp += 2;
14164  proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
14165  *offsetp += 4;
14166  proto_tree_add_item(t, hf_x11_shm_QueryVersion_reply_major_version, tvb, *offsetp, 2, byte_order);
14167  *offsetp += 2;
14168  proto_tree_add_item(t, hf_x11_shm_QueryVersion_reply_minor_version, tvb, *offsetp, 2, byte_order);
14169  *offsetp += 2;
14170  proto_tree_add_item(t, hf_x11_shm_QueryVersion_reply_uid, tvb, *offsetp, 2, byte_order);
14171  *offsetp += 2;
14172  proto_tree_add_item(t, hf_x11_shm_QueryVersion_reply_gid, tvb, *offsetp, 2, byte_order);
14173  *offsetp += 2;
14174  proto_tree_add_item(t, hf_x11_shm_QueryVersion_reply_pixmap_format, tvb, *offsetp, 1, byte_order);
14175  *offsetp += 1;
14176  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 15, ENC_NA);
14177  *offsetp += 15;
14178 }
14179 
14180 static void shmAttach(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
14181 {
14182  proto_tree_add_item(t, hf_x11_shm_Attach_shmseg, tvb, *offsetp, 4, byte_order);
14183  *offsetp += 4;
14184  proto_tree_add_item(t, hf_x11_shm_Attach_shmid, tvb, *offsetp, 4, byte_order);
14185  *offsetp += 4;
14186  proto_tree_add_item(t, hf_x11_shm_Attach_read_only, tvb, *offsetp, 1, byte_order);
14187  *offsetp += 1;
14188  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 3, ENC_NA);
14189  *offsetp += 3;
14190 }
14191 
14192 static void shmDetach(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
14193 {
14194  proto_tree_add_item(t, hf_x11_shm_Detach_shmseg, tvb, *offsetp, 4, byte_order);
14195  *offsetp += 4;
14196 }
14197 
14198 static void shmPutImage(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
14199 {
14200  proto_tree_add_item(t, hf_x11_shm_PutImage_drawable, tvb, *offsetp, 4, byte_order);
14201  *offsetp += 4;
14202  proto_tree_add_item(t, hf_x11_shm_PutImage_gc, tvb, *offsetp, 4, byte_order);
14203  *offsetp += 4;
14204  proto_tree_add_item(t, hf_x11_shm_PutImage_total_width, tvb, *offsetp, 2, byte_order);
14205  *offsetp += 2;
14206  proto_tree_add_item(t, hf_x11_shm_PutImage_total_height, tvb, *offsetp, 2, byte_order);
14207  *offsetp += 2;
14208  proto_tree_add_item(t, hf_x11_shm_PutImage_src_x, tvb, *offsetp, 2, byte_order);
14209  *offsetp += 2;
14210  proto_tree_add_item(t, hf_x11_shm_PutImage_src_y, tvb, *offsetp, 2, byte_order);
14211  *offsetp += 2;
14212  proto_tree_add_item(t, hf_x11_shm_PutImage_src_width, tvb, *offsetp, 2, byte_order);
14213  *offsetp += 2;
14214  proto_tree_add_item(t, hf_x11_shm_PutImage_src_height, tvb, *offsetp, 2, byte_order);
14215  *offsetp += 2;
14216  proto_tree_add_item(t, hf_x11_shm_PutImage_dst_x, tvb, *offsetp, 2, byte_order);
14217  *offsetp += 2;
14218  proto_tree_add_item(t, hf_x11_shm_PutImage_dst_y, tvb, *offsetp, 2, byte_order);
14219  *offsetp += 2;
14220  proto_tree_add_item(t, hf_x11_shm_PutImage_depth, tvb, *offsetp, 1, byte_order);
14221  *offsetp += 1;
14222  proto_tree_add_item(t, hf_x11_shm_PutImage_format, tvb, *offsetp, 1, byte_order);
14223  *offsetp += 1;
14224  proto_tree_add_item(t, hf_x11_shm_PutImage_send_event, tvb, *offsetp, 1, byte_order);
14225  *offsetp += 1;
14226  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
14227  *offsetp += 1;
14228  proto_tree_add_item(t, hf_x11_shm_PutImage_shmseg, tvb, *offsetp, 4, byte_order);
14229  *offsetp += 4;
14230  proto_tree_add_item(t, hf_x11_shm_PutImage_offset, tvb, *offsetp, 4, byte_order);
14231  *offsetp += 4;
14232 }
14233 
14234 static void shmGetImage(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
14235 {
14236  proto_tree_add_item(t, hf_x11_shm_GetImage_drawable, tvb, *offsetp, 4, byte_order);
14237  *offsetp += 4;
14238  proto_tree_add_item(t, hf_x11_shm_GetImage_x, tvb, *offsetp, 2, byte_order);
14239  *offsetp += 2;
14240  proto_tree_add_item(t, hf_x11_shm_GetImage_y, tvb, *offsetp, 2, byte_order);
14241  *offsetp += 2;
14242  proto_tree_add_item(t, hf_x11_shm_GetImage_width, tvb, *offsetp, 2, byte_order);
14243  *offsetp += 2;
14244  proto_tree_add_item(t, hf_x11_shm_GetImage_height, tvb, *offsetp, 2, byte_order);
14245  *offsetp += 2;
14246  proto_tree_add_item(t, hf_x11_shm_GetImage_plane_mask, tvb, *offsetp, 4, byte_order);
14247  *offsetp += 4;
14248  proto_tree_add_item(t, hf_x11_shm_GetImage_format, tvb, *offsetp, 1, byte_order);
14249  *offsetp += 1;
14250  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 3, ENC_NA);
14251  *offsetp += 3;
14252  proto_tree_add_item(t, hf_x11_shm_GetImage_shmseg, tvb, *offsetp, 4, byte_order);
14253  *offsetp += 4;
14254  proto_tree_add_item(t, hf_x11_shm_GetImage_offset, tvb, *offsetp, 4, byte_order);
14255  *offsetp += 4;
14256 }
14257 static void shmGetImage_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
14258 {
14259  int sequence_number;
14260 
14261  col_append_fstr(pinfo->cinfo, COL_INFO, "-GetImage");
14262 
14263  REPLY(reply);
14264  proto_tree_add_item(t, hf_x11_shm_GetImage_reply_depth, tvb, *offsetp, 1, byte_order);
14265  *offsetp += 1;
14266  sequence_number = tvb_get_guint16(tvb, *offsetp, byte_order);
14267  proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
14268  "%d (shm-GetImage)", sequence_number);
14269  *offsetp += 2;
14270  proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
14271  *offsetp += 4;
14272  proto_tree_add_item(t, hf_x11_shm_GetImage_reply_visual, tvb, *offsetp, 4, byte_order);
14273  *offsetp += 4;
14274  proto_tree_add_item(t, hf_x11_shm_GetImage_reply_size, tvb, *offsetp, 4, byte_order);
14275  *offsetp += 4;
14276 }
14277 
14278 static void shmCreatePixmap(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
14279 {
14280  proto_tree_add_item(t, hf_x11_shm_CreatePixmap_pid, tvb, *offsetp, 4, byte_order);
14281  *offsetp += 4;
14282  proto_tree_add_item(t, hf_x11_shm_CreatePixmap_drawable, tvb, *offsetp, 4, byte_order);
14283  *offsetp += 4;
14284  proto_tree_add_item(t, hf_x11_shm_CreatePixmap_width, tvb, *offsetp, 2, byte_order);
14285  *offsetp += 2;
14286  proto_tree_add_item(t, hf_x11_shm_CreatePixmap_height, tvb, *offsetp, 2, byte_order);
14287  *offsetp += 2;
14288  proto_tree_add_item(t, hf_x11_shm_CreatePixmap_depth, tvb, *offsetp, 1, byte_order);
14289  *offsetp += 1;
14290  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 3, ENC_NA);
14291  *offsetp += 3;
14292  proto_tree_add_item(t, hf_x11_shm_CreatePixmap_shmseg, tvb, *offsetp, 4, byte_order);
14293  *offsetp += 4;
14294  proto_tree_add_item(t, hf_x11_shm_CreatePixmap_offset, tvb, *offsetp, 4, byte_order);
14295  *offsetp += 4;
14296 }
14297 
14298 static void shmAttachFd(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
14299 {
14300  proto_tree_add_item(t, hf_x11_shm_AttachFd_shmseg, tvb, *offsetp, 4, byte_order);
14301  *offsetp += 4;
14302  proto_tree_add_item(t, hf_x11_shm_AttachFd_read_only, tvb, *offsetp, 1, byte_order);
14303  *offsetp += 1;
14304  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 3, ENC_NA);
14305  *offsetp += 3;
14306 }
14307 
14308 static void shmCreateSegment(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
14309 {
14310  proto_tree_add_item(t, hf_x11_shm_CreateSegment_shmseg, tvb, *offsetp, 4, byte_order);
14311  *offsetp += 4;
14312  proto_tree_add_item(t, hf_x11_shm_CreateSegment_size, tvb, *offsetp, 4, byte_order);
14313  *offsetp += 4;
14314  proto_tree_add_item(t, hf_x11_shm_CreateSegment_read_only, tvb, *offsetp, 1, byte_order);
14315  *offsetp += 1;
14316  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 3, ENC_NA);
14317  *offsetp += 3;
14318 }
14319 static void shmCreateSegment_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
14320 {
14321  int sequence_number;
14322 
14323  col_append_fstr(pinfo->cinfo, COL_INFO, "-CreateSegment");
14324 
14325  REPLY(reply);
14326  proto_tree_add_item(t, hf_x11_shm_CreateSegment_reply_nfd, tvb, *offsetp, 1, byte_order);
14327  *offsetp += 1;
14328  sequence_number = tvb_get_guint16(tvb, *offsetp, byte_order);
14329  proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
14330  "%d (shm-CreateSegment)", sequence_number);
14331  *offsetp += 2;
14332  proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
14333  *offsetp += 4;
14334  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 24, ENC_NA);
14335  *offsetp += 24;
14336 }
14337 static const value_string shm_extension_minor[] = {
14338  { 0, "QueryVersion" },
14339  { 1, "Attach" },
14340  { 2, "Detach" },
14341  { 3, "PutImage" },
14342  { 4, "GetImage" },
14343  { 5, "CreatePixmap" },
14344  { 6, "AttachFd" },
14345  { 7, "CreateSegment" },
14346  { 0, NULL }
14347 };
14348 const x11_event_info shm_events[] = {
14349  { NULL, NULL }
14350 };
14351 static x11_reply_info shm_replies[] = {
14352  { 0, shmQueryVersion_Reply },
14353  { 4, shmGetImage_Reply },
14354  { 7, shmCreateSegment_Reply },
14355  { 0, NULL }
14356 };
14357 
14358 static void dispatch_shm(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
14359 {
14360  int minor, length;
14361  minor = CARD8(shm_extension_minor);
14362  length = REQUEST_LENGTH();
14363 
14364  col_append_fstr(pinfo->cinfo, COL_INFO, "-%s",
14365  val_to_str(minor, shm_extension_minor,
14366  "<Unknown opcode %d>"));
14367  switch (minor) {
14368  case 0:
14369  shmQueryVersion(tvb, pinfo, offsetp, t, byte_order, length);
14370  break;
14371  case 1:
14372  shmAttach(tvb, pinfo, offsetp, t, byte_order, length);
14373  break;
14374  case 2:
14375  shmDetach(tvb, pinfo, offsetp, t, byte_order, length);
14376  break;
14377  case 3:
14378  shmPutImage(tvb, pinfo, offsetp, t, byte_order, length);
14379  break;
14380  case 4:
14381  shmGetImage(tvb, pinfo, offsetp, t, byte_order, length);
14382  break;
14383  case 5:
14384  shmCreatePixmap(tvb, pinfo, offsetp, t, byte_order, length);
14385  break;
14386  case 6:
14387  shmAttachFd(tvb, pinfo, offsetp, t, byte_order, length);
14388  break;
14389  case 7:
14390  shmCreateSegment(tvb, pinfo, offsetp, t, byte_order, length);
14391  break;
14392  /* No need for a default case here, since Unknown is printed above,
14393  and UNDECODED() is taken care of by dissect_x11_request */
14394  }
14395 }
14396 
14397 static void register_shm(void)
14398 {
14399  set_handler("MIT-SHM", dispatch_shm, shm_errors, shm_events, NULL, shm_replies);
14400 }
14401 
14402 static void syncInitialize(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
14403 {
14404  proto_tree_add_item(t, hf_x11_sync_Initialize_desired_major_version, tvb, *offsetp, 1, byte_order);
14405  *offsetp += 1;
14406  proto_tree_add_item(t, hf_x11_sync_Initialize_desired_minor_version, tvb, *offsetp, 1, byte_order);
14407  *offsetp += 1;
14408 }
14409 static void syncInitialize_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
14410 {
14411  int sequence_number;
14412 
14413  col_append_fstr(pinfo->cinfo, COL_INFO, "-Initialize");
14414 
14415  REPLY(reply);
14416  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
14417  *offsetp += 1;
14418  sequence_number = tvb_get_guint16(tvb, *offsetp, byte_order);
14419  proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
14420  "%d (sync-Initialize)", sequence_number);
14421  *offsetp += 2;
14422  proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
14423  *offsetp += 4;
14424  proto_tree_add_item(t, hf_x11_sync_Initialize_reply_major_version, tvb, *offsetp, 1, byte_order);
14425  *offsetp += 1;
14426  proto_tree_add_item(t, hf_x11_sync_Initialize_reply_minor_version, tvb, *offsetp, 1, byte_order);
14427  *offsetp += 1;
14428  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 22, ENC_NA);
14429  *offsetp += 22;
14430 }
14431 
14432 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_)
14433 {
14434 }
14435 static void syncListSystemCounters_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
14436 {
14437  int sequence_number;
14438  int f_counters_len;
14439 
14440  col_append_fstr(pinfo->cinfo, COL_INFO, "-ListSystemCounters");
14441 
14442  REPLY(reply);
14443  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
14444  *offsetp += 1;
14445  sequence_number = tvb_get_guint16(tvb, *offsetp, byte_order);
14446  proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
14447  "%d (sync-ListSystemCounters)", sequence_number);
14448  *offsetp += 2;
14449  proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
14450  *offsetp += 4;
14451  f_counters_len = tvb_get_guint32(tvb, *offsetp, byte_order);
14452  proto_tree_add_item(t, hf_x11_sync_ListSystemCounters_reply_counters_len, tvb, *offsetp, 4, byte_order);
14453  *offsetp += 4;
14454  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 20, ENC_NA);
14455  *offsetp += 20;
14456  struct_sync_SYSTEMCOUNTER(tvb, offsetp, t, byte_order, f_counters_len);
14457 }
14458 
14459 static void syncCreateCounter(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
14460 {
14461  proto_tree_add_item(t, hf_x11_sync_CreateCounter_id, tvb, *offsetp, 4, byte_order);
14462  *offsetp += 4;
14463  struct_sync_INT64(tvb, offsetp, t, byte_order, 1);
14464 }
14465 
14466 static void syncDestroyCounter(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
14467 {
14468  proto_tree_add_item(t, hf_x11_sync_DestroyCounter_counter, tvb, *offsetp, 4, byte_order);
14469  *offsetp += 4;
14470 }
14471 
14472 static void syncQueryCounter(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
14473 {
14474  proto_tree_add_item(t, hf_x11_sync_QueryCounter_counter, tvb, *offsetp, 4, byte_order);
14475  *offsetp += 4;
14476 }
14477 static void syncQueryCounter_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
14478 {
14479  int sequence_number;
14480 
14481  col_append_fstr(pinfo->cinfo, COL_INFO, "-QueryCounter");
14482 
14483  REPLY(reply);
14484  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
14485  *offsetp += 1;
14486  sequence_number = tvb_get_guint16(tvb, *offsetp, byte_order);
14487  proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
14488  "%d (sync-QueryCounter)", sequence_number);
14489  *offsetp += 2;
14490  proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
14491  *offsetp += 4;
14492  struct_sync_INT64(tvb, offsetp, t, byte_order, 1);
14493 }
14494 
14495 static void syncAwait(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
14496 {
14497  struct_sync_WAITCONDITION(tvb, offsetp, t, byte_order, (length - 4) / 28);
14498 }
14499 
14500 static void syncChangeCounter(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
14501 {
14502  proto_tree_add_item(t, hf_x11_sync_ChangeCounter_counter, tvb, *offsetp, 4, byte_order);
14503  *offsetp += 4;
14504  struct_sync_INT64(tvb, offsetp, t, byte_order, 1);
14505 }
14506 
14507 static void syncSetCounter(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
14508 {
14509  proto_tree_add_item(t, hf_x11_sync_SetCounter_counter, tvb, *offsetp, 4, byte_order);
14510  *offsetp += 4;
14511  struct_sync_INT64(tvb, offsetp, t, byte_order, 1);
14512 }
14513 
14514 static void syncCreateAlarm(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
14515 {
14516  int f_value_mask;
14517  proto_tree_add_item(t, hf_x11_sync_CreateAlarm_id, tvb, *offsetp, 4, byte_order);
14518  *offsetp += 4;
14519  f_value_mask = tvb_get_guint32(tvb, *offsetp, byte_order);
14520  {
14521  const int* value_mask_bits [] = {
14522  &hf_x11_sync_CreateAlarm_value_mask_mask_Counter,
14523  &hf_x11_sync_CreateAlarm_value_mask_mask_ValueType,
14524  &hf_x11_sync_CreateAlarm_value_mask_mask_Value,
14525  &hf_x11_sync_CreateAlarm_value_mask_mask_TestType,
14526  &hf_x11_sync_CreateAlarm_value_mask_mask_Delta,
14527  &hf_x11_sync_CreateAlarm_value_mask_mask_Events,
14528  NULL
14529  };
14530  proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_sync_CreateAlarm_value_mask, ett_x11_rectangle, value_mask_bits, byte_order);
14531  }
14532  *offsetp += 4;
14533  if (f_value_mask & (1U << 0)) {
14534  proto_tree_add_item(t, hf_x11_sync_CreateAlarm_Counter_counter, tvb, *offsetp, 4, byte_order);
14535  *offsetp += 4;
14536  }
14537  if (f_value_mask & (1U << 1)) {
14538  field32(tvb, offsetp, t, hf_x11_sync_CreateAlarm_ValueType_valueType, byte_order);
14539  }
14540  if (f_value_mask & (1U << 2)) {
14541  struct_sync_INT64(tvb, offsetp, t, byte_order, 1);
14542  }
14543  if (f_value_mask & (1U << 3)) {
14544  field32(tvb, offsetp, t, hf_x11_sync_CreateAlarm_TestType_testType, byte_order);
14545  }
14546  if (f_value_mask & (1U << 4)) {
14547  struct_sync_INT64(tvb, offsetp, t, byte_order, 1);
14548  }
14549  if (f_value_mask & (1U << 5)) {
14550  proto_tree_add_item(t, hf_x11_sync_CreateAlarm_Events_events, tvb, *offsetp, 4, byte_order);
14551  *offsetp += 4;
14552  }
14553 }
14554 
14555 static void syncChangeAlarm(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
14556 {
14557  int f_value_mask;
14558  proto_tree_add_item(t, hf_x11_sync_ChangeAlarm_id, tvb, *offsetp, 4, byte_order);
14559  *offsetp += 4;
14560  f_value_mask = tvb_get_guint32(tvb, *offsetp, byte_order);
14561  {
14562  const int* value_mask_bits [] = {
14563  &hf_x11_sync_ChangeAlarm_value_mask_mask_Counter,
14564  &hf_x11_sync_ChangeAlarm_value_mask_mask_ValueType,
14565  &hf_x11_sync_ChangeAlarm_value_mask_mask_Value,
14566  &hf_x11_sync_ChangeAlarm_value_mask_mask_TestType,
14567  &hf_x11_sync_ChangeAlarm_value_mask_mask_Delta,
14568  &hf_x11_sync_ChangeAlarm_value_mask_mask_Events,
14569  NULL
14570  };
14571  proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_sync_ChangeAlarm_value_mask, ett_x11_rectangle, value_mask_bits, byte_order);
14572  }
14573  *offsetp += 4;
14574  if (f_value_mask & (1U << 0)) {
14575  proto_tree_add_item(t, hf_x11_sync_ChangeAlarm_Counter_counter, tvb, *offsetp, 4, byte_order);
14576  *offsetp += 4;
14577  }
14578  if (f_value_mask & (1U << 1)) {
14579  field32(tvb, offsetp, t, hf_x11_sync_ChangeAlarm_ValueType_valueType, byte_order);
14580  }
14581  if (f_value_mask & (1U << 2)) {
14582  struct_sync_INT64(tvb, offsetp, t, byte_order, 1);
14583  }
14584  if (f_value_mask & (1U << 3)) {
14585  field32(tvb, offsetp, t, hf_x11_sync_ChangeAlarm_TestType_testType, byte_order);
14586  }
14587  if (f_value_mask & (1U << 4)) {
14588  struct_sync_INT64(tvb, offsetp, t, byte_order, 1);
14589  }
14590  if (f_value_mask & (1U << 5)) {
14591  proto_tree_add_item(t, hf_x11_sync_ChangeAlarm_Events_events, tvb, *offsetp, 4, byte_order);
14592  *offsetp += 4;
14593  }
14594 }
14595 
14596 static void syncDestroyAlarm(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
14597 {
14598  proto_tree_add_item(t, hf_x11_sync_DestroyAlarm_alarm, tvb, *offsetp, 4, byte_order);
14599  *offsetp += 4;
14600 }
14601 
14602 static void syncQueryAlarm(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
14603 {
14604  proto_tree_add_item(t, hf_x11_sync_QueryAlarm_alarm, tvb, *offsetp, 4, byte_order);
14605  *offsetp += 4;
14606 }
14607 static void syncQueryAlarm_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
14608 {
14609  int sequence_number;
14610 
14611  col_append_fstr(pinfo->cinfo, COL_INFO, "-QueryAlarm");
14612 
14613  REPLY(reply);
14614  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
14615  *offsetp += 1;
14616  sequence_number = tvb_get_guint16(tvb, *offsetp, byte_order);
14617  proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
14618  "%d (sync-QueryAlarm)", sequence_number);
14619  *offsetp += 2;
14620  proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
14621  *offsetp += 4;
14622  struct_sync_TRIGGER(tvb, offsetp, t, byte_order, 1);
14623  struct_sync_INT64(tvb, offsetp, t, byte_order, 1);
14624  proto_tree_add_item(t, hf_x11_sync_QueryAlarm_reply_events, tvb, *offsetp, 1, byte_order);
14625  *offsetp += 1;
14626  field8(tvb, offsetp, t, hf_x11_sync_QueryAlarm_reply_state, byte_order);
14627  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 2, ENC_NA);
14628  *offsetp += 2;
14629 }
14630 
14631 static void syncSetPriority(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
14632 {
14633  proto_tree_add_item(t, hf_x11_sync_SetPriority_id, tvb, *offsetp, 4, byte_order);
14634  *offsetp += 4;
14635  proto_tree_add_item(t, hf_x11_sync_SetPriority_priority, tvb, *offsetp, 4, byte_order);
14636  *offsetp += 4;
14637 }
14638 
14639 static void syncGetPriority(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
14640 {
14641  proto_tree_add_item(t, hf_x11_sync_GetPriority_id, tvb, *offsetp, 4, byte_order);
14642  *offsetp += 4;
14643 }
14644 static void syncGetPriority_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
14645 {
14646  int sequence_number;
14647 
14648  col_append_fstr(pinfo->cinfo, COL_INFO, "-GetPriority");
14649 
14650  REPLY(reply);
14651  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
14652  *offsetp += 1;
14653  sequence_number = tvb_get_guint16(tvb, *offsetp, byte_order);
14654  proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
14655  "%d (sync-GetPriority)", sequence_number);
14656  *offsetp += 2;
14657  proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
14658  *offsetp += 4;
14659  proto_tree_add_item(t, hf_x11_sync_GetPriority_reply_priority, tvb, *offsetp, 4, byte_order);
14660  *offsetp += 4;
14661 }
14662 
14663 static void syncCreateFence(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
14664 {
14665  proto_tree_add_item(t, hf_x11_sync_CreateFence_drawable, tvb, *offsetp, 4, byte_order);
14666  *offsetp += 4;
14667  proto_tree_add_item(t, hf_x11_sync_CreateFence_fence, tvb, *offsetp, 4, byte_order);
14668  *offsetp += 4;
14669  proto_tree_add_item(t, hf_x11_sync_CreateFence_initially_triggered, tvb, *offsetp, 1, byte_order);
14670  *offsetp += 1;
14671 }
14672 
14673 static void syncTriggerFence(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
14674 {
14675  proto_tree_add_item(t, hf_x11_sync_TriggerFence_fence, tvb, *offsetp, 4, byte_order);
14676  *offsetp += 4;
14677 }
14678 
14679 static void syncResetFence(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
14680 {
14681  proto_tree_add_item(t, hf_x11_sync_ResetFence_fence, tvb, *offsetp, 4, byte_order);
14682  *offsetp += 4;
14683 }
14684 
14685 static void syncDestroyFence(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
14686 {
14687  proto_tree_add_item(t, hf_x11_sync_DestroyFence_fence, tvb, *offsetp, 4, byte_order);
14688  *offsetp += 4;
14689 }
14690 
14691 static void syncQueryFence(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
14692 {
14693  proto_tree_add_item(t, hf_x11_sync_QueryFence_fence, tvb, *offsetp, 4, byte_order);
14694  *offsetp += 4;
14695 }
14696 static void syncQueryFence_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
14697 {
14698  int sequence_number;
14699 
14700  col_append_fstr(pinfo->cinfo, COL_INFO, "-QueryFence");
14701 
14702  REPLY(reply);
14703  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
14704  *offsetp += 1;
14705  sequence_number = tvb_get_guint16(tvb, *offsetp, byte_order);
14706  proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
14707  "%d (sync-QueryFence)", sequence_number);
14708  *offsetp += 2;
14709  proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
14710  *offsetp += 4;
14711  proto_tree_add_item(t, hf_x11_sync_QueryFence_reply_triggered, tvb, *offsetp, 1, byte_order);
14712  *offsetp += 1;
14713  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 23, ENC_NA);
14714  *offsetp += 23;
14715 }
14716 
14717 static void syncAwaitFence(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
14718 {
14719  listOfCard32(tvb, offsetp, t, hf_x11_sync_AwaitFence_fence_list, hf_x11_sync_AwaitFence_fence_list_item, (length - 4) / 4, byte_order);
14720 }
14721 
14722 static void syncAlarmNotify(tvbuff_t *tvb, int *offsetp, proto_tree *t, guint byte_order)
14723 {
14724  proto_tree_add_item(t, hf_x11_sync_AlarmNotify_kind, tvb, *offsetp, 1, byte_order);
14725  *offsetp += 1;
14726  CARD16(event_sequencenumber);
14727  proto_tree_add_item(t, hf_x11_sync_AlarmNotify_alarm, tvb, *offsetp, 4, byte_order);
14728  *offsetp += 4;
14729  struct_sync_INT64(tvb, offsetp, t, byte_order, 1);
14730  struct_sync_INT64(tvb, offsetp, t, byte_order, 1);
14731  proto_tree_add_item(t, hf_x11_sync_AlarmNotify_timestamp, tvb, *offsetp, 4, byte_order);
14732  *offsetp += 4;
14733  field8(tvb, offsetp, t, hf_x11_sync_AlarmNotify_state, byte_order);
14734  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 3, ENC_NA);
14735  *offsetp += 3;
14736 }
14737 
14738 static const value_string sync_extension_minor[] = {
14739  { 0, "Initialize" },
14740  { 1, "ListSystemCounters" },
14741  { 2, "CreateCounter" },
14742  { 3, "SetCounter" },
14743  { 4, "ChangeCounter" },
14744  { 5, "QueryCounter" },
14745  { 6, "DestroyCounter" },
14746  { 7, "Await" },
14747  { 8, "CreateAlarm" },
14748  { 9, "ChangeAlarm" },
14749  { 10, "QueryAlarm" },
14750  { 11, "DestroyAlarm" },
14751  { 12, "SetPriority" },
14752  { 13, "GetPriority" },
14753  { 14, "CreateFence" },
14754  { 15, "TriggerFence" },
14755  { 16, "ResetFence" },
14756  { 17, "DestroyFence" },
14757  { 18, "QueryFence" },
14758  { 19, "AwaitFence" },
14759  { 0, NULL }
14760 };
14761 const x11_event_info sync_events[] = {
14762  { "sync-AlarmNotify", syncAlarmNotify },
14763  { NULL, NULL }
14764 };
14765 static x11_reply_info sync_replies[] = {
14766  { 0, syncInitialize_Reply },
14767  { 1, syncListSystemCounters_Reply },
14768  { 5, syncQueryCounter_Reply },
14769  { 10, syncQueryAlarm_Reply },
14770  { 13, syncGetPriority_Reply },
14771  { 18, syncQueryFence_Reply },
14772  { 0, NULL }
14773 };
14774 
14775 static void dispatch_sync(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
14776 {
14777  int minor, length;
14778  minor = CARD8(sync_extension_minor);
14779  length = REQUEST_LENGTH();
14780 
14781  col_append_fstr(pinfo->cinfo, COL_INFO, "-%s",
14782  val_to_str(minor, sync_extension_minor,
14783  "<Unknown opcode %d>"));
14784  switch (minor) {
14785  case 0:
14786  syncInitialize(tvb, pinfo, offsetp, t, byte_order, length);
14787  break;
14788  case 1:
14789  syncListSystemCounters(tvb, pinfo, offsetp, t, byte_order, length);
14790  break;
14791  case 2:
14792  syncCreateCounter(tvb, pinfo, offsetp, t, byte_order, length);
14793  break;
14794  case 3:
14795  syncSetCounter(tvb, pinfo, offsetp, t, byte_order, length);
14796  break;
14797  case 4:
14798  syncChangeCounter(tvb, pinfo, offsetp, t, byte_order, length);
14799  break;
14800  case 5:
14801  syncQueryCounter(tvb, pinfo, offsetp, t, byte_order, length);
14802  break;
14803  case 6:
14804  syncDestroyCounter(tvb, pinfo, offsetp, t, byte_order, length);
14805  break;
14806  case 7:
14807  syncAwait(tvb, pinfo, offsetp, t, byte_order, length);
14808  break;
14809  case 8:
14810  syncCreateAlarm(tvb, pinfo, offsetp, t, byte_order, length);
14811  break;
14812  case 9:
14813  syncChangeAlarm(tvb, pinfo, offsetp, t, byte_order, length);
14814  break;
14815  case 10:
14816  syncQueryAlarm(tvb, pinfo, offsetp, t, byte_order, length);
14817  break;
14818  case 11:
14819  syncDestroyAlarm(tvb, pinfo, offsetp, t, byte_order, length);
14820  break;
14821  case 12:
14822  syncSetPriority(tvb, pinfo, offsetp, t, byte_order, length);
14823  break;
14824  case 13:
14825  syncGetPriority(tvb, pinfo, offsetp, t, byte_order, length);
14826  break;
14827  case 14:
14828  syncCreateFence(tvb, pinfo, offsetp, t, byte_order, length);
14829  break;
14830  case 15:
14831  syncTriggerFence(tvb, pinfo, offsetp, t, byte_order, length);
14832  break;
14833  case 16:
14834  syncResetFence(tvb, pinfo, offsetp, t, byte_order, length);
14835  break;
14836  case 17:
14837  syncDestroyFence(tvb, pinfo, offsetp, t, byte_order, length);
14838  break;
14839  case 18:
14840  syncQueryFence(tvb, pinfo, offsetp, t, byte_order, length);
14841  break;
14842  case 19:
14843  syncAwaitFence(tvb, pinfo, offsetp, t, byte_order, length);
14844  break;
14845  /* No need for a default case here, since Unknown is printed above,
14846  and UNDECODED() is taken care of by dissect_x11_request */
14847  }
14848 }
14849 
14850 static void register_sync(void)
14851 {
14852  set_handler("SYNC", dispatch_sync, sync_errors, sync_events, NULL, sync_replies);
14853 }
14854 
14855 static void xc_miscGetVersion(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
14856 {
14857  proto_tree_add_item(t, hf_x11_xc_misc_GetVersion_client_major_version, tvb, *offsetp, 2, byte_order);
14858  *offsetp += 2;
14859  proto_tree_add_item(t, hf_x11_xc_misc_GetVersion_client_minor_version, tvb, *offsetp, 2, byte_order);
14860  *offsetp += 2;
14861 }
14862 static void xc_miscGetVersion_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
14863 {
14864  int sequence_number;
14865 
14866  col_append_fstr(pinfo->cinfo, COL_INFO, "-GetVersion");
14867 
14868  REPLY(reply);
14869  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
14870  *offsetp += 1;
14871  sequence_number = tvb_get_guint16(tvb, *offsetp, byte_order);
14872  proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
14873  "%d (xc_misc-GetVersion)", sequence_number);
14874  *offsetp += 2;
14875  proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
14876  *offsetp += 4;
14877  proto_tree_add_item(t, hf_x11_xc_misc_GetVersion_reply_server_major_version, tvb, *offsetp, 2, byte_order);
14878  *offsetp += 2;
14879  proto_tree_add_item(t, hf_x11_xc_misc_GetVersion_reply_server_minor_version, tvb, *offsetp, 2, byte_order);
14880  *offsetp += 2;
14881 }
14882 
14883 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_)
14884 {
14885 }
14886 static void xc_miscGetXIDRange_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
14887 {
14888  int sequence_number;
14889 
14890  col_append_fstr(pinfo->cinfo, COL_INFO, "-GetXIDRange");
14891 
14892  REPLY(reply);
14893  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
14894  *offsetp += 1;
14895  sequence_number = tvb_get_guint16(tvb, *offsetp, byte_order);
14896  proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
14897  "%d (xc_misc-GetXIDRange)", sequence_number);
14898  *offsetp += 2;
14899  proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
14900  *offsetp += 4;
14901  proto_tree_add_item(t, hf_x11_xc_misc_GetXIDRange_reply_start_id, tvb, *offsetp, 4, byte_order);
14902  *offsetp += 4;
14903  proto_tree_add_item(t, hf_x11_xc_misc_GetXIDRange_reply_count, tvb, *offsetp, 4, byte_order);
14904  *offsetp += 4;
14905 }
14906 
14907 static void xc_miscGetXIDList(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
14908 {
14909  proto_tree_add_item(t, hf_x11_xc_misc_GetXIDList_count, tvb, *offsetp, 4, byte_order);
14910  *offsetp += 4;
14911 }
14912 static void xc_miscGetXIDList_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
14913 {
14914  int sequence_number;
14915  int f_ids_len;
14916 
14917  col_append_fstr(pinfo->cinfo, COL_INFO, "-GetXIDList");
14918 
14919  REPLY(reply);
14920  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
14921  *offsetp += 1;
14922  sequence_number = tvb_get_guint16(tvb, *offsetp, byte_order);
14923  proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
14924  "%d (xc_misc-GetXIDList)", sequence_number);
14925  *offsetp += 2;
14926  proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
14927  *offsetp += 4;
14928  f_ids_len = tvb_get_guint32(tvb, *offsetp, byte_order);
14929  proto_tree_add_item(t, hf_x11_xc_misc_GetXIDList_reply_ids_len, tvb, *offsetp, 4, byte_order);
14930  *offsetp += 4;
14931  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 20, ENC_NA);
14932  *offsetp += 20;
14933  listOfCard32(tvb, offsetp, t, hf_x11_xc_misc_GetXIDList_reply_ids, hf_x11_xc_misc_GetXIDList_reply_ids_item, f_ids_len, byte_order);
14934 }
14935 static const value_string xc_misc_extension_minor[] = {
14936  { 0, "GetVersion" },
14937  { 1, "GetXIDRange" },
14938  { 2, "GetXIDList" },
14939  { 0, NULL }
14940 };
14941 const x11_event_info xc_misc_events[] = {
14942  { NULL, NULL }
14943 };
14944 static x11_reply_info xc_misc_replies[] = {
14945  { 0, xc_miscGetVersion_Reply },
14946  { 1, xc_miscGetXIDRange_Reply },
14947  { 2, xc_miscGetXIDList_Reply },
14948  { 0, NULL }
14949 };
14950 
14951 static void dispatch_xc_misc(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
14952 {
14953  int minor, length;
14954  minor = CARD8(xc_misc_extension_minor);
14955  length = REQUEST_LENGTH();
14956 
14957  col_append_fstr(pinfo->cinfo, COL_INFO, "-%s",
14958  val_to_str(minor, xc_misc_extension_minor,
14959  "<Unknown opcode %d>"));
14960  switch (minor) {
14961  case 0:
14962  xc_miscGetVersion(tvb, pinfo, offsetp, t, byte_order, length);
14963  break;
14964  case 1:
14965  xc_miscGetXIDRange(tvb, pinfo, offsetp, t, byte_order, length);
14966  break;
14967  case 2:
14968  xc_miscGetXIDList(tvb, pinfo, offsetp, t, byte_order, length);
14969  break;
14970  /* No need for a default case here, since Unknown is printed above,
14971  and UNDECODED() is taken care of by dissect_x11_request */
14972  }
14973 }
14974 
14975 static void register_xc_misc(void)
14976 {
14977  set_handler("XC-MISC", dispatch_xc_misc, xc_misc_errors, xc_misc_events, NULL, xc_misc_replies);
14978 }
14979 
14980 static void xevieQueryVersion(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
14981 {
14982  proto_tree_add_item(t, hf_x11_xevie_QueryVersion_client_major_version, tvb, *offsetp, 2, byte_order);
14983  *offsetp += 2;
14984  proto_tree_add_item(t, hf_x11_xevie_QueryVersion_client_minor_version, tvb, *offsetp, 2, byte_order);
14985  *offsetp += 2;
14986 }
14987 static void xevieQueryVersion_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
14988 {
14989  int sequence_number;
14990 
14991  col_append_fstr(pinfo->cinfo, COL_INFO, "-QueryVersion");
14992 
14993  REPLY(reply);
14994  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
14995  *offsetp += 1;
14996  sequence_number = tvb_get_guint16(tvb, *offsetp, byte_order);
14997  proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
14998  "%d (xevie-QueryVersion)", sequence_number);
14999  *offsetp += 2;
15000  proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
15001  *offsetp += 4;
15002  proto_tree_add_item(t, hf_x11_xevie_QueryVersion_reply_server_major_version, tvb, *offsetp, 2, byte_order);
15003  *offsetp += 2;
15004  proto_tree_add_item(t, hf_x11_xevie_QueryVersion_reply_server_minor_version, tvb, *offsetp, 2, byte_order);
15005  *offsetp += 2;
15006  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 20, ENC_NA);
15007  *offsetp += 20;
15008 }
15009 
15010 static void xevieStart(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
15011 {
15012  proto_tree_add_item(t, hf_x11_xevie_Start_screen, tvb, *offsetp, 4, byte_order);
15013  *offsetp += 4;
15014 }
15015 static void xevieStart_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
15016 {
15017  int sequence_number;
15018 
15019  col_append_fstr(pinfo->cinfo, COL_INFO, "-Start");
15020 
15021  REPLY(reply);
15022  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
15023  *offsetp += 1;
15024  sequence_number = tvb_get_guint16(tvb, *offsetp, byte_order);
15025  proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
15026  "%d (xevie-Start)", sequence_number);
15027  *offsetp += 2;
15028  proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
15029  *offsetp += 4;
15030  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 24, ENC_NA);
15031  *offsetp += 24;
15032 }
15033 
15034 static void xevieEnd(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
15035 {
15036  proto_tree_add_item(t, hf_x11_xevie_End_cmap, tvb, *offsetp, 4, byte_order);
15037  *offsetp += 4;
15038 }
15039 static void xevieEnd_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
15040 {
15041  int sequence_number;
15042 
15043  col_append_fstr(pinfo->cinfo, COL_INFO, "-End");
15044 
15045  REPLY(reply);
15046  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
15047  *offsetp += 1;
15048  sequence_number = tvb_get_guint16(tvb, *offsetp, byte_order);
15049  proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
15050  "%d (xevie-End)", sequence_number);
15051  *offsetp += 2;
15052  proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
15053  *offsetp += 4;
15054  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 24, ENC_NA);
15055  *offsetp += 24;
15056 }
15057 
15058 static void struct_xevie_Event(tvbuff_t *tvb, int *offsetp, proto_tree *root, guint byte_order _U_, int count)
15059 {
15060  int i;
15061  for (i = 0; i < count; i++) {
15062  proto_item *item;
15063  proto_tree *t;
15064 
15065  item = proto_tree_add_item(root, hf_x11_struct_xevie_Event, tvb, *offsetp, 32, ENC_NA);
15066  t = proto_item_add_subtree(item, ett_x11_rectangle);
15067  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 32, ENC_NA);
15068  *offsetp += 32;
15069  }
15070 }
15071 
15072 static void xevieSend(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
15073 {
15074  struct_xevie_Event(tvb, offsetp, t, byte_order, 1);
15075  proto_tree_add_item(t, hf_x11_xevie_Send_data_type, tvb, *offsetp, 4, byte_order);
15076  *offsetp += 4;
15077  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 64, ENC_NA);
15078  *offsetp += 64;
15079 }
15080 static void xevieSend_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
15081 {
15082  int sequence_number;
15083 
15084  col_append_fstr(pinfo->cinfo, COL_INFO, "-Send");
15085 
15086  REPLY(reply);
15087  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
15088  *offsetp += 1;
15089  sequence_number = tvb_get_guint16(tvb, *offsetp, byte_order);
15090  proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
15091  "%d (xevie-Send)", sequence_number);
15092  *offsetp += 2;
15093  proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
15094  *offsetp += 4;
15095  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 24, ENC_NA);
15096  *offsetp += 24;
15097 }
15098 
15099 static void xevieSelectInput(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
15100 {
15101  proto_tree_add_item(t, hf_x11_xevie_SelectInput_event_mask, tvb, *offsetp, 4, byte_order);
15102  *offsetp += 4;
15103 }
15104 static void xevieSelectInput_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
15105 {
15106  int sequence_number;
15107 
15108  col_append_fstr(pinfo->cinfo, COL_INFO, "-SelectInput");
15109 
15110  REPLY(reply);
15111  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
15112  *offsetp += 1;
15113  sequence_number = tvb_get_guint16(tvb, *offsetp, byte_order);
15114  proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
15115  "%d (xevie-SelectInput)", sequence_number);
15116  *offsetp += 2;
15117  proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
15118  *offsetp += 4;
15119  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 24, ENC_NA);
15120  *offsetp += 24;
15121 }
15122 static const value_string xevie_extension_minor[] = {
15123  { 0, "QueryVersion" },
15124  { 1, "Start" },
15125  { 2, "End" },
15126  { 3, "Send" },
15127  { 4, "SelectInput" },
15128  { 0, NULL }
15129 };
15130 const x11_event_info xevie_events[] = {
15131  { NULL, NULL }
15132 };
15133 static x11_reply_info xevie_replies[] = {
15134  { 0, xevieQueryVersion_Reply },
15135  { 1, xevieStart_Reply },
15136  { 2, xevieEnd_Reply },
15137  { 3, xevieSend_Reply },
15138  { 4, xevieSelectInput_Reply },
15139  { 0, NULL }
15140 };
15141 
15142 static void dispatch_xevie(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
15143 {
15144  int minor, length;
15145  minor = CARD8(xevie_extension_minor);
15146  length = REQUEST_LENGTH();
15147 
15148  col_append_fstr(pinfo->cinfo, COL_INFO, "-%s",
15149  val_to_str(minor, xevie_extension_minor,
15150  "<Unknown opcode %d>"));
15151  switch (minor) {
15152  case 0:
15153  xevieQueryVersion(tvb, pinfo, offsetp, t, byte_order, length);
15154  break;
15155  case 1:
15156  xevieStart(tvb, pinfo, offsetp, t, byte_order, length);
15157  break;
15158  case 2:
15159  xevieEnd(tvb, pinfo, offsetp, t, byte_order, length);
15160  break;
15161  case 3:
15162  xevieSend(tvb, pinfo, offsetp, t, byte_order, length);
15163  break;
15164  case 4:
15165  xevieSelectInput(tvb, pinfo, offsetp, t, byte_order, length);
15166  break;
15167  /* No need for a default case here, since Unknown is printed above,
15168  and UNDECODED() is taken care of by dissect_x11_request */
15169  }
15170 }
15171 
15172 static void register_xevie(void)
15173 {
15174  set_handler("XEVIE", dispatch_xevie, xevie_errors, xevie_events, NULL, xevie_replies);
15175 }
15176 
15177 static void struct_xf86dri_DrmClipRect(tvbuff_t *tvb, int *offsetp, proto_tree *root, guint byte_order _U_, int count)
15178 {
15179  int i;
15180  for (i = 0; i < count; i++) {
15181  proto_item *item;
15182  proto_tree *t;
15183 
15184  item = proto_tree_add_item(root, hf_x11_struct_xf86dri_DrmClipRect, tvb, *offsetp, 8, ENC_NA);
15185  t = proto_item_add_subtree(item, ett_x11_rectangle);
15186  proto_tree_add_item(t, hf_x11_struct_xf86dri_DrmClipRect_x1, tvb, *offsetp, 2, byte_order);
15187  *offsetp += 2;
15188  proto_tree_add_item(t, hf_x11_struct_xf86dri_DrmClipRect_y1, tvb, *offsetp, 2, byte_order);
15189  *offsetp += 2;
15190  proto_tree_add_item(t, hf_x11_struct_xf86dri_DrmClipRect_x2, tvb, *offsetp, 2, byte_order);
15191  *offsetp += 2;
15192  proto_tree_add_item(t, hf_x11_struct_xf86dri_DrmClipRect_x3, tvb, *offsetp, 2, byte_order);
15193  *offsetp += 2;
15194  }
15195 }
15196 
15197 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_)
15198 {
15199 }
15200 static void xf86driQueryVersion_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
15201 {
15202  int sequence_number;
15203 
15204  col_append_fstr(pinfo->cinfo, COL_INFO, "-QueryVersion");
15205 
15206  REPLY(reply);
15207  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
15208  *offsetp += 1;
15209  sequence_number = tvb_get_guint16(tvb, *offsetp, byte_order);
15210  proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
15211  "%d (xf86dri-QueryVersion)", sequence_number);
15212  *offsetp += 2;
15213  proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
15214  *offsetp += 4;
15215  proto_tree_add_item(t, hf_x11_xf86dri_QueryVersion_reply_dri_major_version, tvb, *offsetp, 2, byte_order);
15216  *offsetp += 2;
15217  proto_tree_add_item(t, hf_x11_xf86dri_QueryVersion_reply_dri_minor_version, tvb, *offsetp, 2, byte_order);
15218  *offsetp += 2;
15219  proto_tree_add_item(t, hf_x11_xf86dri_QueryVersion_reply_dri_minor_patch, tvb, *offsetp, 4, byte_order);
15220  *offsetp += 4;
15221 }
15222 
15223 static void xf86driQueryDirectRenderingCapable(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
15224 {
15225  proto_tree_add_item(t, hf_x11_xf86dri_QueryDirectRenderingCapable_screen, tvb, *offsetp, 4, byte_order);
15226  *offsetp += 4;
15227 }
15228 static void xf86driQueryDirectRenderingCapable_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
15229 {
15230  int sequence_number;
15231 
15232  col_append_fstr(pinfo->cinfo, COL_INFO, "-QueryDirectRenderingCapable");
15233 
15234  REPLY(reply);
15235  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
15236  *offsetp += 1;
15237  sequence_number = tvb_get_guint16(tvb, *offsetp, byte_order);
15238  proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
15239  "%d (xf86dri-QueryDirectRenderingCapable)", sequence_number);
15240  *offsetp += 2;
15241  proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
15242  *offsetp += 4;
15243  proto_tree_add_item(t, hf_x11_xf86dri_QueryDirectRenderingCapable_reply_is_capable, tvb, *offsetp, 1, byte_order);
15244  *offsetp += 1;
15245 }
15246 
15247 static void xf86driOpenConnection(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
15248 {
15249  proto_tree_add_item(t, hf_x11_xf86dri_OpenConnection_screen, tvb, *offsetp, 4, byte_order);
15250  *offsetp += 4;
15251 }
15252 static void xf86driOpenConnection_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
15253 {
15254  int sequence_number;
15255  int f_bus_id_len;
15256 
15257  col_append_fstr(pinfo->cinfo, COL_INFO, "-OpenConnection");
15258 
15259  REPLY(reply);
15260  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
15261  *offsetp += 1;
15262  sequence_number = tvb_get_guint16(tvb, *offsetp, byte_order);
15263  proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
15264  "%d (xf86dri-OpenConnection)", sequence_number);
15265  *offsetp += 2;
15266  proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
15267  *offsetp += 4;
15268  proto_tree_add_item(t, hf_x11_xf86dri_OpenConnection_reply_sarea_handle_low, tvb, *offsetp, 4, byte_order);
15269  *offsetp += 4;
15270  proto_tree_add_item(t, hf_x11_xf86dri_OpenConnection_reply_sarea_handle_high, tvb, *offsetp, 4, byte_order);
15271  *offsetp += 4;
15272  f_bus_id_len = tvb_get_guint32(tvb, *offsetp, byte_order);
15273  proto_tree_add_item(t, hf_x11_xf86dri_OpenConnection_reply_bus_id_len, tvb, *offsetp, 4, byte_order);
15274  *offsetp += 4;
15275  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 12, ENC_NA);
15276  *offsetp += 12;
15277  listOfByte(tvb, offsetp, t, hf_x11_xf86dri_OpenConnection_reply_bus_id, f_bus_id_len, byte_order);
15278 }
15279 
15280 static void xf86driCloseConnection(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
15281 {
15282  proto_tree_add_item(t, hf_x11_xf86dri_CloseConnection_screen, tvb, *offsetp, 4, byte_order);
15283  *offsetp += 4;
15284 }
15285 
15286 static void xf86driGetClientDriverName(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
15287 {
15288  proto_tree_add_item(t, hf_x11_xf86dri_GetClientDriverName_screen, tvb, *offsetp, 4, byte_order);
15289  *offsetp += 4;
15290 }
15291 static void xf86driGetClientDriverName_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
15292 {
15293  int sequence_number;
15294  int f_client_driver_name_len;
15295 
15296  col_append_fstr(pinfo->cinfo, COL_INFO, "-GetClientDriverName");
15297 
15298  REPLY(reply);
15299  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
15300  *offsetp += 1;
15301  sequence_number = tvb_get_guint16(tvb, *offsetp, byte_order);
15302  proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
15303  "%d (xf86dri-GetClientDriverName)", sequence_number);
15304  *offsetp += 2;
15305  proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
15306  *offsetp += 4;
15307  proto_tree_add_item(t, hf_x11_xf86dri_GetClientDriverName_reply_client_driver_major_version, tvb, *offsetp, 4, byte_order);
15308  *offsetp += 4;
15309  proto_tree_add_item(t, hf_x11_xf86dri_GetClientDriverName_reply_client_driver_minor_version, tvb, *offsetp, 4, byte_order);
15310  *offsetp += 4;
15311  proto_tree_add_item(t, hf_x11_xf86dri_GetClientDriverName_reply_client_driver_patch_version, tvb, *offsetp, 4, byte_order);
15312  *offsetp += 4;
15313  f_client_driver_name_len = tvb_get_guint32(tvb, *offsetp, byte_order);
15314  proto_tree_add_item(t, hf_x11_xf86dri_GetClientDriverName_reply_client_driver_name_len, tvb, *offsetp, 4, byte_order);
15315  *offsetp += 4;
15316  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 8, ENC_NA);
15317  *offsetp += 8;
15318  listOfByte(tvb, offsetp, t, hf_x11_xf86dri_GetClientDriverName_reply_client_driver_name, f_client_driver_name_len, byte_order);
15319 }
15320 
15321 static void xf86driCreateContext(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
15322 {
15323  proto_tree_add_item(t, hf_x11_xf86dri_CreateContext_screen, tvb, *offsetp, 4, byte_order);
15324  *offsetp += 4;
15325  proto_tree_add_item(t, hf_x11_xf86dri_CreateContext_visual, tvb, *offsetp, 4, byte_order);
15326  *offsetp += 4;
15327  proto_tree_add_item(t, hf_x11_xf86dri_CreateContext_context, tvb, *offsetp, 4, byte_order);
15328  *offsetp += 4;
15329 }
15330 static void xf86driCreateContext_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
15331 {
15332  int sequence_number;
15333 
15334  col_append_fstr(pinfo->cinfo, COL_INFO, "-CreateContext");
15335 
15336  REPLY(reply);
15337  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
15338  *offsetp += 1;
15339  sequence_number = tvb_get_guint16(tvb, *offsetp, byte_order);
15340  proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
15341  "%d (xf86dri-CreateContext)", sequence_number);
15342  *offsetp += 2;
15343  proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
15344  *offsetp += 4;
15345  proto_tree_add_item(t, hf_x11_xf86dri_CreateContext_reply_hw_context, tvb, *offsetp, 4, byte_order);
15346  *offsetp += 4;
15347 }
15348 
15349 static void xf86driDestroyContext(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
15350 {
15351  proto_tree_add_item(t, hf_x11_xf86dri_DestroyContext_screen, tvb, *offsetp, 4, byte_order);
15352  *offsetp += 4;
15353  proto_tree_add_item(t, hf_x11_xf86dri_DestroyContext_context, tvb, *offsetp, 4, byte_order);
15354  *offsetp += 4;
15355 }
15356 
15357 static void xf86driCreateDrawable(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
15358 {
15359  proto_tree_add_item(t, hf_x11_xf86dri_CreateDrawable_screen, tvb, *offsetp, 4, byte_order);
15360  *offsetp += 4;
15361  proto_tree_add_item(t, hf_x11_xf86dri_CreateDrawable_drawable, tvb, *offsetp, 4, byte_order);
15362  *offsetp += 4;
15363 }
15364 static void xf86driCreateDrawable_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
15365 {
15366  int sequence_number;
15367 
15368  col_append_fstr(pinfo->cinfo, COL_INFO, "-CreateDrawable");
15369 
15370  REPLY(reply);
15371  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
15372  *offsetp += 1;
15373  sequence_number = tvb_get_guint16(tvb, *offsetp, byte_order);
15374  proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
15375  "%d (xf86dri-CreateDrawable)", sequence_number);
15376  *offsetp += 2;
15377  proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
15378  *offsetp += 4;
15379  proto_tree_add_item(t, hf_x11_xf86dri_CreateDrawable_reply_hw_drawable_handle, tvb, *offsetp, 4, byte_order);
15380  *offsetp += 4;
15381 }
15382 
15383 static void xf86driDestroyDrawable(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
15384 {
15385  proto_tree_add_item(t, hf_x11_xf86dri_DestroyDrawable_screen, tvb, *offsetp, 4, byte_order);
15386  *offsetp += 4;
15387  proto_tree_add_item(t, hf_x11_xf86dri_DestroyDrawable_drawable, tvb, *offsetp, 4, byte_order);
15388  *offsetp += 4;
15389 }
15390 
15391 static void xf86driGetDrawableInfo(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
15392 {
15393  proto_tree_add_item(t, hf_x11_xf86dri_GetDrawableInfo_screen, tvb, *offsetp, 4, byte_order);
15394  *offsetp += 4;
15395  proto_tree_add_item(t, hf_x11_xf86dri_GetDrawableInfo_drawable, tvb, *offsetp, 4, byte_order);
15396  *offsetp += 4;
15397 }
15398 static void xf86driGetDrawableInfo_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
15399 {
15400  int sequence_number;
15401  int f_num_clip_rects;
15402  int f_num_back_clip_rects;
15403 
15404  col_append_fstr(pinfo->cinfo, COL_INFO, "-GetDrawableInfo");
15405 
15406  REPLY(reply);
15407  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
15408  *offsetp += 1;
15409  sequence_number = tvb_get_guint16(tvb, *offsetp, byte_order);
15410  proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
15411  "%d (xf86dri-GetDrawableInfo)", sequence_number);
15412  *offsetp += 2;
15413  proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
15414  *offsetp += 4;
15415  proto_tree_add_item(t, hf_x11_xf86dri_GetDrawableInfo_reply_drawable_table_index, tvb, *offsetp, 4, byte_order);
15416  *offsetp += 4;
15417  proto_tree_add_item(t, hf_x11_xf86dri_GetDrawableInfo_reply_drawable_table_stamp, tvb, *offsetp, 4, byte_order);
15418  *offsetp += 4;
15419  proto_tree_add_item(t, hf_x11_xf86dri_GetDrawableInfo_reply_drawable_origin_X, tvb, *offsetp, 2, byte_order);
15420  *offsetp += 2;
15421  proto_tree_add_item(t, hf_x11_xf86dri_GetDrawableInfo_reply_drawable_origin_Y, tvb, *offsetp, 2, byte_order);
15422  *offsetp += 2;
15423  proto_tree_add_item(t, hf_x11_xf86dri_GetDrawableInfo_reply_drawable_size_W, tvb, *offsetp, 2, byte_order);
15424  *offsetp += 2;
15425  proto_tree_add_item(t, hf_x11_xf86dri_GetDrawableInfo_reply_drawable_size_H, tvb, *offsetp, 2, byte_order);
15426  *offsetp += 2;
15427  f_num_clip_rects = tvb_get_guint32(tvb, *offsetp, byte_order);
15428  proto_tree_add_item(t, hf_x11_xf86dri_GetDrawableInfo_reply_num_clip_rects, tvb, *offsetp, 4, byte_order);
15429  *offsetp += 4;
15430  proto_tree_add_item(t, hf_x11_xf86dri_GetDrawableInfo_reply_back_x, tvb, *offsetp, 2, byte_order);
15431  *offsetp += 2;
15432  proto_tree_add_item(t, hf_x11_xf86dri_GetDrawableInfo_reply_back_y, tvb, *offsetp, 2, byte_order);
15433  *offsetp += 2;
15434  f_num_back_clip_rects = tvb_get_guint32(tvb, *offsetp, byte_order);
15435  proto_tree_add_item(t, hf_x11_xf86dri_GetDrawableInfo_reply_num_back_clip_rects, tvb, *offsetp, 4, byte_order);
15436  *offsetp += 4;
15437  struct_xf86dri_DrmClipRect(tvb, offsetp, t, byte_order, f_num_clip_rects);
15438  struct_xf86dri_DrmClipRect(tvb, offsetp, t, byte_order, f_num_back_clip_rects);
15439 }
15440 
15441 static void xf86driGetDeviceInfo(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
15442 {
15443  proto_tree_add_item(t, hf_x11_xf86dri_GetDeviceInfo_screen, tvb, *offsetp, 4, byte_order);
15444  *offsetp += 4;
15445 }
15446 static void xf86driGetDeviceInfo_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
15447 {
15448  int sequence_number;
15449  int f_device_private_size;
15450 
15451  col_append_fstr(pinfo->cinfo, COL_INFO, "-GetDeviceInfo");
15452 
15453  REPLY(reply);
15454  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
15455  *offsetp += 1;
15456  sequence_number = tvb_get_guint16(tvb, *offsetp, byte_order);
15457  proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
15458  "%d (xf86dri-GetDeviceInfo)", sequence_number);
15459  *offsetp += 2;
15460  proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
15461  *offsetp += 4;
15462  proto_tree_add_item(t, hf_x11_xf86dri_GetDeviceInfo_reply_framebuffer_handle_low, tvb, *offsetp, 4, byte_order);
15463  *offsetp += 4;
15464  proto_tree_add_item(t, hf_x11_xf86dri_GetDeviceInfo_reply_framebuffer_handle_high, tvb, *offsetp, 4, byte_order);
15465  *offsetp += 4;
15466  proto_tree_add_item(t, hf_x11_xf86dri_GetDeviceInfo_reply_framebuffer_origin_offset, tvb, *offsetp, 4, byte_order);
15467  *offsetp += 4;
15468  proto_tree_add_item(t, hf_x11_xf86dri_GetDeviceInfo_reply_framebuffer_size, tvb, *offsetp, 4, byte_order);
15469  *offsetp += 4;
15470  proto_tree_add_item(t, hf_x11_xf86dri_GetDeviceInfo_reply_framebuffer_stride, tvb, *offsetp, 4, byte_order);
15471  *offsetp += 4;
15472  f_device_private_size = tvb_get_guint32(tvb, *offsetp, byte_order);
15473  proto_tree_add_item(t, hf_x11_xf86dri_GetDeviceInfo_reply_device_private_size, tvb, *offsetp, 4, byte_order);
15474  *offsetp += 4;
15475  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);
15476 }
15477 
15478 static void xf86driAuthConnection(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
15479 {
15480  proto_tree_add_item(t, hf_x11_xf86dri_AuthConnection_screen, tvb, *offsetp, 4, byte_order);
15481  *offsetp += 4;
15482  proto_tree_add_item(t, hf_x11_xf86dri_AuthConnection_magic, tvb, *offsetp, 4, byte_order);
15483  *offsetp += 4;
15484 }
15485 static void xf86driAuthConnection_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
15486 {
15487  int sequence_number;
15488 
15489  col_append_fstr(pinfo->cinfo, COL_INFO, "-AuthConnection");
15490 
15491  REPLY(reply);
15492  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
15493  *offsetp += 1;
15494  sequence_number = tvb_get_guint16(tvb, *offsetp, byte_order);
15495  proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
15496  "%d (xf86dri-AuthConnection)", sequence_number);
15497  *offsetp += 2;
15498  proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
15499  *offsetp += 4;
15500  proto_tree_add_item(t, hf_x11_xf86dri_AuthConnection_reply_authenticated, tvb, *offsetp, 4, byte_order);
15501  *offsetp += 4;
15502 }
15503 static const value_string xf86dri_extension_minor[] = {
15504  { 0, "QueryVersion" },
15505  { 1, "QueryDirectRenderingCapable" },
15506  { 2, "OpenConnection" },
15507  { 3, "CloseConnection" },
15508  { 4, "GetClientDriverName" },
15509  { 5, "CreateContext" },
15510  { 6, "DestroyContext" },
15511  { 7, "CreateDrawable" },
15512  { 8, "DestroyDrawable" },
15513  { 9, "GetDrawableInfo" },
15514  { 10, "GetDeviceInfo" },
15515  { 11, "AuthConnection" },
15516  { 0, NULL }
15517 };
15518 const x11_event_info xf86dri_events[] = {
15519  { NULL, NULL }
15520 };
15521 static x11_reply_info xf86dri_replies[] = {
15522  { 0, xf86driQueryVersion_Reply },
15523  { 1, xf86driQueryDirectRenderingCapable_Reply },
15524  { 2, xf86driOpenConnection_Reply },
15525  { 4, xf86driGetClientDriverName_Reply },
15526  { 5, xf86driCreateContext_Reply },
15527  { 7, xf86driCreateDrawable_Reply },
15528  { 9, xf86driGetDrawableInfo_Reply },
15529  { 10, xf86driGetDeviceInfo_Reply },
15530  { 11, xf86driAuthConnection_Reply },
15531  { 0, NULL }
15532 };
15533 
15534 static void dispatch_xf86dri(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
15535 {
15536  int minor, length;
15537  minor = CARD8(xf86dri_extension_minor);
15538  length = REQUEST_LENGTH();
15539 
15540  col_append_fstr(pinfo->cinfo, COL_INFO, "-%s",
15541  val_to_str(minor, xf86dri_extension_minor,
15542  "<Unknown opcode %d>"));
15543  switch (minor) {
15544  case 0:
15545  xf86driQueryVersion(tvb, pinfo, offsetp, t, byte_order, length);
15546  break;
15547  case 1:
15548  xf86driQueryDirectRenderingCapable(tvb, pinfo, offsetp, t, byte_order, length);
15549  break;
15550  case 2:
15551  xf86driOpenConnection(tvb, pinfo, offsetp, t, byte_order, length);
15552  break;
15553  case 3:
15554  xf86driCloseConnection(tvb, pinfo, offsetp, t, byte_order, length);
15555  break;
15556  case 4:
15557  xf86driGetClientDriverName(tvb, pinfo, offsetp, t, byte_order, length);
15558  break;
15559  case 5:
15560  xf86driCreateContext(tvb, pinfo, offsetp, t, byte_order, length);
15561  break;
15562  case 6:
15563  xf86driDestroyContext(tvb, pinfo, offsetp, t, byte_order, length);
15564  break;
15565  case 7:
15566  xf86driCreateDrawable(tvb, pinfo, offsetp, t, byte_order, length);
15567  break;
15568  case 8:
15569  xf86driDestroyDrawable(tvb, pinfo, offsetp, t, byte_order, length);
15570  break;
15571  case 9:
15572  xf86driGetDrawableInfo(tvb, pinfo, offsetp, t, byte_order, length);
15573  break;
15574  case 10:
15575  xf86driGetDeviceInfo(tvb, pinfo, offsetp, t, byte_order, length);
15576  break;
15577  case 11:
15578  xf86driAuthConnection(tvb, pinfo, offsetp, t, byte_order, length);
15579  break;
15580  /* No need for a default case here, since Unknown is printed above,
15581  and UNDECODED() is taken care of by dissect_x11_request */
15582  }
15583 }
15584 
15585 static void register_xf86dri(void)
15586 {
15587  set_handler("XFree86-DRI", dispatch_xf86dri, xf86dri_errors, xf86dri_events, NULL, xf86dri_replies);
15588 }
15589 
15590 static void struct_xf86vidmode_ModeInfo(tvbuff_t *tvb, int *offsetp, proto_tree *root, guint byte_order _U_, int count)
15591 {
15592  int i;
15593  for (i = 0; i < count; i++) {
15594  proto_item *item;
15595  proto_tree *t;
15596 
15597  item = proto_tree_add_item(root, hf_x11_struct_xf86vidmode_ModeInfo, tvb, *offsetp, 48, ENC_NA);
15598  t = proto_item_add_subtree(item, ett_x11_rectangle);
15599  proto_tree_add_item(t, hf_x11_struct_xf86vidmode_ModeInfo_dotclock, tvb, *offsetp, 4, byte_order);
15600  *offsetp += 4;
15601  proto_tree_add_item(t, hf_x11_struct_xf86vidmode_ModeInfo_hdisplay, tvb, *offsetp, 2, byte_order);
15602  *offsetp += 2;
15603  proto_tree_add_item(t, hf_x11_struct_xf86vidmode_ModeInfo_hsyncstart, tvb, *offsetp, 2, byte_order);
15604  *offsetp += 2;
15605  proto_tree_add_item(t, hf_x11_struct_xf86vidmode_ModeInfo_hsyncend, tvb, *offsetp, 2, byte_order);
15606  *offsetp += 2;
15607  proto_tree_add_item(t, hf_x11_struct_xf86vidmode_ModeInfo_htotal, tvb, *offsetp, 2, byte_order);
15608  *offsetp += 2;
15609  proto_tree_add_item(t, hf_x11_struct_xf86vidmode_ModeInfo_hskew, tvb, *offsetp, 4, byte_order);
15610  *offsetp += 4;
15611  proto_tree_add_item(t, hf_x11_struct_xf86vidmode_ModeInfo_vdisplay, tvb, *offsetp, 2, byte_order);
15612  *offsetp += 2;
15613  proto_tree_add_item(t, hf_x11_struct_xf86vidmode_ModeInfo_vsyncstart, tvb, *offsetp, 2, byte_order);
15614  *offsetp += 2;
15615  proto_tree_add_item(t, hf_x11_struct_xf86vidmode_ModeInfo_vsyncend, tvb, *offsetp, 2, byte_order);
15616  *offsetp += 2;
15617  proto_tree_add_item(t, hf_x11_struct_xf86vidmode_ModeInfo_vtotal, tvb, *offsetp, 2, byte_order);
15618  *offsetp += 2;
15619  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 4, ENC_NA);
15620  *offsetp += 4;
15621  {
15622  const int* flags_bits [] = {
15623  &hf_x11_struct_xf86vidmode_ModeInfo_flags_mask_Positive_HSync,
15624  &hf_x11_struct_xf86vidmode_ModeInfo_flags_mask_Negative_HSync,
15625  &hf_x11_struct_xf86vidmode_ModeInfo_flags_mask_Positive_VSync,
15626  &hf_x11_struct_xf86vidmode_ModeInfo_flags_mask_Negative_VSync,
15627  &hf_x11_struct_xf86vidmode_ModeInfo_flags_mask_Interlace,
15628  &hf_x11_struct_xf86vidmode_ModeInfo_flags_mask_Composite_Sync,
15629  &hf_x11_struct_xf86vidmode_ModeInfo_flags_mask_Positive_CSync,
15630  &hf_x11_struct_xf86vidmode_ModeInfo_flags_mask_Negative_CSync,
15631  &hf_x11_struct_xf86vidmode_ModeInfo_flags_mask_HSkew,
15632  &hf_x11_struct_xf86vidmode_ModeInfo_flags_mask_Broadcast,
15633  &hf_x11_struct_xf86vidmode_ModeInfo_flags_mask_Pixmux,
15634  &hf_x11_struct_xf86vidmode_ModeInfo_flags_mask_Double_Clock,
15635  &hf_x11_struct_xf86vidmode_ModeInfo_flags_mask_Half_Clock,
15636  NULL
15637  };
15638  proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_struct_xf86vidmode_ModeInfo_flags, ett_x11_rectangle, flags_bits, byte_order);
15639  }
15640  *offsetp += 4;
15641  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 12, ENC_NA);
15642  *offsetp += 12;
15643  proto_tree_add_item(t, hf_x11_struct_xf86vidmode_ModeInfo_privsize, tvb, *offsetp, 4, byte_order);
15644  *offsetp += 4;
15645  }
15646 }
15647 
15648 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_)
15649 {
15650 }
15651 static void xf86vidmodeQueryVersion_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
15652 {
15653  int sequence_number;
15654 
15655  col_append_fstr(pinfo->cinfo, COL_INFO, "-QueryVersion");
15656 
15657  REPLY(reply);
15658  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
15659  *offsetp += 1;
15660  sequence_number = tvb_get_guint16(tvb, *offsetp, byte_order);
15661  proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
15662  "%d (xf86vidmode-QueryVersion)", sequence_number);
15663  *offsetp += 2;
15664  proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
15665  *offsetp += 4;
15666  proto_tree_add_item(t, hf_x11_xf86vidmode_QueryVersion_reply_major_version, tvb, *offsetp, 2, byte_order);
15667  *offsetp += 2;
15668  proto_tree_add_item(t, hf_x11_xf86vidmode_QueryVersion_reply_minor_version, tvb, *offsetp, 2, byte_order);
15669  *offsetp += 2;
15670 }
15671 
15672 static void xf86vidmodeGetModeLine(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
15673 {
15674  proto_tree_add_item(t, hf_x11_xf86vidmode_GetModeLine_screen, tvb, *offsetp, 2, byte_order);
15675  *offsetp += 2;
15676  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 2, ENC_NA);
15677  *offsetp += 2;
15678 }
15679 static void xf86vidmodeGetModeLine_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
15680 {
15681  int sequence_number;
15682  int f_privsize;
15683 
15684  col_append_fstr(pinfo->cinfo, COL_INFO, "-GetModeLine");
15685 
15686  REPLY(reply);
15687  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
15688  *offsetp += 1;
15689  sequence_number = tvb_get_guint16(tvb, *offsetp, byte_order);
15690  proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
15691  "%d (xf86vidmode-GetModeLine)", sequence_number);
15692  *offsetp += 2;
15693  proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
15694  *offsetp += 4;
15695  proto_tree_add_item(t, hf_x11_xf86vidmode_GetModeLine_reply_dotclock, tvb, *offsetp, 4, byte_order);
15696  *offsetp += 4;
15697  proto_tree_add_item(t, hf_x11_xf86vidmode_GetModeLine_reply_hdisplay, tvb, *offsetp, 2, byte_order);
15698  *offsetp += 2;
15699  proto_tree_add_item(t, hf_x11_xf86vidmode_GetModeLine_reply_hsyncstart, tvb, *offsetp, 2, byte_order);
15700  *offsetp += 2;
15701  proto_tree_add_item(t, hf_x11_xf86vidmode_GetModeLine_reply_hsyncend, tvb, *offsetp, 2, byte_order);
15702  *offsetp += 2;
15703  proto_tree_add_item(t, hf_x11_xf86vidmode_GetModeLine_reply_htotal, tvb, *offsetp, 2, byte_order);
15704  *offsetp += 2;
15705  proto_tree_add_item(t, hf_x11_xf86vidmode_GetModeLine_reply_hskew, tvb, *offsetp, 2, byte_order);
15706  *offsetp += 2;
15707  proto_tree_add_item(t, hf_x11_xf86vidmode_GetModeLine_reply_vdisplay, tvb, *offsetp, 2, byte_order);
15708  *offsetp += 2;
15709  proto_tree_add_item(t, hf_x11_xf86vidmode_GetModeLine_reply_vsyncstart, tvb, *offsetp, 2, byte_order);
15710  *offsetp += 2;
15711  proto_tree_add_item(t, hf_x11_xf86vidmode_GetModeLine_reply_vsyncend, tvb, *offsetp, 2, byte_order);
15712  *offsetp += 2;
15713  proto_tree_add_item(t, hf_x11_xf86vidmode_GetModeLine_reply_vtotal, tvb, *offsetp, 2, byte_order);
15714  *offsetp += 2;
15715  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 2, ENC_NA);
15716  *offsetp += 2;
15717  {
15718  const int* flags_bits [] = {
15719  &hf_x11_xf86vidmode_GetModeLine_reply_flags_mask_Positive_HSync,
15720  &hf_x11_xf86vidmode_GetModeLine_reply_flags_mask_Negative_HSync,
15721  &hf_x11_xf86vidmode_GetModeLine_reply_flags_mask_Positive_VSync,
15722  &hf_x11_xf86vidmode_GetModeLine_reply_flags_mask_Negative_VSync,
15723  &hf_x11_xf86vidmode_GetModeLine_reply_flags_mask_Interlace,
15724  &hf_x11_xf86vidmode_GetModeLine_reply_flags_mask_Composite_Sync,
15725  &hf_x11_xf86vidmode_GetModeLine_reply_flags_mask_Positive_CSync,
15726  &hf_x11_xf86vidmode_GetModeLine_reply_flags_mask_Negative_CSync,
15727  &hf_x11_xf86vidmode_GetModeLine_reply_flags_mask_HSkew,
15728  &hf_x11_xf86vidmode_GetModeLine_reply_flags_mask_Broadcast,
15729  &hf_x11_xf86vidmode_GetModeLine_reply_flags_mask_Pixmux,
15730  &hf_x11_xf86vidmode_GetModeLine_reply_flags_mask_Double_Clock,
15731  &hf_x11_xf86vidmode_GetModeLine_reply_flags_mask_Half_Clock,
15732  NULL
15733  };
15734  proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_xf86vidmode_GetModeLine_reply_flags, ett_x11_rectangle, flags_bits, byte_order);
15735  }
15736  *offsetp += 4;
15737  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 12, ENC_NA);
15738  *offsetp += 12;
15739  f_privsize = tvb_get_guint32(tvb, *offsetp, byte_order);
15740  proto_tree_add_item(t, hf_x11_xf86vidmode_GetModeLine_reply_privsize, tvb, *offsetp, 4, byte_order);
15741  *offsetp += 4;
15742  listOfByte(tvb, offsetp, t, hf_x11_xf86vidmode_GetModeLine_reply_private, f_privsize, byte_order);
15743 }
15744 
15745 static void xf86vidmodeModModeLine(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
15746 {
15747  int f_privsize;
15748  proto_tree_add_item(t, hf_x11_xf86vidmode_ModModeLine_screen, tvb, *offsetp, 4, byte_order);
15749  *offsetp += 4;
15750  proto_tree_add_item(t, hf_x11_xf86vidmode_ModModeLine_hdisplay, tvb, *offsetp, 2, byte_order);
15751  *offsetp += 2;
15752  proto_tree_add_item(t, hf_x11_xf86vidmode_ModModeLine_hsyncstart, tvb, *offsetp, 2, byte_order);
15753  *offsetp += 2;
15754  proto_tree_add_item(t, hf_x11_xf86vidmode_ModModeLine_hsyncend, tvb, *offsetp, 2, byte_order);
15755  *offsetp += 2;
15756  proto_tree_add_item(t, hf_x11_xf86vidmode_ModModeLine_htotal, tvb, *offsetp, 2, byte_order);
15757  *offsetp += 2;
15758  proto_tree_add_item(t, hf_x11_xf86vidmode_ModModeLine_hskew, tvb, *offsetp, 2, byte_order);
15759  *offsetp += 2;
15760  proto_tree_add_item(t, hf_x11_xf86vidmode_ModModeLine_vdisplay, tvb, *offsetp, 2, byte_order);
15761  *offsetp += 2;
15762  proto_tree_add_item(t, hf_x11_xf86vidmode_ModModeLine_vsyncstart, tvb, *offsetp, 2, byte_order);
15763  *offsetp += 2;
15764  proto_tree_add_item(t, hf_x11_xf86vidmode_ModModeLine_vsyncend, tvb, *offsetp, 2, byte_order);
15765  *offsetp += 2;
15766  proto_tree_add_item(t, hf_x11_xf86vidmode_ModModeLine_vtotal, tvb, *offsetp, 2, byte_order);
15767  *offsetp += 2;
15768  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 2, ENC_NA);
15769  *offsetp += 2;
15770  {
15771  const int* flags_bits [] = {
15772  &hf_x11_xf86vidmode_ModModeLine_flags_mask_Positive_HSync,
15773  &hf_x11_xf86vidmode_ModModeLine_flags_mask_Negative_HSync,
15774  &hf_x11_xf86vidmode_ModModeLine_flags_mask_Positive_VSync,
15775  &hf_x11_xf86vidmode_ModModeLine_flags_mask_Negative_VSync,
15776  &hf_x11_xf86vidmode_ModModeLine_flags_mask_Interlace,
15777  &hf_x11_xf86vidmode_ModModeLine_flags_mask_Composite_Sync,
15778  &hf_x11_xf86vidmode_ModModeLine_flags_mask_Positive_CSync,
15779  &hf_x11_xf86vidmode_ModModeLine_flags_mask_Negative_CSync,
15780  &hf_x11_xf86vidmode_ModModeLine_flags_mask_HSkew,
15781  &hf_x11_xf86vidmode_ModModeLine_flags_mask_Broadcast,
15782  &hf_x11_xf86vidmode_ModModeLine_flags_mask_Pixmux,
15783  &hf_x11_xf86vidmode_ModModeLine_flags_mask_Double_Clock,
15784  &hf_x11_xf86vidmode_ModModeLine_flags_mask_Half_Clock,
15785  NULL
15786  };
15787  proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_xf86vidmode_ModModeLine_flags, ett_x11_rectangle, flags_bits, byte_order);
15788  }
15789  *offsetp += 4;
15790  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 12, ENC_NA);
15791  *offsetp += 12;
15792  f_privsize = tvb_get_guint32(tvb, *offsetp, byte_order);
15793  proto_tree_add_item(t, hf_x11_xf86vidmode_ModModeLine_privsize, tvb, *offsetp, 4, byte_order);
15794  *offsetp += 4;
15795  listOfByte(tvb, offsetp, t, hf_x11_xf86vidmode_ModModeLine_private, f_privsize, byte_order);
15796  length -= f_privsize * 1;
15797 }
15798 
15799 static void xf86vidmodeSwitchMode(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
15800 {
15801  proto_tree_add_item(t, hf_x11_xf86vidmode_SwitchMode_screen, tvb, *offsetp, 2, byte_order);
15802  *offsetp += 2;
15803  proto_tree_add_item(t, hf_x11_xf86vidmode_SwitchMode_zoom, tvb, *offsetp, 2, byte_order);
15804  *offsetp += 2;
15805 }
15806 
15807 static void xf86vidmodeGetMonitor(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
15808 {
15809  proto_tree_add_item(t, hf_x11_xf86vidmode_GetMonitor_screen, tvb, *offsetp, 2, byte_order);
15810  *offsetp += 2;
15811  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 2, ENC_NA);
15812  *offsetp += 2;
15813 }
15814 static void xf86vidmodeGetMonitor_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
15815 {
15816  int sequence_number;
15817  int f_vendor_length;
15818  int f_model_length;
15819  int f_num_hsync;
15820  int f_num_vsync;
15821 
15822  col_append_fstr(pinfo->cinfo, COL_INFO, "-GetMonitor");
15823 
15824  REPLY(reply);
15825  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
15826  *offsetp += 1;
15827  sequence_number = tvb_get_guint16(tvb, *offsetp, byte_order);
15828  proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
15829  "%d (xf86vidmode-GetMonitor)", sequence_number);
15830  *offsetp += 2;
15831  proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
15832  *offsetp += 4;
15833  f_vendor_length = tvb_get_guint8(tvb, *offsetp);
15834  proto_tree_add_item(t, hf_x11_xf86vidmode_GetMonitor_reply_vendor_length, tvb, *offsetp, 1, byte_order);
15835  *offsetp += 1;
15836  f_model_length = tvb_get_guint8(tvb, *offsetp);
15837  proto_tree_add_item(t, hf_x11_xf86vidmode_GetMonitor_reply_model_length, tvb, *offsetp, 1, byte_order);
15838  *offsetp += 1;
15839  f_num_hsync = tvb_get_guint8(tvb, *offsetp);
15840  proto_tree_add_item(t, hf_x11_xf86vidmode_GetMonitor_reply_num_hsync, tvb, *offsetp, 1, byte_order);
15841  *offsetp += 1;
15842  f_num_vsync = tvb_get_guint8(tvb, *offsetp);
15843  proto_tree_add_item(t, hf_x11_xf86vidmode_GetMonitor_reply_num_vsync, tvb, *offsetp, 1, byte_order);
15844  *offsetp += 1;
15845  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 20, ENC_NA);
15846  *offsetp += 20;
15847  listOfCard32(tvb, offsetp, t, hf_x11_xf86vidmode_GetMonitor_reply_hsync, hf_x11_xf86vidmode_GetMonitor_reply_hsync_item, f_num_hsync, byte_order);
15848  listOfCard32(tvb, offsetp, t, hf_x11_xf86vidmode_GetMonitor_reply_vsync, hf_x11_xf86vidmode_GetMonitor_reply_vsync_item, f_num_vsync, byte_order);
15849  listOfByte(tvb, offsetp, t, hf_x11_xf86vidmode_GetMonitor_reply_vendor, f_vendor_length, byte_order);
15850  listOfByte(tvb, offsetp, t, hf_x11_xf86vidmode_GetMonitor_reply_alignment_pad, (((f_vendor_length + 3) & (~3)) - f_vendor_length), byte_order);
15851  listOfByte(tvb, offsetp, t, hf_x11_xf86vidmode_GetMonitor_reply_model, f_model_length, byte_order);
15852 }
15853 
15854 static void xf86vidmodeLockModeSwitch(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
15855 {
15856  proto_tree_add_item(t, hf_x11_xf86vidmode_LockModeSwitch_screen, tvb, *offsetp, 2, byte_order);
15857  *offsetp += 2;
15858  proto_tree_add_item(t, hf_x11_xf86vidmode_LockModeSwitch_lock, tvb, *offsetp, 2, byte_order);
15859  *offsetp += 2;
15860 }
15861 
15862 static void xf86vidmodeGetAllModeLines(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
15863 {
15864  proto_tree_add_item(t, hf_x11_xf86vidmode_GetAllModeLines_screen, tvb, *offsetp, 2, byte_order);
15865  *offsetp += 2;
15866  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 2, ENC_NA);
15867  *offsetp += 2;
15868 }
15869 static void xf86vidmodeGetAllModeLines_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
15870 {
15871  int sequence_number;
15872  int f_modecount;
15873 
15874  col_append_fstr(pinfo->cinfo, COL_INFO, "-GetAllModeLines");
15875 
15876  REPLY(reply);
15877  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
15878  *offsetp += 1;
15879  sequence_number = tvb_get_guint16(tvb, *offsetp, byte_order);
15880  proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
15881  "%d (xf86vidmode-GetAllModeLines)", sequence_number);
15882  *offsetp += 2;
15883  proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
15884  *offsetp += 4;
15885  f_modecount = tvb_get_guint32(tvb, *offsetp, byte_order);
15886  proto_tree_add_item(t, hf_x11_xf86vidmode_GetAllModeLines_reply_modecount, tvb, *offsetp, 4, byte_order);
15887  *offsetp += 4;
15888  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 20, ENC_NA);
15889  *offsetp += 20;
15890  struct_xf86vidmode_ModeInfo(tvb, offsetp, t, byte_order, f_modecount);
15891 }
15892 
15893 static void xf86vidmodeAddModeLine(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
15894 {
15895  int f_privsize;
15896  proto_tree_add_item(t, hf_x11_xf86vidmode_AddModeLine_screen, tvb, *offsetp, 4, byte_order);
15897  *offsetp += 4;
15898  proto_tree_add_item(t, hf_x11_xf86vidmode_AddModeLine_dotclock, tvb, *offsetp, 4, byte_order);
15899  *offsetp += 4;
15900  proto_tree_add_item(t, hf_x11_xf86vidmode_AddModeLine_hdisplay, tvb, *offsetp, 2, byte_order);
15901  *offsetp += 2;
15902  proto_tree_add_item(t, hf_x11_xf86vidmode_AddModeLine_hsyncstart, tvb, *offsetp, 2, byte_order);
15903  *offsetp += 2;
15904  proto_tree_add_item(t, hf_x11_xf86vidmode_AddModeLine_hsyncend, tvb, *offsetp, 2, byte_order);
15905  *offsetp += 2;
15906  proto_tree_add_item(t, hf_x11_xf86vidmode_AddModeLine_htotal, tvb, *offsetp, 2, byte_order);
15907  *offsetp += 2;
15908  proto_tree_add_item(t, hf_x11_xf86vidmode_AddModeLine_hskew, tvb, *offsetp, 2, byte_order);
15909  *offsetp += 2;
15910  proto_tree_add_item(t, hf_x11_xf86vidmode_AddModeLine_vdisplay, tvb, *offsetp, 2, byte_order);
15911  *offsetp += 2;
15912  proto_tree_add_item(t, hf_x11_xf86vidmode_AddModeLine_vsyncstart, tvb, *offsetp, 2, byte_order);
15913  *offsetp += 2;
15914  proto_tree_add_item(t, hf_x11_xf86vidmode_AddModeLine_vsyncend, tvb, *offsetp, 2, byte_order);
15915  *offsetp += 2;
15916  proto_tree_add_item(t, hf_x11_xf86vidmode_AddModeLine_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  const int* flags_bits [] = {
15922  &hf_x11_xf86vidmode_AddModeLine_flags_mask_Positive_HSync,
15923  &hf_x11_xf86vidmode_AddModeLine_flags_mask_Negative_HSync,
15924  &hf_x11_xf86vidmode_AddModeLine_flags_mask_Positive_VSync,
15925  &hf_x11_xf86vidmode_AddModeLine_flags_mask_Negative_VSync,
15926  &hf_x11_xf86vidmode_AddModeLine_flags_mask_Interlace,
15927  &hf_x11_xf86vidmode_AddModeLine_flags_mask_Composite_Sync,
15928  &hf_x11_xf86vidmode_AddModeLine_flags_mask_Positive_CSync,
15929  &hf_x11_xf86vidmode_AddModeLine_flags_mask_Negative_CSync,
15930  &hf_x11_xf86vidmode_AddModeLine_flags_mask_HSkew,
15931  &hf_x11_xf86vidmode_AddModeLine_flags_mask_Broadcast,
15932  &hf_x11_xf86vidmode_AddModeLine_flags_mask_Pixmux,
15933  &hf_x11_xf86vidmode_AddModeLine_flags_mask_Double_Clock,
15934  &hf_x11_xf86vidmode_AddModeLine_flags_mask_Half_Clock,
15935  NULL
15936  };
15937  proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_xf86vidmode_AddModeLine_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_AddModeLine_privsize, tvb, *offsetp, 4, byte_order);
15944  *offsetp += 4;
15945  proto_tree_add_item(t, hf_x11_xf86vidmode_AddModeLine_after_dotclock, tvb, *offsetp, 4, byte_order);
15946  *offsetp += 4;
15947  proto_tree_add_item(t, hf_x11_xf86vidmode_AddModeLine_after_hdisplay, tvb, *offsetp, 2, byte_order);
15948  *offsetp += 2;
15949  proto_tree_add_item(t, hf_x11_xf86vidmode_AddModeLine_after_hsyncstart, tvb, *offsetp, 2, byte_order);
15950  *offsetp += 2;
15951  proto_tree_add_item(t, hf_x11_xf86vidmode_AddModeLine_after_hsyncend, tvb, *offsetp, 2, byte_order);
15952  *offsetp += 2;
15953  proto_tree_add_item(t, hf_x11_xf86vidmode_AddModeLine_after_htotal, tvb, *offsetp, 2, byte_order);
15954  *offsetp += 2;
15955  proto_tree_add_item(t, hf_x11_xf86vidmode_AddModeLine_after_hskew, tvb, *offsetp, 2, byte_order);
15956  *offsetp += 2;
15957  proto_tree_add_item(t, hf_x11_xf86vidmode_AddModeLine_after_vdisplay, tvb, *offsetp, 2, byte_order);
15958  *offsetp += 2;
15959  proto_tree_add_item(t, hf_x11_xf86vidmode_AddModeLine_after_vsyncstart, tvb, *offsetp, 2, byte_order);
15960  *offsetp += 2;
15961  proto_tree_add_item(t, hf_x11_xf86vidmode_AddModeLine_after_vsyncend, tvb, *offsetp, 2, byte_order);
15962  *offsetp += 2;
15963  proto_tree_add_item(t, hf_x11_xf86vidmode_AddModeLine_after_vtotal, tvb, *offsetp, 2, byte_order);
15964  *offsetp += 2;
15965  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 2, ENC_NA);
15966  *offsetp += 2;
15967  {
15968  const int* after_flags_bits [] = {
15969  &hf_x11_xf86vidmode_AddModeLine_after_flags_mask_Positive_HSync,
15970  &hf_x11_xf86vidmode_AddModeLine_after_flags_mask_Negative_HSync,
15971  &hf_x11_xf86vidmode_AddModeLine_after_flags_mask_Positive_VSync,
15972  &hf_x11_xf86vidmode_AddModeLine_after_flags_mask_Negative_VSync,
15973  &hf_x11_xf86vidmode_AddModeLine_after_flags_mask_Interlace,
15974  &hf_x11_xf86vidmode_AddModeLine_after_flags_mask_Composite_Sync,
15975  &hf_x11_xf86vidmode_AddModeLine_after_flags_mask_Positive_CSync,
15976  &hf_x11_xf86vidmode_AddModeLine_after_flags_mask_Negative_CSync,
15977  &hf_x11_xf86vidmode_AddModeLine_after_flags_mask_HSkew,
15978  &hf_x11_xf86vidmode_AddModeLine_after_flags_mask_Broadcast,
15979  &hf_x11_xf86vidmode_AddModeLine_after_flags_mask_Pixmux,
15980  &hf_x11_xf86vidmode_AddModeLine_after_flags_mask_Double_Clock,
15981  &hf_x11_xf86vidmode_AddModeLine_after_flags_mask_Half_Clock,
15982  NULL
15983  };
15984  proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_xf86vidmode_AddModeLine_after_flags, ett_x11_rectangle, after_flags_bits, byte_order);
15985  }
15986  *offsetp += 4;
15987  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 12, ENC_NA);
15988  *offsetp += 12;
15989  listOfByte(tvb, offsetp, t, hf_x11_xf86vidmode_AddModeLine_private, f_privsize, byte_order);
15990  length -= f_privsize * 1;
15991 }
15992 
15993 static void xf86vidmodeDeleteModeLine(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
15994 {
15995  int f_privsize;
15996  proto_tree_add_item(t, hf_x11_xf86vidmode_DeleteModeLine_screen, tvb, *offsetp, 4, byte_order);
15997  *offsetp += 4;
15998  proto_tree_add_item(t, hf_x11_xf86vidmode_DeleteModeLine_dotclock, tvb, *offsetp, 4, byte_order);
15999  *offsetp += 4;
16000  proto_tree_add_item(t, hf_x11_xf86vidmode_DeleteModeLine_hdisplay, tvb, *offsetp, 2, byte_order);
16001  *offsetp += 2;
16002  proto_tree_add_item(t, hf_x11_xf86vidmode_DeleteModeLine_hsyncstart, tvb, *offsetp, 2, byte_order);
16003  *offsetp += 2;
16004  proto_tree_add_item(t, hf_x11_xf86vidmode_DeleteModeLine_hsyncend, tvb, *offsetp, 2, byte_order);
16005  *offsetp += 2;
16006  proto_tree_add_item(t, hf_x11_xf86vidmode_DeleteModeLine_htotal, tvb, *offsetp, 2, byte_order);
16007  *offsetp += 2;
16008  proto_tree_add_item(t, hf_x11_xf86vidmode_DeleteModeLine_hskew, tvb, *offsetp, 2, byte_order);
16009  *offsetp += 2;
16010  proto_tree_add_item(t, hf_x11_xf86vidmode_DeleteModeLine_vdisplay, tvb, *offsetp, 2, byte_order);
16011  *offsetp += 2;
16012  proto_tree_add_item(t, hf_x11_xf86vidmode_DeleteModeLine_vsyncstart, tvb, *offsetp, 2, byte_order);
16013  *offsetp += 2;
16014  proto_tree_add_item(t, hf_x11_xf86vidmode_DeleteModeLine_vsyncend, tvb, *offsetp, 2, byte_order);
16015  *offsetp += 2;
16016  proto_tree_add_item(t, hf_x11_xf86vidmode_DeleteModeLine_vtotal, tvb, *offsetp, 2, byte_order);
16017  *offsetp += 2;
16018  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 2, ENC_NA);
16019  *offsetp += 2;
16020  {
16021  const int* flags_bits [] = {
16022  &hf_x11_xf86vidmode_DeleteModeLine_flags_mask_Positive_HSync,
16023  &hf_x11_xf86vidmode_DeleteModeLine_flags_mask_Negative_HSync,
16024  &hf_x11_xf86vidmode_DeleteModeLine_flags_mask_Positive_VSync,
16025  &hf_x11_xf86vidmode_DeleteModeLine_flags_mask_Negative_VSync,
16026  &hf_x11_xf86vidmode_DeleteModeLine_flags_mask_Interlace,
16027  &hf_x11_xf86vidmode_DeleteModeLine_flags_mask_Composite_Sync,
16028  &hf_x11_xf86vidmode_DeleteModeLine_flags_mask_Positive_CSync,
16029  &hf_x11_xf86vidmode_DeleteModeLine_flags_mask_Negative_CSync,
16030  &hf_x11_xf86vidmode_DeleteModeLine_flags_mask_HSkew,
16031  &hf_x11_xf86vidmode_DeleteModeLine_flags_mask_Broadcast,
16032  &hf_x11_xf86vidmode_DeleteModeLine_flags_mask_Pixmux,
16033  &hf_x11_xf86vidmode_DeleteModeLine_flags_mask_Double_Clock,
16034  &hf_x11_xf86vidmode_DeleteModeLine_flags_mask_Half_Clock,
16035  NULL
16036  };
16037  proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_xf86vidmode_DeleteModeLine_flags, ett_x11_rectangle, flags_bits, byte_order);
16038  }
16039  *offsetp += 4;
16040  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 12, ENC_NA);
16041  *offsetp += 12;
16042  f_privsize = tvb_get_guint32(tvb, *offsetp, byte_order);
16043  proto_tree_add_item(t, hf_x11_xf86vidmode_DeleteModeLine_privsize, tvb, *offsetp, 4, byte_order);
16044  *offsetp += 4;
16045  listOfByte(tvb, offsetp, t, hf_x11_xf86vidmode_DeleteModeLine_private, f_privsize, byte_order);
16046  length -= f_privsize * 1;
16047 }
16048 
16049 static void xf86vidmodeValidateModeLine(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
16050 {
16051  int f_privsize;
16052  proto_tree_add_item(t, hf_x11_xf86vidmode_ValidateModeLine_screen, tvb, *offsetp, 4, byte_order);
16053  *offsetp += 4;
16054  proto_tree_add_item(t, hf_x11_xf86vidmode_ValidateModeLine_dotclock, tvb, *offsetp, 4, byte_order);
16055  *offsetp += 4;
16056  proto_tree_add_item(t, hf_x11_xf86vidmode_ValidateModeLine_hdisplay, tvb, *offsetp, 2, byte_order);
16057  *offsetp += 2;
16058  proto_tree_add_item(t, hf_x11_xf86vidmode_ValidateModeLine_hsyncstart, tvb, *offsetp, 2, byte_order);
16059  *offsetp += 2;
16060  proto_tree_add_item(t, hf_x11_xf86vidmode_ValidateModeLine_hsyncend, tvb, *offsetp, 2, byte_order);
16061  *offsetp += 2;
16062  proto_tree_add_item(t, hf_x11_xf86vidmode_ValidateModeLine_htotal, tvb, *offsetp, 2, byte_order);
16063  *offsetp += 2;
16064  proto_tree_add_item(t, hf_x11_xf86vidmode_ValidateModeLine_hskew, tvb, *offsetp, 2, byte_order);
16065  *offsetp += 2;
16066  proto_tree_add_item(t, hf_x11_xf86vidmode_ValidateModeLine_vdisplay, tvb, *offsetp, 2, byte_order);
16067  *offsetp += 2;
16068  proto_tree_add_item(t, hf_x11_xf86vidmode_ValidateModeLine_vsyncstart, tvb, *offsetp, 2, byte_order);
16069  *offsetp += 2;
16070  proto_tree_add_item(t, hf_x11_xf86vidmode_ValidateModeLine_vsyncend, tvb, *offsetp, 2, byte_order);
16071  *offsetp += 2;
16072  proto_tree_add_item(t, hf_x11_xf86vidmode_ValidateModeLine_vtotal, tvb, *offsetp, 2, byte_order);
16073  *offsetp += 2;
16074  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 2, ENC_NA);
16075  *offsetp += 2;
16076  {
16077  const int* flags_bits [] = {
16078  &hf_x11_xf86vidmode_ValidateModeLine_flags_mask_Positive_HSync,
16079  &hf_x11_xf86vidmode_ValidateModeLine_flags_mask_Negative_HSync,
16080  &hf_x11_xf86vidmode_ValidateModeLine_flags_mask_Positive_VSync,
16081  &hf_x11_xf86vidmode_ValidateModeLine_flags_mask_Negative_VSync,
16082  &hf_x11_xf86vidmode_ValidateModeLine_flags_mask_Interlace,
16083  &hf_x11_xf86vidmode_ValidateModeLine_flags_mask_Composite_Sync,
16084  &hf_x11_xf86vidmode_ValidateModeLine_flags_mask_Positive_CSync,
16085  &hf_x11_xf86vidmode_ValidateModeLine_flags_mask_Negative_CSync,
16086  &hf_x11_xf86vidmode_ValidateModeLine_flags_mask_HSkew,
16087  &hf_x11_xf86vidmode_ValidateModeLine_flags_mask_Broadcast,
16088  &hf_x11_xf86vidmode_ValidateModeLine_flags_mask_Pixmux,
16089  &hf_x11_xf86vidmode_ValidateModeLine_flags_mask_Double_Clock,
16090  &hf_x11_xf86vidmode_ValidateModeLine_flags_mask_Half_Clock,
16091  NULL
16092  };
16093  proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_xf86vidmode_ValidateModeLine_flags, ett_x11_rectangle, flags_bits, byte_order);
16094  }
16095  *offsetp += 4;
16096  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 12, ENC_NA);
16097  *offsetp += 12;
16098  f_privsize = tvb_get_guint32(tvb, *offsetp, byte_order);
16099  proto_tree_add_item(t, hf_x11_xf86vidmode_ValidateModeLine_privsize, tvb, *offsetp, 4, byte_order);
16100  *offsetp += 4;
16101  listOfByte(tvb, offsetp, t, hf_x11_xf86vidmode_ValidateModeLine_private, f_privsize, byte_order);
16102  length -= f_privsize * 1;
16103 }
16104 static void xf86vidmodeValidateModeLine_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
16105 {
16106  int sequence_number;
16107 
16108  col_append_fstr(pinfo->cinfo, COL_INFO, "-ValidateModeLine");
16109 
16110  REPLY(reply);
16111  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
16112  *offsetp += 1;
16113  sequence_number = tvb_get_guint16(tvb, *offsetp, byte_order);
16114  proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
16115  "%d (xf86vidmode-ValidateModeLine)", sequence_number);
16116  *offsetp += 2;
16117  proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
16118  *offsetp += 4;
16119  proto_tree_add_item(t, hf_x11_xf86vidmode_ValidateModeLine_reply_status, tvb, *offsetp, 4, byte_order);
16120  *offsetp += 4;
16121  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 20, ENC_NA);
16122  *offsetp += 20;
16123 }
16124 
16125 static void xf86vidmodeSwitchToMode(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
16126 {
16127  int f_privsize;
16128  proto_tree_add_item(t, hf_x11_xf86vidmode_SwitchToMode_screen, tvb, *offsetp, 4, byte_order);
16129  *offsetp += 4;
16130  proto_tree_add_item(t, hf_x11_xf86vidmode_SwitchToMode_dotclock, tvb, *offsetp, 4, byte_order);
16131  *offsetp += 4;
16132  proto_tree_add_item(t, hf_x11_xf86vidmode_SwitchToMode_hdisplay, tvb, *offsetp, 2, byte_order);
16133  *offsetp += 2;
16134  proto_tree_add_item(t, hf_x11_xf86vidmode_SwitchToMode_hsyncstart, tvb, *offsetp, 2, byte_order);
16135  *offsetp += 2;
16136  proto_tree_add_item(t, hf_x11_xf86vidmode_SwitchToMode_hsyncend, tvb, *offsetp, 2, byte_order);
16137  *offsetp += 2;
16138  proto_tree_add_item(t, hf_x11_xf86vidmode_SwitchToMode_htotal, tvb, *offsetp, 2, byte_order);
16139  *offsetp += 2;
16140  proto_tree_add_item(t, hf_x11_xf86vidmode_SwitchToMode_hskew, tvb, *offsetp, 2, byte_order);
16141  *offsetp += 2;
16142  proto_tree_add_item(t, hf_x11_xf86vidmode_SwitchToMode_vdisplay, tvb, *offsetp, 2, byte_order);
16143  *offsetp += 2;
16144  proto_tree_add_item(t, hf_x11_xf86vidmode_SwitchToMode_vsyncstart, tvb, *offsetp, 2, byte_order);
16145  *offsetp += 2;
16146  proto_tree_add_item(t, hf_x11_xf86vidmode_SwitchToMode_vsyncend, tvb, *offsetp, 2, byte_order);
16147  *offsetp += 2;
16148  proto_tree_add_item(t, hf_x11_xf86vidmode_SwitchToMode_vtotal, tvb, *offsetp, 2, byte_order);
16149  *offsetp += 2;
16150  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 2, ENC_NA);
16151  *offsetp += 2;
16152  {
16153  const int* flags_bits [] = {
16154  &hf_x11_xf86vidmode_SwitchToMode_flags_mask_Positive_HSync,
16155  &hf_x11_xf86vidmode_SwitchToMode_flags_mask_Negative_HSync,
16156  &hf_x11_xf86vidmode_SwitchToMode_flags_mask_Positive_VSync,
16157  &hf_x11_xf86vidmode_SwitchToMode_flags_mask_Negative_VSync,
16158  &hf_x11_xf86vidmode_SwitchToMode_flags_mask_Interlace,
16159  &hf_x11_xf86vidmode_SwitchToMode_flags_mask_Composite_Sync,
16160  &hf_x11_xf86vidmode_SwitchToMode_flags_mask_Positive_CSync,
16161  &hf_x11_xf86vidmode_SwitchToMode_flags_mask_Negative_CSync,
16162  &hf_x11_xf86vidmode_SwitchToMode_flags_mask_HSkew,
16163  &hf_x11_xf86vidmode_SwitchToMode_flags_mask_Broadcast,
16164  &hf_x11_xf86vidmode_SwitchToMode_flags_mask_Pixmux,
16165  &hf_x11_xf86vidmode_SwitchToMode_flags_mask_Double_Clock,
16166  &hf_x11_xf86vidmode_SwitchToMode_flags_mask_Half_Clock,
16167  NULL
16168  };
16169  proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_xf86vidmode_SwitchToMode_flags, ett_x11_rectangle, flags_bits, byte_order);
16170  }
16171  *offsetp += 4;
16172  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 12, ENC_NA);
16173  *offsetp += 12;
16174  f_privsize = tvb_get_guint32(tvb, *offsetp, byte_order);
16175  proto_tree_add_item(t, hf_x11_xf86vidmode_SwitchToMode_privsize, tvb, *offsetp, 4, byte_order);
16176  *offsetp += 4;
16177  listOfByte(tvb, offsetp, t, hf_x11_xf86vidmode_SwitchToMode_private, f_privsize, byte_order);
16178  length -= f_privsize * 1;
16179 }
16180 
16181 static void xf86vidmodeGetViewPort(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
16182 {
16183  proto_tree_add_item(t, hf_x11_xf86vidmode_GetViewPort_screen, tvb, *offsetp, 2, byte_order);
16184  *offsetp += 2;
16185  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 2, ENC_NA);
16186  *offsetp += 2;
16187 }
16188 static void xf86vidmodeGetViewPort_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
16189 {
16190  int sequence_number;
16191 
16192  col_append_fstr(pinfo->cinfo, COL_INFO, "-GetViewPort");
16193 
16194  REPLY(reply);
16195  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
16196  *offsetp += 1;
16197  sequence_number = tvb_get_guint16(tvb, *offsetp, byte_order);
16198  proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
16199  "%d (xf86vidmode-GetViewPort)", sequence_number);
16200  *offsetp += 2;
16201  proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
16202  *offsetp += 4;
16203  proto_tree_add_item(t, hf_x11_xf86vidmode_GetViewPort_reply_x, tvb, *offsetp, 4, byte_order);
16204  *offsetp += 4;
16205  proto_tree_add_item(t, hf_x11_xf86vidmode_GetViewPort_reply_y, tvb, *offsetp, 4, byte_order);
16206  *offsetp += 4;
16207  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 16, ENC_NA);
16208  *offsetp += 16;
16209 }
16210 
16211 static void xf86vidmodeSetViewPort(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
16212 {
16213  proto_tree_add_item(t, hf_x11_xf86vidmode_SetViewPort_screen, tvb, *offsetp, 2, byte_order);
16214  *offsetp += 2;
16215  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 2, ENC_NA);
16216  *offsetp += 2;
16217  proto_tree_add_item(t, hf_x11_xf86vidmode_SetViewPort_x, tvb, *offsetp, 4, byte_order);
16218  *offsetp += 4;
16219  proto_tree_add_item(t, hf_x11_xf86vidmode_SetViewPort_y, tvb, *offsetp, 4, byte_order);
16220  *offsetp += 4;
16221 }
16222 
16223 static void xf86vidmodeGetDotClocks(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
16224 {
16225  proto_tree_add_item(t, hf_x11_xf86vidmode_GetDotClocks_screen, tvb, *offsetp, 2, byte_order);
16226  *offsetp += 2;
16227  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 2, ENC_NA);
16228  *offsetp += 2;
16229 }
16230 static void xf86vidmodeGetDotClocks_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
16231 {
16232  int sequence_number;
16233  int f_flags;
16234  int f_clocks;
16235 
16236  col_append_fstr(pinfo->cinfo, COL_INFO, "-GetDotClocks");
16237 
16238  REPLY(reply);
16239  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
16240  *offsetp += 1;
16241  sequence_number = tvb_get_guint16(tvb, *offsetp, byte_order);
16242  proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
16243  "%d (xf86vidmode-GetDotClocks)", sequence_number);
16244  *offsetp += 2;
16245  proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
16246  *offsetp += 4;
16247  f_flags = tvb_get_guint32(tvb, *offsetp, byte_order);
16248  {
16249  const int* flags_bits [] = {
16250  &hf_x11_xf86vidmode_GetDotClocks_reply_flags_mask_Programable,
16251  NULL
16252  };
16253  proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_xf86vidmode_GetDotClocks_reply_flags, ett_x11_rectangle, flags_bits, byte_order);
16254  }
16255  *offsetp += 4;
16256  f_clocks = tvb_get_guint32(tvb, *offsetp, byte_order);
16257  proto_tree_add_item(t, hf_x11_xf86vidmode_GetDotClocks_reply_clocks, tvb, *offsetp, 4, byte_order);
16258  *offsetp += 4;
16259  proto_tree_add_item(t, hf_x11_xf86vidmode_GetDotClocks_reply_maxclocks, tvb, *offsetp, 4, byte_order);
16260  *offsetp += 4;
16261  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 12, ENC_NA);
16262  *offsetp += 12;
16263  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);
16264 }
16265 
16266 static void xf86vidmodeSetClientVersion(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
16267 {
16268  proto_tree_add_item(t, hf_x11_xf86vidmode_SetClientVersion_major, tvb, *offsetp, 2, byte_order);
16269  *offsetp += 2;
16270  proto_tree_add_item(t, hf_x11_xf86vidmode_SetClientVersion_minor, tvb, *offsetp, 2, byte_order);
16271  *offsetp += 2;
16272 }
16273 
16274 static void xf86vidmodeSetGamma(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
16275 {
16276  proto_tree_add_item(t, hf_x11_xf86vidmode_SetGamma_screen, tvb, *offsetp, 2, byte_order);
16277  *offsetp += 2;
16278  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 2, ENC_NA);
16279  *offsetp += 2;
16280  proto_tree_add_item(t, hf_x11_xf86vidmode_SetGamma_red, tvb, *offsetp, 4, byte_order);
16281  *offsetp += 4;
16282  proto_tree_add_item(t, hf_x11_xf86vidmode_SetGamma_green, tvb, *offsetp, 4, byte_order);
16283  *offsetp += 4;
16284  proto_tree_add_item(t, hf_x11_xf86vidmode_SetGamma_blue, tvb, *offsetp, 4, byte_order);
16285  *offsetp += 4;
16286  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 12, ENC_NA);
16287  *offsetp += 12;
16288 }
16289 
16290 static void xf86vidmodeGetGamma(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
16291 {
16292  proto_tree_add_item(t, hf_x11_xf86vidmode_GetGamma_screen, tvb, *offsetp, 2, byte_order);
16293  *offsetp += 2;
16294  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 26, ENC_NA);
16295  *offsetp += 26;
16296 }
16297 static void xf86vidmodeGetGamma_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
16298 {
16299  int sequence_number;
16300 
16301  col_append_fstr(pinfo->cinfo, COL_INFO, "-GetGamma");
16302 
16303  REPLY(reply);
16304  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
16305  *offsetp += 1;
16306  sequence_number = tvb_get_guint16(tvb, *offsetp, byte_order);
16307  proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
16308  "%d (xf86vidmode-GetGamma)", sequence_number);
16309  *offsetp += 2;
16310  proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
16311  *offsetp += 4;
16312  proto_tree_add_item(t, hf_x11_xf86vidmode_GetGamma_reply_red, tvb, *offsetp, 4, byte_order);
16313  *offsetp += 4;
16314  proto_tree_add_item(t, hf_x11_xf86vidmode_GetGamma_reply_green, tvb, *offsetp, 4, byte_order);
16315  *offsetp += 4;
16316  proto_tree_add_item(t, hf_x11_xf86vidmode_GetGamma_reply_blue, tvb, *offsetp, 4, byte_order);
16317  *offsetp += 4;
16318  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 12, ENC_NA);
16319  *offsetp += 12;
16320 }
16321 
16322 static void xf86vidmodeGetGammaRamp(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
16323 {
16324  proto_tree_add_item(t, hf_x11_xf86vidmode_GetGammaRamp_screen, tvb, *offsetp, 2, byte_order);
16325  *offsetp += 2;
16326  proto_tree_add_item(t, hf_x11_xf86vidmode_GetGammaRamp_size, tvb, *offsetp, 2, byte_order);
16327  *offsetp += 2;
16328 }
16329 static void xf86vidmodeGetGammaRamp_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
16330 {
16331  int sequence_number;
16332  int f_size;
16333 
16334  col_append_fstr(pinfo->cinfo, COL_INFO, "-GetGammaRamp");
16335 
16336  REPLY(reply);
16337  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
16338  *offsetp += 1;
16339  sequence_number = tvb_get_guint16(tvb, *offsetp, byte_order);
16340  proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
16341  "%d (xf86vidmode-GetGammaRamp)", sequence_number);
16342  *offsetp += 2;
16343  proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
16344  *offsetp += 4;
16345  f_size = tvb_get_guint16(tvb, *offsetp, byte_order);
16346  proto_tree_add_item(t, hf_x11_xf86vidmode_GetGammaRamp_reply_size, tvb, *offsetp, 2, byte_order);
16347  *offsetp += 2;
16348  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 22, ENC_NA);
16349  *offsetp += 22;
16350  listOfCard16(tvb, offsetp, t, hf_x11_xf86vidmode_GetGammaRamp_reply_red, hf_x11_xf86vidmode_GetGammaRamp_reply_red_item, ((f_size + 1) & (~1)), byte_order);
16351  listOfCard16(tvb, offsetp, t, hf_x11_xf86vidmode_GetGammaRamp_reply_green, hf_x11_xf86vidmode_GetGammaRamp_reply_green_item, ((f_size + 1) & (~1)), byte_order);
16352  listOfCard16(tvb, offsetp, t, hf_x11_xf86vidmode_GetGammaRamp_reply_blue, hf_x11_xf86vidmode_GetGammaRamp_reply_blue_item, ((f_size + 1) & (~1)), byte_order);
16353 }
16354 
16355 static void xf86vidmodeSetGammaRamp(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
16356 {
16357  int f_size;
16358  proto_tree_add_item(t, hf_x11_xf86vidmode_SetGammaRamp_screen, tvb, *offsetp, 2, byte_order);
16359  *offsetp += 2;
16360  f_size = tvb_get_guint16(tvb, *offsetp, byte_order);
16361  proto_tree_add_item(t, hf_x11_xf86vidmode_SetGammaRamp_size, tvb, *offsetp, 2, byte_order);
16362  *offsetp += 2;
16363  listOfCard16(tvb, offsetp, t, hf_x11_xf86vidmode_SetGammaRamp_red, hf_x11_xf86vidmode_SetGammaRamp_red_item, ((f_size + 1) & (~1)), byte_order);
16364  length -= ((f_size + 1) & (~1)) * 2;
16365  listOfCard16(tvb, offsetp, t, hf_x11_xf86vidmode_SetGammaRamp_green, hf_x11_xf86vidmode_SetGammaRamp_green_item, ((f_size + 1) & (~1)), byte_order);
16366  length -= ((f_size + 1) & (~1)) * 2;
16367  listOfCard16(tvb, offsetp, t, hf_x11_xf86vidmode_SetGammaRamp_blue, hf_x11_xf86vidmode_SetGammaRamp_blue_item, ((f_size + 1) & (~1)), byte_order);
16368  length -= ((f_size + 1) & (~1)) * 2;
16369 }
16370 
16371 static void xf86vidmodeGetGammaRampSize(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
16372 {
16373  proto_tree_add_item(t, hf_x11_xf86vidmode_GetGammaRampSize_screen, tvb, *offsetp, 2, byte_order);
16374  *offsetp += 2;
16375  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 2, ENC_NA);
16376  *offsetp += 2;
16377 }
16378 static void xf86vidmodeGetGammaRampSize_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
16379 {
16380  int sequence_number;
16381 
16382  col_append_fstr(pinfo->cinfo, COL_INFO, "-GetGammaRampSize");
16383 
16384  REPLY(reply);
16385  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
16386  *offsetp += 1;
16387  sequence_number = tvb_get_guint16(tvb, *offsetp, byte_order);
16388  proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
16389  "%d (xf86vidmode-GetGammaRampSize)", sequence_number);
16390  *offsetp += 2;
16391  proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
16392  *offsetp += 4;
16393  proto_tree_add_item(t, hf_x11_xf86vidmode_GetGammaRampSize_reply_size, tvb, *offsetp, 2, byte_order);
16394  *offsetp += 2;
16395  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 22, ENC_NA);
16396  *offsetp += 22;
16397 }
16398 
16399 static void xf86vidmodeGetPermissions(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
16400 {
16401  proto_tree_add_item(t, hf_x11_xf86vidmode_GetPermissions_screen, tvb, *offsetp, 2, byte_order);
16402  *offsetp += 2;
16403  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 2, ENC_NA);
16404  *offsetp += 2;
16405 }
16406 static void xf86vidmodeGetPermissions_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
16407 {
16408  int sequence_number;
16409 
16410  col_append_fstr(pinfo->cinfo, COL_INFO, "-GetPermissions");
16411 
16412  REPLY(reply);
16413  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
16414  *offsetp += 1;
16415  sequence_number = tvb_get_guint16(tvb, *offsetp, byte_order);
16416  proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
16417  "%d (xf86vidmode-GetPermissions)", sequence_number);
16418  *offsetp += 2;
16419  proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
16420  *offsetp += 4;
16421  {
16422  const int* permissions_bits [] = {
16423  &hf_x11_xf86vidmode_GetPermissions_reply_permissions_mask_Read,
16424  &hf_x11_xf86vidmode_GetPermissions_reply_permissions_mask_Write,
16425  NULL
16426  };
16427  proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_xf86vidmode_GetPermissions_reply_permissions, ett_x11_rectangle, permissions_bits, byte_order);
16428  }
16429  *offsetp += 4;
16430  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 20, ENC_NA);
16431  *offsetp += 20;
16432 }
16433 static const value_string xf86vidmode_extension_minor[] = {
16434  { 0, "QueryVersion" },
16435  { 1, "GetModeLine" },
16436  { 2, "ModModeLine" },
16437  { 3, "SwitchMode" },
16438  { 4, "GetMonitor" },
16439  { 5, "LockModeSwitch" },
16440  { 6, "GetAllModeLines" },
16441  { 7, "AddModeLine" },
16442  { 8, "DeleteModeLine" },
16443  { 9, "ValidateModeLine" },
16444  { 10, "SwitchToMode" },
16445  { 11, "GetViewPort" },
16446  { 12, "SetViewPort" },
16447  { 13, "GetDotClocks" },
16448  { 14, "SetClientVersion" },
16449  { 15, "SetGamma" },
16450  { 16, "GetGamma" },
16451  { 17, "GetGammaRamp" },
16452  { 18, "SetGammaRamp" },
16453  { 19, "GetGammaRampSize" },
16454  { 20, "GetPermissions" },
16455  { 0, NULL }
16456 };
16457 const x11_event_info xf86vidmode_events[] = {
16458  { NULL, NULL }
16459 };
16460 static x11_reply_info xf86vidmode_replies[] = {
16461  { 0, xf86vidmodeQueryVersion_Reply },
16462  { 1, xf86vidmodeGetModeLine_Reply },
16463  { 4, xf86vidmodeGetMonitor_Reply },
16464  { 6, xf86vidmodeGetAllModeLines_Reply },
16465  { 9, xf86vidmodeValidateModeLine_Reply },
16466  { 11, xf86vidmodeGetViewPort_Reply },
16467  { 13, xf86vidmodeGetDotClocks_Reply },
16468  { 16, xf86vidmodeGetGamma_Reply },
16469  { 17, xf86vidmodeGetGammaRamp_Reply },
16470  { 19, xf86vidmodeGetGammaRampSize_Reply },
16471  { 20, xf86vidmodeGetPermissions_Reply },
16472  { 0, NULL }
16473 };
16474 
16475 static void dispatch_xf86vidmode(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
16476 {
16477  int minor, length;
16478  minor = CARD8(xf86vidmode_extension_minor);
16479  length = REQUEST_LENGTH();
16480 
16481  col_append_fstr(pinfo->cinfo, COL_INFO, "-%s",
16482  val_to_str(minor, xf86vidmode_extension_minor,
16483  "<Unknown opcode %d>"));
16484  switch (minor) {
16485  case 0:
16486  xf86vidmodeQueryVersion(tvb, pinfo, offsetp, t, byte_order, length);
16487  break;
16488  case 1:
16489  xf86vidmodeGetModeLine(tvb, pinfo, offsetp, t, byte_order, length);
16490  break;
16491  case 2:
16492  xf86vidmodeModModeLine(tvb, pinfo, offsetp, t, byte_order, length);
16493  break;
16494  case 3:
16495  xf86vidmodeSwitchMode(tvb, pinfo, offsetp, t, byte_order, length);
16496  break;
16497  case 4:
16498  xf86vidmodeGetMonitor(tvb, pinfo, offsetp, t, byte_order, length);
16499  break;
16500  case 5:
16501  xf86vidmodeLockModeSwitch(tvb, pinfo, offsetp, t, byte_order, length);
16502  break;
16503  case 6:
16504  xf86vidmodeGetAllModeLines(tvb, pinfo, offsetp, t, byte_order, length);
16505  break;
16506  case 7:
16507  xf86vidmodeAddModeLine(tvb, pinfo, offsetp, t, byte_order, length);
16508  break;
16509  case 8:
16510  xf86vidmodeDeleteModeLine(tvb, pinfo, offsetp, t, byte_order, length);
16511  break;
16512  case 9:
16513  xf86vidmodeValidateModeLine(tvb, pinfo, offsetp, t, byte_order, length);
16514  break;
16515  case 10:
16516  xf86vidmodeSwitchToMode(tvb, pinfo, offsetp, t, byte_order, length);
16517  break;
16518  case 11:
16519  xf86vidmodeGetViewPort(tvb, pinfo, offsetp, t, byte_order, length);
16520  break;
16521  case 12:
16522  xf86vidmodeSetViewPort(tvb, pinfo, offsetp, t, byte_order, length);
16523  break;
16524  case 13:
16525  xf86vidmodeGetDotClocks(tvb, pinfo, offsetp, t, byte_order, length);
16526  break;
16527  case 14:
16528  xf86vidmodeSetClientVersion(tvb, pinfo, offsetp, t, byte_order, length);
16529  break;
16530  case 15:
16531  xf86vidmodeSetGamma(tvb, pinfo, offsetp, t, byte_order, length);
16532  break;
16533  case 16:
16534  xf86vidmodeGetGamma(tvb, pinfo, offsetp, t, byte_order, length);
16535  break;
16536  case 17:
16537  xf86vidmodeGetGammaRamp(tvb, pinfo, offsetp, t, byte_order, length);
16538  break;
16539  case 18:
16540  xf86vidmodeSetGammaRamp(tvb, pinfo, offsetp, t, byte_order, length);
16541  break;
16542  case 19:
16543  xf86vidmodeGetGammaRampSize(tvb, pinfo, offsetp, t, byte_order, length);
16544  break;
16545  case 20:
16546  xf86vidmodeGetPermissions(tvb, pinfo, offsetp, t, byte_order, length);
16547  break;
16548  /* No need for a default case here, since Unknown is printed above,
16549  and UNDECODED() is taken care of by dissect_x11_request */
16550  }
16551 }
16552 
16553 static void register_xf86vidmode(void)
16554 {
16555  set_handler("XFree86-VidModeExtension", dispatch_xf86vidmode, xf86vidmode_errors, xf86vidmode_events, NULL, xf86vidmode_replies);
16556 }
16557 
16558 static void xfixesQueryVersion(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
16559 {
16560  proto_tree_add_item(t, hf_x11_xfixes_QueryVersion_client_major_version, tvb, *offsetp, 4, byte_order);
16561  *offsetp += 4;
16562  proto_tree_add_item(t, hf_x11_xfixes_QueryVersion_client_minor_version, tvb, *offsetp, 4, byte_order);
16563  *offsetp += 4;
16564 }
16565 static void xfixesQueryVersion_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
16566 {
16567  int sequence_number;
16568 
16569  col_append_fstr(pinfo->cinfo, COL_INFO, "-QueryVersion");
16570 
16571  REPLY(reply);
16572  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
16573  *offsetp += 1;
16574  sequence_number = tvb_get_guint16(tvb, *offsetp, byte_order);
16575  proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
16576  "%d (xfixes-QueryVersion)", sequence_number);
16577  *offsetp += 2;
16578  proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
16579  *offsetp += 4;
16580  proto_tree_add_item(t, hf_x11_xfixes_QueryVersion_reply_major_version, tvb, *offsetp, 4, byte_order);
16581  *offsetp += 4;
16582  proto_tree_add_item(t, hf_x11_xfixes_QueryVersion_reply_minor_version, tvb, *offsetp, 4, byte_order);
16583  *offsetp += 4;
16584  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 16, ENC_NA);
16585  *offsetp += 16;
16586 }
16587 
16588 static void xfixesChangeSaveSet(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
16589 {
16590  field8(tvb, offsetp, t, hf_x11_xfixes_ChangeSaveSet_mode, byte_order);
16591  field8(tvb, offsetp, t, hf_x11_xfixes_ChangeSaveSet_target, byte_order);
16592  field8(tvb, offsetp, t, hf_x11_xfixes_ChangeSaveSet_map, byte_order);
16593  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
16594  *offsetp += 1;
16595  proto_tree_add_item(t, hf_x11_xfixes_ChangeSaveSet_window, tvb, *offsetp, 4, byte_order);
16596  *offsetp += 4;
16597 }
16598 
16599 static void xfixesSelectSelectionInput(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
16600 {
16601  proto_tree_add_item(t, hf_x11_xfixes_SelectSelectionInput_window, tvb, *offsetp, 4, byte_order);
16602  *offsetp += 4;
16603  proto_tree_add_item(t, hf_x11_xfixes_SelectSelectionInput_selection, tvb, *offsetp, 4, byte_order);
16604  *offsetp += 4;
16605  {
16606  const int* event_mask_bits [] = {
16607  &hf_x11_xfixes_SelectSelectionInput_event_mask_mask_SetSelectionOwner,
16608  &hf_x11_xfixes_SelectSelectionInput_event_mask_mask_SelectionWindowDestroy,
16609  &hf_x11_xfixes_SelectSelectionInput_event_mask_mask_SelectionClientClose,
16610  NULL
16611  };
16612  proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_xfixes_SelectSelectionInput_event_mask, ett_x11_rectangle, event_mask_bits, byte_order);
16613  }
16614  *offsetp += 4;
16615 }
16616 
16617 static void xfixesCursorNotify(tvbuff_t *tvb, int *offsetp, proto_tree *t, guint byte_order)
16618 {
16619  field8(tvb, offsetp, t, hf_x11_xfixes_CursorNotify_subtype, byte_order);
16620  CARD16(event_sequencenumber);
16621  proto_tree_add_item(t, hf_x11_xfixes_CursorNotify_window, tvb, *offsetp, 4, byte_order);
16622  *offsetp += 4;
16623  proto_tree_add_item(t, hf_x11_xfixes_CursorNotify_cursor_serial, tvb, *offsetp, 4, byte_order);
16624  *offsetp += 4;
16625  proto_tree_add_item(t, hf_x11_xfixes_CursorNotify_timestamp, tvb, *offsetp, 4, byte_order);
16626  *offsetp += 4;
16627  field32(tvb, offsetp, t, hf_x11_xfixes_CursorNotify_name, byte_order);
16628  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 12, ENC_NA);
16629  *offsetp += 12;
16630 }
16631 
16632 
16633 static void xfixesSelectCursorInput(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
16634 {
16635  proto_tree_add_item(t, hf_x11_xfixes_SelectCursorInput_window, tvb, *offsetp, 4, byte_order);
16636  *offsetp += 4;
16637  {
16638  const int* event_mask_bits [] = {
16639  &hf_x11_xfixes_SelectCursorInput_event_mask_mask_DisplayCursor,
16640  NULL
16641  };
16642  proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_xfixes_SelectCursorInput_event_mask, ett_x11_rectangle, event_mask_bits, byte_order);
16643  }
16644  *offsetp += 4;
16645 }
16646 
16647 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_)
16648 {
16649 }
16650 static void xfixesGetCursorImage_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
16651 {
16652  int sequence_number;
16653  int f_width;
16654  int f_height;
16655 
16656  col_append_fstr(pinfo->cinfo, COL_INFO, "-GetCursorImage");
16657 
16658  REPLY(reply);
16659  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
16660  *offsetp += 1;
16661  sequence_number = tvb_get_guint16(tvb, *offsetp, byte_order);
16662  proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
16663  "%d (xfixes-GetCursorImage)", sequence_number);
16664  *offsetp += 2;
16665  proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
16666  *offsetp += 4;
16667  proto_tree_add_item(t, hf_x11_xfixes_GetCursorImage_reply_x, tvb, *offsetp, 2, byte_order);
16668  *offsetp += 2;
16669  proto_tree_add_item(t, hf_x11_xfixes_GetCursorImage_reply_y, tvb, *offsetp, 2, byte_order);
16670  *offsetp += 2;
16671  f_width = tvb_get_guint16(tvb, *offsetp, byte_order);
16672  proto_tree_add_item(t, hf_x11_xfixes_GetCursorImage_reply_width, tvb, *offsetp, 2, byte_order);
16673  *offsetp += 2;
16674  f_height = tvb_get_guint16(tvb, *offsetp, byte_order);
16675  proto_tree_add_item(t, hf_x11_xfixes_GetCursorImage_reply_height, tvb, *offsetp, 2, byte_order);
16676  *offsetp += 2;
16677  proto_tree_add_item(t, hf_x11_xfixes_GetCursorImage_reply_xhot, tvb, *offsetp, 2, byte_order);
16678  *offsetp += 2;
16679  proto_tree_add_item(t, hf_x11_xfixes_GetCursorImage_reply_yhot, tvb, *offsetp, 2, byte_order);
16680  *offsetp += 2;
16681  proto_tree_add_item(t, hf_x11_xfixes_GetCursorImage_reply_cursor_serial, tvb, *offsetp, 4, byte_order);
16682  *offsetp += 4;
16683  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 8, ENC_NA);
16684  *offsetp += 8;
16685  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);
16686 }
16687 
16688 static void xfixesCreateRegion(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
16689 {
16690  proto_tree_add_item(t, hf_x11_xfixes_CreateRegion_region, tvb, *offsetp, 4, byte_order);
16691  *offsetp += 4;
16692  struct_xproto_RECTANGLE(tvb, offsetp, t, byte_order, (length - 8) / 8);
16693 }
16694 
16695 static void xfixesCreateRegionFromBitmap(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
16696 {
16697  proto_tree_add_item(t, hf_x11_xfixes_CreateRegionFromBitmap_region, tvb, *offsetp, 4, byte_order);
16698  *offsetp += 4;
16699  proto_tree_add_item(t, hf_x11_xfixes_CreateRegionFromBitmap_bitmap, tvb, *offsetp, 4, byte_order);
16700  *offsetp += 4;
16701 }
16702 
16703 static void xfixesCreateRegionFromWindow(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
16704 {
16705  proto_tree_add_item(t, hf_x11_xfixes_CreateRegionFromWindow_region, tvb, *offsetp, 4, byte_order);
16706  *offsetp += 4;
16707  proto_tree_add_item(t, hf_x11_xfixes_CreateRegionFromWindow_window, tvb, *offsetp, 4, byte_order);
16708  *offsetp += 4;
16709  field8(tvb, offsetp, t, hf_x11_xfixes_CreateRegionFromWindow_kind, byte_order);
16710  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 3, ENC_NA);
16711  *offsetp += 3;
16712 }
16713 
16714 static void xfixesCreateRegionFromGC(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
16715 {
16716  proto_tree_add_item(t, hf_x11_xfixes_CreateRegionFromGC_region, tvb, *offsetp, 4, byte_order);
16717  *offsetp += 4;
16718  proto_tree_add_item(t, hf_x11_xfixes_CreateRegionFromGC_gc, tvb, *offsetp, 4, byte_order);
16719  *offsetp += 4;
16720 }
16721 
16722 static void xfixesCreateRegionFromPicture(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
16723 {
16724  proto_tree_add_item(t, hf_x11_xfixes_CreateRegionFromPicture_region, tvb, *offsetp, 4, byte_order);
16725  *offsetp += 4;
16726  proto_tree_add_item(t, hf_x11_xfixes_CreateRegionFromPicture_picture, tvb, *offsetp, 4, byte_order);
16727  *offsetp += 4;
16728 }
16729 
16730 static void xfixesDestroyRegion(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
16731 {
16732  proto_tree_add_item(t, hf_x11_xfixes_DestroyRegion_region, tvb, *offsetp, 4, byte_order);
16733  *offsetp += 4;
16734 }
16735 
16736 static void xfixesSetRegion(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
16737 {
16738  proto_tree_add_item(t, hf_x11_xfixes_SetRegion_region, tvb, *offsetp, 4, byte_order);
16739  *offsetp += 4;
16740  struct_xproto_RECTANGLE(tvb, offsetp, t, byte_order, (length - 8) / 8);
16741 }
16742 
16743 static void xfixesCopyRegion(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
16744 {
16745  proto_tree_add_item(t, hf_x11_xfixes_CopyRegion_source, tvb, *offsetp, 4, byte_order);
16746  *offsetp += 4;
16747  proto_tree_add_item(t, hf_x11_xfixes_CopyRegion_destination, tvb, *offsetp, 4, byte_order);
16748  *offsetp += 4;
16749 }
16750 
16751 static void xfixesUnionRegion(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
16752 {
16753  proto_tree_add_item(t, hf_x11_xfixes_UnionRegion_source1, tvb, *offsetp, 4, byte_order);
16754  *offsetp += 4;
16755  proto_tree_add_item(t, hf_x11_xfixes_UnionRegion_source2, tvb, *offsetp, 4, byte_order);
16756  *offsetp += 4;
16757  proto_tree_add_item(t, hf_x11_xfixes_UnionRegion_destination, tvb, *offsetp, 4, byte_order);
16758  *offsetp += 4;
16759 }
16760 
16761 static void xfixesIntersectRegion(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_IntersectRegion_source1, tvb, *offsetp, 4, byte_order);
16764  *offsetp += 4;
16765  proto_tree_add_item(t, hf_x11_xfixes_IntersectRegion_source2, tvb, *offsetp, 4, byte_order);
16766  *offsetp += 4;
16767  proto_tree_add_item(t, hf_x11_xfixes_IntersectRegion_destination, tvb, *offsetp, 4, byte_order);
16768  *offsetp += 4;
16769 }
16770 
16771 static void xfixesSubtractRegion(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
16772 {
16773  proto_tree_add_item(t, hf_x11_xfixes_SubtractRegion_source1, tvb, *offsetp, 4, byte_order);
16774  *offsetp += 4;
16775  proto_tree_add_item(t, hf_x11_xfixes_SubtractRegion_source2, tvb, *offsetp, 4, byte_order);
16776  *offsetp += 4;
16777  proto_tree_add_item(t, hf_x11_xfixes_SubtractRegion_destination, tvb, *offsetp, 4, byte_order);
16778  *offsetp += 4;
16779 }
16780 
16781 static void xfixesInvertRegion(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
16782 {
16783  proto_tree_add_item(t, hf_x11_xfixes_InvertRegion_source, tvb, *offsetp, 4, byte_order);
16784  *offsetp += 4;
16785  struct_xproto_RECTANGLE(tvb, offsetp, t, byte_order, 1);
16786  proto_tree_add_item(t, hf_x11_xfixes_InvertRegion_destination, tvb, *offsetp, 4, byte_order);
16787  *offsetp += 4;
16788 }
16789 
16790 static void xfixesTranslateRegion(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
16791 {
16792  proto_tree_add_item(t, hf_x11_xfixes_TranslateRegion_region, tvb, *offsetp, 4, byte_order);
16793  *offsetp += 4;
16794  proto_tree_add_item(t, hf_x11_xfixes_TranslateRegion_dx, tvb, *offsetp, 2, byte_order);
16795  *offsetp += 2;
16796  proto_tree_add_item(t, hf_x11_xfixes_TranslateRegion_dy, tvb, *offsetp, 2, byte_order);
16797  *offsetp += 2;
16798 }
16799 
16800 static void xfixesRegionExtents(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
16801 {
16802  proto_tree_add_item(t, hf_x11_xfixes_RegionExtents_source, tvb, *offsetp, 4, byte_order);
16803  *offsetp += 4;
16804  proto_tree_add_item(t, hf_x11_xfixes_RegionExtents_destination, tvb, *offsetp, 4, byte_order);
16805  *offsetp += 4;
16806 }
16807 
16808 static void xfixesFetchRegion(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
16809 {
16810  proto_tree_add_item(t, hf_x11_xfixes_FetchRegion_region, tvb, *offsetp, 4, byte_order);
16811  *offsetp += 4;
16812 }
16813 static void xfixesFetchRegion_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
16814 {
16815  int sequence_number;
16816  int f_length;
16817 
16818  col_append_fstr(pinfo->cinfo, COL_INFO, "-FetchRegion");
16819 
16820  REPLY(reply);
16821  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
16822  *offsetp += 1;
16823  sequence_number = tvb_get_guint16(tvb, *offsetp, byte_order);
16824  proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
16825  "%d (xfixes-FetchRegion)", sequence_number);
16826  *offsetp += 2;
16827  f_length = tvb_get_guint32(tvb, *offsetp, byte_order);
16828  proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
16829  *offsetp += 4;
16830  struct_xproto_RECTANGLE(tvb, offsetp, t, byte_order, 1);
16831  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 16, ENC_NA);
16832  *offsetp += 16;
16833  struct_xproto_RECTANGLE(tvb, offsetp, t, byte_order, (f_length / 2));
16834 }
16835 
16836 static void xfixesSetGCClipRegion(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_SetGCClipRegion_gc, tvb, *offsetp, 4, byte_order);
16839  *offsetp += 4;
16840  field32(tvb, offsetp, t, hf_x11_xfixes_SetGCClipRegion_region, byte_order);
16841  proto_tree_add_item(t, hf_x11_xfixes_SetGCClipRegion_x_origin, tvb, *offsetp, 2, byte_order);
16842  *offsetp += 2;
16843  proto_tree_add_item(t, hf_x11_xfixes_SetGCClipRegion_y_origin, tvb, *offsetp, 2, byte_order);
16844  *offsetp += 2;
16845 }
16846 
16847 static void xfixesSetWindowShapeRegion(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
16848 {
16849  proto_tree_add_item(t, hf_x11_xfixes_SetWindowShapeRegion_dest, tvb, *offsetp, 4, byte_order);
16850  *offsetp += 4;
16851  field8(tvb, offsetp, t, hf_x11_xfixes_SetWindowShapeRegion_dest_kind, byte_order);
16852  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 3, ENC_NA);
16853  *offsetp += 3;
16854  proto_tree_add_item(t, hf_x11_xfixes_SetWindowShapeRegion_x_offset, tvb, *offsetp, 2, byte_order);
16855  *offsetp += 2;
16856  proto_tree_add_item(t, hf_x11_xfixes_SetWindowShapeRegion_y_offset, tvb, *offsetp, 2, byte_order);
16857  *offsetp += 2;
16858  field32(tvb, offsetp, t, hf_x11_xfixes_SetWindowShapeRegion_region, byte_order);
16859 }
16860 
16861 static void xfixesSetPictureClipRegion(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
16862 {
16863  proto_tree_add_item(t, hf_x11_xfixes_SetPictureClipRegion_picture, tvb, *offsetp, 4, byte_order);
16864  *offsetp += 4;
16865  field32(tvb, offsetp, t, hf_x11_xfixes_SetPictureClipRegion_region, byte_order);
16866  proto_tree_add_item(t, hf_x11_xfixes_SetPictureClipRegion_x_origin, tvb, *offsetp, 2, byte_order);
16867  *offsetp += 2;
16868  proto_tree_add_item(t, hf_x11_xfixes_SetPictureClipRegion_y_origin, tvb, *offsetp, 2, byte_order);
16869  *offsetp += 2;
16870 }
16871 
16872 static void xfixesSetCursorName(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
16873 {
16874  int f_nbytes;
16875  proto_tree_add_item(t, hf_x11_xfixes_SetCursorName_cursor, tvb, *offsetp, 4, byte_order);
16876  *offsetp += 4;
16877  f_nbytes = tvb_get_guint16(tvb, *offsetp, byte_order);
16878  proto_tree_add_item(t, hf_x11_xfixes_SetCursorName_nbytes, tvb, *offsetp, 2, byte_order);
16879  *offsetp += 2;
16880  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 2, ENC_NA);
16881  *offsetp += 2;
16882  listOfByte(tvb, offsetp, t, hf_x11_xfixes_SetCursorName_name, f_nbytes, byte_order);
16883  length -= f_nbytes * 1;
16884 }
16885 
16886 static void xfixesGetCursorName(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
16887 {
16888  proto_tree_add_item(t, hf_x11_xfixes_GetCursorName_cursor, tvb, *offsetp, 4, byte_order);
16889  *offsetp += 4;
16890 }
16891 static void xfixesGetCursorName_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
16892 {
16893  int sequence_number;
16894  int f_nbytes;
16895 
16896  col_append_fstr(pinfo->cinfo, COL_INFO, "-GetCursorName");
16897 
16898  REPLY(reply);
16899  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
16900  *offsetp += 1;
16901  sequence_number = tvb_get_guint16(tvb, *offsetp, byte_order);
16902  proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
16903  "%d (xfixes-GetCursorName)", sequence_number);
16904  *offsetp += 2;
16905  proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
16906  *offsetp += 4;
16907  field32(tvb, offsetp, t, hf_x11_xfixes_GetCursorName_reply_atom, byte_order);
16908  f_nbytes = tvb_get_guint16(tvb, *offsetp, byte_order);
16909  proto_tree_add_item(t, hf_x11_xfixes_GetCursorName_reply_nbytes, tvb, *offsetp, 2, byte_order);
16910  *offsetp += 2;
16911  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 18, ENC_NA);
16912  *offsetp += 18;
16913  listOfByte(tvb, offsetp, t, hf_x11_xfixes_GetCursorName_reply_name, f_nbytes, byte_order);
16914 }
16915 
16916 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_)
16917 {
16918 }
16919 static void xfixesGetCursorImageAndName_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
16920 {
16921  int sequence_number;
16922  int f_width;
16923  int f_height;
16924  int f_nbytes;
16925 
16926  col_append_fstr(pinfo->cinfo, COL_INFO, "-GetCursorImageAndName");
16927 
16928  REPLY(reply);
16929  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
16930  *offsetp += 1;
16931  sequence_number = tvb_get_guint16(tvb, *offsetp, byte_order);
16932  proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
16933  "%d (xfixes-GetCursorImageAndName)", sequence_number);
16934  *offsetp += 2;
16935  proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
16936  *offsetp += 4;
16937  proto_tree_add_item(t, hf_x11_xfixes_GetCursorImageAndName_reply_x, tvb, *offsetp, 2, byte_order);
16938  *offsetp += 2;
16939  proto_tree_add_item(t, hf_x11_xfixes_GetCursorImageAndName_reply_y, tvb, *offsetp, 2, byte_order);
16940  *offsetp += 2;
16941  f_width = tvb_get_guint16(tvb, *offsetp, byte_order);
16942  proto_tree_add_item(t, hf_x11_xfixes_GetCursorImageAndName_reply_width, tvb, *offsetp, 2, byte_order);
16943  *offsetp += 2;
16944  f_height = tvb_get_guint16(tvb, *offsetp, byte_order);
16945  proto_tree_add_item(t, hf_x11_xfixes_GetCursorImageAndName_reply_height, tvb, *offsetp, 2, byte_order);
16946  *offsetp += 2;
16947  proto_tree_add_item(t, hf_x11_xfixes_GetCursorImageAndName_reply_xhot, tvb, *offsetp, 2, byte_order);
16948  *offsetp += 2;
16949  proto_tree_add_item(t, hf_x11_xfixes_GetCursorImageAndName_reply_yhot, tvb, *offsetp, 2, byte_order);
16950  *offsetp += 2;
16951  proto_tree_add_item(t, hf_x11_xfixes_GetCursorImageAndName_reply_cursor_serial, tvb, *offsetp, 4, byte_order);
16952  *offsetp += 4;
16953  field32(tvb, offsetp, t, hf_x11_xfixes_GetCursorImageAndName_reply_cursor_atom, byte_order);
16954  f_nbytes = tvb_get_guint16(tvb, *offsetp, byte_order);
16955  proto_tree_add_item(t, hf_x11_xfixes_GetCursorImageAndName_reply_nbytes, tvb, *offsetp, 2, byte_order);
16956  *offsetp += 2;
16957  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 2, ENC_NA);
16958  *offsetp += 2;
16959  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);
16960  listOfByte(tvb, offsetp, t, hf_x11_xfixes_GetCursorImageAndName_reply_name, f_nbytes, byte_order);
16961 }
16962 
16963 static void xfixesChangeCursor(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
16964 {
16965  proto_tree_add_item(t, hf_x11_xfixes_ChangeCursor_source, tvb, *offsetp, 4, byte_order);
16966  *offsetp += 4;
16967  proto_tree_add_item(t, hf_x11_xfixes_ChangeCursor_destination, tvb, *offsetp, 4, byte_order);
16968  *offsetp += 4;
16969 }
16970 
16971 static void xfixesChangeCursorByName(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
16972 {
16973  int f_nbytes;
16974  proto_tree_add_item(t, hf_x11_xfixes_ChangeCursorByName_src, tvb, *offsetp, 4, byte_order);
16975  *offsetp += 4;
16976  f_nbytes = tvb_get_guint16(tvb, *offsetp, byte_order);
16977  proto_tree_add_item(t, hf_x11_xfixes_ChangeCursorByName_nbytes, tvb, *offsetp, 2, byte_order);
16978  *offsetp += 2;
16979  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 2, ENC_NA);
16980  *offsetp += 2;
16981  listOfByte(tvb, offsetp, t, hf_x11_xfixes_ChangeCursorByName_name, f_nbytes, byte_order);
16982  length -= f_nbytes * 1;
16983 }
16984 
16985 static void xfixesExpandRegion(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
16986 {
16987  proto_tree_add_item(t, hf_x11_xfixes_ExpandRegion_source, tvb, *offsetp, 4, byte_order);
16988  *offsetp += 4;
16989  proto_tree_add_item(t, hf_x11_xfixes_ExpandRegion_destination, tvb, *offsetp, 4, byte_order);
16990  *offsetp += 4;
16991  proto_tree_add_item(t, hf_x11_xfixes_ExpandRegion_left, tvb, *offsetp, 2, byte_order);
16992  *offsetp += 2;
16993  proto_tree_add_item(t, hf_x11_xfixes_ExpandRegion_right, tvb, *offsetp, 2, byte_order);
16994  *offsetp += 2;
16995  proto_tree_add_item(t, hf_x11_xfixes_ExpandRegion_top, tvb, *offsetp, 2, byte_order);
16996  *offsetp += 2;
16997  proto_tree_add_item(t, hf_x11_xfixes_ExpandRegion_bottom, tvb, *offsetp, 2, byte_order);
16998  *offsetp += 2;
16999 }
17000 
17001 static void xfixesHideCursor(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
17002 {
17003  proto_tree_add_item(t, hf_x11_xfixes_HideCursor_window, tvb, *offsetp, 4, byte_order);
17004  *offsetp += 4;
17005 }
17006 
17007 static void xfixesShowCursor(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
17008 {
17009  proto_tree_add_item(t, hf_x11_xfixes_ShowCursor_window, tvb, *offsetp, 4, byte_order);
17010  *offsetp += 4;
17011 }
17012 
17013 static void xfixesCreatePointerBarrier(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
17014 {
17015  int f_num_devices;
17016  proto_tree_add_item(t, hf_x11_xfixes_CreatePointerBarrier_barrier, tvb, *offsetp, 4, byte_order);
17017  *offsetp += 4;
17018  proto_tree_add_item(t, hf_x11_xfixes_CreatePointerBarrier_window, tvb, *offsetp, 4, byte_order);
17019  *offsetp += 4;
17020  proto_tree_add_item(t, hf_x11_xfixes_CreatePointerBarrier_x1, tvb, *offsetp, 2, byte_order);
17021  *offsetp += 2;
17022  proto_tree_add_item(t, hf_x11_xfixes_CreatePointerBarrier_y1, tvb, *offsetp, 2, byte_order);
17023  *offsetp += 2;
17024  proto_tree_add_item(t, hf_x11_xfixes_CreatePointerBarrier_x2, tvb, *offsetp, 2, byte_order);
17025  *offsetp += 2;
17026  proto_tree_add_item(t, hf_x11_xfixes_CreatePointerBarrier_y2, tvb, *offsetp, 2, byte_order);
17027  *offsetp += 2;
17028  {
17029  const int* directions_bits [] = {
17030  &hf_x11_xfixes_CreatePointerBarrier_directions_mask_PositiveX,
17031  &hf_x11_xfixes_CreatePointerBarrier_directions_mask_PositiveY,
17032  &hf_x11_xfixes_CreatePointerBarrier_directions_mask_NegativeX,
17033  &hf_x11_xfixes_CreatePointerBarrier_directions_mask_NegativeY,
17034  NULL
17035  };
17036  proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_xfixes_CreatePointerBarrier_directions, ett_x11_rectangle, directions_bits, byte_order);
17037  }
17038  *offsetp += 4;
17039  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 2, ENC_NA);
17040  *offsetp += 2;
17041  f_num_devices = tvb_get_guint16(tvb, *offsetp, byte_order);
17042  proto_tree_add_item(t, hf_x11_xfixes_CreatePointerBarrier_num_devices, tvb, *offsetp, 2, byte_order);
17043  *offsetp += 2;
17044  listOfCard16(tvb, offsetp, t, hf_x11_xfixes_CreatePointerBarrier_devices, hf_x11_xfixes_CreatePointerBarrier_devices_item, f_num_devices, byte_order);
17045  length -= f_num_devices * 2;
17046 }
17047 
17048 static void xfixesDeletePointerBarrier(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
17049 {
17050  proto_tree_add_item(t, hf_x11_xfixes_DeletePointerBarrier_barrier, tvb, *offsetp, 4, byte_order);
17051  *offsetp += 4;
17052 }
17053 static const value_string xfixes_extension_minor[] = {
17054  { 0, "QueryVersion" },
17055  { 1, "ChangeSaveSet" },
17056  { 2, "SelectSelectionInput" },
17057  { 3, "SelectCursorInput" },
17058  { 4, "GetCursorImage" },
17059  { 5, "CreateRegion" },
17060  { 6, "CreateRegionFromBitmap" },
17061  { 7, "CreateRegionFromWindow" },
17062  { 8, "CreateRegionFromGC" },
17063  { 9, "CreateRegionFromPicture" },
17064  { 10, "DestroyRegion" },
17065  { 11, "SetRegion" },
17066  { 12, "CopyRegion" },
17067  { 13, "UnionRegion" },
17068  { 14, "IntersectRegion" },
17069  { 15, "SubtractRegion" },
17070  { 16, "InvertRegion" },
17071  { 17, "TranslateRegion" },
17072  { 18, "RegionExtents" },
17073  { 19, "FetchRegion" },
17074  { 20, "SetGCClipRegion" },
17075  { 21, "SetWindowShapeRegion" },
17076  { 22, "SetPictureClipRegion" },
17077  { 23, "SetCursorName" },
17078  { 24, "GetCursorName" },
17079  { 25, "GetCursorImageAndName" },
17080  { 26, "ChangeCursor" },
17081  { 27, "ChangeCursorByName" },
17082  { 28, "ExpandRegion" },
17083  { 29, "HideCursor" },
17084  { 30, "ShowCursor" },
17085  { 31, "CreatePointerBarrier" },
17086  { 32, "DeletePointerBarrier" },
17087  { 0, NULL }
17088 };
17089 const x11_event_info xfixes_events[] = {
17090  { "xfixes-CursorNotify", xfixesCursorNotify },
17091  { NULL, NULL }
17092 };
17093 static x11_reply_info xfixes_replies[] = {
17094  { 0, xfixesQueryVersion_Reply },
17095  { 4, xfixesGetCursorImage_Reply },
17096  { 19, xfixesFetchRegion_Reply },
17097  { 24, xfixesGetCursorName_Reply },
17098  { 25, xfixesGetCursorImageAndName_Reply },
17099  { 0, NULL }
17100 };
17101 
17102 static void dispatch_xfixes(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
17103 {
17104  int minor, length;
17105  minor = CARD8(xfixes_extension_minor);
17106  length = REQUEST_LENGTH();
17107 
17108  col_append_fstr(pinfo->cinfo, COL_INFO, "-%s",
17109  val_to_str(minor, xfixes_extension_minor,
17110  "<Unknown opcode %d>"));
17111  switch (minor) {
17112  case 0:
17113  xfixesQueryVersion(tvb, pinfo, offsetp, t, byte_order, length);
17114  break;
17115  case 1:
17116  xfixesChangeSaveSet(tvb, pinfo, offsetp, t, byte_order, length);
17117  break;
17118  case 2:
17119  xfixesSelectSelectionInput(tvb, pinfo, offsetp, t, byte_order, length);
17120  break;
17121  case 3:
17122  xfixesSelectCursorInput(tvb, pinfo, offsetp, t, byte_order, length);
17123  break;
17124  case 4:
17125  xfixesGetCursorImage(tvb, pinfo, offsetp, t, byte_order, length);
17126  break;
17127  case 5:
17128  xfixesCreateRegion(tvb, pinfo, offsetp, t, byte_order, length);
17129  break;
17130  case 6:
17131  xfixesCreateRegionFromBitmap(tvb, pinfo, offsetp, t, byte_order, length);
17132  break;
17133  case 7:
17134  xfixesCreateRegionFromWindow(tvb, pinfo, offsetp, t, byte_order, length);
17135  break;
17136  case 8:
17137  xfixesCreateRegionFromGC(tvb, pinfo, offsetp, t, byte_order, length);
17138  break;
17139  case 9:
17140  xfixesCreateRegionFromPicture(tvb, pinfo, offsetp, t, byte_order, length);
17141  break;
17142  case 10:
17143  xfixesDestroyRegion(tvb, pinfo, offsetp, t, byte_order, length);
17144  break;
17145  case 11:
17146  xfixesSetRegion(tvb, pinfo, offsetp, t, byte_order, length);
17147  break;
17148  case 12:
17149  xfixesCopyRegion(tvb, pinfo, offsetp, t, byte_order, length);
17150  break;
17151  case 13:
17152  xfixesUnionRegion(tvb, pinfo, offsetp, t, byte_order, length);
17153  break;
17154  case 14:
17155  xfixesIntersectRegion(tvb, pinfo, offsetp, t, byte_order, length);
17156  break;
17157  case 15:
17158  xfixesSubtractRegion(tvb, pinfo, offsetp, t, byte_order, length);
17159  break;
17160  case 16:
17161  xfixesInvertRegion(tvb, pinfo, offsetp, t, byte_order, length);
17162  break;
17163  case 17:
17164  xfixesTranslateRegion(tvb, pinfo, offsetp, t, byte_order, length);
17165  break;
17166  case 18:
17167  xfixesRegionExtents(tvb, pinfo, offsetp, t, byte_order, length);
17168  break;
17169  case 19:
17170  xfixesFetchRegion(tvb, pinfo, offsetp, t, byte_order, length);
17171  break;
17172  case 20:
17173  xfixesSetGCClipRegion(tvb, pinfo, offsetp, t, byte_order, length);
17174  break;
17175  case 21:
17176  xfixesSetWindowShapeRegion(tvb, pinfo, offsetp, t, byte_order, length);
17177  break;
17178  case 22:
17179  xfixesSetPictureClipRegion(tvb, pinfo, offsetp, t, byte_order, length);
17180  break;
17181  case 23:
17182  xfixesSetCursorName(tvb, pinfo, offsetp, t, byte_order, length);
17183  break;
17184  case 24:
17185  xfixesGetCursorName(tvb, pinfo, offsetp, t, byte_order, length);
17186  break;
17187  case 25:
17188  xfixesGetCursorImageAndName(tvb, pinfo, offsetp, t, byte_order, length);
17189  break;
17190  case 26:
17191  xfixesChangeCursor(tvb, pinfo, offsetp, t, byte_order, length);
17192  break;
17193  case 27:
17194  xfixesChangeCursorByName(tvb, pinfo, offsetp, t, byte_order, length);
17195  break;
17196  case 28:
17197  xfixesExpandRegion(tvb, pinfo, offsetp, t, byte_order, length);
17198  break;
17199  case 29:
17200  xfixesHideCursor(tvb, pinfo, offsetp, t, byte_order, length);
17201  break;
17202  case 30:
17203  xfixesShowCursor(tvb, pinfo, offsetp, t, byte_order, length);
17204  break;
17205  case 31:
17206  xfixesCreatePointerBarrier(tvb, pinfo, offsetp, t, byte_order, length);
17207  break;
17208  case 32:
17209  xfixesDeletePointerBarrier(tvb, pinfo, offsetp, t, byte_order, length);
17210  break;
17211  /* No need for a default case here, since Unknown is printed above,
17212  and UNDECODED() is taken care of by dissect_x11_request */
17213  }
17214 }
17215 
17216 static void register_xfixes(void)
17217 {
17218  set_handler("XFIXES", dispatch_xfixes, xfixes_errors, xfixes_events, NULL, xfixes_replies);
17219 }
17220 
17221 static void struct_xinerama_ScreenInfo(tvbuff_t *tvb, int *offsetp, proto_tree *root, guint byte_order _U_, int count)
17222 {
17223  int i;
17224  for (i = 0; i < count; i++) {
17225  proto_item *item;
17226  proto_tree *t;
17227 
17228  item = proto_tree_add_item(root, hf_x11_struct_xinerama_ScreenInfo, tvb, *offsetp, 8, ENC_NA);
17229  t = proto_item_add_subtree(item, ett_x11_rectangle);
17230  proto_tree_add_item(t, hf_x11_struct_xinerama_ScreenInfo_x_org, tvb, *offsetp, 2, byte_order);
17231  *offsetp += 2;
17232  proto_tree_add_item(t, hf_x11_struct_xinerama_ScreenInfo_y_org, tvb, *offsetp, 2, byte_order);
17233  *offsetp += 2;
17234  proto_tree_add_item(t, hf_x11_struct_xinerama_ScreenInfo_width, tvb, *offsetp, 2, byte_order);
17235  *offsetp += 2;
17236  proto_tree_add_item(t, hf_x11_struct_xinerama_ScreenInfo_height, tvb, *offsetp, 2, byte_order);
17237  *offsetp += 2;
17238  }
17239 }
17240 
17241 static void xineramaQueryVersion(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
17242 {
17243  proto_tree_add_item(t, hf_x11_xinerama_QueryVersion_major, tvb, *offsetp, 1, byte_order);
17244  *offsetp += 1;
17245  proto_tree_add_item(t, hf_x11_xinerama_QueryVersion_minor, tvb, *offsetp, 1, byte_order);
17246  *offsetp += 1;
17247 }
17248 static void xineramaQueryVersion_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
17249 {
17250  int sequence_number;
17251 
17252  col_append_fstr(pinfo->cinfo, COL_INFO, "-QueryVersion");
17253 
17254  REPLY(reply);
17255  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
17256  *offsetp += 1;
17257  sequence_number = tvb_get_guint16(tvb, *offsetp, byte_order);
17258  proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
17259  "%d (xinerama-QueryVersion)", sequence_number);
17260  *offsetp += 2;
17261  proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
17262  *offsetp += 4;
17263  proto_tree_add_item(t, hf_x11_xinerama_QueryVersion_reply_major, tvb, *offsetp, 2, byte_order);
17264  *offsetp += 2;
17265  proto_tree_add_item(t, hf_x11_xinerama_QueryVersion_reply_minor, tvb, *offsetp, 2, byte_order);
17266  *offsetp += 2;
17267 }
17268 
17269 static void xineramaGetState(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
17270 {
17271  proto_tree_add_item(t, hf_x11_xinerama_GetState_window, tvb, *offsetp, 4, byte_order);
17272  *offsetp += 4;
17273 }
17274 static void xineramaGetState_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
17275 {
17276  int sequence_number;
17277 
17278  col_append_fstr(pinfo->cinfo, COL_INFO, "-GetState");
17279 
17280  REPLY(reply);
17281  proto_tree_add_item(t, hf_x11_xinerama_GetState_reply_state, tvb, *offsetp, 1, ENC_NA);
17282  *offsetp += 1;
17283  sequence_number = tvb_get_guint16(tvb, *offsetp, byte_order);
17284  proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
17285  "%d (xinerama-GetState)", sequence_number);
17286  *offsetp += 2;
17287  proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
17288  *offsetp += 4;
17289  proto_tree_add_item(t, hf_x11_xinerama_GetState_reply_window, tvb, *offsetp, 4, byte_order);
17290  *offsetp += 4;
17291 }
17292 
17293 static void xineramaGetScreenCount(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
17294 {
17295  proto_tree_add_item(t, hf_x11_xinerama_GetScreenCount_window, tvb, *offsetp, 4, byte_order);
17296  *offsetp += 4;
17297 }
17298 static void xineramaGetScreenCount_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
17299 {
17300  int sequence_number;
17301 
17302  col_append_fstr(pinfo->cinfo, COL_INFO, "-GetScreenCount");
17303 
17304  REPLY(reply);
17305  proto_tree_add_item(t, hf_x11_xinerama_GetScreenCount_reply_screen_count, tvb, *offsetp, 1, ENC_NA);
17306  *offsetp += 1;
17307  sequence_number = tvb_get_guint16(tvb, *offsetp, byte_order);
17308  proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
17309  "%d (xinerama-GetScreenCount)", sequence_number);
17310  *offsetp += 2;
17311  proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
17312  *offsetp += 4;
17313  proto_tree_add_item(t, hf_x11_xinerama_GetScreenCount_reply_window, tvb, *offsetp, 4, byte_order);
17314  *offsetp += 4;
17315 }
17316 
17317 static void xineramaGetScreenSize(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
17318 {
17319  proto_tree_add_item(t, hf_x11_xinerama_GetScreenSize_window, tvb, *offsetp, 4, byte_order);
17320  *offsetp += 4;
17321  proto_tree_add_item(t, hf_x11_xinerama_GetScreenSize_screen, tvb, *offsetp, 4, byte_order);
17322  *offsetp += 4;
17323 }
17324 static void xineramaGetScreenSize_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
17325 {
17326  int sequence_number;
17327 
17328  col_append_fstr(pinfo->cinfo, COL_INFO, "-GetScreenSize");
17329 
17330  REPLY(reply);
17331  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
17332  *offsetp += 1;
17333  sequence_number = tvb_get_guint16(tvb, *offsetp, byte_order);
17334  proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
17335  "%d (xinerama-GetScreenSize)", sequence_number);
17336  *offsetp += 2;
17337  proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
17338  *offsetp += 4;
17339  proto_tree_add_item(t, hf_x11_xinerama_GetScreenSize_reply_width, tvb, *offsetp, 4, byte_order);
17340  *offsetp += 4;
17341  proto_tree_add_item(t, hf_x11_xinerama_GetScreenSize_reply_height, tvb, *offsetp, 4, byte_order);
17342  *offsetp += 4;
17343  proto_tree_add_item(t, hf_x11_xinerama_GetScreenSize_reply_window, tvb, *offsetp, 4, byte_order);
17344  *offsetp += 4;
17345  proto_tree_add_item(t, hf_x11_xinerama_GetScreenSize_reply_screen, tvb, *offsetp, 4, byte_order);
17346  *offsetp += 4;
17347 }
17348 
17349 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_)
17350 {
17351 }
17352 static void xineramaIsActive_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
17353 {
17354  int sequence_number;
17355 
17356  col_append_fstr(pinfo->cinfo, COL_INFO, "-IsActive");
17357 
17358  REPLY(reply);
17359  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
17360  *offsetp += 1;
17361  sequence_number = tvb_get_guint16(tvb, *offsetp, byte_order);
17362  proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
17363  "%d (xinerama-IsActive)", sequence_number);
17364  *offsetp += 2;
17365  proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
17366  *offsetp += 4;
17367  proto_tree_add_item(t, hf_x11_xinerama_IsActive_reply_state, tvb, *offsetp, 4, byte_order);
17368  *offsetp += 4;
17369 }
17370 
17371 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_)
17372 {
17373 }
17374 static void xineramaQueryScreens_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
17375 {
17376  int sequence_number;
17377  int f_number;
17378 
17379  col_append_fstr(pinfo->cinfo, COL_INFO, "-QueryScreens");
17380 
17381  REPLY(reply);
17382  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
17383  *offsetp += 1;
17384  sequence_number = tvb_get_guint16(tvb, *offsetp, byte_order);
17385  proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
17386  "%d (xinerama-QueryScreens)", sequence_number);
17387  *offsetp += 2;
17388  proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
17389  *offsetp += 4;
17390  f_number = tvb_get_guint32(tvb, *offsetp, byte_order);
17391  proto_tree_add_item(t, hf_x11_xinerama_QueryScreens_reply_number, tvb, *offsetp, 4, byte_order);
17392  *offsetp += 4;
17393  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 20, ENC_NA);
17394  *offsetp += 20;
17395  struct_xinerama_ScreenInfo(tvb, offsetp, t, byte_order, f_number);
17396 }
17397 static const value_string xinerama_extension_minor[] = {
17398  { 0, "QueryVersion" },
17399  { 1, "GetState" },
17400  { 2, "GetScreenCount" },
17401  { 3, "GetScreenSize" },
17402  { 4, "IsActive" },
17403  { 5, "QueryScreens" },
17404  { 0, NULL }
17405 };
17406 const x11_event_info xinerama_events[] = {
17407  { NULL, NULL }
17408 };
17409 static x11_reply_info xinerama_replies[] = {
17410  { 0, xineramaQueryVersion_Reply },
17411  { 1, xineramaGetState_Reply },
17412  { 2, xineramaGetScreenCount_Reply },
17413  { 3, xineramaGetScreenSize_Reply },
17414  { 4, xineramaIsActive_Reply },
17415  { 5, xineramaQueryScreens_Reply },
17416  { 0, NULL }
17417 };
17418 
17419 static void dispatch_xinerama(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
17420 {
17421  int minor, length;
17422  minor = CARD8(xinerama_extension_minor);
17423  length = REQUEST_LENGTH();
17424 
17425  col_append_fstr(pinfo->cinfo, COL_INFO, "-%s",
17426  val_to_str(minor, xinerama_extension_minor,
17427  "<Unknown opcode %d>"));
17428  switch (minor) {
17429  case 0:
17430  xineramaQueryVersion(tvb, pinfo, offsetp, t, byte_order, length);
17431  break;
17432  case 1:
17433  xineramaGetState(tvb, pinfo, offsetp, t, byte_order, length);
17434  break;
17435  case 2:
17436  xineramaGetScreenCount(tvb, pinfo, offsetp, t, byte_order, length);
17437  break;
17438  case 3:
17439  xineramaGetScreenSize(tvb, pinfo, offsetp, t, byte_order, length);
17440  break;
17441  case 4:
17442  xineramaIsActive(tvb, pinfo, offsetp, t, byte_order, length);
17443  break;
17444  case 5:
17445  xineramaQueryScreens(tvb, pinfo, offsetp, t, byte_order, length);
17446  break;
17447  /* No need for a default case here, since Unknown is printed above,
17448  and UNDECODED() is taken care of by dissect_x11_request */
17449  }
17450 }
17451 
17452 static void register_xinerama(void)
17453 {
17454  set_handler("XINERAMA", dispatch_xinerama, xinerama_errors, xinerama_events, NULL, xinerama_replies);
17455 }
17456 
17457 static void struct_xinput_FP3232(tvbuff_t *tvb, int *offsetp, proto_tree *root, guint byte_order _U_, int count)
17458 {
17459  int i;
17460  for (i = 0; i < count; i++) {
17461  proto_item *item;
17462  proto_tree *t;
17463 
17464  item = proto_tree_add_item(root, hf_x11_struct_xinput_FP3232, tvb, *offsetp, 8, ENC_NA);
17465  t = proto_item_add_subtree(item, ett_x11_rectangle);
17466  proto_tree_add_item(t, hf_x11_struct_xinput_FP3232_integral, tvb, *offsetp, 4, byte_order);
17467  *offsetp += 4;
17468  proto_tree_add_item(t, hf_x11_struct_xinput_FP3232_frac, tvb, *offsetp, 4, byte_order);
17469  *offsetp += 4;
17470  }
17471 }
17472 
17473 static void xinputGetExtensionVersion(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
17474 {
17475  int f_name_len;
17476  f_name_len = tvb_get_guint16(tvb, *offsetp, byte_order);
17477  proto_tree_add_item(t, hf_x11_xinput_GetExtensionVersion_name_len, tvb, *offsetp, 2, byte_order);
17478  *offsetp += 2;
17479  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 2, ENC_NA);
17480  *offsetp += 2;
17481  listOfByte(tvb, offsetp, t, hf_x11_xinput_GetExtensionVersion_name, f_name_len, byte_order);
17482  length -= f_name_len * 1;
17483 }
17484 static void xinputGetExtensionVersion_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
17485 {
17486  int sequence_number;
17487 
17488  col_append_fstr(pinfo->cinfo, COL_INFO, "-GetExtensionVersion");
17489 
17490  REPLY(reply);
17491  proto_tree_add_item(t, hf_x11_xinput_GetExtensionVersion_reply_xi_reply_type, tvb, *offsetp, 1, byte_order);
17492  *offsetp += 1;
17493  sequence_number = tvb_get_guint16(tvb, *offsetp, byte_order);
17494  proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
17495  "%d (xinput-GetExtensionVersion)", sequence_number);
17496  *offsetp += 2;
17497  proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
17498  *offsetp += 4;
17499  proto_tree_add_item(t, hf_x11_xinput_GetExtensionVersion_reply_server_major, tvb, *offsetp, 2, byte_order);
17500  *offsetp += 2;
17501  proto_tree_add_item(t, hf_x11_xinput_GetExtensionVersion_reply_server_minor, tvb, *offsetp, 2, byte_order);
17502  *offsetp += 2;
17503  proto_tree_add_item(t, hf_x11_xinput_GetExtensionVersion_reply_present, tvb, *offsetp, 1, byte_order);
17504  *offsetp += 1;
17505  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 19, ENC_NA);
17506  *offsetp += 19;
17507 }
17508 
17509 static void struct_xinput_DeviceInfo(tvbuff_t *tvb, int *offsetp, proto_tree *root, guint byte_order _U_, int count)
17510 {
17511  int i;
17512  for (i = 0; i < count; i++) {
17513  proto_item *item;
17514  proto_tree *t;
17515 
17516  item = proto_tree_add_item(root, hf_x11_struct_xinput_DeviceInfo, tvb, *offsetp, 8, ENC_NA);
17517  t = proto_item_add_subtree(item, ett_x11_rectangle);
17518  proto_tree_add_item(t, hf_x11_struct_xinput_DeviceInfo_device_type, tvb, *offsetp, 4, byte_order);
17519  *offsetp += 4;
17520  proto_tree_add_item(t, hf_x11_struct_xinput_DeviceInfo_device_id, tvb, *offsetp, 1, byte_order);
17521  *offsetp += 1;
17522  proto_tree_add_item(t, hf_x11_struct_xinput_DeviceInfo_num_class_info, tvb, *offsetp, 1, byte_order);
17523  *offsetp += 1;
17524  field8(tvb, offsetp, t, hf_x11_struct_xinput_DeviceInfo_device_use, byte_order);
17525  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
17526  *offsetp += 1;
17527  }
17528 }
17529 
17530 static void struct_xinput_AxisInfo(tvbuff_t *tvb, int *offsetp, proto_tree *root, guint byte_order _U_, int count)
17531 {
17532  int i;
17533  for (i = 0; i < count; i++) {
17534  proto_item *item;
17535  proto_tree *t;
17536 
17537  item = proto_tree_add_item(root, hf_x11_struct_xinput_AxisInfo, tvb, *offsetp, 12, ENC_NA);
17538  t = proto_item_add_subtree(item, ett_x11_rectangle);
17539  proto_tree_add_item(t, hf_x11_struct_xinput_AxisInfo_resolution, tvb, *offsetp, 4, byte_order);
17540  *offsetp += 4;
17541  proto_tree_add_item(t, hf_x11_struct_xinput_AxisInfo_minimum, tvb, *offsetp, 4, byte_order);
17542  *offsetp += 4;
17543  proto_tree_add_item(t, hf_x11_struct_xinput_AxisInfo_maximum, tvb, *offsetp, 4, byte_order);
17544  *offsetp += 4;
17545  }
17546 }
17547 
17548 static int struct_size_xinput_InputInfo(tvbuff_t *tvb _U_, int *offsetp _U_, guint byte_order _U_)
17549 {
17550  int size = 0;
17551  return size + 2;
17552 }
17553 
17554 static void struct_xinput_InputInfo(tvbuff_t *tvb, int *offsetp, proto_tree *root, guint byte_order _U_, int count)
17555 {
17556  int i;
17557  for (i = 0; i < count; i++) {
17558  proto_item *item;
17559  proto_tree *t;
17560  int f_class_id;
17561 
17562  item = proto_tree_add_item(root, hf_x11_struct_xinput_InputInfo, tvb, *offsetp, struct_size_xinput_InputInfo(tvb, offsetp, byte_order), ENC_NA);
17563  t = proto_item_add_subtree(item, ett_x11_rectangle);
17564  f_class_id = field8(tvb, offsetp, t, hf_x11_struct_xinput_InputInfo_class_id, byte_order);
17565  proto_tree_add_item(t, hf_x11_struct_xinput_InputInfo_len, tvb, *offsetp, 1, byte_order);
17566  *offsetp += 1;
17567  if (f_class_id == 0) {
17568  proto_tree_add_item(t, hf_x11_struct_xinput_InputInfo_Key_min_keycode, tvb, *offsetp, 1, byte_order);
17569  *offsetp += 1;
17570  proto_tree_add_item(t, hf_x11_struct_xinput_InputInfo_Key_max_keycode, tvb, *offsetp, 1, byte_order);
17571  *offsetp += 1;
17572  proto_tree_add_item(t, hf_x11_struct_xinput_InputInfo_Key_num_keys, tvb, *offsetp, 2, byte_order);
17573  *offsetp += 2;
17574  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 2, ENC_NA);
17575  *offsetp += 2;
17576  }
17577  if (f_class_id == 1) {
17578  proto_tree_add_item(t, hf_x11_struct_xinput_InputInfo_Button_num_buttons, tvb, *offsetp, 2, byte_order);
17579  *offsetp += 2;
17580  }
17581  if (f_class_id == 2) {
17582  int f_axes_len;
17583  f_axes_len = tvb_get_guint8(tvb, *offsetp);
17584  proto_tree_add_item(t, hf_x11_struct_xinput_InputInfo_Valuator_axes_len, tvb, *offsetp, 1, byte_order);
17585  *offsetp += 1;
17586  field8(tvb, offsetp, t, hf_x11_struct_xinput_InputInfo_Valuator_mode, byte_order);
17587  proto_tree_add_item(t, hf_x11_struct_xinput_InputInfo_Valuator_motion_size, tvb, *offsetp, 4, byte_order);
17588  *offsetp += 4;
17589  struct_xinput_AxisInfo(tvb, offsetp, t, byte_order, f_axes_len);
17590  }
17591  }
17592 }
17593 
17594 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_)
17595 {
17596 }
17597 static void xinputListInputDevices_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
17598 {
17599  int sequence_number;
17600  int f_devices_len;
17601  int sumof_devices = 0;
17602 
17603  col_append_fstr(pinfo->cinfo, COL_INFO, "-ListInputDevices");
17604 
17605  REPLY(reply);
17606  proto_tree_add_item(t, hf_x11_xinput_ListInputDevices_reply_xi_reply_type, tvb, *offsetp, 1, byte_order);
17607  *offsetp += 1;
17608  sequence_number = tvb_get_guint16(tvb, *offsetp, byte_order);
17609  proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
17610  "%d (xinput-ListInputDevices)", sequence_number);
17611  *offsetp += 2;
17612  proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
17613  *offsetp += 4;
17614  f_devices_len = tvb_get_guint8(tvb, *offsetp);
17615  proto_tree_add_item(t, hf_x11_xinput_ListInputDevices_reply_devices_len, tvb, *offsetp, 1, byte_order);
17616  *offsetp += 1;
17617  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 23, ENC_NA);
17618  *offsetp += 23;
17619  struct_xinput_DeviceInfo(tvb, offsetp, t, byte_order, f_devices_len);
17620  struct_xinput_InputInfo(tvb, offsetp, t, byte_order, sumof_devices);
17621  struct_xproto_STR(tvb, offsetp, t, byte_order, f_devices_len);
17622  if (*offsetp % 4) {
17623  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, (4 - *offsetp % 4), ENC_NA);
17624  *offsetp += (4 - *offsetp % 4);
17625  }
17626 }
17627 
17628 static void struct_xinput_InputClassInfo(tvbuff_t *tvb, int *offsetp, proto_tree *root, guint byte_order _U_, int count)
17629 {
17630  int i;
17631  for (i = 0; i < count; i++) {
17632  proto_item *item;
17633  proto_tree *t;
17634 
17635  item = proto_tree_add_item(root, hf_x11_struct_xinput_InputClassInfo, tvb, *offsetp, 2, ENC_NA);
17636  t = proto_item_add_subtree(item, ett_x11_rectangle);
17637  field8(tvb, offsetp, t, hf_x11_struct_xinput_InputClassInfo_class_id, byte_order);
17638  proto_tree_add_item(t, hf_x11_struct_xinput_InputClassInfo_event_type_base, tvb, *offsetp, 1, byte_order);
17639  *offsetp += 1;
17640  }
17641 }
17642 
17643 static void xinputOpenDevice(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
17644 {
17645  proto_tree_add_item(t, hf_x11_xinput_OpenDevice_device_id, tvb, *offsetp, 1, byte_order);
17646  *offsetp += 1;
17647  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 3, ENC_NA);
17648  *offsetp += 3;
17649 }
17650 static void xinputOpenDevice_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
17651 {
17652  int sequence_number;
17653  int f_num_classes;
17654 
17655  col_append_fstr(pinfo->cinfo, COL_INFO, "-OpenDevice");
17656 
17657  REPLY(reply);
17658  proto_tree_add_item(t, hf_x11_xinput_OpenDevice_reply_xi_reply_type, tvb, *offsetp, 1, byte_order);
17659  *offsetp += 1;
17660  sequence_number = tvb_get_guint16(tvb, *offsetp, byte_order);
17661  proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
17662  "%d (xinput-OpenDevice)", sequence_number);
17663  *offsetp += 2;
17664  proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
17665  *offsetp += 4;
17666  f_num_classes = tvb_get_guint8(tvb, *offsetp);
17667  proto_tree_add_item(t, hf_x11_xinput_OpenDevice_reply_num_classes, tvb, *offsetp, 1, byte_order);
17668  *offsetp += 1;
17669  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 23, ENC_NA);
17670  *offsetp += 23;
17671  struct_xinput_InputClassInfo(tvb, offsetp, t, byte_order, f_num_classes);
17672  if (*offsetp % 4) {
17673  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, (4 - *offsetp % 4), ENC_NA);
17674  *offsetp += (4 - *offsetp % 4);
17675  }
17676 }
17677 
17678 static void xinputCloseDevice(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
17679 {
17680  proto_tree_add_item(t, hf_x11_xinput_CloseDevice_device_id, tvb, *offsetp, 1, byte_order);
17681  *offsetp += 1;
17682  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 3, ENC_NA);
17683  *offsetp += 3;
17684 }
17685 
17686 static void xinputSetDeviceMode(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
17687 {
17688  proto_tree_add_item(t, hf_x11_xinput_SetDeviceMode_device_id, tvb, *offsetp, 1, byte_order);
17689  *offsetp += 1;
17690  field8(tvb, offsetp, t, hf_x11_xinput_SetDeviceMode_mode, byte_order);
17691  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 2, ENC_NA);
17692  *offsetp += 2;
17693 }
17694 static void xinputSetDeviceMode_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
17695 {
17696  int sequence_number;
17697 
17698  col_append_fstr(pinfo->cinfo, COL_INFO, "-SetDeviceMode");
17699 
17700  REPLY(reply);
17701  proto_tree_add_item(t, hf_x11_xinput_SetDeviceMode_reply_xi_reply_type, tvb, *offsetp, 1, byte_order);
17702  *offsetp += 1;
17703  sequence_number = tvb_get_guint16(tvb, *offsetp, byte_order);
17704  proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
17705  "%d (xinput-SetDeviceMode)", sequence_number);
17706  *offsetp += 2;
17707  proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
17708  *offsetp += 4;
17709  field8(tvb, offsetp, t, hf_x11_xinput_SetDeviceMode_reply_status, byte_order);
17710  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 23, ENC_NA);
17711  *offsetp += 23;
17712 }
17713 
17714 static void xinputSelectExtensionEvent(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
17715 {
17716  int f_num_classes;
17717  proto_tree_add_item(t, hf_x11_xinput_SelectExtensionEvent_window, tvb, *offsetp, 4, byte_order);
17718  *offsetp += 4;
17719  f_num_classes = tvb_get_guint16(tvb, *offsetp, byte_order);
17720  proto_tree_add_item(t, hf_x11_xinput_SelectExtensionEvent_num_classes, tvb, *offsetp, 2, byte_order);
17721  *offsetp += 2;
17722  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 2, ENC_NA);
17723  *offsetp += 2;
17724  listOfCard32(tvb, offsetp, t, hf_x11_xinput_SelectExtensionEvent_classes, hf_x11_xinput_SelectExtensionEvent_classes_item, f_num_classes, byte_order);
17725  length -= f_num_classes * 4;
17726 }
17727 
17728 static void xinputGetSelectedExtensionEvents(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
17729 {
17730  proto_tree_add_item(t, hf_x11_xinput_GetSelectedExtensionEvents_window, tvb, *offsetp, 4, byte_order);
17731  *offsetp += 4;
17732 }
17733 static void xinputGetSelectedExtensionEvents_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
17734 {
17735  int sequence_number;
17736  int f_num_this_classes;
17737  int f_num_all_classes;
17738 
17739  col_append_fstr(pinfo->cinfo, COL_INFO, "-GetSelectedExtensionEvents");
17740 
17741  REPLY(reply);
17742  proto_tree_add_item(t, hf_x11_xinput_GetSelectedExtensionEvents_reply_xi_reply_type, tvb, *offsetp, 1, byte_order);
17743  *offsetp += 1;
17744  sequence_number = tvb_get_guint16(tvb, *offsetp, byte_order);
17745  proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
17746  "%d (xinput-GetSelectedExtensionEvents)", sequence_number);
17747  *offsetp += 2;
17748  proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
17749  *offsetp += 4;
17750  f_num_this_classes = tvb_get_guint16(tvb, *offsetp, byte_order);
17751  proto_tree_add_item(t, hf_x11_xinput_GetSelectedExtensionEvents_reply_num_this_classes, tvb, *offsetp, 2, byte_order);
17752  *offsetp += 2;
17753  f_num_all_classes = tvb_get_guint16(tvb, *offsetp, byte_order);
17754  proto_tree_add_item(t, hf_x11_xinput_GetSelectedExtensionEvents_reply_num_all_classes, tvb, *offsetp, 2, byte_order);
17755  *offsetp += 2;
17756  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 20, ENC_NA);
17757  *offsetp += 20;
17758  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);
17759  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);
17760 }
17761 
17762 static void xinputChangeDeviceDontPropagateList(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
17763 {
17764  int f_num_classes;
17765  proto_tree_add_item(t, hf_x11_xinput_ChangeDeviceDontPropagateList_window, tvb, *offsetp, 4, byte_order);
17766  *offsetp += 4;
17767  f_num_classes = tvb_get_guint16(tvb, *offsetp, byte_order);
17768  proto_tree_add_item(t, hf_x11_xinput_ChangeDeviceDontPropagateList_num_classes, tvb, *offsetp, 2, byte_order);
17769  *offsetp += 2;
17770  field8(tvb, offsetp, t, hf_x11_xinput_ChangeDeviceDontPropagateList_mode, byte_order);
17771  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
17772  *offsetp += 1;
17773  listOfCard32(tvb, offsetp, t, hf_x11_xinput_ChangeDeviceDontPropagateList_classes, hf_x11_xinput_ChangeDeviceDontPropagateList_classes_item, f_num_classes, byte_order);
17774  length -= f_num_classes * 4;
17775 }
17776 
17777 static void xinputGetDeviceDontPropagateList(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
17778 {
17779  proto_tree_add_item(t, hf_x11_xinput_GetDeviceDontPropagateList_window, tvb, *offsetp, 4, byte_order);
17780  *offsetp += 4;
17781 }
17782 static void xinputGetDeviceDontPropagateList_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
17783 {
17784  int sequence_number;
17785  int f_num_classes;
17786 
17787  col_append_fstr(pinfo->cinfo, COL_INFO, "-GetDeviceDontPropagateList");
17788 
17789  REPLY(reply);
17790  proto_tree_add_item(t, hf_x11_xinput_GetDeviceDontPropagateList_reply_xi_reply_type, tvb, *offsetp, 1, byte_order);
17791  *offsetp += 1;
17792  sequence_number = tvb_get_guint16(tvb, *offsetp, byte_order);
17793  proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
17794  "%d (xinput-GetDeviceDontPropagateList)", sequence_number);
17795  *offsetp += 2;
17796  proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
17797  *offsetp += 4;
17798  f_num_classes = tvb_get_guint16(tvb, *offsetp, byte_order);
17799  proto_tree_add_item(t, hf_x11_xinput_GetDeviceDontPropagateList_reply_num_classes, tvb, *offsetp, 2, byte_order);
17800  *offsetp += 2;
17801  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 22, ENC_NA);
17802  *offsetp += 22;
17803  listOfCard32(tvb, offsetp, t, hf_x11_xinput_GetDeviceDontPropagateList_reply_classes, hf_x11_xinput_GetDeviceDontPropagateList_reply_classes_item, f_num_classes, byte_order);
17804 }
17805 
17806 static int struct_size_xinput_DeviceTimeCoord(tvbuff_t *tvb _U_, int *offsetp _U_, guint byte_order _U_, int p_num_axes)
17807 {
17808  int size = 0;
17809  size += p_num_axes * 4;
17810  return size + 4;
17811 }
17812 
17813 static void struct_xinput_DeviceTimeCoord(tvbuff_t *tvb, int *offsetp, proto_tree *root, guint byte_order _U_, int count, int p_num_axes)
17814 {
17815  int i;
17816  for (i = 0; i < count; i++) {
17817  proto_item *item;
17818  proto_tree *t;
17819 
17820  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);
17821  t = proto_item_add_subtree(item, ett_x11_rectangle);
17822  proto_tree_add_item(t, hf_x11_struct_xinput_DeviceTimeCoord_time, tvb, *offsetp, 4, byte_order);
17823  *offsetp += 4;
17824  listOfInt32(tvb, offsetp, t, hf_x11_struct_xinput_DeviceTimeCoord_axisvalues, hf_x11_struct_xinput_DeviceTimeCoord_axisvalues_item, p_num_axes, byte_order);
17825  }
17826 }
17827 
17828 static void xinputGetDeviceMotionEvents(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
17829 {
17830  proto_tree_add_item(t, hf_x11_xinput_GetDeviceMotionEvents_start, tvb, *offsetp, 4, byte_order);
17831  *offsetp += 4;
17832  field32(tvb, offsetp, t, hf_x11_xinput_GetDeviceMotionEvents_stop, byte_order);
17833  proto_tree_add_item(t, hf_x11_xinput_GetDeviceMotionEvents_device_id, tvb, *offsetp, 1, byte_order);
17834  *offsetp += 1;
17835  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 3, ENC_NA);
17836  *offsetp += 3;
17837 }
17838 static void xinputGetDeviceMotionEvents_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
17839 {
17840  int sequence_number;
17841  int f_num_events;
17842  int f_num_axes;
17843 
17844  col_append_fstr(pinfo->cinfo, COL_INFO, "-GetDeviceMotionEvents");
17845 
17846  REPLY(reply);
17847  proto_tree_add_item(t, hf_x11_xinput_GetDeviceMotionEvents_reply_xi_reply_type, tvb, *offsetp, 1, byte_order);
17848  *offsetp += 1;
17849  sequence_number = tvb_get_guint16(tvb, *offsetp, byte_order);
17850  proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
17851  "%d (xinput-GetDeviceMotionEvents)", sequence_number);
17852  *offsetp += 2;
17853  proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
17854  *offsetp += 4;
17855  f_num_events = tvb_get_guint32(tvb, *offsetp, byte_order);
17856  proto_tree_add_item(t, hf_x11_xinput_GetDeviceMotionEvents_reply_num_events, tvb, *offsetp, 4, byte_order);
17857  *offsetp += 4;
17858  f_num_axes = tvb_get_guint8(tvb, *offsetp);
17859  proto_tree_add_item(t, hf_x11_xinput_GetDeviceMotionEvents_reply_num_axes, tvb, *offsetp, 1, byte_order);
17860  *offsetp += 1;
17861  field8(tvb, offsetp, t, hf_x11_xinput_GetDeviceMotionEvents_reply_device_mode, byte_order);
17862  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 18, ENC_NA);
17863  *offsetp += 18;
17864  struct_xinput_DeviceTimeCoord(tvb, offsetp, t, byte_order, f_num_events, f_num_axes);
17865 }
17866 
17867 static void xinputChangeKeyboardDevice(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
17868 {
17869  proto_tree_add_item(t, hf_x11_xinput_ChangeKeyboardDevice_device_id, tvb, *offsetp, 1, byte_order);
17870  *offsetp += 1;
17871  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 3, ENC_NA);
17872  *offsetp += 3;
17873 }
17874 static void xinputChangeKeyboardDevice_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
17875 {
17876  int sequence_number;
17877 
17878  col_append_fstr(pinfo->cinfo, COL_INFO, "-ChangeKeyboardDevice");
17879 
17880  REPLY(reply);
17881  proto_tree_add_item(t, hf_x11_xinput_ChangeKeyboardDevice_reply_xi_reply_type, tvb, *offsetp, 1, byte_order);
17882  *offsetp += 1;
17883  sequence_number = tvb_get_guint16(tvb, *offsetp, byte_order);
17884  proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
17885  "%d (xinput-ChangeKeyboardDevice)", sequence_number);
17886  *offsetp += 2;
17887  proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
17888  *offsetp += 4;
17889  field8(tvb, offsetp, t, hf_x11_xinput_ChangeKeyboardDevice_reply_status, byte_order);
17890  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 23, ENC_NA);
17891  *offsetp += 23;
17892 }
17893 
17894 static void xinputChangePointerDevice(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
17895 {
17896  proto_tree_add_item(t, hf_x11_xinput_ChangePointerDevice_x_axis, tvb, *offsetp, 1, byte_order);
17897  *offsetp += 1;
17898  proto_tree_add_item(t, hf_x11_xinput_ChangePointerDevice_y_axis, tvb, *offsetp, 1, byte_order);
17899  *offsetp += 1;
17900  proto_tree_add_item(t, hf_x11_xinput_ChangePointerDevice_device_id, tvb, *offsetp, 1, byte_order);
17901  *offsetp += 1;
17902  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
17903  *offsetp += 1;
17904 }
17905 static void xinputChangePointerDevice_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
17906 {
17907  int sequence_number;
17908 
17909  col_append_fstr(pinfo->cinfo, COL_INFO, "-ChangePointerDevice");
17910 
17911  REPLY(reply);
17912  proto_tree_add_item(t, hf_x11_xinput_ChangePointerDevice_reply_xi_reply_type, tvb, *offsetp, 1, byte_order);
17913  *offsetp += 1;
17914  sequence_number = tvb_get_guint16(tvb, *offsetp, byte_order);
17915  proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
17916  "%d (xinput-ChangePointerDevice)", sequence_number);
17917  *offsetp += 2;
17918  proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
17919  *offsetp += 4;
17920  field8(tvb, offsetp, t, hf_x11_xinput_ChangePointerDevice_reply_status, byte_order);
17921  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 23, ENC_NA);
17922  *offsetp += 23;
17923 }
17924 
17925 static void xinputGrabDevice(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
17926 {
17927  int f_num_classes;
17928  proto_tree_add_item(t, hf_x11_xinput_GrabDevice_grab_window, tvb, *offsetp, 4, byte_order);
17929  *offsetp += 4;
17930  field32(tvb, offsetp, t, hf_x11_xinput_GrabDevice_time, byte_order);
17931  f_num_classes = tvb_get_guint16(tvb, *offsetp, byte_order);
17932  proto_tree_add_item(t, hf_x11_xinput_GrabDevice_num_classes, tvb, *offsetp, 2, byte_order);
17933  *offsetp += 2;
17934  field8(tvb, offsetp, t, hf_x11_xinput_GrabDevice_this_device_mode, byte_order);
17935  field8(tvb, offsetp, t, hf_x11_xinput_GrabDevice_other_device_mode, byte_order);
17936  proto_tree_add_item(t, hf_x11_xinput_GrabDevice_owner_events, tvb, *offsetp, 1, byte_order);
17937  *offsetp += 1;
17938  proto_tree_add_item(t, hf_x11_xinput_GrabDevice_device_id, tvb, *offsetp, 1, byte_order);
17939  *offsetp += 1;
17940  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 2, ENC_NA);
17941  *offsetp += 2;
17942  listOfCard32(tvb, offsetp, t, hf_x11_xinput_GrabDevice_classes, hf_x11_xinput_GrabDevice_classes_item, f_num_classes, byte_order);
17943  length -= f_num_classes * 4;
17944 }
17945 static void xinputGrabDevice_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
17946 {
17947  int sequence_number;
17948 
17949  col_append_fstr(pinfo->cinfo, COL_INFO, "-GrabDevice");
17950 
17951  REPLY(reply);
17952  proto_tree_add_item(t, hf_x11_xinput_GrabDevice_reply_xi_reply_type, tvb, *offsetp, 1, byte_order);
17953  *offsetp += 1;
17954  sequence_number = tvb_get_guint16(tvb, *offsetp, byte_order);
17955  proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
17956  "%d (xinput-GrabDevice)", sequence_number);
17957  *offsetp += 2;
17958  proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
17959  *offsetp += 4;
17960  field8(tvb, offsetp, t, hf_x11_xinput_GrabDevice_reply_status, byte_order);
17961  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 23, ENC_NA);
17962  *offsetp += 23;
17963 }
17964 
17965 static void xinputUngrabDevice(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
17966 {
17967  field32(tvb, offsetp, t, hf_x11_xinput_UngrabDevice_time, byte_order);
17968  proto_tree_add_item(t, hf_x11_xinput_UngrabDevice_device_id, tvb, *offsetp, 1, byte_order);
17969  *offsetp += 1;
17970  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 3, ENC_NA);
17971  *offsetp += 3;
17972 }
17973 
17974 static void xinputGrabDeviceKey(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
17975 {
17976  int f_num_classes;
17977  proto_tree_add_item(t, hf_x11_xinput_GrabDeviceKey_grab_window, tvb, *offsetp, 4, byte_order);
17978  *offsetp += 4;
17979  f_num_classes = tvb_get_guint16(tvb, *offsetp, byte_order);
17980  proto_tree_add_item(t, hf_x11_xinput_GrabDeviceKey_num_classes, tvb, *offsetp, 2, byte_order);
17981  *offsetp += 2;
17982  {
17983  const int* modifiers_bits [] = {
17984  &hf_x11_xinput_GrabDeviceKey_modifiers_mask_Shift,
17985  &hf_x11_xinput_GrabDeviceKey_modifiers_mask_Lock,
17986  &hf_x11_xinput_GrabDeviceKey_modifiers_mask_Control,
17987  &hf_x11_xinput_GrabDeviceKey_modifiers_mask_1,
17988  &hf_x11_xinput_GrabDeviceKey_modifiers_mask_2,
17989  &hf_x11_xinput_GrabDeviceKey_modifiers_mask_3,
17990  &hf_x11_xinput_GrabDeviceKey_modifiers_mask_4,
17991  &hf_x11_xinput_GrabDeviceKey_modifiers_mask_5,
17992  &hf_x11_xinput_GrabDeviceKey_modifiers_mask_Any,
17993  NULL
17994  };
17995  proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_xinput_GrabDeviceKey_modifiers, ett_x11_rectangle, modifiers_bits, byte_order);
17996  }
17997  *offsetp += 2;
17998  field8(tvb, offsetp, t, hf_x11_xinput_GrabDeviceKey_modifier_device, byte_order);
17999  proto_tree_add_item(t, hf_x11_xinput_GrabDeviceKey_grabbed_device, tvb, *offsetp, 1, byte_order);
18000  *offsetp += 1;
18001  field8(tvb, offsetp, t, hf_x11_xinput_GrabDeviceKey_key, byte_order);
18002  field8(tvb, offsetp, t, hf_x11_xinput_GrabDeviceKey_this_device_mode, byte_order);
18003  field8(tvb, offsetp, t, hf_x11_xinput_GrabDeviceKey_other_device_mode, byte_order);
18004  proto_tree_add_item(t, hf_x11_xinput_GrabDeviceKey_owner_events, tvb, *offsetp, 1, byte_order);
18005  *offsetp += 1;
18006  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 2, ENC_NA);
18007  *offsetp += 2;
18008  listOfCard32(tvb, offsetp, t, hf_x11_xinput_GrabDeviceKey_classes, hf_x11_xinput_GrabDeviceKey_classes_item, f_num_classes, byte_order);
18009  length -= f_num_classes * 4;
18010 }
18011 
18012 static void xinputUngrabDeviceKey(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
18013 {
18014  proto_tree_add_item(t, hf_x11_xinput_UngrabDeviceKey_grabWindow, tvb, *offsetp, 4, byte_order);
18015  *offsetp += 4;
18016  {
18017  const int* modifiers_bits [] = {
18018  &hf_x11_xinput_UngrabDeviceKey_modifiers_mask_Shift,
18019  &hf_x11_xinput_UngrabDeviceKey_modifiers_mask_Lock,
18020  &hf_x11_xinput_UngrabDeviceKey_modifiers_mask_Control,
18021  &hf_x11_xinput_UngrabDeviceKey_modifiers_mask_1,
18022  &hf_x11_xinput_UngrabDeviceKey_modifiers_mask_2,
18023  &hf_x11_xinput_UngrabDeviceKey_modifiers_mask_3,
18024  &hf_x11_xinput_UngrabDeviceKey_modifiers_mask_4,
18025  &hf_x11_xinput_UngrabDeviceKey_modifiers_mask_5,
18026  &hf_x11_xinput_UngrabDeviceKey_modifiers_mask_Any,
18027  NULL
18028  };
18029  proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_xinput_UngrabDeviceKey_modifiers, ett_x11_rectangle, modifiers_bits, byte_order);
18030  }
18031  *offsetp += 2;
18032  field8(tvb, offsetp, t, hf_x11_xinput_UngrabDeviceKey_modifier_device, byte_order);
18033  field8(tvb, offsetp, t, hf_x11_xinput_UngrabDeviceKey_key, byte_order);
18034  proto_tree_add_item(t, hf_x11_xinput_UngrabDeviceKey_grabbed_device, tvb, *offsetp, 1, byte_order);
18035  *offsetp += 1;
18036 }
18037 
18038 static void xinputGrabDeviceButton(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
18039 {
18040  int f_num_classes;
18041  proto_tree_add_item(t, hf_x11_xinput_GrabDeviceButton_grab_window, tvb, *offsetp, 4, byte_order);
18042  *offsetp += 4;
18043  proto_tree_add_item(t, hf_x11_xinput_GrabDeviceButton_grabbed_device, tvb, *offsetp, 1, byte_order);
18044  *offsetp += 1;
18045  field8(tvb, offsetp, t, hf_x11_xinput_GrabDeviceButton_modifier_device, byte_order);
18046  f_num_classes = tvb_get_guint16(tvb, *offsetp, byte_order);
18047  proto_tree_add_item(t, hf_x11_xinput_GrabDeviceButton_num_classes, tvb, *offsetp, 2, byte_order);
18048  *offsetp += 2;
18049  {
18050  const int* modifiers_bits [] = {
18051  &hf_x11_xinput_GrabDeviceButton_modifiers_mask_Shift,
18052  &hf_x11_xinput_GrabDeviceButton_modifiers_mask_Lock,
18053  &hf_x11_xinput_GrabDeviceButton_modifiers_mask_Control,
18054  &hf_x11_xinput_GrabDeviceButton_modifiers_mask_1,
18055  &hf_x11_xinput_GrabDeviceButton_modifiers_mask_2,
18056  &hf_x11_xinput_GrabDeviceButton_modifiers_mask_3,
18057  &hf_x11_xinput_GrabDeviceButton_modifiers_mask_4,
18058  &hf_x11_xinput_GrabDeviceButton_modifiers_mask_5,
18059  &hf_x11_xinput_GrabDeviceButton_modifiers_mask_Any,
18060  NULL
18061  };
18062  proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_xinput_GrabDeviceButton_modifiers, ett_x11_rectangle, modifiers_bits, byte_order);
18063  }
18064  *offsetp += 2;
18065  field8(tvb, offsetp, t, hf_x11_xinput_GrabDeviceButton_this_device_mode, byte_order);
18066  field8(tvb, offsetp, t, hf_x11_xinput_GrabDeviceButton_other_device_mode, byte_order);
18067  field8(tvb, offsetp, t, hf_x11_xinput_GrabDeviceButton_button, byte_order);
18068  proto_tree_add_item(t, hf_x11_xinput_GrabDeviceButton_owner_events, tvb, *offsetp, 1, byte_order);
18069  *offsetp += 1;
18070  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 2, ENC_NA);
18071  *offsetp += 2;
18072  listOfCard32(tvb, offsetp, t, hf_x11_xinput_GrabDeviceButton_classes, hf_x11_xinput_GrabDeviceButton_classes_item, f_num_classes, byte_order);
18073  length -= f_num_classes * 4;
18074 }
18075 
18076 static void xinputUngrabDeviceButton(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
18077 {
18078  proto_tree_add_item(t, hf_x11_xinput_UngrabDeviceButton_grab_window, tvb, *offsetp, 4, byte_order);
18079  *offsetp += 4;
18080  {
18081  const int* modifiers_bits [] = {
18082  &hf_x11_xinput_UngrabDeviceButton_modifiers_mask_Shift,
18083  &hf_x11_xinput_UngrabDeviceButton_modifiers_mask_Lock,
18084  &hf_x11_xinput_UngrabDeviceButton_modifiers_mask_Control,
18085  &hf_x11_xinput_UngrabDeviceButton_modifiers_mask_1,
18086  &hf_x11_xinput_UngrabDeviceButton_modifiers_mask_2,
18087  &hf_x11_xinput_UngrabDeviceButton_modifiers_mask_3,
18088  &hf_x11_xinput_UngrabDeviceButton_modifiers_mask_4,
18089  &hf_x11_xinput_UngrabDeviceButton_modifiers_mask_5,
18090  &hf_x11_xinput_UngrabDeviceButton_modifiers_mask_Any,
18091  NULL
18092  };
18093  proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_xinput_UngrabDeviceButton_modifiers, ett_x11_rectangle, modifiers_bits, byte_order);
18094  }
18095  *offsetp += 2;
18096  field8(tvb, offsetp, t, hf_x11_xinput_UngrabDeviceButton_modifier_device, byte_order);
18097  field8(tvb, offsetp, t, hf_x11_xinput_UngrabDeviceButton_button, byte_order);
18098  proto_tree_add_item(t, hf_x11_xinput_UngrabDeviceButton_grabbed_device, tvb, *offsetp, 1, byte_order);
18099  *offsetp += 1;
18100  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 3, ENC_NA);
18101  *offsetp += 3;
18102 }
18103 
18104 static void xinputAllowDeviceEvents(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
18105 {
18106  field32(tvb, offsetp, t, hf_x11_xinput_AllowDeviceEvents_time, byte_order);
18107  field8(tvb, offsetp, t, hf_x11_xinput_AllowDeviceEvents_mode, byte_order);
18108  proto_tree_add_item(t, hf_x11_xinput_AllowDeviceEvents_device_id, tvb, *offsetp, 1, byte_order);
18109  *offsetp += 1;
18110  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 2, ENC_NA);
18111  *offsetp += 2;
18112 }
18113 
18114 static void xinputGetDeviceFocus(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
18115 {
18116  proto_tree_add_item(t, hf_x11_xinput_GetDeviceFocus_device_id, tvb, *offsetp, 1, byte_order);
18117  *offsetp += 1;
18118  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 3, ENC_NA);
18119  *offsetp += 3;
18120 }
18121 static void xinputGetDeviceFocus_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
18122 {
18123  int sequence_number;
18124 
18125  col_append_fstr(pinfo->cinfo, COL_INFO, "-GetDeviceFocus");
18126 
18127  REPLY(reply);
18128  proto_tree_add_item(t, hf_x11_xinput_GetDeviceFocus_reply_xi_reply_type, tvb, *offsetp, 1, byte_order);
18129  *offsetp += 1;
18130  sequence_number = tvb_get_guint16(tvb, *offsetp, byte_order);
18131  proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
18132  "%d (xinput-GetDeviceFocus)", sequence_number);
18133  *offsetp += 2;
18134  proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
18135  *offsetp += 4;
18136  field32(tvb, offsetp, t, hf_x11_xinput_GetDeviceFocus_reply_focus, byte_order);
18137  proto_tree_add_item(t, hf_x11_xinput_GetDeviceFocus_reply_time, tvb, *offsetp, 4, byte_order);
18138  *offsetp += 4;
18139  field8(tvb, offsetp, t, hf_x11_xinput_GetDeviceFocus_reply_revert_to, byte_order);
18140  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 15, ENC_NA);
18141  *offsetp += 15;
18142 }
18143 
18144 static void xinputSetDeviceFocus(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
18145 {
18146  field32(tvb, offsetp, t, hf_x11_xinput_SetDeviceFocus_focus, byte_order);
18147  field32(tvb, offsetp, t, hf_x11_xinput_SetDeviceFocus_time, byte_order);
18148  field8(tvb, offsetp, t, hf_x11_xinput_SetDeviceFocus_revert_to, byte_order);
18149  proto_tree_add_item(t, hf_x11_xinput_SetDeviceFocus_device_id, tvb, *offsetp, 1, byte_order);
18150  *offsetp += 1;
18151  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 2, ENC_NA);
18152  *offsetp += 2;
18153 }
18154 
18155 static int struct_size_xinput_FeedbackState(tvbuff_t *tvb _U_, int *offsetp _U_, guint byte_order _U_)
18156 {
18157  int size = 0;
18158  return size + 4;
18159 }
18160 
18161 static void struct_xinput_FeedbackState(tvbuff_t *tvb, int *offsetp, proto_tree *root, guint byte_order _U_, int count)
18162 {
18163  int i;
18164  for (i = 0; i < count; i++) {
18165  proto_item *item;
18166  proto_tree *t;
18167  int f_class_id;
18168 
18169  item = proto_tree_add_item(root, hf_x11_struct_xinput_FeedbackState, tvb, *offsetp, struct_size_xinput_FeedbackState(tvb, offsetp, byte_order), ENC_NA);
18170  t = proto_item_add_subtree(item, ett_x11_rectangle);
18171  f_class_id = field8(tvb, offsetp, t, hf_x11_struct_xinput_FeedbackState_class_id, byte_order);
18172  proto_tree_add_item(t, hf_x11_struct_xinput_FeedbackState_feedback_id, tvb, *offsetp, 1, byte_order);
18173  *offsetp += 1;
18174  proto_tree_add_item(t, hf_x11_struct_xinput_FeedbackState_len, tvb, *offsetp, 2, byte_order);
18175  *offsetp += 2;
18176  if (f_class_id == 0) {
18177  proto_tree_add_item(t, hf_x11_struct_xinput_FeedbackState_Keyboard_pitch, tvb, *offsetp, 2, byte_order);
18178  *offsetp += 2;
18179  proto_tree_add_item(t, hf_x11_struct_xinput_FeedbackState_Keyboard_duration, tvb, *offsetp, 2, byte_order);
18180  *offsetp += 2;
18181  proto_tree_add_item(t, hf_x11_struct_xinput_FeedbackState_Keyboard_led_mask, tvb, *offsetp, 4, byte_order);
18182  *offsetp += 4;
18183  proto_tree_add_item(t, hf_x11_struct_xinput_FeedbackState_Keyboard_led_values, tvb, *offsetp, 4, byte_order);
18184  *offsetp += 4;
18185  proto_tree_add_item(t, hf_x11_struct_xinput_FeedbackState_Keyboard_global_auto_repeat, tvb, *offsetp, 1, byte_order);
18186  *offsetp += 1;
18187  proto_tree_add_item(t, hf_x11_struct_xinput_FeedbackState_Keyboard_click, tvb, *offsetp, 1, byte_order);
18188  *offsetp += 1;
18189  proto_tree_add_item(t, hf_x11_struct_xinput_FeedbackState_Keyboard_percent, tvb, *offsetp, 1, byte_order);
18190  *offsetp += 1;
18191  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
18192  *offsetp += 1;
18193  listOfByte(tvb, offsetp, t, hf_x11_struct_xinput_FeedbackState_Keyboard_auto_repeats, 32, byte_order);
18194  }
18195  if (f_class_id == 1) {
18196  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 2, ENC_NA);
18197  *offsetp += 2;
18198  proto_tree_add_item(t, hf_x11_struct_xinput_FeedbackState_Pointer_accel_num, tvb, *offsetp, 2, byte_order);
18199  *offsetp += 2;
18200  proto_tree_add_item(t, hf_x11_struct_xinput_FeedbackState_Pointer_accel_denom, tvb, *offsetp, 2, byte_order);
18201  *offsetp += 2;
18202  proto_tree_add_item(t, hf_x11_struct_xinput_FeedbackState_Pointer_threshold, tvb, *offsetp, 2, byte_order);
18203  *offsetp += 2;
18204  }
18205  if (f_class_id == 2) {
18206  int f_num_keysyms;
18207  proto_tree_add_item(t, hf_x11_struct_xinput_FeedbackState_String_max_symbols, tvb, *offsetp, 2, byte_order);
18208  *offsetp += 2;
18209  f_num_keysyms = tvb_get_guint16(tvb, *offsetp, byte_order);
18210  proto_tree_add_item(t, hf_x11_struct_xinput_FeedbackState_String_num_keysyms, tvb, *offsetp, 2, byte_order);
18211  *offsetp += 2;
18212  listOfCard32(tvb, offsetp, t, hf_x11_struct_xinput_FeedbackState_String_keysyms, hf_x11_struct_xinput_FeedbackState_String_keysyms_item, f_num_keysyms, byte_order);
18213  }
18214  if (f_class_id == 3) {
18215  proto_tree_add_item(t, hf_x11_struct_xinput_FeedbackState_Integer_resolution, tvb, *offsetp, 4, byte_order);
18216  *offsetp += 4;
18217  proto_tree_add_item(t, hf_x11_struct_xinput_FeedbackState_Integer_min_value, tvb, *offsetp, 4, byte_order);
18218  *offsetp += 4;
18219  proto_tree_add_item(t, hf_x11_struct_xinput_FeedbackState_Integer_max_value, tvb, *offsetp, 4, byte_order);
18220  *offsetp += 4;
18221  }
18222  if (f_class_id == 4) {
18223  proto_tree_add_item(t, hf_x11_struct_xinput_FeedbackState_Led_led_mask, tvb, *offsetp, 4, byte_order);
18224  *offsetp += 4;
18225  proto_tree_add_item(t, hf_x11_struct_xinput_FeedbackState_Led_led_values, tvb, *offsetp, 4, byte_order);
18226  *offsetp += 4;
18227  }
18228  if (f_class_id == 5) {
18229  proto_tree_add_item(t, hf_x11_struct_xinput_FeedbackState_Bell_percent, tvb, *offsetp, 1, byte_order);
18230  *offsetp += 1;
18231  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 3, ENC_NA);
18232  *offsetp += 3;
18233  proto_tree_add_item(t, hf_x11_struct_xinput_FeedbackState_Bell_pitch, tvb, *offsetp, 2, byte_order);
18234  *offsetp += 2;
18235  proto_tree_add_item(t, hf_x11_struct_xinput_FeedbackState_Bell_duration, tvb, *offsetp, 2, byte_order);
18236  *offsetp += 2;
18237  }
18238  }
18239 }
18240 
18241 static void xinputGetFeedbackControl(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
18242 {
18243  proto_tree_add_item(t, hf_x11_xinput_GetFeedbackControl_device_id, tvb, *offsetp, 1, byte_order);
18244  *offsetp += 1;
18245  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 3, ENC_NA);
18246  *offsetp += 3;
18247 }
18248 static void xinputGetFeedbackControl_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
18249 {
18250  int sequence_number;
18251  int f_num_feedbacks;
18252 
18253  col_append_fstr(pinfo->cinfo, COL_INFO, "-GetFeedbackControl");
18254 
18255  REPLY(reply);
18256  proto_tree_add_item(t, hf_x11_xinput_GetFeedbackControl_reply_xi_reply_type, tvb, *offsetp, 1, byte_order);
18257  *offsetp += 1;
18258  sequence_number = tvb_get_guint16(tvb, *offsetp, byte_order);
18259  proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
18260  "%d (xinput-GetFeedbackControl)", sequence_number);
18261  *offsetp += 2;
18262  proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
18263  *offsetp += 4;
18264  f_num_feedbacks = tvb_get_guint16(tvb, *offsetp, byte_order);
18265  proto_tree_add_item(t, hf_x11_xinput_GetFeedbackControl_reply_num_feedbacks, tvb, *offsetp, 2, byte_order);
18266  *offsetp += 2;
18267  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 22, ENC_NA);
18268  *offsetp += 22;
18269  struct_xinput_FeedbackState(tvb, offsetp, t, byte_order, f_num_feedbacks);
18270 }
18271 
18272 static int struct_size_xinput_FeedbackCtl(tvbuff_t *tvb _U_, int *offsetp _U_, guint byte_order _U_)
18273 {
18274  int size = 0;
18275  return size + 4;
18276 }
18277 
18278 static void struct_xinput_FeedbackCtl(tvbuff_t *tvb, int *offsetp, proto_tree *root, guint byte_order _U_, int count)
18279 {
18280  int i;
18281  for (i = 0; i < count; i++) {
18282  proto_item *item;
18283  proto_tree *t;
18284  int f_class_id;
18285 
18286  item = proto_tree_add_item(root, hf_x11_struct_xinput_FeedbackCtl, tvb, *offsetp, struct_size_xinput_FeedbackCtl(tvb, offsetp, byte_order), ENC_NA);
18287  t = proto_item_add_subtree(item, ett_x11_rectangle);
18288  f_class_id = field8(tvb, offsetp, t, hf_x11_struct_xinput_FeedbackCtl_class_id, byte_order);
18289  proto_tree_add_item(t, hf_x11_struct_xinput_FeedbackCtl_feedback_id, tvb, *offsetp, 1, byte_order);
18290  *offsetp += 1;
18291  proto_tree_add_item(t, hf_x11_struct_xinput_FeedbackCtl_len, tvb, *offsetp, 2, byte_order);
18292  *offsetp += 2;
18293  if (f_class_id == 0) {
18294  proto_tree_add_item(t, hf_x11_struct_xinput_FeedbackCtl_Keyboard_key, tvb, *offsetp, 1, byte_order);
18295  *offsetp += 1;
18296  proto_tree_add_item(t, hf_x11_struct_xinput_FeedbackCtl_Keyboard_auto_repeat_mode, tvb, *offsetp, 1, byte_order);
18297  *offsetp += 1;
18298  proto_tree_add_item(t, hf_x11_struct_xinput_FeedbackCtl_Keyboard_key_click_percent, tvb, *offsetp, 1, byte_order);
18299  *offsetp += 1;
18300  proto_tree_add_item(t, hf_x11_struct_xinput_FeedbackCtl_Keyboard_bell_percent, tvb, *offsetp, 1, byte_order);
18301  *offsetp += 1;
18302  proto_tree_add_item(t, hf_x11_struct_xinput_FeedbackCtl_Keyboard_bell_pitch, tvb, *offsetp, 2, byte_order);
18303  *offsetp += 2;
18304  proto_tree_add_item(t, hf_x11_struct_xinput_FeedbackCtl_Keyboard_bell_duration, tvb, *offsetp, 2, byte_order);
18305  *offsetp += 2;
18306  proto_tree_add_item(t, hf_x11_struct_xinput_FeedbackCtl_Keyboard_led_mask, tvb, *offsetp, 4, byte_order);
18307  *offsetp += 4;
18308  proto_tree_add_item(t, hf_x11_struct_xinput_FeedbackCtl_Keyboard_led_values, tvb, *offsetp, 4, byte_order);
18309  *offsetp += 4;
18310  }
18311  if (f_class_id == 1) {
18312  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 2, ENC_NA);
18313  *offsetp += 2;
18314  proto_tree_add_item(t, hf_x11_struct_xinput_FeedbackCtl_Pointer_num, tvb, *offsetp, 2, byte_order);
18315  *offsetp += 2;
18316  proto_tree_add_item(t, hf_x11_struct_xinput_FeedbackCtl_Pointer_denom, tvb, *offsetp, 2, byte_order);
18317  *offsetp += 2;
18318  proto_tree_add_item(t, hf_x11_struct_xinput_FeedbackCtl_Pointer_threshold, tvb, *offsetp, 2, byte_order);
18319  *offsetp += 2;
18320  }
18321  if (f_class_id == 2) {
18322  int f_num_keysyms;
18323  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 2, ENC_NA);
18324  *offsetp += 2;
18325  f_num_keysyms = tvb_get_guint16(tvb, *offsetp, byte_order);
18326  proto_tree_add_item(t, hf_x11_struct_xinput_FeedbackCtl_String_num_keysyms, tvb, *offsetp, 2, byte_order);
18327  *offsetp += 2;
18328  listOfCard32(tvb, offsetp, t, hf_x11_struct_xinput_FeedbackCtl_String_keysyms, hf_x11_struct_xinput_FeedbackCtl_String_keysyms_item, f_num_keysyms, byte_order);
18329  }
18330  if (f_class_id == 3) {
18331  proto_tree_add_item(t, hf_x11_struct_xinput_FeedbackCtl_Integer_int_to_display, tvb, *offsetp, 4, byte_order);
18332  *offsetp += 4;
18333  }
18334  if (f_class_id == 4) {
18335  proto_tree_add_item(t, hf_x11_struct_xinput_FeedbackCtl_Led_led_mask, tvb, *offsetp, 4, byte_order);
18336  *offsetp += 4;
18337  proto_tree_add_item(t, hf_x11_struct_xinput_FeedbackCtl_Led_led_values, tvb, *offsetp, 4, byte_order);
18338  *offsetp += 4;
18339  }
18340  if (f_class_id == 5) {
18341  proto_tree_add_item(t, hf_x11_struct_xinput_FeedbackCtl_Bell_percent, tvb, *offsetp, 1, byte_order);
18342  *offsetp += 1;
18343  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 3, ENC_NA);
18344  *offsetp += 3;
18345  proto_tree_add_item(t, hf_x11_struct_xinput_FeedbackCtl_Bell_pitch, tvb, *offsetp, 2, byte_order);
18346  *offsetp += 2;
18347  proto_tree_add_item(t, hf_x11_struct_xinput_FeedbackCtl_Bell_duration, tvb, *offsetp, 2, byte_order);
18348  *offsetp += 2;
18349  }
18350  }
18351 }
18352 
18353 static void xinputChangeFeedbackControl(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
18354 {
18355  {
18356  const int* mask_bits [] = {
18357  &hf_x11_xinput_ChangeFeedbackControl_mask_mask_AccelNum,
18358  &hf_x11_xinput_ChangeFeedbackControl_mask_mask_AccelDenom,
18359  &hf_x11_xinput_ChangeFeedbackControl_mask_mask_Threshold,
18360  &hf_x11_xinput_ChangeFeedbackControl_mask_mask_Duration,
18361  &hf_x11_xinput_ChangeFeedbackControl_mask_mask_Led,
18362  &hf_x11_xinput_ChangeFeedbackControl_mask_mask_LedMode,
18363  &hf_x11_xinput_ChangeFeedbackControl_mask_mask_Key,
18364  &hf_x11_xinput_ChangeFeedbackControl_mask_mask_AutoRepeatMode,
18365  NULL
18366  };
18367  proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_xinput_ChangeFeedbackControl_mask, ett_x11_rectangle, mask_bits, byte_order);
18368  }
18369  *offsetp += 4;
18370  proto_tree_add_item(t, hf_x11_xinput_ChangeFeedbackControl_device_id, tvb, *offsetp, 1, byte_order);
18371  *offsetp += 1;
18372  proto_tree_add_item(t, hf_x11_xinput_ChangeFeedbackControl_feedback_id, tvb, *offsetp, 1, byte_order);
18373  *offsetp += 1;
18374  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 2, ENC_NA);
18375  *offsetp += 2;
18376  struct_xinput_FeedbackCtl(tvb, offsetp, t, byte_order, 1);
18377 }
18378 
18379 static void xinputGetDeviceKeyMapping(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
18380 {
18381  proto_tree_add_item(t, hf_x11_xinput_GetDeviceKeyMapping_device_id, tvb, *offsetp, 1, byte_order);
18382  *offsetp += 1;
18383  proto_tree_add_item(t, hf_x11_xinput_GetDeviceKeyMapping_first_keycode, tvb, *offsetp, 1, byte_order);
18384  *offsetp += 1;
18385  proto_tree_add_item(t, hf_x11_xinput_GetDeviceKeyMapping_count, tvb, *offsetp, 1, byte_order);
18386  *offsetp += 1;
18387  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
18388  *offsetp += 1;
18389 }
18390 static void xinputGetDeviceKeyMapping_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
18391 {
18392  int sequence_number;
18393  int f_length;
18394 
18395  col_append_fstr(pinfo->cinfo, COL_INFO, "-GetDeviceKeyMapping");
18396 
18397  REPLY(reply);
18398  proto_tree_add_item(t, hf_x11_xinput_GetDeviceKeyMapping_reply_xi_reply_type, tvb, *offsetp, 1, byte_order);
18399  *offsetp += 1;
18400  sequence_number = tvb_get_guint16(tvb, *offsetp, byte_order);
18401  proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
18402  "%d (xinput-GetDeviceKeyMapping)", sequence_number);
18403  *offsetp += 2;
18404  f_length = tvb_get_guint32(tvb, *offsetp, byte_order);
18405  proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
18406  *offsetp += 4;
18407  proto_tree_add_item(t, hf_x11_xinput_GetDeviceKeyMapping_reply_keysyms_per_keycode, tvb, *offsetp, 1, byte_order);
18408  *offsetp += 1;
18409  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 23, ENC_NA);
18410  *offsetp += 23;
18411  listOfCard32(tvb, offsetp, t, hf_x11_xinput_GetDeviceKeyMapping_reply_keysyms, hf_x11_xinput_GetDeviceKeyMapping_reply_keysyms_item, f_length, byte_order);
18412 }
18413 
18414 static void xinputChangeDeviceKeyMapping(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
18415 {
18416  int f_keysyms_per_keycode;
18417  int f_keycode_count;
18418  proto_tree_add_item(t, hf_x11_xinput_ChangeDeviceKeyMapping_device_id, tvb, *offsetp, 1, byte_order);
18419  *offsetp += 1;
18420  proto_tree_add_item(t, hf_x11_xinput_ChangeDeviceKeyMapping_first_keycode, tvb, *offsetp, 1, byte_order);
18421  *offsetp += 1;
18422  f_keysyms_per_keycode = tvb_get_guint8(tvb, *offsetp);
18423  proto_tree_add_item(t, hf_x11_xinput_ChangeDeviceKeyMapping_keysyms_per_keycode, tvb, *offsetp, 1, byte_order);
18424  *offsetp += 1;
18425  f_keycode_count = tvb_get_guint8(tvb, *offsetp);
18426  proto_tree_add_item(t, hf_x11_xinput_ChangeDeviceKeyMapping_keycode_count, tvb, *offsetp, 1, byte_order);
18427  *offsetp += 1;
18428  listOfCard32(tvb, offsetp, t, hf_x11_xinput_ChangeDeviceKeyMapping_keysyms, hf_x11_xinput_ChangeDeviceKeyMapping_keysyms_item, (f_keycode_count * f_keysyms_per_keycode), byte_order);
18429  length -= (f_keycode_count * f_keysyms_per_keycode) * 4;
18430 }
18431 
18432 static void xinputGetDeviceModifierMapping(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
18433 {
18434  proto_tree_add_item(t, hf_x11_xinput_GetDeviceModifierMapping_device_id, tvb, *offsetp, 1, byte_order);
18435  *offsetp += 1;
18436  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 3, ENC_NA);
18437  *offsetp += 3;
18438 }
18439 static void xinputGetDeviceModifierMapping_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
18440 {
18441  int sequence_number;
18442  int f_keycodes_per_modifier;
18443 
18444  col_append_fstr(pinfo->cinfo, COL_INFO, "-GetDeviceModifierMapping");
18445 
18446  REPLY(reply);
18447  proto_tree_add_item(t, hf_x11_xinput_GetDeviceModifierMapping_reply_xi_reply_type, tvb, *offsetp, 1, byte_order);
18448  *offsetp += 1;
18449  sequence_number = tvb_get_guint16(tvb, *offsetp, byte_order);
18450  proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
18451  "%d (xinput-GetDeviceModifierMapping)", sequence_number);
18452  *offsetp += 2;
18453  proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
18454  *offsetp += 4;
18455  f_keycodes_per_modifier = tvb_get_guint8(tvb, *offsetp);
18456  proto_tree_add_item(t, hf_x11_xinput_GetDeviceModifierMapping_reply_keycodes_per_modifier, tvb, *offsetp, 1, byte_order);
18457  *offsetp += 1;
18458  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 23, ENC_NA);
18459  *offsetp += 23;
18460  listOfByte(tvb, offsetp, t, hf_x11_xinput_GetDeviceModifierMapping_reply_keymaps, (f_keycodes_per_modifier * 8), byte_order);
18461 }
18462 
18463 static void xinputSetDeviceModifierMapping(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
18464 {
18465  int f_keycodes_per_modifier;
18466  proto_tree_add_item(t, hf_x11_xinput_SetDeviceModifierMapping_device_id, tvb, *offsetp, 1, byte_order);
18467  *offsetp += 1;
18468  f_keycodes_per_modifier = tvb_get_guint8(tvb, *offsetp);
18469  proto_tree_add_item(t, hf_x11_xinput_SetDeviceModifierMapping_keycodes_per_modifier, tvb, *offsetp, 1, byte_order);
18470  *offsetp += 1;
18471  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 2, ENC_NA);
18472  *offsetp += 2;
18473  listOfByte(tvb, offsetp, t, hf_x11_xinput_SetDeviceModifierMapping_keymaps, (f_keycodes_per_modifier * 8), byte_order);
18474  length -= (f_keycodes_per_modifier * 8) * 1;
18475 }
18476 static void xinputSetDeviceModifierMapping_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
18477 {
18478  int sequence_number;
18479 
18480  col_append_fstr(pinfo->cinfo, COL_INFO, "-SetDeviceModifierMapping");
18481 
18482  REPLY(reply);
18483  proto_tree_add_item(t, hf_x11_xinput_SetDeviceModifierMapping_reply_xi_reply_type, tvb, *offsetp, 1, byte_order);
18484  *offsetp += 1;
18485  sequence_number = tvb_get_guint16(tvb, *offsetp, byte_order);
18486  proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
18487  "%d (xinput-SetDeviceModifierMapping)", sequence_number);
18488  *offsetp += 2;
18489  proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
18490  *offsetp += 4;
18491  field8(tvb, offsetp, t, hf_x11_xinput_SetDeviceModifierMapping_reply_status, byte_order);
18492  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 23, ENC_NA);
18493  *offsetp += 23;
18494 }
18495 
18496 static void xinputGetDeviceButtonMapping(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
18497 {
18498  proto_tree_add_item(t, hf_x11_xinput_GetDeviceButtonMapping_device_id, tvb, *offsetp, 1, byte_order);
18499  *offsetp += 1;
18500  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 3, ENC_NA);
18501  *offsetp += 3;
18502 }
18503 static void xinputGetDeviceButtonMapping_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
18504 {
18505  int sequence_number;
18506  int f_map_size;
18507 
18508  col_append_fstr(pinfo->cinfo, COL_INFO, "-GetDeviceButtonMapping");
18509 
18510  REPLY(reply);
18511  proto_tree_add_item(t, hf_x11_xinput_GetDeviceButtonMapping_reply_xi_reply_type, tvb, *offsetp, 1, byte_order);
18512  *offsetp += 1;
18513  sequence_number = tvb_get_guint16(tvb, *offsetp, byte_order);
18514  proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
18515  "%d (xinput-GetDeviceButtonMapping)", sequence_number);
18516  *offsetp += 2;
18517  proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
18518  *offsetp += 4;
18519  f_map_size = tvb_get_guint8(tvb, *offsetp);
18520  proto_tree_add_item(t, hf_x11_xinput_GetDeviceButtonMapping_reply_map_size, tvb, *offsetp, 1, byte_order);
18521  *offsetp += 1;
18522  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 23, ENC_NA);
18523  *offsetp += 23;
18524  listOfByte(tvb, offsetp, t, hf_x11_xinput_GetDeviceButtonMapping_reply_map, f_map_size, byte_order);
18525  if (*offsetp % 4) {
18526  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, (4 - *offsetp % 4), ENC_NA);
18527  *offsetp += (4 - *offsetp % 4);
18528  }
18529 }
18530 
18531 static void xinputSetDeviceButtonMapping(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
18532 {
18533  int f_map_size;
18534  proto_tree_add_item(t, hf_x11_xinput_SetDeviceButtonMapping_device_id, tvb, *offsetp, 1, byte_order);
18535  *offsetp += 1;
18536  f_map_size = tvb_get_guint8(tvb, *offsetp);
18537  proto_tree_add_item(t, hf_x11_xinput_SetDeviceButtonMapping_map_size, tvb, *offsetp, 1, byte_order);
18538  *offsetp += 1;
18539  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 2, ENC_NA);
18540  *offsetp += 2;
18541  listOfByte(tvb, offsetp, t, hf_x11_xinput_SetDeviceButtonMapping_map, f_map_size, byte_order);
18542  length -= f_map_size * 1;
18543 }
18544 static void xinputSetDeviceButtonMapping_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
18545 {
18546  int sequence_number;
18547 
18548  col_append_fstr(pinfo->cinfo, COL_INFO, "-SetDeviceButtonMapping");
18549 
18550  REPLY(reply);
18551  proto_tree_add_item(t, hf_x11_xinput_SetDeviceButtonMapping_reply_xi_reply_type, tvb, *offsetp, 1, byte_order);
18552  *offsetp += 1;
18553  sequence_number = tvb_get_guint16(tvb, *offsetp, byte_order);
18554  proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
18555  "%d (xinput-SetDeviceButtonMapping)", sequence_number);
18556  *offsetp += 2;
18557  proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
18558  *offsetp += 4;
18559  field8(tvb, offsetp, t, hf_x11_xinput_SetDeviceButtonMapping_reply_status, byte_order);
18560  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 23, ENC_NA);
18561  *offsetp += 23;
18562 }
18563 
18564 static int struct_size_xinput_InputState(tvbuff_t *tvb _U_, int *offsetp _U_, guint byte_order _U_)
18565 {
18566  int size = 0;
18567  return size + 2;
18568 }
18569 
18570 static void struct_xinput_InputState(tvbuff_t *tvb, int *offsetp, proto_tree *root, guint byte_order _U_, int count)
18571 {
18572  int i;
18573  for (i = 0; i < count; i++) {
18574  proto_item *item;
18575  proto_tree *t;
18576  int f_class_id;
18577 
18578  item = proto_tree_add_item(root, hf_x11_struct_xinput_InputState, tvb, *offsetp, struct_size_xinput_InputState(tvb, offsetp, byte_order), ENC_NA);
18579  t = proto_item_add_subtree(item, ett_x11_rectangle);
18580  f_class_id = field8(tvb, offsetp, t, hf_x11_struct_xinput_InputState_class_id, byte_order);
18581  proto_tree_add_item(t, hf_x11_struct_xinput_InputState_len, tvb, *offsetp, 1, byte_order);
18582  *offsetp += 1;
18583  if (f_class_id == 0) {
18584  proto_tree_add_item(t, hf_x11_struct_xinput_InputState_Key_num_keys, tvb, *offsetp, 1, byte_order);
18585  *offsetp += 1;
18586  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
18587  *offsetp += 1;
18588  listOfByte(tvb, offsetp, t, hf_x11_struct_xinput_InputState_Key_keys, 32, byte_order);
18589  }
18590  if (f_class_id == 1) {
18591  proto_tree_add_item(t, hf_x11_struct_xinput_InputState_Button_num_buttons, tvb, *offsetp, 1, byte_order);
18592  *offsetp += 1;
18593  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
18594  *offsetp += 1;
18595  listOfByte(tvb, offsetp, t, hf_x11_struct_xinput_InputState_Button_buttons, 32, byte_order);
18596  }
18597  if (f_class_id == 2) {
18598  int f_num_valuators;
18599  f_num_valuators = tvb_get_guint8(tvb, *offsetp);
18600  proto_tree_add_item(t, hf_x11_struct_xinput_InputState_Valuator_num_valuators, tvb, *offsetp, 1, byte_order);
18601  *offsetp += 1;
18602  {
18603  const int* mode_bits [] = {
18604  &hf_x11_struct_xinput_InputState_Valuator_mode_mask_DeviceModeAbsolute,
18605  &hf_x11_struct_xinput_InputState_Valuator_mode_mask_OutOfProximity,
18606  NULL
18607  };
18608  proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_struct_xinput_InputState_Valuator_mode, ett_x11_rectangle, mode_bits, byte_order);
18609  }
18610  *offsetp += 1;
18611  listOfInt32(tvb, offsetp, t, hf_x11_struct_xinput_InputState_Valuator_valuators, hf_x11_struct_xinput_InputState_Valuator_valuators_item, f_num_valuators, byte_order);
18612  }
18613  }
18614 }
18615 
18616 static void xinputQueryDeviceState(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
18617 {
18618  proto_tree_add_item(t, hf_x11_xinput_QueryDeviceState_device_id, tvb, *offsetp, 1, byte_order);
18619  *offsetp += 1;
18620  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 3, ENC_NA);
18621  *offsetp += 3;
18622 }
18623 static void xinputQueryDeviceState_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
18624 {
18625  int sequence_number;
18626  int f_num_classes;
18627 
18628  col_append_fstr(pinfo->cinfo, COL_INFO, "-QueryDeviceState");
18629 
18630  REPLY(reply);
18631  proto_tree_add_item(t, hf_x11_xinput_QueryDeviceState_reply_xi_reply_type, tvb, *offsetp, 1, byte_order);
18632  *offsetp += 1;
18633  sequence_number = tvb_get_guint16(tvb, *offsetp, byte_order);
18634  proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
18635  "%d (xinput-QueryDeviceState)", sequence_number);
18636  *offsetp += 2;
18637  proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
18638  *offsetp += 4;
18639  f_num_classes = tvb_get_guint8(tvb, *offsetp);
18640  proto_tree_add_item(t, hf_x11_xinput_QueryDeviceState_reply_num_classes, tvb, *offsetp, 1, byte_order);
18641  *offsetp += 1;
18642  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 23, ENC_NA);
18643  *offsetp += 23;
18644  struct_xinput_InputState(tvb, offsetp, t, byte_order, f_num_classes);
18645 }
18646 
18647 static void xinputDeviceBell(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
18648 {
18649  proto_tree_add_item(t, hf_x11_xinput_DeviceBell_device_id, tvb, *offsetp, 1, byte_order);
18650  *offsetp += 1;
18651  proto_tree_add_item(t, hf_x11_xinput_DeviceBell_feedback_id, tvb, *offsetp, 1, byte_order);
18652  *offsetp += 1;
18653  proto_tree_add_item(t, hf_x11_xinput_DeviceBell_feedback_class, tvb, *offsetp, 1, byte_order);
18654  *offsetp += 1;
18655  proto_tree_add_item(t, hf_x11_xinput_DeviceBell_percent, tvb, *offsetp, 1, byte_order);
18656  *offsetp += 1;
18657 }
18658 
18659 static void xinputSetDeviceValuators(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
18660 {
18661  int f_num_valuators;
18662  proto_tree_add_item(t, hf_x11_xinput_SetDeviceValuators_device_id, tvb, *offsetp, 1, byte_order);
18663  *offsetp += 1;
18664  proto_tree_add_item(t, hf_x11_xinput_SetDeviceValuators_first_valuator, tvb, *offsetp, 1, byte_order);
18665  *offsetp += 1;
18666  f_num_valuators = tvb_get_guint8(tvb, *offsetp);
18667  proto_tree_add_item(t, hf_x11_xinput_SetDeviceValuators_num_valuators, tvb, *offsetp, 1, byte_order);
18668  *offsetp += 1;
18669  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
18670  *offsetp += 1;
18671  listOfInt32(tvb, offsetp, t, hf_x11_xinput_SetDeviceValuators_valuators, hf_x11_xinput_SetDeviceValuators_valuators_item, f_num_valuators, byte_order);
18672  length -= f_num_valuators * 4;
18673 }
18674 static void xinputSetDeviceValuators_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
18675 {
18676  int sequence_number;
18677 
18678  col_append_fstr(pinfo->cinfo, COL_INFO, "-SetDeviceValuators");
18679 
18680  REPLY(reply);
18681  proto_tree_add_item(t, hf_x11_xinput_SetDeviceValuators_reply_xi_reply_type, tvb, *offsetp, 1, byte_order);
18682  *offsetp += 1;
18683  sequence_number = tvb_get_guint16(tvb, *offsetp, byte_order);
18684  proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
18685  "%d (xinput-SetDeviceValuators)", sequence_number);
18686  *offsetp += 2;
18687  proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
18688  *offsetp += 4;
18689  field8(tvb, offsetp, t, hf_x11_xinput_SetDeviceValuators_reply_status, byte_order);
18690  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 23, ENC_NA);
18691  *offsetp += 23;
18692 }
18693 
18694 static int struct_size_xinput_DeviceState(tvbuff_t *tvb _U_, int *offsetp _U_, guint byte_order _U_)
18695 {
18696  int size = 0;
18697  return size + 4;
18698 }
18699 
18700 static void struct_xinput_DeviceState(tvbuff_t *tvb, int *offsetp, proto_tree *root, guint byte_order _U_, int count)
18701 {
18702  int i;
18703  for (i = 0; i < count; i++) {
18704  proto_item *item;
18705  proto_tree *t;
18706  int f_control_id;
18707 
18708  item = proto_tree_add_item(root, hf_x11_struct_xinput_DeviceState, tvb, *offsetp, struct_size_xinput_DeviceState(tvb, offsetp, byte_order), ENC_NA);
18709  t = proto_item_add_subtree(item, ett_x11_rectangle);
18710  f_control_id = field16(tvb, offsetp, t, hf_x11_struct_xinput_DeviceState_control_id, byte_order);
18711  proto_tree_add_item(t, hf_x11_struct_xinput_DeviceState_len, tvb, *offsetp, 2, byte_order);
18712  *offsetp += 2;
18713  if (f_control_id == 1) {
18714  int f_num_valuators;
18715  f_num_valuators = tvb_get_guint32(tvb, *offsetp, byte_order);
18716  proto_tree_add_item(t, hf_x11_struct_xinput_DeviceState_resolution_num_valuators, tvb, *offsetp, 4, byte_order);
18717  *offsetp += 4;
18718  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);
18719  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);
18720  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);
18721  }
18722  if (f_control_id == 2) {
18723  proto_tree_add_item(t, hf_x11_struct_xinput_DeviceState_abs_calib_min_x, tvb, *offsetp, 4, byte_order);
18724  *offsetp += 4;
18725  proto_tree_add_item(t, hf_x11_struct_xinput_DeviceState_abs_calib_max_x, tvb, *offsetp, 4, byte_order);
18726  *offsetp += 4;
18727  proto_tree_add_item(t, hf_x11_struct_xinput_DeviceState_abs_calib_min_y, tvb, *offsetp, 4, byte_order);
18728  *offsetp += 4;
18729  proto_tree_add_item(t, hf_x11_struct_xinput_DeviceState_abs_calib_max_y, tvb, *offsetp, 4, byte_order);
18730  *offsetp += 4;
18731  proto_tree_add_item(t, hf_x11_struct_xinput_DeviceState_abs_calib_flip_x, tvb, *offsetp, 4, byte_order);
18732  *offsetp += 4;
18733  proto_tree_add_item(t, hf_x11_struct_xinput_DeviceState_abs_calib_flip_y, tvb, *offsetp, 4, byte_order);
18734  *offsetp += 4;
18735  proto_tree_add_item(t, hf_x11_struct_xinput_DeviceState_abs_calib_rotation, tvb, *offsetp, 4, byte_order);
18736  *offsetp += 4;
18737  proto_tree_add_item(t, hf_x11_struct_xinput_DeviceState_abs_calib_button_threshold, tvb, *offsetp, 4, byte_order);
18738  *offsetp += 4;
18739  }
18740  if (f_control_id == 3) {
18741  proto_tree_add_item(t, hf_x11_struct_xinput_DeviceState_core_status, tvb, *offsetp, 1, byte_order);
18742  *offsetp += 1;
18743  proto_tree_add_item(t, hf_x11_struct_xinput_DeviceState_core_iscore, tvb, *offsetp, 1, byte_order);
18744  *offsetp += 1;
18745  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 2, ENC_NA);
18746  *offsetp += 2;
18747  }
18748  if (f_control_id == 4) {
18749  proto_tree_add_item(t, hf_x11_struct_xinput_DeviceState_enable_enable, tvb, *offsetp, 1, byte_order);
18750  *offsetp += 1;
18751  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 3, ENC_NA);
18752  *offsetp += 3;
18753  }
18754  if (f_control_id == 5) {
18755  proto_tree_add_item(t, hf_x11_struct_xinput_DeviceState_abs_area_offset_x, tvb, *offsetp, 4, byte_order);
18756  *offsetp += 4;
18757  proto_tree_add_item(t, hf_x11_struct_xinput_DeviceState_abs_area_offset_y, tvb, *offsetp, 4, byte_order);
18758  *offsetp += 4;
18759  proto_tree_add_item(t, hf_x11_struct_xinput_DeviceState_abs_area_width, tvb, *offsetp, 4, byte_order);
18760  *offsetp += 4;
18761  proto_tree_add_item(t, hf_x11_struct_xinput_DeviceState_abs_area_height, tvb, *offsetp, 4, byte_order);
18762  *offsetp += 4;
18763  proto_tree_add_item(t, hf_x11_struct_xinput_DeviceState_abs_area_screen, tvb, *offsetp, 4, byte_order);
18764  *offsetp += 4;
18765  proto_tree_add_item(t, hf_x11_struct_xinput_DeviceState_abs_area_following, tvb, *offsetp, 4, byte_order);
18766  *offsetp += 4;
18767  }
18768  }
18769 }
18770 
18771 static void xinputGetDeviceControl(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
18772 {
18773  field16(tvb, offsetp, t, hf_x11_xinput_GetDeviceControl_control_id, byte_order);
18774  proto_tree_add_item(t, hf_x11_xinput_GetDeviceControl_device_id, tvb, *offsetp, 1, byte_order);
18775  *offsetp += 1;
18776  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
18777  *offsetp += 1;
18778 }
18779 static void xinputGetDeviceControl_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
18780 {
18781  int sequence_number;
18782 
18783  col_append_fstr(pinfo->cinfo, COL_INFO, "-GetDeviceControl");
18784 
18785  REPLY(reply);
18786  proto_tree_add_item(t, hf_x11_xinput_GetDeviceControl_reply_xi_reply_type, tvb, *offsetp, 1, byte_order);
18787  *offsetp += 1;
18788  sequence_number = tvb_get_guint16(tvb, *offsetp, byte_order);
18789  proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
18790  "%d (xinput-GetDeviceControl)", sequence_number);
18791  *offsetp += 2;
18792  proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
18793  *offsetp += 4;
18794  field8(tvb, offsetp, t, hf_x11_xinput_GetDeviceControl_reply_status, byte_order);
18795  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 23, ENC_NA);
18796  *offsetp += 23;
18797  struct_xinput_DeviceState(tvb, offsetp, t, byte_order, 1);
18798 }
18799 
18800 static int struct_size_xinput_DeviceCtl(tvbuff_t *tvb _U_, int *offsetp _U_, guint byte_order _U_)
18801 {
18802  int size = 0;
18803  return size + 4;
18804 }
18805 
18806 static void struct_xinput_DeviceCtl(tvbuff_t *tvb, int *offsetp, proto_tree *root, guint byte_order _U_, int count)
18807 {
18808  int i;
18809  for (i = 0; i < count; i++) {
18810  proto_item *item;
18811  proto_tree *t;
18812  int f_control_id;
18813 
18814  item = proto_tree_add_item(root, hf_x11_struct_xinput_DeviceCtl, tvb, *offsetp, struct_size_xinput_DeviceCtl(tvb, offsetp, byte_order), ENC_NA);
18815  t = proto_item_add_subtree(item, ett_x11_rectangle);
18816  f_control_id = field16(tvb, offsetp, t, hf_x11_struct_xinput_DeviceCtl_control_id, byte_order);
18817  proto_tree_add_item(t, hf_x11_struct_xinput_DeviceCtl_len, tvb, *offsetp, 2, byte_order);
18818  *offsetp += 2;
18819  if (f_control_id == 1) {
18820  int f_num_valuators;
18821  proto_tree_add_item(t, hf_x11_struct_xinput_DeviceCtl_resolution_first_valuator, tvb, *offsetp, 1, byte_order);
18822  *offsetp += 1;
18823  f_num_valuators = tvb_get_guint8(tvb, *offsetp);
18824  proto_tree_add_item(t, hf_x11_struct_xinput_DeviceCtl_resolution_num_valuators, tvb, *offsetp, 1, byte_order);
18825  *offsetp += 1;
18826  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 2, ENC_NA);
18827  *offsetp += 2;
18828  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);
18829  }
18830  if (f_control_id == 2) {
18831  proto_tree_add_item(t, hf_x11_struct_xinput_DeviceCtl_abs_calib_min_x, tvb, *offsetp, 4, byte_order);
18832  *offsetp += 4;
18833  proto_tree_add_item(t, hf_x11_struct_xinput_DeviceCtl_abs_calib_max_x, tvb, *offsetp, 4, byte_order);
18834  *offsetp += 4;
18835  proto_tree_add_item(t, hf_x11_struct_xinput_DeviceCtl_abs_calib_min_y, tvb, *offsetp, 4, byte_order);
18836  *offsetp += 4;
18837  proto_tree_add_item(t, hf_x11_struct_xinput_DeviceCtl_abs_calib_max_y, tvb, *offsetp, 4, byte_order);
18838  *offsetp += 4;
18839  proto_tree_add_item(t, hf_x11_struct_xinput_DeviceCtl_abs_calib_flip_x, tvb, *offsetp, 4, byte_order);
18840  *offsetp += 4;
18841  proto_tree_add_item(t, hf_x11_struct_xinput_DeviceCtl_abs_calib_flip_y, tvb, *offsetp, 4, byte_order);
18842  *offsetp += 4;
18843  proto_tree_add_item(t, hf_x11_struct_xinput_DeviceCtl_abs_calib_rotation, tvb, *offsetp, 4, byte_order);
18844  *offsetp += 4;
18845  proto_tree_add_item(t, hf_x11_struct_xinput_DeviceCtl_abs_calib_button_threshold, tvb, *offsetp, 4, byte_order);
18846  *offsetp += 4;
18847  }
18848  if (f_control_id == 3) {
18849  proto_tree_add_item(t, hf_x11_struct_xinput_DeviceCtl_core_status, tvb, *offsetp, 1, byte_order);
18850  *offsetp += 1;
18851  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 3, ENC_NA);
18852  *offsetp += 3;
18853  }
18854  if (f_control_id == 4) {
18855  proto_tree_add_item(t, hf_x11_struct_xinput_DeviceCtl_enable_enable, tvb, *offsetp, 1, byte_order);
18856  *offsetp += 1;
18857  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 3, ENC_NA);
18858  *offsetp += 3;
18859  }
18860  if (f_control_id == 5) {
18861  proto_tree_add_item(t, hf_x11_struct_xinput_DeviceCtl_abs_area_offset_x, tvb, *offsetp, 4, byte_order);
18862  *offsetp += 4;
18863  proto_tree_add_item(t, hf_x11_struct_xinput_DeviceCtl_abs_area_offset_y, tvb, *offsetp, 4, byte_order);
18864  *offsetp += 4;
18865  proto_tree_add_item(t, hf_x11_struct_xinput_DeviceCtl_abs_area_width, tvb, *offsetp, 4, byte_order);
18866  *offsetp += 4;
18867  proto_tree_add_item(t, hf_x11_struct_xinput_DeviceCtl_abs_area_height, tvb, *offsetp, 4, byte_order);
18868  *offsetp += 4;
18869  proto_tree_add_item(t, hf_x11_struct_xinput_DeviceCtl_abs_area_screen, tvb, *offsetp, 4, byte_order);
18870  *offsetp += 4;
18871  proto_tree_add_item(t, hf_x11_struct_xinput_DeviceCtl_abs_area_following, tvb, *offsetp, 4, byte_order);
18872  *offsetp += 4;
18873  }
18874  }
18875 }
18876 
18877 static void xinputChangeDeviceControl(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
18878 {
18879  field16(tvb, offsetp, t, hf_x11_xinput_ChangeDeviceControl_control_id, byte_order);
18880  proto_tree_add_item(t, hf_x11_xinput_ChangeDeviceControl_device_id, tvb, *offsetp, 1, byte_order);
18881  *offsetp += 1;
18882  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
18883  *offsetp += 1;
18884  struct_xinput_DeviceCtl(tvb, offsetp, t, byte_order, 1);
18885 }
18886 static void xinputChangeDeviceControl_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
18887 {
18888  int sequence_number;
18889 
18890  col_append_fstr(pinfo->cinfo, COL_INFO, "-ChangeDeviceControl");
18891 
18892  REPLY(reply);
18893  proto_tree_add_item(t, hf_x11_xinput_ChangeDeviceControl_reply_xi_reply_type, tvb, *offsetp, 1, byte_order);
18894  *offsetp += 1;
18895  sequence_number = tvb_get_guint16(tvb, *offsetp, byte_order);
18896  proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
18897  "%d (xinput-ChangeDeviceControl)", sequence_number);
18898  *offsetp += 2;
18899  proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
18900  *offsetp += 4;
18901  field8(tvb, offsetp, t, hf_x11_xinput_ChangeDeviceControl_reply_status, byte_order);
18902  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 23, ENC_NA);
18903  *offsetp += 23;
18904 }
18905 
18906 static void xinputListDeviceProperties(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
18907 {
18908  proto_tree_add_item(t, hf_x11_xinput_ListDeviceProperties_device_id, tvb, *offsetp, 1, byte_order);
18909  *offsetp += 1;
18910  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 3, ENC_NA);
18911  *offsetp += 3;
18912 }
18913 static void xinputListDeviceProperties_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
18914 {
18915  int sequence_number;
18916  int f_num_atoms;
18917 
18918  col_append_fstr(pinfo->cinfo, COL_INFO, "-ListDeviceProperties");
18919 
18920  REPLY(reply);
18921  proto_tree_add_item(t, hf_x11_xinput_ListDeviceProperties_reply_xi_reply_type, tvb, *offsetp, 1, byte_order);
18922  *offsetp += 1;
18923  sequence_number = tvb_get_guint16(tvb, *offsetp, byte_order);
18924  proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
18925  "%d (xinput-ListDeviceProperties)", sequence_number);
18926  *offsetp += 2;
18927  proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
18928  *offsetp += 4;
18929  f_num_atoms = tvb_get_guint16(tvb, *offsetp, byte_order);
18930  proto_tree_add_item(t, hf_x11_xinput_ListDeviceProperties_reply_num_atoms, tvb, *offsetp, 2, byte_order);
18931  *offsetp += 2;
18932  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 22, ENC_NA);
18933  *offsetp += 22;
18934  listOfCard32(tvb, offsetp, t, hf_x11_xinput_ListDeviceProperties_reply_atoms, hf_x11_xinput_ListDeviceProperties_reply_atoms_item, f_num_atoms, byte_order);
18935 }
18936 
18937 static void xinputChangeDeviceProperty(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
18938 {
18939  int f_format;
18940  int f_num_items;
18941  proto_tree_add_item(t, hf_x11_xinput_ChangeDeviceProperty_property, tvb, *offsetp, 4, byte_order);
18942  *offsetp += 4;
18943  proto_tree_add_item(t, hf_x11_xinput_ChangeDeviceProperty_type, tvb, *offsetp, 4, byte_order);
18944  *offsetp += 4;
18945  proto_tree_add_item(t, hf_x11_xinput_ChangeDeviceProperty_device_id, tvb, *offsetp, 1, byte_order);
18946  *offsetp += 1;
18947  f_format = field8(tvb, offsetp, t, hf_x11_xinput_ChangeDeviceProperty_format, byte_order);
18948  field8(tvb, offsetp, t, hf_x11_xinput_ChangeDeviceProperty_mode, byte_order);
18949  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
18950  *offsetp += 1;
18951  f_num_items = tvb_get_guint32(tvb, *offsetp, byte_order);
18952  proto_tree_add_item(t, hf_x11_xinput_ChangeDeviceProperty_num_items, tvb, *offsetp, 4, byte_order);
18953  *offsetp += 4;
18954  if (f_format == 8) {
18955  listOfByte(tvb, offsetp, t, hf_x11_xinput_ChangeDeviceProperty_8Bits_data8, f_num_items, byte_order);
18956  length -= f_num_items * 1;
18957  if (*offsetp % 4) {
18958  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, (4 - *offsetp % 4), ENC_NA);
18959  *offsetp += (4 - *offsetp % 4);
18960  }
18961  length = ((length + 3) & ~3);
18962  }
18963  if (f_format == 16) {
18964  listOfCard16(tvb, offsetp, t, hf_x11_xinput_ChangeDeviceProperty_16Bits_data16, hf_x11_xinput_ChangeDeviceProperty_16Bits_data16_item, f_num_items, byte_order);
18965  length -= f_num_items * 2;
18966  if (*offsetp % 4) {
18967  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, (4 - *offsetp % 4), ENC_NA);
18968  *offsetp += (4 - *offsetp % 4);
18969  }
18970  length = ((length + 3) & ~3);
18971  }
18972  if (f_format == 32) {
18973  listOfCard32(tvb, offsetp, t, hf_x11_xinput_ChangeDeviceProperty_32Bits_data32, hf_x11_xinput_ChangeDeviceProperty_32Bits_data32_item, f_num_items, byte_order);
18974  length -= f_num_items * 4;
18975  }
18976 }
18977 
18978 static void xinputDeleteDeviceProperty(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
18979 {
18980  proto_tree_add_item(t, hf_x11_xinput_DeleteDeviceProperty_property, tvb, *offsetp, 4, byte_order);
18981  *offsetp += 4;
18982  proto_tree_add_item(t, hf_x11_xinput_DeleteDeviceProperty_device_id, tvb, *offsetp, 1, byte_order);
18983  *offsetp += 1;
18984  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 3, ENC_NA);
18985  *offsetp += 3;
18986 }
18987 
18988 static void xinputGetDeviceProperty(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
18989 {
18990  proto_tree_add_item(t, hf_x11_xinput_GetDeviceProperty_property, tvb, *offsetp, 4, byte_order);
18991  *offsetp += 4;
18992  proto_tree_add_item(t, hf_x11_xinput_GetDeviceProperty_type, tvb, *offsetp, 4, byte_order);
18993  *offsetp += 4;
18994  proto_tree_add_item(t, hf_x11_xinput_GetDeviceProperty_offset, tvb, *offsetp, 4, byte_order);
18995  *offsetp += 4;
18996  proto_tree_add_item(t, hf_x11_xinput_GetDeviceProperty_len, tvb, *offsetp, 4, byte_order);
18997  *offsetp += 4;
18998  proto_tree_add_item(t, hf_x11_xinput_GetDeviceProperty_device_id, tvb, *offsetp, 1, byte_order);
18999  *offsetp += 1;
19000  proto_tree_add_item(t, hf_x11_xinput_GetDeviceProperty_delete, tvb, *offsetp, 1, byte_order);
19001  *offsetp += 1;
19002  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 2, ENC_NA);
19003  *offsetp += 2;
19004 }
19005 static void xinputGetDeviceProperty_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
19006 {
19007  int sequence_number;
19008  int f_num_items;
19009  int f_format;
19010 
19011  col_append_fstr(pinfo->cinfo, COL_INFO, "-GetDeviceProperty");
19012 
19013  REPLY(reply);
19014  proto_tree_add_item(t, hf_x11_xinput_GetDeviceProperty_reply_xi_reply_type, tvb, *offsetp, 1, byte_order);
19015  *offsetp += 1;
19016  sequence_number = tvb_get_guint16(tvb, *offsetp, byte_order);
19017  proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
19018  "%d (xinput-GetDeviceProperty)", sequence_number);
19019  *offsetp += 2;
19020  proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
19021  *offsetp += 4;
19022  proto_tree_add_item(t, hf_x11_xinput_GetDeviceProperty_reply_type, tvb, *offsetp, 4, byte_order);
19023  *offsetp += 4;
19024  proto_tree_add_item(t, hf_x11_xinput_GetDeviceProperty_reply_bytes_after, tvb, *offsetp, 4, byte_order);
19025  *offsetp += 4;
19026  f_num_items = tvb_get_guint32(tvb, *offsetp, byte_order);
19027  proto_tree_add_item(t, hf_x11_xinput_GetDeviceProperty_reply_num_items, tvb, *offsetp, 4, byte_order);
19028  *offsetp += 4;
19029  f_format = field8(tvb, offsetp, t, hf_x11_xinput_GetDeviceProperty_reply_format, byte_order);
19030  proto_tree_add_item(t, hf_x11_xinput_GetDeviceProperty_reply_device_id, tvb, *offsetp, 1, byte_order);
19031  *offsetp += 1;
19032  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 10, ENC_NA);
19033  *offsetp += 10;
19034  if (f_format == 8) {
19035  listOfByte(tvb, offsetp, t, hf_x11_xinput_GetDeviceProperty_reply_8Bits_data8, f_num_items, byte_order);
19036  if (*offsetp % 4) {
19037  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, (4 - *offsetp % 4), ENC_NA);
19038  *offsetp += (4 - *offsetp % 4);
19039  }
19040  }
19041  if (f_format == 16) {
19042  listOfCard16(tvb, offsetp, t, hf_x11_xinput_GetDeviceProperty_reply_16Bits_data16, hf_x11_xinput_GetDeviceProperty_reply_16Bits_data16_item, f_num_items, byte_order);
19043  if (*offsetp % 4) {
19044  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, (4 - *offsetp % 4), ENC_NA);
19045  *offsetp += (4 - *offsetp % 4);
19046  }
19047  }
19048  if (f_format == 32) {
19049  listOfCard32(tvb, offsetp, t, hf_x11_xinput_GetDeviceProperty_reply_32Bits_data32, hf_x11_xinput_GetDeviceProperty_reply_32Bits_data32_item, f_num_items, byte_order);
19050  }
19051 }
19052 
19053 static void struct_xinput_GroupInfo(tvbuff_t *tvb, int *offsetp, proto_tree *root, guint byte_order _U_, int count)
19054 {
19055  int i;
19056  for (i = 0; i < count; i++) {
19057  proto_item *item;
19058  proto_tree *t;
19059 
19060  item = proto_tree_add_item(root, hf_x11_struct_xinput_GroupInfo, tvb, *offsetp, 4, ENC_NA);
19061  t = proto_item_add_subtree(item, ett_x11_rectangle);
19062  proto_tree_add_item(t, hf_x11_struct_xinput_GroupInfo_base, tvb, *offsetp, 1, byte_order);
19063  *offsetp += 1;
19064  proto_tree_add_item(t, hf_x11_struct_xinput_GroupInfo_latched, tvb, *offsetp, 1, byte_order);
19065  *offsetp += 1;
19066  proto_tree_add_item(t, hf_x11_struct_xinput_GroupInfo_locked, tvb, *offsetp, 1, byte_order);
19067  *offsetp += 1;
19068  proto_tree_add_item(t, hf_x11_struct_xinput_GroupInfo_effective, tvb, *offsetp, 1, byte_order);
19069  *offsetp += 1;
19070  }
19071 }
19072 
19073 static void struct_xinput_ModifierInfo(tvbuff_t *tvb, int *offsetp, proto_tree *root, guint byte_order _U_, int count)
19074 {
19075  int i;
19076  for (i = 0; i < count; i++) {
19077  proto_item *item;
19078  proto_tree *t;
19079 
19080  item = proto_tree_add_item(root, hf_x11_struct_xinput_ModifierInfo, tvb, *offsetp, 16, ENC_NA);
19081  t = proto_item_add_subtree(item, ett_x11_rectangle);
19082  proto_tree_add_item(t, hf_x11_struct_xinput_ModifierInfo_base, tvb, *offsetp, 4, byte_order);
19083  *offsetp += 4;
19084  proto_tree_add_item(t, hf_x11_struct_xinput_ModifierInfo_latched, tvb, *offsetp, 4, byte_order);
19085  *offsetp += 4;
19086  proto_tree_add_item(t, hf_x11_struct_xinput_ModifierInfo_locked, tvb, *offsetp, 4, byte_order);
19087  *offsetp += 4;
19088  proto_tree_add_item(t, hf_x11_struct_xinput_ModifierInfo_effective, tvb, *offsetp, 4, byte_order);
19089  *offsetp += 4;
19090  }
19091 }
19092 
19093 static void xinputXIQueryPointer(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
19094 {
19095  proto_tree_add_item(t, hf_x11_xinput_XIQueryPointer_window, tvb, *offsetp, 4, byte_order);
19096  *offsetp += 4;
19097  field16(tvb, offsetp, t, hf_x11_xinput_XIQueryPointer_deviceid, byte_order);
19098  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 2, ENC_NA);
19099  *offsetp += 2;
19100 }
19101 static void xinputXIQueryPointer_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
19102 {
19103  int sequence_number;
19104  int f_buttons_len;
19105 
19106  col_append_fstr(pinfo->cinfo, COL_INFO, "-XIQueryPointer");
19107 
19108  REPLY(reply);
19109  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
19110  *offsetp += 1;
19111  sequence_number = tvb_get_guint16(tvb, *offsetp, byte_order);
19112  proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
19113  "%d (xinput-XIQueryPointer)", sequence_number);
19114  *offsetp += 2;
19115  proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
19116  *offsetp += 4;
19117  proto_tree_add_item(t, hf_x11_xinput_XIQueryPointer_reply_root, tvb, *offsetp, 4, byte_order);
19118  *offsetp += 4;
19119  proto_tree_add_item(t, hf_x11_xinput_XIQueryPointer_reply_child, tvb, *offsetp, 4, byte_order);
19120  *offsetp += 4;
19121  proto_tree_add_item(t, hf_x11_xinput_XIQueryPointer_reply_root_x, tvb, *offsetp, 4, byte_order);
19122  *offsetp += 4;
19123  proto_tree_add_item(t, hf_x11_xinput_XIQueryPointer_reply_root_y, tvb, *offsetp, 4, byte_order);
19124  *offsetp += 4;
19125  proto_tree_add_item(t, hf_x11_xinput_XIQueryPointer_reply_win_x, tvb, *offsetp, 4, byte_order);
19126  *offsetp += 4;
19127  proto_tree_add_item(t, hf_x11_xinput_XIQueryPointer_reply_win_y, tvb, *offsetp, 4, byte_order);
19128  *offsetp += 4;
19129  proto_tree_add_item(t, hf_x11_xinput_XIQueryPointer_reply_same_screen, tvb, *offsetp, 1, byte_order);
19130  *offsetp += 1;
19131  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
19132  *offsetp += 1;
19133  f_buttons_len = tvb_get_guint16(tvb, *offsetp, byte_order);
19134  proto_tree_add_item(t, hf_x11_xinput_XIQueryPointer_reply_buttons_len, tvb, *offsetp, 2, byte_order);
19135  *offsetp += 2;
19136  struct_xinput_ModifierInfo(tvb, offsetp, t, byte_order, 1);
19137  struct_xinput_GroupInfo(tvb, offsetp, t, byte_order, 1);
19138  listOfCard32(tvb, offsetp, t, hf_x11_xinput_XIQueryPointer_reply_buttons, hf_x11_xinput_XIQueryPointer_reply_buttons_item, f_buttons_len, byte_order);
19139 }
19140 
19141 static void xinputXIWarpPointer(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
19142 {
19143  proto_tree_add_item(t, hf_x11_xinput_XIWarpPointer_src_win, tvb, *offsetp, 4, byte_order);
19144  *offsetp += 4;
19145  proto_tree_add_item(t, hf_x11_xinput_XIWarpPointer_dst_win, tvb, *offsetp, 4, byte_order);
19146  *offsetp += 4;
19147  proto_tree_add_item(t, hf_x11_xinput_XIWarpPointer_src_x, tvb, *offsetp, 4, byte_order);
19148  *offsetp += 4;
19149  proto_tree_add_item(t, hf_x11_xinput_XIWarpPointer_src_y, tvb, *offsetp, 4, byte_order);
19150  *offsetp += 4;
19151  proto_tree_add_item(t, hf_x11_xinput_XIWarpPointer_src_width, tvb, *offsetp, 2, byte_order);
19152  *offsetp += 2;
19153  proto_tree_add_item(t, hf_x11_xinput_XIWarpPointer_src_height, tvb, *offsetp, 2, byte_order);
19154  *offsetp += 2;
19155  proto_tree_add_item(t, hf_x11_xinput_XIWarpPointer_dst_x, tvb, *offsetp, 4, byte_order);
19156  *offsetp += 4;
19157  proto_tree_add_item(t, hf_x11_xinput_XIWarpPointer_dst_y, tvb, *offsetp, 4, byte_order);
19158  *offsetp += 4;
19159  field16(tvb, offsetp, t, hf_x11_xinput_XIWarpPointer_deviceid, byte_order);
19160  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 2, ENC_NA);
19161  *offsetp += 2;
19162 }
19163 
19164 static void xinputXIChangeCursor(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
19165 {
19166  proto_tree_add_item(t, hf_x11_xinput_XIChangeCursor_window, tvb, *offsetp, 4, byte_order);
19167  *offsetp += 4;
19168  proto_tree_add_item(t, hf_x11_xinput_XIChangeCursor_cursor, tvb, *offsetp, 4, byte_order);
19169  *offsetp += 4;
19170  field16(tvb, offsetp, t, hf_x11_xinput_XIChangeCursor_deviceid, byte_order);
19171  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 2, ENC_NA);
19172  *offsetp += 2;
19173 }
19174 
19175 static int struct_size_xinput_HierarchyChange(tvbuff_t *tvb _U_, int *offsetp _U_, guint byte_order _U_)
19176 {
19177  int size = 0;
19178  return size + 4;
19179 }
19180 
19181 static void struct_xinput_HierarchyChange(tvbuff_t *tvb, int *offsetp, proto_tree *root, guint byte_order _U_, int count)
19182 {
19183  int i;
19184  for (i = 0; i < count; i++) {
19185  proto_item *item;
19186  proto_tree *t;
19187  int f_type;
19188 
19189  item = proto_tree_add_item(root, hf_x11_struct_xinput_HierarchyChange, tvb, *offsetp, struct_size_xinput_HierarchyChange(tvb, offsetp, byte_order), ENC_NA);
19190  t = proto_item_add_subtree(item, ett_x11_rectangle);
19191  f_type = field16(tvb, offsetp, t, hf_x11_struct_xinput_HierarchyChange_type, byte_order);
19192  proto_tree_add_item(t, hf_x11_struct_xinput_HierarchyChange_len, tvb, *offsetp, 2, byte_order);
19193  *offsetp += 2;
19194  if (f_type == 1) {
19195  int f_name_len;
19196  f_name_len = tvb_get_guint16(tvb, *offsetp, byte_order);
19197  proto_tree_add_item(t, hf_x11_struct_xinput_HierarchyChange_AddMaster_name_len, tvb, *offsetp, 2, byte_order);
19198  *offsetp += 2;
19199  proto_tree_add_item(t, hf_x11_struct_xinput_HierarchyChange_AddMaster_send_core, tvb, *offsetp, 1, byte_order);
19200  *offsetp += 1;
19201  proto_tree_add_item(t, hf_x11_struct_xinput_HierarchyChange_AddMaster_enable, tvb, *offsetp, 1, byte_order);
19202  *offsetp += 1;
19203  listOfByte(tvb, offsetp, t, hf_x11_struct_xinput_HierarchyChange_AddMaster_name, f_name_len, byte_order);
19204  if (*offsetp % 4) {
19205  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, (4 - *offsetp % 4), ENC_NA);
19206  *offsetp += (4 - *offsetp % 4);
19207  }
19208  }
19209  if (f_type == 2) {
19210  field16(tvb, offsetp, t, hf_x11_struct_xinput_HierarchyChange_RemoveMaster_deviceid, byte_order);
19211  field8(tvb, offsetp, t, hf_x11_struct_xinput_HierarchyChange_RemoveMaster_return_mode, byte_order);
19212  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
19213  *offsetp += 1;
19214  field16(tvb, offsetp, t, hf_x11_struct_xinput_HierarchyChange_RemoveMaster_return_pointer, byte_order);
19215  field16(tvb, offsetp, t, hf_x11_struct_xinput_HierarchyChange_RemoveMaster_return_keyboard, byte_order);
19216  }
19217  if (f_type == 3) {
19218  field16(tvb, offsetp, t, hf_x11_struct_xinput_HierarchyChange_AttachSlave_deviceid, byte_order);
19219  field16(tvb, offsetp, t, hf_x11_struct_xinput_HierarchyChange_AttachSlave_master, byte_order);
19220  }
19221  if (f_type == 4) {
19222  field16(tvb, offsetp, t, hf_x11_struct_xinput_HierarchyChange_DetachSlave_deviceid, byte_order);
19223  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 2, ENC_NA);
19224  *offsetp += 2;
19225  }
19226  }
19227 }
19228 
19229 static void xinputXIChangeHierarchy(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
19230 {
19231  int f_num_changes;
19232  f_num_changes = tvb_get_guint8(tvb, *offsetp);
19233  proto_tree_add_item(t, hf_x11_xinput_XIChangeHierarchy_num_changes, tvb, *offsetp, 1, byte_order);
19234  *offsetp += 1;
19235  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 3, ENC_NA);
19236  *offsetp += 3;
19237  struct_xinput_HierarchyChange(tvb, offsetp, t, byte_order, f_num_changes);
19238  length -= f_num_changes * 0;
19239 }
19240 
19241 static void xinputXISetClientPointer(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
19242 {
19243  proto_tree_add_item(t, hf_x11_xinput_XISetClientPointer_window, tvb, *offsetp, 4, byte_order);
19244  *offsetp += 4;
19245  field16(tvb, offsetp, t, hf_x11_xinput_XISetClientPointer_deviceid, byte_order);
19246  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 2, ENC_NA);
19247  *offsetp += 2;
19248 }
19249 
19250 static void xinputXIGetClientPointer(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
19251 {
19252  proto_tree_add_item(t, hf_x11_xinput_XIGetClientPointer_window, tvb, *offsetp, 4, byte_order);
19253  *offsetp += 4;
19254 }
19255 static void xinputXIGetClientPointer_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
19256 {
19257  int sequence_number;
19258 
19259  col_append_fstr(pinfo->cinfo, COL_INFO, "-XIGetClientPointer");
19260 
19261  REPLY(reply);
19262  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
19263  *offsetp += 1;
19264  sequence_number = tvb_get_guint16(tvb, *offsetp, byte_order);
19265  proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
19266  "%d (xinput-XIGetClientPointer)", sequence_number);
19267  *offsetp += 2;
19268  proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
19269  *offsetp += 4;
19270  proto_tree_add_item(t, hf_x11_xinput_XIGetClientPointer_reply_set, tvb, *offsetp, 1, byte_order);
19271  *offsetp += 1;
19272  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
19273  *offsetp += 1;
19274  field16(tvb, offsetp, t, hf_x11_xinput_XIGetClientPointer_reply_deviceid, byte_order);
19275  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 20, ENC_NA);
19276  *offsetp += 20;
19277 }
19278 
19279 static int struct_size_xinput_EventMask(tvbuff_t *tvb _U_, int *offsetp _U_, guint byte_order _U_)
19280 {
19281  int size = 0;
19282  int f_mask_len;
19283  f_mask_len = tvb_get_guint16(tvb, *offsetp + size + 2, byte_order);
19284  size += f_mask_len * 4;
19285  return size + 4;
19286 }
19287 
19288 static void struct_xinput_EventMask(tvbuff_t *tvb, int *offsetp, proto_tree *root, guint byte_order _U_, int count)
19289 {
19290  int i;
19291  for (i = 0; i < count; i++) {
19292  proto_item *item;
19293  proto_tree *t;
19294  int f_mask_len;
19295 
19296  item = proto_tree_add_item(root, hf_x11_struct_xinput_EventMask, tvb, *offsetp, struct_size_xinput_EventMask(tvb, offsetp, byte_order), ENC_NA);
19297  t = proto_item_add_subtree(item, ett_x11_rectangle);
19298  field16(tvb, offsetp, t, hf_x11_struct_xinput_EventMask_deviceid, byte_order);
19299  f_mask_len = tvb_get_guint16(tvb, *offsetp, byte_order);
19300  proto_tree_add_item(t, hf_x11_struct_xinput_EventMask_mask_len, tvb, *offsetp, 2, byte_order);
19301  *offsetp += 2;
19302  listOfCard32(tvb, offsetp, t, hf_x11_struct_xinput_EventMask_mask, hf_x11_struct_xinput_EventMask_mask_item, f_mask_len, byte_order);
19303  }
19304 }
19305 
19306 static void xinputXISelectEvents(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
19307 {
19308  int f_num_mask;
19309  proto_tree_add_item(t, hf_x11_xinput_XISelectEvents_window, tvb, *offsetp, 4, byte_order);
19310  *offsetp += 4;
19311  f_num_mask = tvb_get_guint16(tvb, *offsetp, byte_order);
19312  proto_tree_add_item(t, hf_x11_xinput_XISelectEvents_num_mask, tvb, *offsetp, 2, byte_order);
19313  *offsetp += 2;
19314  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 2, ENC_NA);
19315  *offsetp += 2;
19316  struct_xinput_EventMask(tvb, offsetp, t, byte_order, f_num_mask);
19317  length -= f_num_mask * 0;
19318 }
19319 
19320 static void xinputXIQueryVersion(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
19321 {
19322  proto_tree_add_item(t, hf_x11_xinput_XIQueryVersion_major_version, tvb, *offsetp, 2, byte_order);
19323  *offsetp += 2;
19324  proto_tree_add_item(t, hf_x11_xinput_XIQueryVersion_minor_version, tvb, *offsetp, 2, byte_order);
19325  *offsetp += 2;
19326 }
19327 static void xinputXIQueryVersion_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
19328 {
19329  int sequence_number;
19330 
19331  col_append_fstr(pinfo->cinfo, COL_INFO, "-XIQueryVersion");
19332 
19333  REPLY(reply);
19334  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
19335  *offsetp += 1;
19336  sequence_number = tvb_get_guint16(tvb, *offsetp, byte_order);
19337  proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
19338  "%d (xinput-XIQueryVersion)", sequence_number);
19339  *offsetp += 2;
19340  proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
19341  *offsetp += 4;
19342  proto_tree_add_item(t, hf_x11_xinput_XIQueryVersion_reply_major_version, tvb, *offsetp, 2, byte_order);
19343  *offsetp += 2;
19344  proto_tree_add_item(t, hf_x11_xinput_XIQueryVersion_reply_minor_version, tvb, *offsetp, 2, byte_order);
19345  *offsetp += 2;
19346  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 20, ENC_NA);
19347  *offsetp += 20;
19348 }
19349 
19350 static int struct_size_xinput_DeviceClass(tvbuff_t *tvb _U_, int *offsetp _U_, guint byte_order _U_)
19351 {
19352  int size = 0;
19353  return size + 6;
19354 }
19355 
19356 static void struct_xinput_DeviceClass(tvbuff_t *tvb, int *offsetp, proto_tree *root, guint byte_order _U_, int count)
19357 {
19358  int i;
19359  for (i = 0; i < count; i++) {
19360  proto_item *item;
19361  proto_tree *t;
19362  int f_type;
19363 
19364  item = proto_tree_add_item(root, hf_x11_struct_xinput_DeviceClass, tvb, *offsetp, struct_size_xinput_DeviceClass(tvb, offsetp, byte_order), ENC_NA);
19365  t = proto_item_add_subtree(item, ett_x11_rectangle);
19366  f_type = field16(tvb, offsetp, t, hf_x11_struct_xinput_DeviceClass_type, byte_order);
19367  proto_tree_add_item(t, hf_x11_struct_xinput_DeviceClass_len, tvb, *offsetp, 2, byte_order);
19368  *offsetp += 2;
19369  proto_tree_add_item(t, hf_x11_struct_xinput_DeviceClass_sourceid, tvb, *offsetp, 2, byte_order);
19370  *offsetp += 2;
19371  if (f_type == 0) {
19372  int f_num_keys;
19373  f_num_keys = tvb_get_guint16(tvb, *offsetp, byte_order);
19374  proto_tree_add_item(t, hf_x11_struct_xinput_DeviceClass_Key_num_keys, tvb, *offsetp, 2, byte_order);
19375  *offsetp += 2;
19376  listOfCard32(tvb, offsetp, t, hf_x11_struct_xinput_DeviceClass_Key_keys, hf_x11_struct_xinput_DeviceClass_Key_keys_item, f_num_keys, byte_order);
19377  }
19378  if (f_type == 1) {
19379  int f_num_buttons;
19380  f_num_buttons = tvb_get_guint16(tvb, *offsetp, byte_order);
19381  proto_tree_add_item(t, hf_x11_struct_xinput_DeviceClass_Button_num_buttons, tvb, *offsetp, 2, byte_order);
19382  *offsetp += 2;
19383  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);
19384  listOfCard32(tvb, offsetp, t, hf_x11_struct_xinput_DeviceClass_Button_labels, hf_x11_struct_xinput_DeviceClass_Button_labels_item, f_num_buttons, byte_order);
19385  }
19386  if (f_type == 2) {
19387  proto_tree_add_item(t, hf_x11_struct_xinput_DeviceClass_Valuator_number, tvb, *offsetp, 2, byte_order);
19388  *offsetp += 2;
19389  proto_tree_add_item(t, hf_x11_struct_xinput_DeviceClass_Valuator_label, tvb, *offsetp, 4, byte_order);
19390  *offsetp += 4;
19391  struct_xinput_FP3232(tvb, offsetp, t, byte_order, 1);
19392  struct_xinput_FP3232(tvb, offsetp, t, byte_order, 1);
19393  struct_xinput_FP3232(tvb, offsetp, t, byte_order, 1);
19394  proto_tree_add_item(t, hf_x11_struct_xinput_DeviceClass_Valuator_resolution, tvb, *offsetp, 4, byte_order);
19395  *offsetp += 4;
19396  field8(tvb, offsetp, t, hf_x11_struct_xinput_DeviceClass_Valuator_mode, byte_order);
19397  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 3, ENC_NA);
19398  *offsetp += 3;
19399  }
19400  if (f_type == 3) {
19401  proto_tree_add_item(t, hf_x11_struct_xinput_DeviceClass_Scroll_number, tvb, *offsetp, 2, byte_order);
19402  *offsetp += 2;
19403  field16(tvb, offsetp, t, hf_x11_struct_xinput_DeviceClass_Scroll_scroll_type, byte_order);
19404  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 2, ENC_NA);
19405  *offsetp += 2;
19406  {
19407  const int* flags_bits [] = {
19408  &hf_x11_struct_xinput_DeviceClass_Scroll_flags_mask_NoEmulation,
19409  &hf_x11_struct_xinput_DeviceClass_Scroll_flags_mask_Preferred,
19410  NULL
19411  };
19412  proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_struct_xinput_DeviceClass_Scroll_flags, ett_x11_rectangle, flags_bits, byte_order);
19413  }
19414  *offsetp += 4;
19415  struct_xinput_FP3232(tvb, offsetp, t, byte_order, 1);
19416  }
19417  if (f_type == 8) {
19418  field8(tvb, offsetp, t, hf_x11_struct_xinput_DeviceClass_Touch_mode, byte_order);
19419  proto_tree_add_item(t, hf_x11_struct_xinput_DeviceClass_Touch_num_touches, tvb, *offsetp, 1, byte_order);
19420  *offsetp += 1;
19421  }
19422  }
19423 }
19424 
19425 static int struct_size_xinput_XIDeviceInfo(tvbuff_t *tvb _U_, int *offsetp _U_, guint byte_order _U_)
19426 {
19427  int size = 0;
19428  int i, off;
19429  int f_name_len;
19430  int f_num_classes;
19431  f_num_classes = tvb_get_guint16(tvb, *offsetp + size + 6, byte_order);
19432  f_name_len = tvb_get_guint16(tvb, *offsetp + size + 8, byte_order);
19433  size += f_name_len * 1;
19434  size = (size + 3) & ~3;
19435  for (i = 0; i < f_num_classes; i++) {
19436  off = (*offsetp) + size + 12;
19437  size += struct_size_xinput_DeviceClass(tvb, &off, byte_order);
19438  }
19439  return size + 12;
19440 }
19441 
19442 static void struct_xinput_XIDeviceInfo(tvbuff_t *tvb, int *offsetp, proto_tree *root, guint byte_order _U_, int count)
19443 {
19444  int i;
19445  for (i = 0; i < count; i++) {
19446  proto_item *item;
19447  proto_tree *t;
19448  int f_num_classes;
19449  int f_name_len;
19450 
19451  item = proto_tree_add_item(root, hf_x11_struct_xinput_XIDeviceInfo, tvb, *offsetp, struct_size_xinput_XIDeviceInfo(tvb, offsetp, byte_order), ENC_NA);
19452  t = proto_item_add_subtree(item, ett_x11_rectangle);
19453  field16(tvb, offsetp, t, hf_x11_struct_xinput_XIDeviceInfo_deviceid, byte_order);
19454  field16(tvb, offsetp, t, hf_x11_struct_xinput_XIDeviceInfo_type, byte_order);
19455  field16(tvb, offsetp, t, hf_x11_struct_xinput_XIDeviceInfo_attachment, byte_order);
19456  f_num_classes = tvb_get_guint16(tvb, *offsetp, byte_order);
19457  proto_tree_add_item(t, hf_x11_struct_xinput_XIDeviceInfo_num_classes, tvb, *offsetp, 2, byte_order);
19458  *offsetp += 2;
19459  f_name_len = tvb_get_guint16(tvb, *offsetp, byte_order);
19460  proto_tree_add_item(t, hf_x11_struct_xinput_XIDeviceInfo_name_len, tvb, *offsetp, 2, byte_order);
19461  *offsetp += 2;
19462  proto_tree_add_item(t, hf_x11_struct_xinput_XIDeviceInfo_enabled, tvb, *offsetp, 1, byte_order);
19463  *offsetp += 1;
19464  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
19465  *offsetp += 1;
19466  listOfByte(tvb, offsetp, t, hf_x11_struct_xinput_XIDeviceInfo_name, f_name_len, byte_order);
19467  if (*offsetp % 4) {
19468  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, (4 - *offsetp % 4), ENC_NA);
19469  *offsetp += (4 - *offsetp % 4);
19470  }
19471  struct_xinput_DeviceClass(tvb, offsetp, t, byte_order, f_num_classes);
19472  }
19473 }
19474 
19475 static void xinputXIQueryDevice(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
19476 {
19477  field16(tvb, offsetp, t, hf_x11_xinput_XIQueryDevice_deviceid, byte_order);
19478  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 2, ENC_NA);
19479  *offsetp += 2;
19480 }
19481 static void xinputXIQueryDevice_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
19482 {
19483  int sequence_number;
19484  int f_num_infos;
19485 
19486  col_append_fstr(pinfo->cinfo, COL_INFO, "-XIQueryDevice");
19487 
19488  REPLY(reply);
19489  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
19490  *offsetp += 1;
19491  sequence_number = tvb_get_guint16(tvb, *offsetp, byte_order);
19492  proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
19493  "%d (xinput-XIQueryDevice)", sequence_number);
19494  *offsetp += 2;
19495  proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
19496  *offsetp += 4;
19497  f_num_infos = tvb_get_guint16(tvb, *offsetp, byte_order);
19498  proto_tree_add_item(t, hf_x11_xinput_XIQueryDevice_reply_num_infos, tvb, *offsetp, 2, byte_order);
19499  *offsetp += 2;
19500  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 22, ENC_NA);
19501  *offsetp += 22;
19502  struct_xinput_XIDeviceInfo(tvb, offsetp, t, byte_order, f_num_infos);
19503 }
19504 
19505 static void xinputXISetFocus(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
19506 {
19507  proto_tree_add_item(t, hf_x11_xinput_XISetFocus_window, tvb, *offsetp, 4, byte_order);
19508  *offsetp += 4;
19509  field32(tvb, offsetp, t, hf_x11_xinput_XISetFocus_time, byte_order);
19510  field16(tvb, offsetp, t, hf_x11_xinput_XISetFocus_deviceid, byte_order);
19511  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 2, ENC_NA);
19512  *offsetp += 2;
19513 }
19514 
19515 static void xinputXIGetFocus(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
19516 {
19517  field16(tvb, offsetp, t, hf_x11_xinput_XIGetFocus_deviceid, byte_order);
19518  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 2, ENC_NA);
19519  *offsetp += 2;
19520 }
19521 static void xinputXIGetFocus_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
19522 {
19523  int sequence_number;
19524 
19525  col_append_fstr(pinfo->cinfo, COL_INFO, "-XIGetFocus");
19526 
19527  REPLY(reply);
19528  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
19529  *offsetp += 1;
19530  sequence_number = tvb_get_guint16(tvb, *offsetp, byte_order);
19531  proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
19532  "%d (xinput-XIGetFocus)", sequence_number);
19533  *offsetp += 2;
19534  proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
19535  *offsetp += 4;
19536  proto_tree_add_item(t, hf_x11_xinput_XIGetFocus_reply_focus, tvb, *offsetp, 4, byte_order);
19537  *offsetp += 4;
19538  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 20, ENC_NA);
19539  *offsetp += 20;
19540 }
19541 
19542 static void xinputXIGrabDevice(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
19543 {
19544  int f_mask_len;
19545  proto_tree_add_item(t, hf_x11_xinput_XIGrabDevice_window, tvb, *offsetp, 4, byte_order);
19546  *offsetp += 4;
19547  field32(tvb, offsetp, t, hf_x11_xinput_XIGrabDevice_time, byte_order);
19548  proto_tree_add_item(t, hf_x11_xinput_XIGrabDevice_cursor, tvb, *offsetp, 4, byte_order);
19549  *offsetp += 4;
19550  field16(tvb, offsetp, t, hf_x11_xinput_XIGrabDevice_deviceid, byte_order);
19551  field8(tvb, offsetp, t, hf_x11_xinput_XIGrabDevice_mode, byte_order);
19552  field8(tvb, offsetp, t, hf_x11_xinput_XIGrabDevice_paired_device_mode, byte_order);
19553  field8(tvb, offsetp, t, hf_x11_xinput_XIGrabDevice_owner_events, byte_order);
19554  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
19555  *offsetp += 1;
19556  f_mask_len = tvb_get_guint16(tvb, *offsetp, byte_order);
19557  proto_tree_add_item(t, hf_x11_xinput_XIGrabDevice_mask_len, tvb, *offsetp, 2, byte_order);
19558  *offsetp += 2;
19559  listOfCard32(tvb, offsetp, t, hf_x11_xinput_XIGrabDevice_mask, hf_x11_xinput_XIGrabDevice_mask_item, f_mask_len, byte_order);
19560  length -= f_mask_len * 4;
19561 }
19562 static void xinputXIGrabDevice_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
19563 {
19564  int sequence_number;
19565 
19566  col_append_fstr(pinfo->cinfo, COL_INFO, "-XIGrabDevice");
19567 
19568  REPLY(reply);
19569  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
19570  *offsetp += 1;
19571  sequence_number = tvb_get_guint16(tvb, *offsetp, byte_order);
19572  proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
19573  "%d (xinput-XIGrabDevice)", sequence_number);
19574  *offsetp += 2;
19575  proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
19576  *offsetp += 4;
19577  field8(tvb, offsetp, t, hf_x11_xinput_XIGrabDevice_reply_status, byte_order);
19578  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 23, ENC_NA);
19579  *offsetp += 23;
19580 }
19581 
19582 static void xinputXIUngrabDevice(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
19583 {
19584  field32(tvb, offsetp, t, hf_x11_xinput_XIUngrabDevice_time, byte_order);
19585  field16(tvb, offsetp, t, hf_x11_xinput_XIUngrabDevice_deviceid, byte_order);
19586  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 2, ENC_NA);
19587  *offsetp += 2;
19588 }
19589 
19590 static void xinputXIAllowEvents(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
19591 {
19592  field32(tvb, offsetp, t, hf_x11_xinput_XIAllowEvents_time, byte_order);
19593  field16(tvb, offsetp, t, hf_x11_xinput_XIAllowEvents_deviceid, byte_order);
19594  field8(tvb, offsetp, t, hf_x11_xinput_XIAllowEvents_event_mode, byte_order);
19595  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
19596  *offsetp += 1;
19597  proto_tree_add_item(t, hf_x11_xinput_XIAllowEvents_touchid, tvb, *offsetp, 4, byte_order);
19598  *offsetp += 4;
19599  proto_tree_add_item(t, hf_x11_xinput_XIAllowEvents_grab_window, tvb, *offsetp, 4, byte_order);
19600  *offsetp += 4;
19601 }
19602 
19603 static void struct_xinput_GrabModifierInfo(tvbuff_t *tvb, int *offsetp, proto_tree *root, guint byte_order _U_, int count)
19604 {
19605  int i;
19606  for (i = 0; i < count; i++) {
19607  proto_item *item;
19608  proto_tree *t;
19609 
19610  item = proto_tree_add_item(root, hf_x11_struct_xinput_GrabModifierInfo, tvb, *offsetp, 8, ENC_NA);
19611  t = proto_item_add_subtree(item, ett_x11_rectangle);
19612  field32(tvb, offsetp, t, hf_x11_struct_xinput_GrabModifierInfo_modifiers, byte_order);
19613  field8(tvb, offsetp, t, hf_x11_struct_xinput_GrabModifierInfo_status, byte_order);
19614  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 3, ENC_NA);
19615  *offsetp += 3;
19616  }
19617 }
19618 
19619 static void xinputXIPassiveGrabDevice(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
19620 {
19621  int f_num_modifiers;
19622  int f_mask_len;
19623  field32(tvb, offsetp, t, hf_x11_xinput_XIPassiveGrabDevice_time, byte_order);
19624  proto_tree_add_item(t, hf_x11_xinput_XIPassiveGrabDevice_grab_window, tvb, *offsetp, 4, byte_order);
19625  *offsetp += 4;
19626  proto_tree_add_item(t, hf_x11_xinput_XIPassiveGrabDevice_cursor, tvb, *offsetp, 4, byte_order);
19627  *offsetp += 4;
19628  proto_tree_add_item(t, hf_x11_xinput_XIPassiveGrabDevice_detail, tvb, *offsetp, 4, byte_order);
19629  *offsetp += 4;
19630  field16(tvb, offsetp, t, hf_x11_xinput_XIPassiveGrabDevice_deviceid, byte_order);
19631  f_num_modifiers = tvb_get_guint16(tvb, *offsetp, byte_order);
19632  proto_tree_add_item(t, hf_x11_xinput_XIPassiveGrabDevice_num_modifiers, tvb, *offsetp, 2, byte_order);
19633  *offsetp += 2;
19634  f_mask_len = tvb_get_guint16(tvb, *offsetp, byte_order);
19635  proto_tree_add_item(t, hf_x11_xinput_XIPassiveGrabDevice_mask_len, tvb, *offsetp, 2, byte_order);
19636  *offsetp += 2;
19637  field8(tvb, offsetp, t, hf_x11_xinput_XIPassiveGrabDevice_grab_type, byte_order);
19638  field8(tvb, offsetp, t, hf_x11_xinput_XIPassiveGrabDevice_grab_mode, byte_order);
19639  field8(tvb, offsetp, t, hf_x11_xinput_XIPassiveGrabDevice_paired_device_mode, byte_order);
19640  field8(tvb, offsetp, t, hf_x11_xinput_XIPassiveGrabDevice_owner_events, byte_order);
19641  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 2, ENC_NA);
19642  *offsetp += 2;
19643  listOfCard32(tvb, offsetp, t, hf_x11_xinput_XIPassiveGrabDevice_mask, hf_x11_xinput_XIPassiveGrabDevice_mask_item, f_mask_len, byte_order);
19644  length -= f_mask_len * 4;
19645  listOfCard32(tvb, offsetp, t, hf_x11_xinput_XIPassiveGrabDevice_modifiers, hf_x11_xinput_XIPassiveGrabDevice_modifiers_item, f_num_modifiers, byte_order);
19646  length -= f_num_modifiers * 4;
19647 }
19648 static void xinputXIPassiveGrabDevice_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
19649 {
19650  int sequence_number;
19651  int f_num_modifiers;
19652 
19653  col_append_fstr(pinfo->cinfo, COL_INFO, "-XIPassiveGrabDevice");
19654 
19655  REPLY(reply);
19656  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
19657  *offsetp += 1;
19658  sequence_number = tvb_get_guint16(tvb, *offsetp, byte_order);
19659  proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
19660  "%d (xinput-XIPassiveGrabDevice)", sequence_number);
19661  *offsetp += 2;
19662  proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
19663  *offsetp += 4;
19664  f_num_modifiers = tvb_get_guint16(tvb, *offsetp, byte_order);
19665  proto_tree_add_item(t, hf_x11_xinput_XIPassiveGrabDevice_reply_num_modifiers, tvb, *offsetp, 2, byte_order);
19666  *offsetp += 2;
19667  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 22, ENC_NA);
19668  *offsetp += 22;
19669  struct_xinput_GrabModifierInfo(tvb, offsetp, t, byte_order, f_num_modifiers);
19670 }
19671 
19672 static void xinputXIPassiveUngrabDevice(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
19673 {
19674  int f_num_modifiers;
19675  proto_tree_add_item(t, hf_x11_xinput_XIPassiveUngrabDevice_grab_window, tvb, *offsetp, 4, byte_order);
19676  *offsetp += 4;
19677  proto_tree_add_item(t, hf_x11_xinput_XIPassiveUngrabDevice_detail, tvb, *offsetp, 4, byte_order);
19678  *offsetp += 4;
19679  field16(tvb, offsetp, t, hf_x11_xinput_XIPassiveUngrabDevice_deviceid, byte_order);
19680  f_num_modifiers = tvb_get_guint16(tvb, *offsetp, byte_order);
19681  proto_tree_add_item(t, hf_x11_xinput_XIPassiveUngrabDevice_num_modifiers, tvb, *offsetp, 2, byte_order);
19682  *offsetp += 2;
19683  field8(tvb, offsetp, t, hf_x11_xinput_XIPassiveUngrabDevice_grab_type, byte_order);
19684  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 3, ENC_NA);
19685  *offsetp += 3;
19686  listOfCard32(tvb, offsetp, t, hf_x11_xinput_XIPassiveUngrabDevice_modifiers, hf_x11_xinput_XIPassiveUngrabDevice_modifiers_item, f_num_modifiers, byte_order);
19687  length -= f_num_modifiers * 4;
19688 }
19689 
19690 static void xinputXIListProperties(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
19691 {
19692  field16(tvb, offsetp, t, hf_x11_xinput_XIListProperties_deviceid, byte_order);
19693  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 2, ENC_NA);
19694  *offsetp += 2;
19695 }
19696 static void xinputXIListProperties_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
19697 {
19698  int sequence_number;
19699  int f_num_properties;
19700 
19701  col_append_fstr(pinfo->cinfo, COL_INFO, "-XIListProperties");
19702 
19703  REPLY(reply);
19704  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
19705  *offsetp += 1;
19706  sequence_number = tvb_get_guint16(tvb, *offsetp, byte_order);
19707  proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
19708  "%d (xinput-XIListProperties)", sequence_number);
19709  *offsetp += 2;
19710  proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
19711  *offsetp += 4;
19712  f_num_properties = tvb_get_guint16(tvb, *offsetp, byte_order);
19713  proto_tree_add_item(t, hf_x11_xinput_XIListProperties_reply_num_properties, tvb, *offsetp, 2, byte_order);
19714  *offsetp += 2;
19715  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 22, ENC_NA);
19716  *offsetp += 22;
19717  listOfCard32(tvb, offsetp, t, hf_x11_xinput_XIListProperties_reply_properties, hf_x11_xinput_XIListProperties_reply_properties_item, f_num_properties, byte_order);
19718 }
19719 
19720 static void xinputXIChangeProperty(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
19721 {
19722  int f_format;
19723  int f_num_items;
19724  field16(tvb, offsetp, t, hf_x11_xinput_XIChangeProperty_deviceid, byte_order);
19725  field8(tvb, offsetp, t, hf_x11_xinput_XIChangeProperty_mode, byte_order);
19726  f_format = field8(tvb, offsetp, t, hf_x11_xinput_XIChangeProperty_format, byte_order);
19727  proto_tree_add_item(t, hf_x11_xinput_XIChangeProperty_property, tvb, *offsetp, 4, byte_order);
19728  *offsetp += 4;
19729  proto_tree_add_item(t, hf_x11_xinput_XIChangeProperty_type, tvb, *offsetp, 4, byte_order);
19730  *offsetp += 4;
19731  f_num_items = tvb_get_guint32(tvb, *offsetp, byte_order);
19732  proto_tree_add_item(t, hf_x11_xinput_XIChangeProperty_num_items, tvb, *offsetp, 4, byte_order);
19733  *offsetp += 4;
19734  if (f_format == 8) {
19735  listOfByte(tvb, offsetp, t, hf_x11_xinput_XIChangeProperty_8Bits_data8, f_num_items, byte_order);
19736  length -= f_num_items * 1;
19737  if (*offsetp % 4) {
19738  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, (4 - *offsetp % 4), ENC_NA);
19739  *offsetp += (4 - *offsetp % 4);
19740  }
19741  length = ((length + 3) & ~3);
19742  }
19743  if (f_format == 16) {
19744  listOfCard16(tvb, offsetp, t, hf_x11_xinput_XIChangeProperty_16Bits_data16, hf_x11_xinput_XIChangeProperty_16Bits_data16_item, f_num_items, byte_order);
19745  length -= f_num_items * 2;
19746  if (*offsetp % 4) {
19747  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, (4 - *offsetp % 4), ENC_NA);
19748  *offsetp += (4 - *offsetp % 4);
19749  }
19750  length = ((length + 3) & ~3);
19751  }
19752  if (f_format == 32) {
19753  listOfCard32(tvb, offsetp, t, hf_x11_xinput_XIChangeProperty_32Bits_data32, hf_x11_xinput_XIChangeProperty_32Bits_data32_item, f_num_items, byte_order);
19754  length -= f_num_items * 4;
19755  }
19756 }
19757 
19758 static void xinputXIDeleteProperty(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
19759 {
19760  field16(tvb, offsetp, t, hf_x11_xinput_XIDeleteProperty_deviceid, byte_order);
19761  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 2, ENC_NA);
19762  *offsetp += 2;
19763  proto_tree_add_item(t, hf_x11_xinput_XIDeleteProperty_property, tvb, *offsetp, 4, byte_order);
19764  *offsetp += 4;
19765 }
19766 
19767 static void xinputXIGetProperty(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
19768 {
19769  field16(tvb, offsetp, t, hf_x11_xinput_XIGetProperty_deviceid, byte_order);
19770  proto_tree_add_item(t, hf_x11_xinput_XIGetProperty_delete, tvb, *offsetp, 1, byte_order);
19771  *offsetp += 1;
19772  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
19773  *offsetp += 1;
19774  proto_tree_add_item(t, hf_x11_xinput_XIGetProperty_property, tvb, *offsetp, 4, byte_order);
19775  *offsetp += 4;
19776  proto_tree_add_item(t, hf_x11_xinput_XIGetProperty_type, tvb, *offsetp, 4, byte_order);
19777  *offsetp += 4;
19778  proto_tree_add_item(t, hf_x11_xinput_XIGetProperty_offset, tvb, *offsetp, 4, byte_order);
19779  *offsetp += 4;
19780  proto_tree_add_item(t, hf_x11_xinput_XIGetProperty_len, tvb, *offsetp, 4, byte_order);
19781  *offsetp += 4;
19782 }
19783 static void xinputXIGetProperty_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
19784 {
19785  int sequence_number;
19786  int f_num_items;
19787  int f_format;
19788 
19789  col_append_fstr(pinfo->cinfo, COL_INFO, "-XIGetProperty");
19790 
19791  REPLY(reply);
19792  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
19793  *offsetp += 1;
19794  sequence_number = tvb_get_guint16(tvb, *offsetp, byte_order);
19795  proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
19796  "%d (xinput-XIGetProperty)", sequence_number);
19797  *offsetp += 2;
19798  proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
19799  *offsetp += 4;
19800  proto_tree_add_item(t, hf_x11_xinput_XIGetProperty_reply_type, tvb, *offsetp, 4, byte_order);
19801  *offsetp += 4;
19802  proto_tree_add_item(t, hf_x11_xinput_XIGetProperty_reply_bytes_after, tvb, *offsetp, 4, byte_order);
19803  *offsetp += 4;
19804  f_num_items = tvb_get_guint32(tvb, *offsetp, byte_order);
19805  proto_tree_add_item(t, hf_x11_xinput_XIGetProperty_reply_num_items, tvb, *offsetp, 4, byte_order);
19806  *offsetp += 4;
19807  f_format = field8(tvb, offsetp, t, hf_x11_xinput_XIGetProperty_reply_format, byte_order);
19808  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 11, ENC_NA);
19809  *offsetp += 11;
19810  if (f_format == 8) {
19811  listOfByte(tvb, offsetp, t, hf_x11_xinput_XIGetProperty_reply_8Bits_data8, f_num_items, byte_order);
19812  if (*offsetp % 4) {
19813  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, (4 - *offsetp % 4), ENC_NA);
19814  *offsetp += (4 - *offsetp % 4);
19815  }
19816  }
19817  if (f_format == 16) {
19818  listOfCard16(tvb, offsetp, t, hf_x11_xinput_XIGetProperty_reply_16Bits_data16, hf_x11_xinput_XIGetProperty_reply_16Bits_data16_item, f_num_items, byte_order);
19819  if (*offsetp % 4) {
19820  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, (4 - *offsetp % 4), ENC_NA);
19821  *offsetp += (4 - *offsetp % 4);
19822  }
19823  }
19824  if (f_format == 32) {
19825  listOfCard32(tvb, offsetp, t, hf_x11_xinput_XIGetProperty_reply_32Bits_data32, hf_x11_xinput_XIGetProperty_reply_32Bits_data32_item, f_num_items, byte_order);
19826  }
19827 }
19828 
19829 static void xinputXIGetSelectedEvents(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
19830 {
19831  proto_tree_add_item(t, hf_x11_xinput_XIGetSelectedEvents_window, tvb, *offsetp, 4, byte_order);
19832  *offsetp += 4;
19833 }
19834 static void xinputXIGetSelectedEvents_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
19835 {
19836  int sequence_number;
19837  int f_num_masks;
19838 
19839  col_append_fstr(pinfo->cinfo, COL_INFO, "-XIGetSelectedEvents");
19840 
19841  REPLY(reply);
19842  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
19843  *offsetp += 1;
19844  sequence_number = tvb_get_guint16(tvb, *offsetp, byte_order);
19845  proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
19846  "%d (xinput-XIGetSelectedEvents)", sequence_number);
19847  *offsetp += 2;
19848  proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
19849  *offsetp += 4;
19850  f_num_masks = tvb_get_guint16(tvb, *offsetp, byte_order);
19851  proto_tree_add_item(t, hf_x11_xinput_XIGetSelectedEvents_reply_num_masks, tvb, *offsetp, 2, byte_order);
19852  *offsetp += 2;
19853  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 22, ENC_NA);
19854  *offsetp += 22;
19855  struct_xinput_EventMask(tvb, offsetp, t, byte_order, f_num_masks);
19856 }
19857 
19858 static void struct_xinput_BarrierReleasePointerInfo(tvbuff_t *tvb, int *offsetp, proto_tree *root, guint byte_order _U_, int count)
19859 {
19860  int i;
19861  for (i = 0; i < count; i++) {
19862  proto_item *item;
19863  proto_tree *t;
19864 
19865  item = proto_tree_add_item(root, hf_x11_struct_xinput_BarrierReleasePointerInfo, tvb, *offsetp, 12, ENC_NA);
19866  t = proto_item_add_subtree(item, ett_x11_rectangle);
19867  proto_tree_add_item(t, hf_x11_struct_xinput_BarrierReleasePointerInfo_deviceid, tvb, *offsetp, 2, byte_order);
19868  *offsetp += 2;
19869  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 2, ENC_NA);
19870  *offsetp += 2;
19871  proto_tree_add_item(t, hf_x11_struct_xinput_BarrierReleasePointerInfo_barrier, tvb, *offsetp, 4, byte_order);
19872  *offsetp += 4;
19873  proto_tree_add_item(t, hf_x11_struct_xinput_BarrierReleasePointerInfo_eventid, tvb, *offsetp, 4, byte_order);
19874  *offsetp += 4;
19875  }
19876 }
19877 
19878 static void xinputXIBarrierReleasePointer(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
19879 {
19880  int f_num_barriers;
19881  f_num_barriers = tvb_get_guint32(tvb, *offsetp, byte_order);
19882  proto_tree_add_item(t, hf_x11_xinput_XIBarrierReleasePointer_num_barriers, tvb, *offsetp, 4, byte_order);
19883  *offsetp += 4;
19884  struct_xinput_BarrierReleasePointerInfo(tvb, offsetp, t, byte_order, f_num_barriers);
19885  length -= f_num_barriers * 12;
19886 }
19887 
19888 static void xinputDeviceKeyPress(tvbuff_t *tvb, int *offsetp, proto_tree *t, guint byte_order)
19889 {
19890  proto_tree_add_item(t, hf_x11_xinput_DeviceKeyPress_detail, tvb, *offsetp, 1, ENC_NA);
19891  *offsetp += 1;
19892  CARD16(event_sequencenumber);
19893  proto_tree_add_item(t, hf_x11_xinput_DeviceKeyPress_time, tvb, *offsetp, 4, byte_order);
19894  *offsetp += 4;
19895  proto_tree_add_item(t, hf_x11_xinput_DeviceKeyPress_root, tvb, *offsetp, 4, byte_order);
19896  *offsetp += 4;
19897  proto_tree_add_item(t, hf_x11_xinput_DeviceKeyPress_event, tvb, *offsetp, 4, byte_order);
19898  *offsetp += 4;
19899  field32(tvb, offsetp, t, hf_x11_xinput_DeviceKeyPress_child, byte_order);
19900  proto_tree_add_item(t, hf_x11_xinput_DeviceKeyPress_root_x, tvb, *offsetp, 2, byte_order);
19901  *offsetp += 2;
19902  proto_tree_add_item(t, hf_x11_xinput_DeviceKeyPress_root_y, tvb, *offsetp, 2, byte_order);
19903  *offsetp += 2;
19904  proto_tree_add_item(t, hf_x11_xinput_DeviceKeyPress_event_x, tvb, *offsetp, 2, byte_order);
19905  *offsetp += 2;
19906  proto_tree_add_item(t, hf_x11_xinput_DeviceKeyPress_event_y, tvb, *offsetp, 2, byte_order);
19907  *offsetp += 2;
19908  {
19909  const int* state_bits [] = {
19910  &hf_x11_xinput_DeviceKeyPress_state_mask_Shift,
19911  &hf_x11_xinput_DeviceKeyPress_state_mask_Lock,
19912  &hf_x11_xinput_DeviceKeyPress_state_mask_Control,
19913  &hf_x11_xinput_DeviceKeyPress_state_mask_Mod1,
19914  &hf_x11_xinput_DeviceKeyPress_state_mask_Mod2,
19915  &hf_x11_xinput_DeviceKeyPress_state_mask_Mod3,
19916  &hf_x11_xinput_DeviceKeyPress_state_mask_Mod4,
19917  &hf_x11_xinput_DeviceKeyPress_state_mask_Mod5,
19918  &hf_x11_xinput_DeviceKeyPress_state_mask_Button1,
19919  &hf_x11_xinput_DeviceKeyPress_state_mask_Button2,
19920  &hf_x11_xinput_DeviceKeyPress_state_mask_Button3,
19921  &hf_x11_xinput_DeviceKeyPress_state_mask_Button4,
19922  &hf_x11_xinput_DeviceKeyPress_state_mask_Button5,
19923  NULL
19924  };
19925  proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_xinput_DeviceKeyPress_state, ett_x11_rectangle, state_bits, byte_order);
19926  }
19927  *offsetp += 2;
19928  proto_tree_add_item(t, hf_x11_xinput_DeviceKeyPress_same_screen, tvb, *offsetp, 1, byte_order);
19929  *offsetp += 1;
19930  proto_tree_add_item(t, hf_x11_xinput_DeviceKeyPress_device_id, tvb, *offsetp, 1, byte_order);
19931  *offsetp += 1;
19932 }
19933 
19934 
19935 static void xinputDeviceFocusIn(tvbuff_t *tvb, int *offsetp, proto_tree *t, guint byte_order)
19936 {
19937  field8(tvb, offsetp, t, hf_x11_xinput_DeviceFocusIn_detail, byte_order);
19938  CARD16(event_sequencenumber);
19939  proto_tree_add_item(t, hf_x11_xinput_DeviceFocusIn_time, tvb, *offsetp, 4, byte_order);
19940  *offsetp += 4;
19941  proto_tree_add_item(t, hf_x11_xinput_DeviceFocusIn_window, tvb, *offsetp, 4, byte_order);
19942  *offsetp += 4;
19943  field8(tvb, offsetp, t, hf_x11_xinput_DeviceFocusIn_mode, byte_order);
19944  proto_tree_add_item(t, hf_x11_xinput_DeviceFocusIn_device_id, tvb, *offsetp, 1, byte_order);
19945  *offsetp += 1;
19946  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 18, ENC_NA);
19947  *offsetp += 18;
19948 }
19949 
19950 
19951 static void xinputDeviceStateNotify(tvbuff_t *tvb, int *offsetp, proto_tree *t, guint byte_order)
19952 {
19953  proto_tree_add_item(t, hf_x11_xinput_DeviceStateNotify_device_id, tvb, *offsetp, 1, ENC_NA);
19954  *offsetp += 1;
19955  CARD16(event_sequencenumber);
19956  proto_tree_add_item(t, hf_x11_xinput_DeviceStateNotify_time, tvb, *offsetp, 4, byte_order);
19957  *offsetp += 4;
19958  proto_tree_add_item(t, hf_x11_xinput_DeviceStateNotify_num_keys, tvb, *offsetp, 1, byte_order);
19959  *offsetp += 1;
19960  proto_tree_add_item(t, hf_x11_xinput_DeviceStateNotify_num_buttons, tvb, *offsetp, 1, byte_order);
19961  *offsetp += 1;
19962  proto_tree_add_item(t, hf_x11_xinput_DeviceStateNotify_num_valuators, tvb, *offsetp, 1, byte_order);
19963  *offsetp += 1;
19964  {
19965  const int* classes_reported_bits [] = {
19966  &hf_x11_xinput_DeviceStateNotify_classes_reported_mask_ReportingKeys,
19967  &hf_x11_xinput_DeviceStateNotify_classes_reported_mask_ReportingButtons,
19968  &hf_x11_xinput_DeviceStateNotify_classes_reported_mask_ReportingValuators,
19969  &hf_x11_xinput_DeviceStateNotify_classes_reported_mask_DeviceModeAbsolute,
19970  &hf_x11_xinput_DeviceStateNotify_classes_reported_mask_OutOfProximity,
19971  NULL
19972  };
19973  proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_xinput_DeviceStateNotify_classes_reported, ett_x11_rectangle, classes_reported_bits, byte_order);
19974  }
19975  *offsetp += 1;
19976  listOfByte(tvb, offsetp, t, hf_x11_xinput_DeviceStateNotify_buttons, 4, byte_order);
19977  listOfByte(tvb, offsetp, t, hf_x11_xinput_DeviceStateNotify_keys, 4, byte_order);
19978  listOfCard32(tvb, offsetp, t, hf_x11_xinput_DeviceStateNotify_valuators, hf_x11_xinput_DeviceStateNotify_valuators_item, 3, byte_order);
19979 }
19980 
19981 
19982 static void xinputDeviceMappingNotify(tvbuff_t *tvb, int *offsetp, proto_tree *t, guint byte_order)
19983 {
19984  proto_tree_add_item(t, hf_x11_xinput_DeviceMappingNotify_device_id, tvb, *offsetp, 1, ENC_NA);
19985  *offsetp += 1;
19986  CARD16(event_sequencenumber);
19987  field8(tvb, offsetp, t, hf_x11_xinput_DeviceMappingNotify_request, byte_order);
19988  proto_tree_add_item(t, hf_x11_xinput_DeviceMappingNotify_first_keycode, tvb, *offsetp, 1, byte_order);
19989  *offsetp += 1;
19990  proto_tree_add_item(t, hf_x11_xinput_DeviceMappingNotify_count, tvb, *offsetp, 1, byte_order);
19991  *offsetp += 1;
19992  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
19993  *offsetp += 1;
19994  proto_tree_add_item(t, hf_x11_xinput_DeviceMappingNotify_time, tvb, *offsetp, 4, byte_order);
19995  *offsetp += 4;
19996  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 20, ENC_NA);
19997  *offsetp += 20;
19998 }
19999 
20000 
20001 static void xinputChangeDeviceNotify(tvbuff_t *tvb, int *offsetp, proto_tree *t, guint byte_order)
20002 {
20003  proto_tree_add_item(t, hf_x11_xinput_ChangeDeviceNotify_device_id, tvb, *offsetp, 1, ENC_NA);
20004  *offsetp += 1;
20005  CARD16(event_sequencenumber);
20006  proto_tree_add_item(t, hf_x11_xinput_ChangeDeviceNotify_time, tvb, *offsetp, 4, byte_order);
20007  *offsetp += 4;
20008  field8(tvb, offsetp, t, hf_x11_xinput_ChangeDeviceNotify_request, byte_order);
20009  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 23, ENC_NA);
20010  *offsetp += 23;
20011 }
20012 
20013 
20014 static void xinputDeviceKeyStateNotify(tvbuff_t *tvb, int *offsetp, proto_tree *t, guint byte_order)
20015 {
20016  proto_tree_add_item(t, hf_x11_xinput_DeviceKeyStateNotify_device_id, tvb, *offsetp, 1, ENC_NA);
20017  *offsetp += 1;
20018  CARD16(event_sequencenumber);
20019  listOfByte(tvb, offsetp, t, hf_x11_xinput_DeviceKeyStateNotify_keys, 28, byte_order);
20020 }
20021 
20022 
20023 static void xinputDeviceButtonStateNotify(tvbuff_t *tvb, int *offsetp, proto_tree *t, guint byte_order)
20024 {
20025  proto_tree_add_item(t, hf_x11_xinput_DeviceButtonStateNotify_device_id, tvb, *offsetp, 1, ENC_NA);
20026  *offsetp += 1;
20027  CARD16(event_sequencenumber);
20028  listOfByte(tvb, offsetp, t, hf_x11_xinput_DeviceButtonStateNotify_buttons, 28, byte_order);
20029 }
20030 
20031 
20032 static void xinputDevicePresenceNotify(tvbuff_t *tvb, int *offsetp, proto_tree *t, guint byte_order)
20033 {
20034  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
20035  *offsetp += 1;
20036  CARD16(event_sequencenumber);
20037  proto_tree_add_item(t, hf_x11_xinput_DevicePresenceNotify_time, tvb, *offsetp, 4, byte_order);
20038  *offsetp += 4;
20039  field8(tvb, offsetp, t, hf_x11_xinput_DevicePresenceNotify_devchange, byte_order);
20040  proto_tree_add_item(t, hf_x11_xinput_DevicePresenceNotify_device_id, tvb, *offsetp, 1, ENC_NA);
20041  *offsetp += 1;
20042  proto_tree_add_item(t, hf_x11_xinput_DevicePresenceNotify_control, tvb, *offsetp, 2, byte_order);
20043  *offsetp += 2;
20044  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 20, ENC_NA);
20045  *offsetp += 20;
20046 }
20047 
20048 
20049 static void xinputDevicePropertyNotify(tvbuff_t *tvb, int *offsetp, proto_tree *t, guint byte_order)
20050 {
20051  field8(tvb, offsetp, t, hf_x11_xinput_DevicePropertyNotify_state, byte_order);
20052  CARD16(event_sequencenumber);
20053  proto_tree_add_item(t, hf_x11_xinput_DevicePropertyNotify_time, tvb, *offsetp, 4, byte_order);
20054  *offsetp += 4;
20055  proto_tree_add_item(t, hf_x11_xinput_DevicePropertyNotify_property, tvb, *offsetp, 4, byte_order);
20056  *offsetp += 4;
20057  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 19, ENC_NA);
20058  *offsetp += 19;
20059  proto_tree_add_item(t, hf_x11_xinput_DevicePropertyNotify_device_id, tvb, *offsetp, 1, byte_order);
20060  *offsetp += 1;
20061 }
20062 
20063 
20064 static void xinputDeviceChanged(tvbuff_t *tvb, int length _U_, int *offsetp, proto_tree *t, guint byte_order)
20065 {
20066  int f_num_classes;
20067  proto_tree_add_uint_format_value(t, hf_x11_minor_opcode, tvb, *offsetp, 2, 1,
20068  "DeviceChanged (1)");
20069  field16(tvb, offsetp, t, hf_x11_xinput_DeviceChanged_deviceid, byte_order);
20070  field32(tvb, offsetp, t, hf_x11_xinput_DeviceChanged_time, byte_order);
20071  f_num_classes = tvb_get_guint16(tvb, *offsetp, byte_order);
20072  proto_tree_add_item(t, hf_x11_xinput_DeviceChanged_num_classes, tvb, *offsetp, 2, byte_order);
20073  *offsetp += 2;
20074  field16(tvb, offsetp, t, hf_x11_xinput_DeviceChanged_sourceid, byte_order);
20075  field8(tvb, offsetp, t, hf_x11_xinput_DeviceChanged_reason, byte_order);
20076  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 11, ENC_NA);
20077  *offsetp += 11;
20078  struct_xinput_DeviceClass(tvb, offsetp, t, byte_order, f_num_classes);
20079 }
20080 
20081 
20082 static void xinputKeyPress(tvbuff_t *tvb, int length _U_, int *offsetp, proto_tree *t, guint byte_order)
20083 {
20084  int f_buttons_len;
20085  int f_valuators_len;
20086  int sumof_valuator_mask = 0;
20087  proto_tree_add_uint_format_value(t, hf_x11_minor_opcode, tvb, *offsetp, 2, 2,
20088  "KeyPress (2)");
20089  field16(tvb, offsetp, t, hf_x11_xinput_KeyPress_deviceid, byte_order);
20090  field32(tvb, offsetp, t, hf_x11_xinput_KeyPress_time, byte_order);
20091  proto_tree_add_item(t, hf_x11_xinput_KeyPress_detail, tvb, *offsetp, 4, byte_order);
20092  *offsetp += 4;
20093  proto_tree_add_item(t, hf_x11_xinput_KeyPress_root, tvb, *offsetp, 4, byte_order);
20094  *offsetp += 4;
20095  proto_tree_add_item(t, hf_x11_xinput_KeyPress_event, tvb, *offsetp, 4, byte_order);
20096  *offsetp += 4;
20097  proto_tree_add_item(t, hf_x11_xinput_KeyPress_child, tvb, *offsetp, 4, byte_order);
20098  *offsetp += 4;
20099  proto_tree_add_item(t, hf_x11_xinput_KeyPress_root_x, tvb, *offsetp, 4, byte_order);
20100  *offsetp += 4;
20101  proto_tree_add_item(t, hf_x11_xinput_KeyPress_root_y, tvb, *offsetp, 4, byte_order);
20102  *offsetp += 4;
20103  proto_tree_add_item(t, hf_x11_xinput_KeyPress_event_x, tvb, *offsetp, 4, byte_order);
20104  *offsetp += 4;
20105  proto_tree_add_item(t, hf_x11_xinput_KeyPress_event_y, tvb, *offsetp, 4, byte_order);
20106  *offsetp += 4;
20107  f_buttons_len = tvb_get_guint16(tvb, *offsetp, byte_order);
20108  proto_tree_add_item(t, hf_x11_xinput_KeyPress_buttons_len, tvb, *offsetp, 2, byte_order);
20109  *offsetp += 2;
20110  f_valuators_len = tvb_get_guint16(tvb, *offsetp, byte_order);
20111  proto_tree_add_item(t, hf_x11_xinput_KeyPress_valuators_len, tvb, *offsetp, 2, byte_order);
20112  *offsetp += 2;
20113  field16(tvb, offsetp, t, hf_x11_xinput_KeyPress_sourceid, byte_order);
20114  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 2, ENC_NA);
20115  *offsetp += 2;
20116  {
20117  const int* flags_bits [] = {
20118  &hf_x11_xinput_KeyPress_flags_mask_KeyRepeat,
20119  NULL
20120  };
20121  proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_xinput_KeyPress_flags, ett_x11_rectangle, flags_bits, byte_order);
20122  }
20123  *offsetp += 4;
20124  struct_xinput_ModifierInfo(tvb, offsetp, t, byte_order, 1);
20125  struct_xinput_GroupInfo(tvb, offsetp, t, byte_order, 1);
20126  listOfCard32(tvb, offsetp, t, hf_x11_xinput_KeyPress_button_mask, hf_x11_xinput_KeyPress_button_mask_item, f_buttons_len, byte_order);
20127  {
20128  int i;
20129  for (i = 0; i < f_valuators_len; i++) {
20130  sumof_valuator_mask += tvb_get_guint32(tvb, *offsetp + i * 4, byte_order);
20131  }
20132  }
20133  listOfCard32(tvb, offsetp, t, hf_x11_xinput_KeyPress_valuator_mask, hf_x11_xinput_KeyPress_valuator_mask_item, f_valuators_len, byte_order);
20134  struct_xinput_FP3232(tvb, offsetp, t, byte_order, sumof_valuator_mask);
20135 }
20136 
20137 
20138 static void xinputButtonPress(tvbuff_t *tvb, int length _U_, int *offsetp, proto_tree *t, guint byte_order)
20139 {
20140  int f_buttons_len;
20141  int f_valuators_len;
20142  int sumof_valuator_mask = 0;
20143  proto_tree_add_uint_format_value(t, hf_x11_minor_opcode, tvb, *offsetp, 2, 4,
20144  "ButtonPress (4)");
20145  field16(tvb, offsetp, t, hf_x11_xinput_ButtonPress_deviceid, byte_order);
20146  field32(tvb, offsetp, t, hf_x11_xinput_ButtonPress_time, byte_order);
20147  proto_tree_add_item(t, hf_x11_xinput_ButtonPress_detail, tvb, *offsetp, 4, byte_order);
20148  *offsetp += 4;
20149  proto_tree_add_item(t, hf_x11_xinput_ButtonPress_root, tvb, *offsetp, 4, byte_order);
20150  *offsetp += 4;
20151  proto_tree_add_item(t, hf_x11_xinput_ButtonPress_event, tvb, *offsetp, 4, byte_order);
20152  *offsetp += 4;
20153  proto_tree_add_item(t, hf_x11_xinput_ButtonPress_child, tvb, *offsetp, 4, byte_order);
20154  *offsetp += 4;
20155  proto_tree_add_item(t, hf_x11_xinput_ButtonPress_root_x, tvb, *offsetp, 4, byte_order);
20156  *offsetp += 4;
20157  proto_tree_add_item(t, hf_x11_xinput_ButtonPress_root_y, tvb, *offsetp, 4, byte_order);
20158  *offsetp += 4;
20159  proto_tree_add_item(t, hf_x11_xinput_ButtonPress_event_x, tvb, *offsetp, 4, byte_order);
20160  *offsetp += 4;
20161  proto_tree_add_item(t, hf_x11_xinput_ButtonPress_event_y, tvb, *offsetp, 4, byte_order);
20162  *offsetp += 4;
20163  f_buttons_len = tvb_get_guint16(tvb, *offsetp, byte_order);
20164  proto_tree_add_item(t, hf_x11_xinput_ButtonPress_buttons_len, tvb, *offsetp, 2, byte_order);
20165  *offsetp += 2;
20166  f_valuators_len = tvb_get_guint16(tvb, *offsetp, byte_order);
20167  proto_tree_add_item(t, hf_x11_xinput_ButtonPress_valuators_len, tvb, *offsetp, 2, byte_order);
20168  *offsetp += 2;
20169  field16(tvb, offsetp, t, hf_x11_xinput_ButtonPress_sourceid, byte_order);
20170  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 2, ENC_NA);
20171  *offsetp += 2;
20172  {
20173  const int* flags_bits [] = {
20174  &hf_x11_xinput_ButtonPress_flags_mask_PointerEmulated,
20175  NULL
20176  };
20177  proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_xinput_ButtonPress_flags, ett_x11_rectangle, flags_bits, byte_order);
20178  }
20179  *offsetp += 4;
20180  struct_xinput_ModifierInfo(tvb, offsetp, t, byte_order, 1);
20181  struct_xinput_GroupInfo(tvb, offsetp, t, byte_order, 1);
20182  listOfCard32(tvb, offsetp, t, hf_x11_xinput_ButtonPress_button_mask, hf_x11_xinput_ButtonPress_button_mask_item, f_buttons_len, byte_order);
20183  {
20184  int i;
20185  for (i = 0; i < f_valuators_len; i++) {
20186  sumof_valuator_mask += tvb_get_guint32(tvb, *offsetp + i * 4, byte_order);
20187  }
20188  }
20189  listOfCard32(tvb, offsetp, t, hf_x11_xinput_ButtonPress_valuator_mask, hf_x11_xinput_ButtonPress_valuator_mask_item, f_valuators_len, byte_order);
20190  struct_xinput_FP3232(tvb, offsetp, t, byte_order, sumof_valuator_mask);
20191 }
20192 
20193 
20194 static void xinputEnter(tvbuff_t *tvb, int length _U_, int *offsetp, proto_tree *t, guint byte_order)
20195 {
20196  int f_buttons_len;
20197  proto_tree_add_uint_format_value(t, hf_x11_minor_opcode, tvb, *offsetp, 2, 7,
20198  "Enter (7)");
20199  field16(tvb, offsetp, t, hf_x11_xinput_Enter_deviceid, byte_order);
20200  field32(tvb, offsetp, t, hf_x11_xinput_Enter_time, byte_order);
20201  field16(tvb, offsetp, t, hf_x11_xinput_Enter_sourceid, byte_order);
20202  field8(tvb, offsetp, t, hf_x11_xinput_Enter_mode, byte_order);
20203  field8(tvb, offsetp, t, hf_x11_xinput_Enter_detail, byte_order);
20204  proto_tree_add_item(t, hf_x11_xinput_Enter_root, tvb, *offsetp, 4, byte_order);
20205  *offsetp += 4;
20206  proto_tree_add_item(t, hf_x11_xinput_Enter_event, tvb, *offsetp, 4, byte_order);
20207  *offsetp += 4;
20208  proto_tree_add_item(t, hf_x11_xinput_Enter_child, tvb, *offsetp, 4, byte_order);
20209  *offsetp += 4;
20210  proto_tree_add_item(t, hf_x11_xinput_Enter_root_x, tvb, *offsetp, 4, byte_order);
20211  *offsetp += 4;
20212  proto_tree_add_item(t, hf_x11_xinput_Enter_root_y, tvb, *offsetp, 4, byte_order);
20213  *offsetp += 4;
20214  proto_tree_add_item(t, hf_x11_xinput_Enter_event_x, tvb, *offsetp, 4, byte_order);
20215  *offsetp += 4;
20216  proto_tree_add_item(t, hf_x11_xinput_Enter_event_y, tvb, *offsetp, 4, byte_order);
20217  *offsetp += 4;
20218  proto_tree_add_item(t, hf_x11_xinput_Enter_same_screen, tvb, *offsetp, 1, byte_order);
20219  *offsetp += 1;
20220  proto_tree_add_item(t, hf_x11_xinput_Enter_focus, tvb, *offsetp, 1, byte_order);
20221  *offsetp += 1;
20222  f_buttons_len = tvb_get_guint16(tvb, *offsetp, byte_order);
20223  proto_tree_add_item(t, hf_x11_xinput_Enter_buttons_len, tvb, *offsetp, 2, byte_order);
20224  *offsetp += 2;
20225  struct_xinput_ModifierInfo(tvb, offsetp, t, byte_order, 1);
20226  struct_xinput_GroupInfo(tvb, offsetp, t, byte_order, 1);
20227  listOfCard32(tvb, offsetp, t, hf_x11_xinput_Enter_buttons, hf_x11_xinput_Enter_buttons_item, f_buttons_len, byte_order);
20228 }
20229 
20230 
20231 static void struct_xinput_HierarchyInfo(tvbuff_t *tvb, int *offsetp, proto_tree *root, guint byte_order _U_, int count)
20232 {
20233  int i;
20234  for (i = 0; i < count; i++) {
20235  proto_item *item;
20236  proto_tree *t;
20237 
20238  item = proto_tree_add_item(root, hf_x11_struct_xinput_HierarchyInfo, tvb, *offsetp, 12, ENC_NA);
20239  t = proto_item_add_subtree(item, ett_x11_rectangle);
20240  field16(tvb, offsetp, t, hf_x11_struct_xinput_HierarchyInfo_deviceid, byte_order);
20241  field16(tvb, offsetp, t, hf_x11_struct_xinput_HierarchyInfo_attachment, byte_order);
20242  field8(tvb, offsetp, t, hf_x11_struct_xinput_HierarchyInfo_type, byte_order);
20243  proto_tree_add_item(t, hf_x11_struct_xinput_HierarchyInfo_enabled, tvb, *offsetp, 1, byte_order);
20244  *offsetp += 1;
20245  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 2, ENC_NA);
20246  *offsetp += 2;
20247  {
20248  const int* flags_bits [] = {
20249  &hf_x11_struct_xinput_HierarchyInfo_flags_mask_MasterAdded,
20250  &hf_x11_struct_xinput_HierarchyInfo_flags_mask_MasterRemoved,
20251  &hf_x11_struct_xinput_HierarchyInfo_flags_mask_SlaveAdded,
20252  &hf_x11_struct_xinput_HierarchyInfo_flags_mask_SlaveRemoved,
20253  &hf_x11_struct_xinput_HierarchyInfo_flags_mask_SlaveAttached,
20254  &hf_x11_struct_xinput_HierarchyInfo_flags_mask_SlaveDetached,
20255  &hf_x11_struct_xinput_HierarchyInfo_flags_mask_DeviceEnabled,
20256  &hf_x11_struct_xinput_HierarchyInfo_flags_mask_DeviceDisabled,
20257  NULL
20258  };
20259  proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_struct_xinput_HierarchyInfo_flags, ett_x11_rectangle, flags_bits, byte_order);
20260  }
20261  *offsetp += 4;
20262  }
20263 }
20264 
20265 static void xinputHierarchy(tvbuff_t *tvb, int length _U_, int *offsetp, proto_tree *t, guint byte_order)
20266 {
20267  int f_num_infos;
20268  proto_tree_add_uint_format_value(t, hf_x11_minor_opcode, tvb, *offsetp, 2, 11,
20269  "Hierarchy (11)");
20270  field16(tvb, offsetp, t, hf_x11_xinput_Hierarchy_deviceid, byte_order);
20271  field32(tvb, offsetp, t, hf_x11_xinput_Hierarchy_time, byte_order);
20272  {
20273  const int* flags_bits [] = {
20274  &hf_x11_xinput_Hierarchy_flags_mask_MasterAdded,
20275  &hf_x11_xinput_Hierarchy_flags_mask_MasterRemoved,
20276  &hf_x11_xinput_Hierarchy_flags_mask_SlaveAdded,
20277  &hf_x11_xinput_Hierarchy_flags_mask_SlaveRemoved,
20278  &hf_x11_xinput_Hierarchy_flags_mask_SlaveAttached,
20279  &hf_x11_xinput_Hierarchy_flags_mask_SlaveDetached,
20280  &hf_x11_xinput_Hierarchy_flags_mask_DeviceEnabled,
20281  &hf_x11_xinput_Hierarchy_flags_mask_DeviceDisabled,
20282  NULL
20283  };
20284  proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_xinput_Hierarchy_flags, ett_x11_rectangle, flags_bits, byte_order);
20285  }
20286  *offsetp += 4;
20287  f_num_infos = tvb_get_guint16(tvb, *offsetp, byte_order);
20288  proto_tree_add_item(t, hf_x11_xinput_Hierarchy_num_infos, tvb, *offsetp, 2, byte_order);
20289  *offsetp += 2;
20290  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 10, ENC_NA);
20291  *offsetp += 10;
20292  struct_xinput_HierarchyInfo(tvb, offsetp, t, byte_order, f_num_infos);
20293 }
20294 
20295 
20296 static void xinputProperty(tvbuff_t *tvb, int length _U_, int *offsetp, proto_tree *t, guint byte_order)
20297 {
20298  proto_tree_add_uint_format_value(t, hf_x11_minor_opcode, tvb, *offsetp, 2, 12,
20299  "Property (12)");
20300  field16(tvb, offsetp, t, hf_x11_xinput_Property_deviceid, byte_order);
20301  field32(tvb, offsetp, t, hf_x11_xinput_Property_time, byte_order);
20302  proto_tree_add_item(t, hf_x11_xinput_Property_property, tvb, *offsetp, 4, byte_order);
20303  *offsetp += 4;
20304  field8(tvb, offsetp, t, hf_x11_xinput_Property_what, byte_order);
20305  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 11, ENC_NA);
20306  *offsetp += 11;
20307 }
20308 
20309 
20310 static void xinputRawKeyPress(tvbuff_t *tvb, int length _U_, int *offsetp, proto_tree *t, guint byte_order)
20311 {
20312  int f_valuators_len;
20313  int sumof_valuator_mask = 0;
20314  proto_tree_add_uint_format_value(t, hf_x11_minor_opcode, tvb, *offsetp, 2, 13,
20315  "RawKeyPress (13)");
20316  field16(tvb, offsetp, t, hf_x11_xinput_RawKeyPress_deviceid, byte_order);
20317  field32(tvb, offsetp, t, hf_x11_xinput_RawKeyPress_time, byte_order);
20318  proto_tree_add_item(t, hf_x11_xinput_RawKeyPress_detail, tvb, *offsetp, 4, byte_order);
20319  *offsetp += 4;
20320  proto_tree_add_item(t, hf_x11_xinput_RawKeyPress_sourceid, tvb, *offsetp, 2, byte_order);
20321  *offsetp += 2;
20322  f_valuators_len = tvb_get_guint16(tvb, *offsetp, byte_order);
20323  proto_tree_add_item(t, hf_x11_xinput_RawKeyPress_valuators_len, tvb, *offsetp, 2, byte_order);
20324  *offsetp += 2;
20325  {
20326  const int* flags_bits [] = {
20327  &hf_x11_xinput_RawKeyPress_flags_mask_KeyRepeat,
20328  NULL
20329  };
20330  proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_xinput_RawKeyPress_flags, ett_x11_rectangle, flags_bits, byte_order);
20331  }
20332  *offsetp += 4;
20333  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 4, ENC_NA);
20334  *offsetp += 4;
20335  {
20336  int i;
20337  for (i = 0; i < f_valuators_len; i++) {
20338  sumof_valuator_mask += tvb_get_guint32(tvb, *offsetp + i * 4, byte_order);
20339  }
20340  }
20341  listOfCard32(tvb, offsetp, t, hf_x11_xinput_RawKeyPress_valuator_mask, hf_x11_xinput_RawKeyPress_valuator_mask_item, f_valuators_len, byte_order);
20342  struct_xinput_FP3232(tvb, offsetp, t, byte_order, sumof_valuator_mask);
20343  struct_xinput_FP3232(tvb, offsetp, t, byte_order, sumof_valuator_mask);
20344 }
20345 
20346 
20347 static void xinputRawButtonPress(tvbuff_t *tvb, int length _U_, int *offsetp, proto_tree *t, guint byte_order)
20348 {
20349  int f_valuators_len;
20350  int sumof_valuator_mask = 0;
20351  proto_tree_add_uint_format_value(t, hf_x11_minor_opcode, tvb, *offsetp, 2, 15,
20352  "RawButtonPress (15)");
20353  field16(tvb, offsetp, t, hf_x11_xinput_RawButtonPress_deviceid, byte_order);
20354  field32(tvb, offsetp, t, hf_x11_xinput_RawButtonPress_time, byte_order);
20355  proto_tree_add_item(t, hf_x11_xinput_RawButtonPress_detail, tvb, *offsetp, 4, byte_order);
20356  *offsetp += 4;
20357  proto_tree_add_item(t, hf_x11_xinput_RawButtonPress_sourceid, tvb, *offsetp, 2, byte_order);
20358  *offsetp += 2;
20359  f_valuators_len = tvb_get_guint16(tvb, *offsetp, byte_order);
20360  proto_tree_add_item(t, hf_x11_xinput_RawButtonPress_valuators_len, tvb, *offsetp, 2, byte_order);
20361  *offsetp += 2;
20362  {
20363  const int* flags_bits [] = {
20364  &hf_x11_xinput_RawButtonPress_flags_mask_PointerEmulated,
20365  NULL
20366  };
20367  proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_xinput_RawButtonPress_flags, ett_x11_rectangle, flags_bits, byte_order);
20368  }
20369  *offsetp += 4;
20370  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 4, ENC_NA);
20371  *offsetp += 4;
20372  {
20373  int i;
20374  for (i = 0; i < f_valuators_len; i++) {
20375  sumof_valuator_mask += tvb_get_guint32(tvb, *offsetp + i * 4, byte_order);
20376  }
20377  }
20378  listOfCard32(tvb, offsetp, t, hf_x11_xinput_RawButtonPress_valuator_mask, hf_x11_xinput_RawButtonPress_valuator_mask_item, f_valuators_len, byte_order);
20379  struct_xinput_FP3232(tvb, offsetp, t, byte_order, sumof_valuator_mask);
20380  struct_xinput_FP3232(tvb, offsetp, t, byte_order, sumof_valuator_mask);
20381 }
20382 
20383 
20384 static void xinputTouchBegin(tvbuff_t *tvb, int length _U_, int *offsetp, proto_tree *t, guint byte_order)
20385 {
20386  int f_buttons_len;
20387  int f_valuators_len;
20388  int sumof_valuator_mask = 0;
20389  proto_tree_add_uint_format_value(t, hf_x11_minor_opcode, tvb, *offsetp, 2, 18,
20390  "TouchBegin (18)");
20391  field16(tvb, offsetp, t, hf_x11_xinput_TouchBegin_deviceid, byte_order);
20392  field32(tvb, offsetp, t, hf_x11_xinput_TouchBegin_time, byte_order);
20393  proto_tree_add_item(t, hf_x11_xinput_TouchBegin_detail, tvb, *offsetp, 4, byte_order);
20394  *offsetp += 4;
20395  proto_tree_add_item(t, hf_x11_xinput_TouchBegin_root, tvb, *offsetp, 4, byte_order);
20396  *offsetp += 4;
20397  proto_tree_add_item(t, hf_x11_xinput_TouchBegin_event, tvb, *offsetp, 4, byte_order);
20398  *offsetp += 4;
20399  proto_tree_add_item(t, hf_x11_xinput_TouchBegin_child, tvb, *offsetp, 4, byte_order);
20400  *offsetp += 4;
20401  proto_tree_add_item(t, hf_x11_xinput_TouchBegin_root_x, tvb, *offsetp, 4, byte_order);
20402  *offsetp += 4;
20403  proto_tree_add_item(t, hf_x11_xinput_TouchBegin_root_y, tvb, *offsetp, 4, byte_order);
20404  *offsetp += 4;
20405  proto_tree_add_item(t, hf_x11_xinput_TouchBegin_event_x, tvb, *offsetp, 4, byte_order);
20406  *offsetp += 4;
20407  proto_tree_add_item(t, hf_x11_xinput_TouchBegin_event_y, tvb, *offsetp, 4, byte_order);
20408  *offsetp += 4;
20409  f_buttons_len = tvb_get_guint16(tvb, *offsetp, byte_order);
20410  proto_tree_add_item(t, hf_x11_xinput_TouchBegin_buttons_len, tvb, *offsetp, 2, byte_order);
20411  *offsetp += 2;
20412  f_valuators_len = tvb_get_guint16(tvb, *offsetp, byte_order);
20413  proto_tree_add_item(t, hf_x11_xinput_TouchBegin_valuators_len, tvb, *offsetp, 2, byte_order);
20414  *offsetp += 2;
20415  field16(tvb, offsetp, t, hf_x11_xinput_TouchBegin_sourceid, byte_order);
20416  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 2, ENC_NA);
20417  *offsetp += 2;
20418  {
20419  const int* flags_bits [] = {
20420  &hf_x11_xinput_TouchBegin_flags_mask_TouchPendingEnd,
20421  &hf_x11_xinput_TouchBegin_flags_mask_TouchEmulatingPointer,
20422  NULL
20423  };
20424  proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_xinput_TouchBegin_flags, ett_x11_rectangle, flags_bits, byte_order);
20425  }
20426  *offsetp += 4;
20427  struct_xinput_ModifierInfo(tvb, offsetp, t, byte_order, 1);
20428  struct_xinput_GroupInfo(tvb, offsetp, t, byte_order, 1);
20429  listOfCard32(tvb, offsetp, t, hf_x11_xinput_TouchBegin_button_mask, hf_x11_xinput_TouchBegin_button_mask_item, f_buttons_len, byte_order);
20430  {
20431  int i;
20432  for (i = 0; i < f_valuators_len; i++) {
20433  sumof_valuator_mask += tvb_get_guint32(tvb, *offsetp + i * 4, byte_order);
20434  }
20435  }
20436  listOfCard32(tvb, offsetp, t, hf_x11_xinput_TouchBegin_valuator_mask, hf_x11_xinput_TouchBegin_valuator_mask_item, f_valuators_len, byte_order);
20437  struct_xinput_FP3232(tvb, offsetp, t, byte_order, sumof_valuator_mask);
20438 }
20439 
20440 
20441 static void xinputTouchOwnership(tvbuff_t *tvb, int length _U_, int *offsetp, proto_tree *t, guint byte_order)
20442 {
20443  proto_tree_add_uint_format_value(t, hf_x11_minor_opcode, tvb, *offsetp, 2, 21,
20444  "TouchOwnership (21)");
20445  field16(tvb, offsetp, t, hf_x11_xinput_TouchOwnership_deviceid, byte_order);
20446  field32(tvb, offsetp, t, hf_x11_xinput_TouchOwnership_time, byte_order);
20447  proto_tree_add_item(t, hf_x11_xinput_TouchOwnership_touchid, tvb, *offsetp, 4, byte_order);
20448  *offsetp += 4;
20449  proto_tree_add_item(t, hf_x11_xinput_TouchOwnership_root, tvb, *offsetp, 4, byte_order);
20450  *offsetp += 4;
20451  proto_tree_add_item(t, hf_x11_xinput_TouchOwnership_event, tvb, *offsetp, 4, byte_order);
20452  *offsetp += 4;
20453  proto_tree_add_item(t, hf_x11_xinput_TouchOwnership_child, tvb, *offsetp, 4, byte_order);
20454  *offsetp += 4;
20455  field16(tvb, offsetp, t, hf_x11_xinput_TouchOwnership_sourceid, byte_order);
20456  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 2, ENC_NA);
20457  *offsetp += 2;
20458  field32(tvb, offsetp, t, hf_x11_xinput_TouchOwnership_flags, byte_order);
20459  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 8, ENC_NA);
20460  *offsetp += 8;
20461 }
20462 
20463 
20464 static void xinputRawTouchBegin(tvbuff_t *tvb, int length _U_, int *offsetp, proto_tree *t, guint byte_order)
20465 {
20466  int f_valuators_len;
20467  int sumof_valuator_mask = 0;
20468  proto_tree_add_uint_format_value(t, hf_x11_minor_opcode, tvb, *offsetp, 2, 22,
20469  "RawTouchBegin (22)");
20470  field16(tvb, offsetp, t, hf_x11_xinput_RawTouchBegin_deviceid, byte_order);
20471  field32(tvb, offsetp, t, hf_x11_xinput_RawTouchBegin_time, byte_order);
20472  proto_tree_add_item(t, hf_x11_xinput_RawTouchBegin_detail, tvb, *offsetp, 4, byte_order);
20473  *offsetp += 4;
20474  proto_tree_add_item(t, hf_x11_xinput_RawTouchBegin_sourceid, tvb, *offsetp, 2, byte_order);
20475  *offsetp += 2;
20476  f_valuators_len = tvb_get_guint16(tvb, *offsetp, byte_order);
20477  proto_tree_add_item(t, hf_x11_xinput_RawTouchBegin_valuators_len, tvb, *offsetp, 2, byte_order);
20478  *offsetp += 2;
20479  {
20480  const int* flags_bits [] = {
20481  &hf_x11_xinput_RawTouchBegin_flags_mask_TouchPendingEnd,
20482  &hf_x11_xinput_RawTouchBegin_flags_mask_TouchEmulatingPointer,
20483  NULL
20484  };
20485  proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_xinput_RawTouchBegin_flags, ett_x11_rectangle, flags_bits, byte_order);
20486  }
20487  *offsetp += 4;
20488  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 4, ENC_NA);
20489  *offsetp += 4;
20490  {
20491  int i;
20492  for (i = 0; i < f_valuators_len; i++) {
20493  sumof_valuator_mask += tvb_get_guint32(tvb, *offsetp + i * 4, byte_order);
20494  }
20495  }
20496  listOfCard32(tvb, offsetp, t, hf_x11_xinput_RawTouchBegin_valuator_mask, hf_x11_xinput_RawTouchBegin_valuator_mask_item, f_valuators_len, byte_order);
20497  struct_xinput_FP3232(tvb, offsetp, t, byte_order, sumof_valuator_mask);
20498  struct_xinput_FP3232(tvb, offsetp, t, byte_order, sumof_valuator_mask);
20499 }
20500 
20501 
20502 static void xinputBarrierHit(tvbuff_t *tvb, int length _U_, int *offsetp, proto_tree *t, guint byte_order)
20503 {
20504  proto_tree_add_uint_format_value(t, hf_x11_minor_opcode, tvb, *offsetp, 2, 25,
20505  "BarrierHit (25)");
20506  field16(tvb, offsetp, t, hf_x11_xinput_BarrierHit_deviceid, byte_order);
20507  field32(tvb, offsetp, t, hf_x11_xinput_BarrierHit_time, byte_order);
20508  proto_tree_add_item(t, hf_x11_xinput_BarrierHit_eventid, tvb, *offsetp, 4, byte_order);
20509  *offsetp += 4;
20510  proto_tree_add_item(t, hf_x11_xinput_BarrierHit_root, tvb, *offsetp, 4, byte_order);
20511  *offsetp += 4;
20512  proto_tree_add_item(t, hf_x11_xinput_BarrierHit_event, tvb, *offsetp, 4, byte_order);
20513  *offsetp += 4;
20514  proto_tree_add_item(t, hf_x11_xinput_BarrierHit_barrier, tvb, *offsetp, 4, byte_order);
20515  *offsetp += 4;
20516  proto_tree_add_item(t, hf_x11_xinput_BarrierHit_dtime, tvb, *offsetp, 4, byte_order);
20517  *offsetp += 4;
20518  {
20519  const int* flags_bits [] = {
20520  &hf_x11_xinput_BarrierHit_flags_mask_PointerReleased,
20521  &hf_x11_xinput_BarrierHit_flags_mask_DeviceIsGrabbed,
20522  NULL
20523  };
20524  proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_xinput_BarrierHit_flags, ett_x11_rectangle, flags_bits, byte_order);
20525  }
20526  *offsetp += 4;
20527  field16(tvb, offsetp, t, hf_x11_xinput_BarrierHit_sourceid, byte_order);
20528  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 2, ENC_NA);
20529  *offsetp += 2;
20530  proto_tree_add_item(t, hf_x11_xinput_BarrierHit_root_x, tvb, *offsetp, 4, byte_order);
20531  *offsetp += 4;
20532  proto_tree_add_item(t, hf_x11_xinput_BarrierHit_root_y, tvb, *offsetp, 4, byte_order);
20533  *offsetp += 4;
20534  struct_xinput_FP3232(tvb, offsetp, t, byte_order, 1);
20535  struct_xinput_FP3232(tvb, offsetp, t, byte_order, 1);
20536 }
20537 
20538 
20539 static void xinputSendExtensionEvent(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
20540 {
20541  int f_num_classes;
20542  int f_num_events;
20543  proto_tree_add_item(t, hf_x11_xinput_SendExtensionEvent_destination, tvb, *offsetp, 4, byte_order);
20544  *offsetp += 4;
20545  proto_tree_add_item(t, hf_x11_xinput_SendExtensionEvent_device_id, tvb, *offsetp, 1, byte_order);
20546  *offsetp += 1;
20547  proto_tree_add_item(t, hf_x11_xinput_SendExtensionEvent_propagate, tvb, *offsetp, 1, byte_order);
20548  *offsetp += 1;
20549  f_num_classes = tvb_get_guint16(tvb, *offsetp, byte_order);
20550  proto_tree_add_item(t, hf_x11_xinput_SendExtensionEvent_num_classes, tvb, *offsetp, 2, byte_order);
20551  *offsetp += 2;
20552  f_num_events = tvb_get_guint8(tvb, *offsetp);
20553  proto_tree_add_item(t, hf_x11_xinput_SendExtensionEvent_num_events, tvb, *offsetp, 1, byte_order);
20554  *offsetp += 1;
20555  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 3, ENC_NA);
20556  *offsetp += 3;
20557  length -= f_num_events * 1;
20558  listOfCard32(tvb, offsetp, t, hf_x11_xinput_SendExtensionEvent_classes, hf_x11_xinput_SendExtensionEvent_classes_item, f_num_classes, byte_order);
20559  length -= f_num_classes * 4;
20560 }
20561 static const value_string xinput_extension_minor[] = {
20562  { 1, "GetExtensionVersion" },
20563  { 2, "ListInputDevices" },
20564  { 3, "OpenDevice" },
20565  { 4, "CloseDevice" },
20566  { 5, "SetDeviceMode" },
20567  { 6, "SelectExtensionEvent" },
20568  { 7, "GetSelectedExtensionEvents" },
20569  { 8, "ChangeDeviceDontPropagateList" },
20570  { 9, "GetDeviceDontPropagateList" },
20571  { 10, "GetDeviceMotionEvents" },
20572  { 11, "ChangeKeyboardDevice" },
20573  { 12, "ChangePointerDevice" },
20574  { 13, "GrabDevice" },
20575  { 14, "UngrabDevice" },
20576  { 15, "GrabDeviceKey" },
20577  { 16, "UngrabDeviceKey" },
20578  { 17, "GrabDeviceButton" },
20579  { 18, "UngrabDeviceButton" },
20580  { 19, "AllowDeviceEvents" },
20581  { 20, "GetDeviceFocus" },
20582  { 21, "SetDeviceFocus" },
20583  { 22, "GetFeedbackControl" },
20584  { 23, "ChangeFeedbackControl" },
20585  { 24, "GetDeviceKeyMapping" },
20586  { 25, "ChangeDeviceKeyMapping" },
20587  { 26, "GetDeviceModifierMapping" },
20588  { 27, "SetDeviceModifierMapping" },
20589  { 28, "GetDeviceButtonMapping" },
20590  { 29, "SetDeviceButtonMapping" },
20591  { 30, "QueryDeviceState" },
20592  { 31, "SendExtensionEvent" },
20593  { 32, "DeviceBell" },
20594  { 33, "SetDeviceValuators" },
20595  { 34, "GetDeviceControl" },
20596  { 35, "ChangeDeviceControl" },
20597  { 36, "ListDeviceProperties" },
20598  { 37, "ChangeDeviceProperty" },
20599  { 38, "DeleteDeviceProperty" },
20600  { 39, "GetDeviceProperty" },
20601  { 40, "XIQueryPointer" },
20602  { 41, "XIWarpPointer" },
20603  { 42, "XIChangeCursor" },
20604  { 43, "XIChangeHierarchy" },
20605  { 44, "XISetClientPointer" },
20606  { 45, "XIGetClientPointer" },
20607  { 46, "XISelectEvents" },
20608  { 47, "XIQueryVersion" },
20609  { 48, "XIQueryDevice" },
20610  { 49, "XISetFocus" },
20611  { 50, "XIGetFocus" },
20612  { 51, "XIGrabDevice" },
20613  { 52, "XIUngrabDevice" },
20614  { 53, "XIAllowEvents" },
20615  { 54, "XIPassiveGrabDevice" },
20616  { 55, "XIPassiveUngrabDevice" },
20617  { 56, "XIListProperties" },
20618  { 57, "XIChangeProperty" },
20619  { 58, "XIDeleteProperty" },
20620  { 59, "XIGetProperty" },
20621  { 60, "XIGetSelectedEvents" },
20622  { 61, "XIBarrierReleasePointer" },
20623  { 0, NULL }
20624 };
20625 const x11_event_info xinput_events[] = {
20626  { "xinput-DeviceKeyPress", xinputDeviceKeyPress },
20627  { "xinput-DeviceFocusIn", xinputDeviceFocusIn },
20628  { "xinput-DeviceStateNotify", xinputDeviceStateNotify },
20629  { "xinput-DeviceMappingNotify", xinputDeviceMappingNotify },
20630  { "xinput-ChangeDeviceNotify", xinputChangeDeviceNotify },
20631  { "xinput-DeviceKeyStateNotify", xinputDeviceKeyStateNotify },
20632  { "xinput-DeviceButtonStateNotify", xinputDeviceButtonStateNotify },
20633  { "xinput-DevicePresenceNotify", xinputDevicePresenceNotify },
20634  { "xinput-DevicePropertyNotify", xinputDevicePropertyNotify },
20635  { NULL, NULL }
20636 };
20637 static const x11_generic_event_info xinput_generic_events[] = {
20638  { 1, xinputDeviceChanged },
20639  { 2, xinputKeyPress },
20640  { 4, xinputButtonPress },
20641  { 7, xinputEnter },
20642  { 11, xinputHierarchy },
20643  { 12, xinputProperty },
20644  { 13, xinputRawKeyPress },
20645  { 15, xinputRawButtonPress },
20646  { 18, xinputTouchBegin },
20647  { 21, xinputTouchOwnership },
20648  { 22, xinputRawTouchBegin },
20649  { 25, xinputBarrierHit },
20650  { 0, NULL },
20651 };
20652 
20653 static x11_reply_info xinput_replies[] = {
20654  { 1, xinputGetExtensionVersion_Reply },
20655  { 2, xinputListInputDevices_Reply },
20656  { 3, xinputOpenDevice_Reply },
20657  { 5, xinputSetDeviceMode_Reply },
20658  { 7, xinputGetSelectedExtensionEvents_Reply },
20659  { 9, xinputGetDeviceDontPropagateList_Reply },
20660  { 10, xinputGetDeviceMotionEvents_Reply },
20661  { 11, xinputChangeKeyboardDevice_Reply },
20662  { 12, xinputChangePointerDevice_Reply },
20663  { 13, xinputGrabDevice_Reply },
20664  { 20, xinputGetDeviceFocus_Reply },
20665  { 22, xinputGetFeedbackControl_Reply },
20666  { 24, xinputGetDeviceKeyMapping_Reply },
20667  { 26, xinputGetDeviceModifierMapping_Reply },
20668  { 27, xinputSetDeviceModifierMapping_Reply },
20669  { 28, xinputGetDeviceButtonMapping_Reply },
20670  { 29, xinputSetDeviceButtonMapping_Reply },
20671  { 30, xinputQueryDeviceState_Reply },
20672  { 33, xinputSetDeviceValuators_Reply },
20673  { 34, xinputGetDeviceControl_Reply },
20674  { 35, xinputChangeDeviceControl_Reply },
20675  { 36, xinputListDeviceProperties_Reply },
20676  { 39, xinputGetDeviceProperty_Reply },
20677  { 40, xinputXIQueryPointer_Reply },
20678  { 45, xinputXIGetClientPointer_Reply },
20679  { 47, xinputXIQueryVersion_Reply },
20680  { 48, xinputXIQueryDevice_Reply },
20681  { 50, xinputXIGetFocus_Reply },
20682  { 51, xinputXIGrabDevice_Reply },
20683  { 54, xinputXIPassiveGrabDevice_Reply },
20684  { 56, xinputXIListProperties_Reply },
20685  { 59, xinputXIGetProperty_Reply },
20686  { 60, xinputXIGetSelectedEvents_Reply },
20687  { 0, NULL }
20688 };
20689 
20690 static void dispatch_xinput(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
20691 {
20692  int minor, length;
20693  minor = CARD8(xinput_extension_minor);
20694  length = REQUEST_LENGTH();
20695 
20696  col_append_fstr(pinfo->cinfo, COL_INFO, "-%s",
20697  val_to_str(minor, xinput_extension_minor,
20698  "<Unknown opcode %d>"));
20699  switch (minor) {
20700  case 1:
20701  xinputGetExtensionVersion(tvb, pinfo, offsetp, t, byte_order, length);
20702  break;
20703  case 2:
20704  xinputListInputDevices(tvb, pinfo, offsetp, t, byte_order, length);
20705  break;
20706  case 3:
20707  xinputOpenDevice(tvb, pinfo, offsetp, t, byte_order, length);
20708  break;
20709  case 4:
20710  xinputCloseDevice(tvb, pinfo, offsetp, t, byte_order, length);
20711  break;
20712  case 5:
20713  xinputSetDeviceMode(tvb, pinfo, offsetp, t, byte_order, length);
20714  break;
20715  case 6:
20716  xinputSelectExtensionEvent(tvb, pinfo, offsetp, t, byte_order, length);
20717  break;
20718  case 7:
20719  xinputGetSelectedExtensionEvents(tvb, pinfo, offsetp, t, byte_order, length);
20720  break;
20721  case 8:
20722  xinputChangeDeviceDontPropagateList(tvb, pinfo, offsetp, t, byte_order, length);
20723  break;
20724  case 9:
20725  xinputGetDeviceDontPropagateList(tvb, pinfo, offsetp, t, byte_order, length);
20726  break;
20727  case 10:
20728  xinputGetDeviceMotionEvents(tvb, pinfo, offsetp, t, byte_order, length);
20729  break;
20730  case 11:
20731  xinputChangeKeyboardDevice(tvb, pinfo, offsetp, t, byte_order, length);
20732  break;
20733  case 12:
20734  xinputChangePointerDevice(tvb, pinfo, offsetp, t, byte_order, length);
20735  break;
20736  case 13:
20737  xinputGrabDevice(tvb, pinfo, offsetp, t, byte_order, length);
20738  break;
20739  case 14:
20740  xinputUngrabDevice(tvb, pinfo, offsetp, t, byte_order, length);
20741  break;
20742  case 15:
20743  xinputGrabDeviceKey(tvb, pinfo, offsetp, t, byte_order, length);
20744  break;
20745  case 16:
20746  xinputUngrabDeviceKey(tvb, pinfo, offsetp, t, byte_order, length);
20747  break;
20748  case 17:
20749  xinputGrabDeviceButton(tvb, pinfo, offsetp, t, byte_order, length);
20750  break;
20751  case 18:
20752  xinputUngrabDeviceButton(tvb, pinfo, offsetp, t, byte_order, length);
20753  break;
20754  case 19:
20755  xinputAllowDeviceEvents(tvb, pinfo, offsetp, t, byte_order, length);
20756  break;
20757  case 20:
20758  xinputGetDeviceFocus(tvb, pinfo, offsetp, t, byte_order, length);
20759  break;
20760  case 21:
20761  xinputSetDeviceFocus(tvb, pinfo, offsetp, t, byte_order, length);
20762  break;
20763  case 22:
20764  xinputGetFeedbackControl(tvb, pinfo, offsetp, t, byte_order, length);
20765  break;
20766  case 23:
20767  xinputChangeFeedbackControl(tvb, pinfo, offsetp, t, byte_order, length);
20768  break;
20769  case 24:
20770  xinputGetDeviceKeyMapping(tvb, pinfo, offsetp, t, byte_order, length);
20771  break;
20772  case 25:
20773  xinputChangeDeviceKeyMapping(tvb, pinfo, offsetp, t, byte_order, length);
20774  break;
20775  case 26:
20776  xinputGetDeviceModifierMapping(tvb, pinfo, offsetp, t, byte_order, length);
20777  break;
20778  case 27:
20779  xinputSetDeviceModifierMapping(tvb, pinfo, offsetp, t, byte_order, length);
20780  break;
20781  case 28:
20782  xinputGetDeviceButtonMapping(tvb, pinfo, offsetp, t, byte_order, length);
20783  break;
20784  case 29:
20785  xinputSetDeviceButtonMapping(tvb, pinfo, offsetp, t, byte_order, length);
20786  break;
20787  case 30:
20788  xinputQueryDeviceState(tvb, pinfo, offsetp, t, byte_order, length);
20789  break;
20790  case 31:
20791  xinputSendExtensionEvent(tvb, pinfo, offsetp, t, byte_order, length);
20792  break;
20793  case 32:
20794  xinputDeviceBell(tvb, pinfo, offsetp, t, byte_order, length);
20795  break;
20796  case 33:
20797  xinputSetDeviceValuators(tvb, pinfo, offsetp, t, byte_order, length);
20798  break;
20799  case 34:
20800  xinputGetDeviceControl(tvb, pinfo, offsetp, t, byte_order, length);
20801  break;
20802  case 35:
20803  xinputChangeDeviceControl(tvb, pinfo, offsetp, t, byte_order, length);
20804  break;
20805  case 36:
20806  xinputListDeviceProperties(tvb, pinfo, offsetp, t, byte_order, length);
20807  break;
20808  case 37:
20809  xinputChangeDeviceProperty(tvb, pinfo, offsetp, t, byte_order, length);
20810  break;
20811  case 38:
20812  xinputDeleteDeviceProperty(tvb, pinfo, offsetp, t, byte_order, length);
20813  break;
20814  case 39:
20815  xinputGetDeviceProperty(tvb, pinfo, offsetp, t, byte_order, length);
20816  break;
20817  case 40:
20818  xinputXIQueryPointer(tvb, pinfo, offsetp, t, byte_order, length);
20819  break;
20820  case 41:
20821  xinputXIWarpPointer(tvb, pinfo, offsetp, t, byte_order, length);
20822  break;
20823  case 42:
20824  xinputXIChangeCursor(tvb, pinfo, offsetp, t, byte_order, length);
20825  break;
20826  case 43:
20827  xinputXIChangeHierarchy(tvb, pinfo, offsetp, t, byte_order, length);
20828  break;
20829  case 44:
20830  xinputXISetClientPointer(tvb, pinfo, offsetp, t, byte_order, length);
20831  break;
20832  case 45:
20833  xinputXIGetClientPointer(tvb, pinfo, offsetp, t, byte_order, length);
20834  break;
20835  case 46:
20836  xinputXISelectEvents(tvb, pinfo, offsetp, t, byte_order, length);
20837  break;
20838  case 47:
20839  xinputXIQueryVersion(tvb, pinfo, offsetp, t, byte_order, length);
20840  break;
20841  case 48:
20842  xinputXIQueryDevice(tvb, pinfo, offsetp, t, byte_order, length);
20843  break;
20844  case 49:
20845  xinputXISetFocus(tvb, pinfo, offsetp, t, byte_order, length);
20846  break;
20847  case 50:
20848  xinputXIGetFocus(tvb, pinfo, offsetp, t, byte_order, length);
20849  break;
20850  case 51:
20851  xinputXIGrabDevice(tvb, pinfo, offsetp, t, byte_order, length);
20852  break;
20853  case 52:
20854  xinputXIUngrabDevice(tvb, pinfo, offsetp, t, byte_order, length);
20855  break;
20856  case 53:
20857  xinputXIAllowEvents(tvb, pinfo, offsetp, t, byte_order, length);
20858  break;
20859  case 54:
20860  xinputXIPassiveGrabDevice(tvb, pinfo, offsetp, t, byte_order, length);
20861  break;
20862  case 55:
20863  xinputXIPassiveUngrabDevice(tvb, pinfo, offsetp, t, byte_order, length);
20864  break;
20865  case 56:
20866  xinputXIListProperties(tvb, pinfo, offsetp, t, byte_order, length);
20867  break;
20868  case 57:
20869  xinputXIChangeProperty(tvb, pinfo, offsetp, t, byte_order, length);
20870  break;
20871  case 58:
20872  xinputXIDeleteProperty(tvb, pinfo, offsetp, t, byte_order, length);
20873  break;
20874  case 59:
20875  xinputXIGetProperty(tvb, pinfo, offsetp, t, byte_order, length);
20876  break;
20877  case 60:
20878  xinputXIGetSelectedEvents(tvb, pinfo, offsetp, t, byte_order, length);
20879  break;
20880  case 61:
20881  xinputXIBarrierReleasePointer(tvb, pinfo, offsetp, t, byte_order, length);
20882  break;
20883  /* No need for a default case here, since Unknown is printed above,
20884  and UNDECODED() is taken care of by dissect_x11_request */
20885  }
20886 }
20887 
20888 static void register_xinput(void)
20889 {
20890  set_handler("XInputExtension", dispatch_xinput, xinput_errors, xinput_events, xinput_generic_events, xinput_replies);
20891 }
20892 
20893 static void struct_xkb_IndicatorMap(tvbuff_t *tvb, int *offsetp, proto_tree *root, guint byte_order _U_, int count)
20894 {
20895  int i;
20896  for (i = 0; i < count; i++) {
20897  proto_item *item;
20898  proto_tree *t;
20899 
20900  item = proto_tree_add_item(root, hf_x11_struct_xkb_IndicatorMap, tvb, *offsetp, 12, ENC_NA);
20901  t = proto_item_add_subtree(item, ett_x11_rectangle);
20902  field8(tvb, offsetp, t, hf_x11_struct_xkb_IndicatorMap_flags, byte_order);
20903  field8(tvb, offsetp, t, hf_x11_struct_xkb_IndicatorMap_whichGroups, byte_order);
20904  field8(tvb, offsetp, t, hf_x11_struct_xkb_IndicatorMap_groups, byte_order);
20905  field8(tvb, offsetp, t, hf_x11_struct_xkb_IndicatorMap_whichMods, byte_order);
20906  {
20907  const int* mods_bits [] = {
20908  &hf_x11_struct_xkb_IndicatorMap_mods_mask_Shift,
20909  &hf_x11_struct_xkb_IndicatorMap_mods_mask_Lock,
20910  &hf_x11_struct_xkb_IndicatorMap_mods_mask_Control,
20911  &hf_x11_struct_xkb_IndicatorMap_mods_mask_1,
20912  &hf_x11_struct_xkb_IndicatorMap_mods_mask_2,
20913  &hf_x11_struct_xkb_IndicatorMap_mods_mask_3,
20914  &hf_x11_struct_xkb_IndicatorMap_mods_mask_4,
20915  &hf_x11_struct_xkb_IndicatorMap_mods_mask_5,
20916  &hf_x11_struct_xkb_IndicatorMap_mods_mask_Any,
20917  NULL
20918  };
20919  proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_struct_xkb_IndicatorMap_mods, ett_x11_rectangle, mods_bits, byte_order);
20920  }
20921  *offsetp += 1;
20922  {
20923  const int* realMods_bits [] = {
20924  &hf_x11_struct_xkb_IndicatorMap_realMods_mask_Shift,
20925  &hf_x11_struct_xkb_IndicatorMap_realMods_mask_Lock,
20926  &hf_x11_struct_xkb_IndicatorMap_realMods_mask_Control,
20927  &hf_x11_struct_xkb_IndicatorMap_realMods_mask_1,
20928  &hf_x11_struct_xkb_IndicatorMap_realMods_mask_2,
20929  &hf_x11_struct_xkb_IndicatorMap_realMods_mask_3,
20930  &hf_x11_struct_xkb_IndicatorMap_realMods_mask_4,
20931  &hf_x11_struct_xkb_IndicatorMap_realMods_mask_5,
20932  &hf_x11_struct_xkb_IndicatorMap_realMods_mask_Any,
20933  NULL
20934  };
20935  proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_struct_xkb_IndicatorMap_realMods, ett_x11_rectangle, realMods_bits, byte_order);
20936  }
20937  *offsetp += 1;
20938  {
20939  const int* vmods_bits [] = {
20940  &hf_x11_struct_xkb_IndicatorMap_vmods_mask_0,
20941  &hf_x11_struct_xkb_IndicatorMap_vmods_mask_1,
20942  &hf_x11_struct_xkb_IndicatorMap_vmods_mask_2,
20943  &hf_x11_struct_xkb_IndicatorMap_vmods_mask_3,
20944  &hf_x11_struct_xkb_IndicatorMap_vmods_mask_4,
20945  &hf_x11_struct_xkb_IndicatorMap_vmods_mask_5,
20946  &hf_x11_struct_xkb_IndicatorMap_vmods_mask_6,
20947  &hf_x11_struct_xkb_IndicatorMap_vmods_mask_7,
20948  &hf_x11_struct_xkb_IndicatorMap_vmods_mask_8,
20949  &hf_x11_struct_xkb_IndicatorMap_vmods_mask_9,
20950  &hf_x11_struct_xkb_IndicatorMap_vmods_mask_10,
20951  &hf_x11_struct_xkb_IndicatorMap_vmods_mask_11,
20952  &hf_x11_struct_xkb_IndicatorMap_vmods_mask_12,
20953  &hf_x11_struct_xkb_IndicatorMap_vmods_mask_13,
20954  &hf_x11_struct_xkb_IndicatorMap_vmods_mask_14,
20955  &hf_x11_struct_xkb_IndicatorMap_vmods_mask_15,
20956  NULL
20957  };
20958  proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_struct_xkb_IndicatorMap_vmods, ett_x11_rectangle, vmods_bits, byte_order);
20959  }
20960  *offsetp += 2;
20961  {
20962  const int* ctrls_bits [] = {
20963  &hf_x11_struct_xkb_IndicatorMap_ctrls_mask_RepeatKeys,
20964  &hf_x11_struct_xkb_IndicatorMap_ctrls_mask_SlowKeys,
20965  &hf_x11_struct_xkb_IndicatorMap_ctrls_mask_BounceKeys,
20966  &hf_x11_struct_xkb_IndicatorMap_ctrls_mask_StickyKeys,
20967  &hf_x11_struct_xkb_IndicatorMap_ctrls_mask_MouseKeys,
20968  &hf_x11_struct_xkb_IndicatorMap_ctrls_mask_MouseKeysAccel,
20969  &hf_x11_struct_xkb_IndicatorMap_ctrls_mask_AccessXKeys,
20970  &hf_x11_struct_xkb_IndicatorMap_ctrls_mask_AccessXTimeoutMask,
20971  &hf_x11_struct_xkb_IndicatorMap_ctrls_mask_AccessXFeedbackMask,
20972  &hf_x11_struct_xkb_IndicatorMap_ctrls_mask_AudibleBellMask,
20973  &hf_x11_struct_xkb_IndicatorMap_ctrls_mask_Overlay1Mask,
20974  &hf_x11_struct_xkb_IndicatorMap_ctrls_mask_Overlay2Mask,
20975  &hf_x11_struct_xkb_IndicatorMap_ctrls_mask_IgnoreGroupLockMask,
20976  NULL
20977  };
20978  proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_struct_xkb_IndicatorMap_ctrls, ett_x11_rectangle, ctrls_bits, byte_order);
20979  }
20980  *offsetp += 4;
20981  }
20982 }
20983 
20984 static void struct_xkb_ModDef(tvbuff_t *tvb, int *offsetp, proto_tree *root, guint byte_order _U_, int count)
20985 {
20986  int i;
20987  for (i = 0; i < count; i++) {
20988  proto_item *item;
20989  proto_tree *t;
20990 
20991  item = proto_tree_add_item(root, hf_x11_struct_xkb_ModDef, tvb, *offsetp, 4, ENC_NA);
20992  t = proto_item_add_subtree(item, ett_x11_rectangle);
20993  {
20994  const int* mask_bits [] = {
20995  &hf_x11_struct_xkb_ModDef_mask_mask_Shift,
20996  &hf_x11_struct_xkb_ModDef_mask_mask_Lock,
20997  &hf_x11_struct_xkb_ModDef_mask_mask_Control,
20998  &hf_x11_struct_xkb_ModDef_mask_mask_1,
20999  &hf_x11_struct_xkb_ModDef_mask_mask_2,
21000  &hf_x11_struct_xkb_ModDef_mask_mask_3,
21001  &hf_x11_struct_xkb_ModDef_mask_mask_4,
21002  &hf_x11_struct_xkb_ModDef_mask_mask_5,
21003  &hf_x11_struct_xkb_ModDef_mask_mask_Any,
21004  NULL
21005  };
21006  proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_struct_xkb_ModDef_mask, ett_x11_rectangle, mask_bits, byte_order);
21007  }
21008  *offsetp += 1;
21009  {
21010  const int* realMods_bits [] = {
21011  &hf_x11_struct_xkb_ModDef_realMods_mask_Shift,
21012  &hf_x11_struct_xkb_ModDef_realMods_mask_Lock,
21013  &hf_x11_struct_xkb_ModDef_realMods_mask_Control,
21014  &hf_x11_struct_xkb_ModDef_realMods_mask_1,
21015  &hf_x11_struct_xkb_ModDef_realMods_mask_2,
21016  &hf_x11_struct_xkb_ModDef_realMods_mask_3,
21017  &hf_x11_struct_xkb_ModDef_realMods_mask_4,
21018  &hf_x11_struct_xkb_ModDef_realMods_mask_5,
21019  &hf_x11_struct_xkb_ModDef_realMods_mask_Any,
21020  NULL
21021  };
21022  proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_struct_xkb_ModDef_realMods, ett_x11_rectangle, realMods_bits, byte_order);
21023  }
21024  *offsetp += 1;
21025  {
21026  const int* vmods_bits [] = {
21027  &hf_x11_struct_xkb_ModDef_vmods_mask_0,
21028  &hf_x11_struct_xkb_ModDef_vmods_mask_1,
21029  &hf_x11_struct_xkb_ModDef_vmods_mask_2,
21030  &hf_x11_struct_xkb_ModDef_vmods_mask_3,
21031  &hf_x11_struct_xkb_ModDef_vmods_mask_4,
21032  &hf_x11_struct_xkb_ModDef_vmods_mask_5,
21033  &hf_x11_struct_xkb_ModDef_vmods_mask_6,
21034  &hf_x11_struct_xkb_ModDef_vmods_mask_7,
21035  &hf_x11_struct_xkb_ModDef_vmods_mask_8,
21036  &hf_x11_struct_xkb_ModDef_vmods_mask_9,
21037  &hf_x11_struct_xkb_ModDef_vmods_mask_10,
21038  &hf_x11_struct_xkb_ModDef_vmods_mask_11,
21039  &hf_x11_struct_xkb_ModDef_vmods_mask_12,
21040  &hf_x11_struct_xkb_ModDef_vmods_mask_13,
21041  &hf_x11_struct_xkb_ModDef_vmods_mask_14,
21042  &hf_x11_struct_xkb_ModDef_vmods_mask_15,
21043  NULL
21044  };
21045  proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_struct_xkb_ModDef_vmods, ett_x11_rectangle, vmods_bits, byte_order);
21046  }
21047  *offsetp += 2;
21048  }
21049 }
21050 
21051 static void struct_xkb_KeyName(tvbuff_t *tvb, int *offsetp, proto_tree *root, guint byte_order _U_, int count)
21052 {
21053  int i;
21054  for (i = 0; i < count; i++) {
21055  proto_item *item;
21056  proto_tree *t;
21057 
21058  item = proto_tree_add_item(root, hf_x11_struct_xkb_KeyName, tvb, *offsetp, 4, ENC_NA);
21059  t = proto_item_add_subtree(item, ett_x11_rectangle);
21060  listOfByte(tvb, offsetp, t, hf_x11_struct_xkb_KeyName_name, 4, byte_order);
21061  }
21062 }
21063 
21064 static void struct_xkb_KeyAlias(tvbuff_t *tvb, int *offsetp, proto_tree *root, guint byte_order _U_, int count)
21065 {
21066  int i;
21067  for (i = 0; i < count; i++) {
21068  proto_item *item;
21069  proto_tree *t;
21070 
21071  item = proto_tree_add_item(root, hf_x11_struct_xkb_KeyAlias, tvb, *offsetp, 8, ENC_NA);
21072  t = proto_item_add_subtree(item, ett_x11_rectangle);
21073  listOfByte(tvb, offsetp, t, hf_x11_struct_xkb_KeyAlias_real, 4, byte_order);
21074  listOfByte(tvb, offsetp, t, hf_x11_struct_xkb_KeyAlias_alias, 4, byte_order);
21075  }
21076 }
21077 
21078 static int struct_size_xkb_CountedString16(tvbuff_t *tvb _U_, int *offsetp _U_, guint byte_order _U_)
21079 {
21080  int size = 0;
21081  int f_length;
21082  f_length = tvb_get_guint16(tvb, *offsetp + size + 0, byte_order);
21083  size += f_length * 1;
21084  size += (((f_length + 5) & (~3)) - (f_length + 2)) * 1;
21085  return size + 2;
21086 }
21087 
21088 static void struct_xkb_CountedString16(tvbuff_t *tvb, int *offsetp, proto_tree *root, guint byte_order _U_, int count)
21089 {
21090  int i;
21091  for (i = 0; i < count; i++) {
21092  proto_item *item;
21093  proto_tree *t;
21094  int f_length;
21095 
21096  item = proto_tree_add_item(root, hf_x11_struct_xkb_CountedString16, tvb, *offsetp, struct_size_xkb_CountedString16(tvb, offsetp, byte_order), ENC_NA);
21097  t = proto_item_add_subtree(item, ett_x11_rectangle);
21098  f_length = tvb_get_guint16(tvb, *offsetp, byte_order);
21099  proto_tree_add_item(t, hf_x11_struct_xkb_CountedString16_length, tvb, *offsetp, 2, byte_order);
21100  *offsetp += 2;
21101  listOfByte(tvb, offsetp, t, hf_x11_struct_xkb_CountedString16_string, f_length, byte_order);
21102  listOfByte(tvb, offsetp, t, hf_x11_struct_xkb_CountedString16_alignment_pad, (((f_length + 5) & (~3)) - (f_length + 2)), byte_order);
21103  }
21104 }
21105 
21106 static void struct_xkb_KTMapEntry(tvbuff_t *tvb, int *offsetp, proto_tree *root, guint byte_order _U_, int count)
21107 {
21108  int i;
21109  for (i = 0; i < count; i++) {
21110  proto_item *item;
21111  proto_tree *t;
21112 
21113  item = proto_tree_add_item(root, hf_x11_struct_xkb_KTMapEntry, tvb, *offsetp, 8, ENC_NA);
21114  t = proto_item_add_subtree(item, ett_x11_rectangle);
21115  proto_tree_add_item(t, hf_x11_struct_xkb_KTMapEntry_active, tvb, *offsetp, 1, byte_order);
21116  *offsetp += 1;
21117  {
21118  const int* mods_mask_bits [] = {
21119  &hf_x11_struct_xkb_KTMapEntry_mods_mask_mask_Shift,
21120  &hf_x11_struct_xkb_KTMapEntry_mods_mask_mask_Lock,
21121  &hf_x11_struct_xkb_KTMapEntry_mods_mask_mask_Control,
21122  &hf_x11_struct_xkb_KTMapEntry_mods_mask_mask_1,
21123  &hf_x11_struct_xkb_KTMapEntry_mods_mask_mask_2,
21124  &hf_x11_struct_xkb_KTMapEntry_mods_mask_mask_3,
21125  &hf_x11_struct_xkb_KTMapEntry_mods_mask_mask_4,
21126  &hf_x11_struct_xkb_KTMapEntry_mods_mask_mask_5,
21127  &hf_x11_struct_xkb_KTMapEntry_mods_mask_mask_Any,
21128  NULL
21129  };
21130  proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_struct_xkb_KTMapEntry_mods_mask, ett_x11_rectangle, mods_mask_bits, byte_order);
21131  }
21132  *offsetp += 1;
21133  proto_tree_add_item(t, hf_x11_struct_xkb_KTMapEntry_level, tvb, *offsetp, 1, byte_order);
21134  *offsetp += 1;
21135  {
21136  const int* mods_mods_bits [] = {
21137  &hf_x11_struct_xkb_KTMapEntry_mods_mods_mask_Shift,
21138  &hf_x11_struct_xkb_KTMapEntry_mods_mods_mask_Lock,
21139  &hf_x11_struct_xkb_KTMapEntry_mods_mods_mask_Control,
21140  &hf_x11_struct_xkb_KTMapEntry_mods_mods_mask_1,
21141  &hf_x11_struct_xkb_KTMapEntry_mods_mods_mask_2,
21142  &hf_x11_struct_xkb_KTMapEntry_mods_mods_mask_3,
21143  &hf_x11_struct_xkb_KTMapEntry_mods_mods_mask_4,
21144  &hf_x11_struct_xkb_KTMapEntry_mods_mods_mask_5,
21145  &hf_x11_struct_xkb_KTMapEntry_mods_mods_mask_Any,
21146  NULL
21147  };
21148  proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_struct_xkb_KTMapEntry_mods_mods, ett_x11_rectangle, mods_mods_bits, byte_order);
21149  }
21150  *offsetp += 1;
21151  {
21152  const int* mods_vmods_bits [] = {
21153  &hf_x11_struct_xkb_KTMapEntry_mods_vmods_mask_0,
21154  &hf_x11_struct_xkb_KTMapEntry_mods_vmods_mask_1,
21155  &hf_x11_struct_xkb_KTMapEntry_mods_vmods_mask_2,
21156  &hf_x11_struct_xkb_KTMapEntry_mods_vmods_mask_3,
21157  &hf_x11_struct_xkb_KTMapEntry_mods_vmods_mask_4,
21158  &hf_x11_struct_xkb_KTMapEntry_mods_vmods_mask_5,
21159  &hf_x11_struct_xkb_KTMapEntry_mods_vmods_mask_6,
21160  &hf_x11_struct_xkb_KTMapEntry_mods_vmods_mask_7,
21161  &hf_x11_struct_xkb_KTMapEntry_mods_vmods_mask_8,
21162  &hf_x11_struct_xkb_KTMapEntry_mods_vmods_mask_9,
21163  &hf_x11_struct_xkb_KTMapEntry_mods_vmods_mask_10,
21164  &hf_x11_struct_xkb_KTMapEntry_mods_vmods_mask_11,
21165  &hf_x11_struct_xkb_KTMapEntry_mods_vmods_mask_12,
21166  &hf_x11_struct_xkb_KTMapEntry_mods_vmods_mask_13,
21167  &hf_x11_struct_xkb_KTMapEntry_mods_vmods_mask_14,
21168  &hf_x11_struct_xkb_KTMapEntry_mods_vmods_mask_15,
21169  NULL
21170  };
21171  proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_struct_xkb_KTMapEntry_mods_vmods, ett_x11_rectangle, mods_vmods_bits, byte_order);
21172  }
21173  *offsetp += 2;
21174  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 2, ENC_NA);
21175  *offsetp += 2;
21176  }
21177 }
21178 
21179 static int struct_size_xkb_KeyType(tvbuff_t *tvb _U_, int *offsetp _U_, guint byte_order _U_)
21180 {
21181  int size = 0;
21182  int f_hasPreserve;
21183  int f_nMapEntries;
21184  f_nMapEntries = tvb_get_guint8(tvb, *offsetp + size + 5);
21185  f_hasPreserve = tvb_get_guint8(tvb, *offsetp + size + 6);
21186  size += f_nMapEntries * 8;
21187  size += (f_hasPreserve * f_nMapEntries) * 4;
21188  return size + 8;
21189 }
21190 
21191 static void struct_xkb_KeyType(tvbuff_t *tvb, int *offsetp, proto_tree *root, guint byte_order _U_, int count)
21192 {
21193  int i;
21194  for (i = 0; i < count; i++) {
21195  proto_item *item;
21196  proto_tree *t;
21197  int f_nMapEntries;
21198  int f_hasPreserve;
21199 
21200  item = proto_tree_add_item(root, hf_x11_struct_xkb_KeyType, tvb, *offsetp, struct_size_xkb_KeyType(tvb, offsetp, byte_order), ENC_NA);
21201  t = proto_item_add_subtree(item, ett_x11_rectangle);
21202  {
21203  const int* mods_mask_bits [] = {
21204  &hf_x11_struct_xkb_KeyType_mods_mask_mask_Shift,
21205  &hf_x11_struct_xkb_KeyType_mods_mask_mask_Lock,
21206  &hf_x11_struct_xkb_KeyType_mods_mask_mask_Control,
21207  &hf_x11_struct_xkb_KeyType_mods_mask_mask_1,
21208  &hf_x11_struct_xkb_KeyType_mods_mask_mask_2,
21209  &hf_x11_struct_xkb_KeyType_mods_mask_mask_3,
21210  &hf_x11_struct_xkb_KeyType_mods_mask_mask_4,
21211  &hf_x11_struct_xkb_KeyType_mods_mask_mask_5,
21212  &hf_x11_struct_xkb_KeyType_mods_mask_mask_Any,
21213  NULL
21214  };
21215  proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_struct_xkb_KeyType_mods_mask, ett_x11_rectangle, mods_mask_bits, byte_order);
21216  }
21217  *offsetp += 1;
21218  {
21219  const int* mods_mods_bits [] = {
21220  &hf_x11_struct_xkb_KeyType_mods_mods_mask_Shift,
21221  &hf_x11_struct_xkb_KeyType_mods_mods_mask_Lock,
21222  &hf_x11_struct_xkb_KeyType_mods_mods_mask_Control,
21223  &hf_x11_struct_xkb_KeyType_mods_mods_mask_1,
21224  &hf_x11_struct_xkb_KeyType_mods_mods_mask_2,
21225  &hf_x11_struct_xkb_KeyType_mods_mods_mask_3,
21226  &hf_x11_struct_xkb_KeyType_mods_mods_mask_4,
21227  &hf_x11_struct_xkb_KeyType_mods_mods_mask_5,
21228  &hf_x11_struct_xkb_KeyType_mods_mods_mask_Any,
21229  NULL
21230  };
21231  proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_struct_xkb_KeyType_mods_mods, ett_x11_rectangle, mods_mods_bits, byte_order);
21232  }
21233  *offsetp += 1;
21234  {
21235  const int* mods_vmods_bits [] = {
21236  &hf_x11_struct_xkb_KeyType_mods_vmods_mask_0,
21237  &hf_x11_struct_xkb_KeyType_mods_vmods_mask_1,
21238  &hf_x11_struct_xkb_KeyType_mods_vmods_mask_2,
21239  &hf_x11_struct_xkb_KeyType_mods_vmods_mask_3,
21240  &hf_x11_struct_xkb_KeyType_mods_vmods_mask_4,
21241  &hf_x11_struct_xkb_KeyType_mods_vmods_mask_5,
21242  &hf_x11_struct_xkb_KeyType_mods_vmods_mask_6,
21243  &hf_x11_struct_xkb_KeyType_mods_vmods_mask_7,
21244  &hf_x11_struct_xkb_KeyType_mods_vmods_mask_8,
21245  &hf_x11_struct_xkb_KeyType_mods_vmods_mask_9,
21246  &hf_x11_struct_xkb_KeyType_mods_vmods_mask_10,
21247  &hf_x11_struct_xkb_KeyType_mods_vmods_mask_11,
21248  &hf_x11_struct_xkb_KeyType_mods_vmods_mask_12,
21249  &hf_x11_struct_xkb_KeyType_mods_vmods_mask_13,
21250  &hf_x11_struct_xkb_KeyType_mods_vmods_mask_14,
21251  &hf_x11_struct_xkb_KeyType_mods_vmods_mask_15,
21252  NULL
21253  };
21254  proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_struct_xkb_KeyType_mods_vmods, ett_x11_rectangle, mods_vmods_bits, byte_order);
21255  }
21256  *offsetp += 2;
21257  proto_tree_add_item(t, hf_x11_struct_xkb_KeyType_numLevels, tvb, *offsetp, 1, byte_order);
21258  *offsetp += 1;
21259  f_nMapEntries = tvb_get_guint8(tvb, *offsetp);
21260  proto_tree_add_item(t, hf_x11_struct_xkb_KeyType_nMapEntries, tvb, *offsetp, 1, byte_order);
21261  *offsetp += 1;
21262  f_hasPreserve = tvb_get_guint8(tvb, *offsetp);
21263  proto_tree_add_item(t, hf_x11_struct_xkb_KeyType_hasPreserve, tvb, *offsetp, 1, byte_order);
21264  *offsetp += 1;
21265  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
21266  *offsetp += 1;
21267  struct_xkb_KTMapEntry(tvb, offsetp, t, byte_order, f_nMapEntries);
21268  struct_xkb_ModDef(tvb, offsetp, t, byte_order, (f_hasPreserve * f_nMapEntries));
21269  }
21270 }
21271 
21272 static int struct_size_xkb_KeySymMap(tvbuff_t *tvb _U_, int *offsetp _U_, guint byte_order _U_)
21273 {
21274  int size = 0;
21275  int f_nSyms;
21276  f_nSyms = tvb_get_guint16(tvb, *offsetp + size + 6, byte_order);
21277  size += f_nSyms * 4;
21278  return size + 8;
21279 }
21280 
21281 static void struct_xkb_KeySymMap(tvbuff_t *tvb, int *offsetp, proto_tree *root, guint byte_order _U_, int count)
21282 {
21283  int i;
21284  for (i = 0; i < count; i++) {
21285  proto_item *item;
21286  proto_tree *t;
21287  int f_nSyms;
21288 
21289  item = proto_tree_add_item(root, hf_x11_struct_xkb_KeySymMap, tvb, *offsetp, struct_size_xkb_KeySymMap(tvb, offsetp, byte_order), ENC_NA);
21290  t = proto_item_add_subtree(item, ett_x11_rectangle);
21291  listOfByte(tvb, offsetp, t, hf_x11_struct_xkb_KeySymMap_kt_index, 4, byte_order);
21292  proto_tree_add_item(t, hf_x11_struct_xkb_KeySymMap_groupInfo, tvb, *offsetp, 1, byte_order);
21293  *offsetp += 1;
21294  proto_tree_add_item(t, hf_x11_struct_xkb_KeySymMap_width, tvb, *offsetp, 1, byte_order);
21295  *offsetp += 1;
21296  f_nSyms = tvb_get_guint16(tvb, *offsetp, byte_order);
21297  proto_tree_add_item(t, hf_x11_struct_xkb_KeySymMap_nSyms, tvb, *offsetp, 2, byte_order);
21298  *offsetp += 2;
21299  listOfCard32(tvb, offsetp, t, hf_x11_struct_xkb_KeySymMap_syms, hf_x11_struct_xkb_KeySymMap_syms_item, f_nSyms, byte_order);
21300  }
21301 }
21302 
21303 static void struct_xkb_CommonBehavior(tvbuff_t *tvb, int *offsetp, proto_tree *root, guint byte_order _U_, int count)
21304 {
21305  int i;
21306  for (i = 0; i < count; i++) {
21307  proto_item *item;
21308  proto_tree *t;
21309 
21310  item = proto_tree_add_item(root, hf_x11_struct_xkb_CommonBehavior, tvb, *offsetp, 2, ENC_NA);
21311  t = proto_item_add_subtree(item, ett_x11_rectangle);
21312  proto_tree_add_item(t, hf_x11_struct_xkb_CommonBehavior_type, tvb, *offsetp, 1, byte_order);
21313  *offsetp += 1;
21314  proto_tree_add_item(t, hf_x11_struct_xkb_CommonBehavior_data, tvb, *offsetp, 1, byte_order);
21315  *offsetp += 1;
21316  }
21317 }
21318 
21319 static void struct_xkb_DefaultBehavior(tvbuff_t *tvb, int *offsetp, proto_tree *root, guint byte_order _U_, int count)
21320 {
21321  int i;
21322  for (i = 0; i < count; i++) {
21323  proto_item *item;
21324  proto_tree *t;
21325 
21326  item = proto_tree_add_item(root, hf_x11_struct_xkb_DefaultBehavior, tvb, *offsetp, 2, ENC_NA);
21327  t = proto_item_add_subtree(item, ett_x11_rectangle);
21328  proto_tree_add_item(t, hf_x11_struct_xkb_DefaultBehavior_type, tvb, *offsetp, 1, byte_order);
21329  *offsetp += 1;
21330  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
21331  *offsetp += 1;
21332  }
21333 }
21334 
21335 static void struct_xkb_RadioGroupBehavior(tvbuff_t *tvb, int *offsetp, proto_tree *root, guint byte_order _U_, int count)
21336 {
21337  int i;
21338  for (i = 0; i < count; i++) {
21339  proto_item *item;
21340  proto_tree *t;
21341 
21342  item = proto_tree_add_item(root, hf_x11_struct_xkb_RadioGroupBehavior, tvb, *offsetp, 2, ENC_NA);
21343  t = proto_item_add_subtree(item, ett_x11_rectangle);
21344  proto_tree_add_item(t, hf_x11_struct_xkb_RadioGroupBehavior_type, tvb, *offsetp, 1, byte_order);
21345  *offsetp += 1;
21346  proto_tree_add_item(t, hf_x11_struct_xkb_RadioGroupBehavior_group, tvb, *offsetp, 1, byte_order);
21347  *offsetp += 1;
21348  }
21349 }
21350 
21351 static void struct_xkb_OverlayBehavior(tvbuff_t *tvb, int *offsetp, proto_tree *root, guint byte_order _U_, int count)
21352 {
21353  int i;
21354  for (i = 0; i < count; i++) {
21355  proto_item *item;
21356  proto_tree *t;
21357 
21358  item = proto_tree_add_item(root, hf_x11_struct_xkb_OverlayBehavior, tvb, *offsetp, 2, ENC_NA);
21359  t = proto_item_add_subtree(item, ett_x11_rectangle);
21360  proto_tree_add_item(t, hf_x11_struct_xkb_OverlayBehavior_type, tvb, *offsetp, 1, byte_order);
21361  *offsetp += 1;
21362  proto_tree_add_item(t, hf_x11_struct_xkb_OverlayBehavior_key, tvb, *offsetp, 1, byte_order);
21363  *offsetp += 1;
21364  }
21365 }
21366 
21367 static void struct_xkb_Behavior(tvbuff_t *tvb, int *offsetp, proto_tree *root, guint byte_order, int count)
21368 {
21369  int i;
21370  int base = *offsetp;
21371  for (i = 0; i < count; i++) {
21372  proto_item *item;
21373  proto_tree *t;
21374  item = proto_tree_add_item(root, hf_x11_union_xkb_Behavior, tvb, base, 2, ENC_NA);
21375  t = proto_item_add_subtree(item, ett_x11_rectangle);
21376 
21377  *offsetp = base;
21378  struct_xkb_CommonBehavior(tvb, offsetp, t, byte_order, 1);
21379  *offsetp = base;
21380  struct_xkb_DefaultBehavior(tvb, offsetp, t, byte_order, 1);
21381  *offsetp = base;
21382  struct_xkb_DefaultBehavior(tvb, offsetp, t, byte_order, 1);
21383  *offsetp = base;
21384  struct_xkb_RadioGroupBehavior(tvb, offsetp, t, byte_order, 1);
21385  *offsetp = base;
21386  struct_xkb_OverlayBehavior(tvb, offsetp, t, byte_order, 1);
21387  *offsetp = base;
21388  struct_xkb_OverlayBehavior(tvb, offsetp, t, byte_order, 1);
21389  *offsetp = base;
21390  struct_xkb_DefaultBehavior(tvb, offsetp, t, byte_order, 1);
21391  *offsetp = base;
21392  struct_xkb_RadioGroupBehavior(tvb, offsetp, t, byte_order, 1);
21393  *offsetp = base;
21394  struct_xkb_OverlayBehavior(tvb, offsetp, t, byte_order, 1);
21395  *offsetp = base;
21396  struct_xkb_OverlayBehavior(tvb, offsetp, t, byte_order, 1);
21397  *offsetp = base;
21398  proto_tree_add_item(t, hf_x11_union_xkb_Behavior_type, tvb, *offsetp, 1, byte_order);
21399  *offsetp += 1;
21400  base += 2;
21401  }
21402  *offsetp = base;
21403 }
21404 
21405 static void struct_xkb_SetBehavior(tvbuff_t *tvb, int *offsetp, proto_tree *root, guint byte_order _U_, int count)
21406 {
21407  int i;
21408  for (i = 0; i < count; i++) {
21409  proto_item *item;
21410  proto_tree *t;
21411 
21412  item = proto_tree_add_item(root, hf_x11_struct_xkb_SetBehavior, tvb, *offsetp, 4, ENC_NA);
21413  t = proto_item_add_subtree(item, ett_x11_rectangle);
21414  proto_tree_add_item(t, hf_x11_struct_xkb_SetBehavior_keycode, tvb, *offsetp, 1, byte_order);
21415  *offsetp += 1;
21416  struct_xkb_Behavior(tvb, offsetp, t, byte_order, 1);
21417  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
21418  *offsetp += 1;
21419  }
21420 }
21421 
21422 static void struct_xkb_SetExplicit(tvbuff_t *tvb, int *offsetp, proto_tree *root, guint byte_order _U_, int count)
21423 {
21424  int i;
21425  for (i = 0; i < count; i++) {
21426  proto_item *item;
21427  proto_tree *t;
21428 
21429  item = proto_tree_add_item(root, hf_x11_struct_xkb_SetExplicit, tvb, *offsetp, 2, ENC_NA);
21430  t = proto_item_add_subtree(item, ett_x11_rectangle);
21431  proto_tree_add_item(t, hf_x11_struct_xkb_SetExplicit_keycode, tvb, *offsetp, 1, byte_order);
21432  *offsetp += 1;
21433  {
21434  const int* explicit_bits [] = {
21435  &hf_x11_struct_xkb_SetExplicit_explicit_mask_KeyType1,
21436  &hf_x11_struct_xkb_SetExplicit_explicit_mask_KeyType2,
21437  &hf_x11_struct_xkb_SetExplicit_explicit_mask_KeyType3,
21438  &hf_x11_struct_xkb_SetExplicit_explicit_mask_KeyType4,
21439  &hf_x11_struct_xkb_SetExplicit_explicit_mask_Interpret,
21440  &hf_x11_struct_xkb_SetExplicit_explicit_mask_AutoRepeat,
21441  &hf_x11_struct_xkb_SetExplicit_explicit_mask_Behavior,
21442  &hf_x11_struct_xkb_SetExplicit_explicit_mask_VModMap,
21443  NULL
21444  };
21445  proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_struct_xkb_SetExplicit_explicit, ett_x11_rectangle, explicit_bits, byte_order);
21446  }
21447  *offsetp += 1;
21448  }
21449 }
21450 
21451 static void struct_xkb_KeyModMap(tvbuff_t *tvb, int *offsetp, proto_tree *root, guint byte_order _U_, int count)
21452 {
21453  int i;
21454  for (i = 0; i < count; i++) {
21455  proto_item *item;
21456  proto_tree *t;
21457 
21458  item = proto_tree_add_item(root, hf_x11_struct_xkb_KeyModMap, tvb, *offsetp, 2, ENC_NA);
21459  t = proto_item_add_subtree(item, ett_x11_rectangle);
21460  proto_tree_add_item(t, hf_x11_struct_xkb_KeyModMap_keycode, tvb, *offsetp, 1, byte_order);
21461  *offsetp += 1;
21462  {
21463  const int* mods_bits [] = {
21464  &hf_x11_struct_xkb_KeyModMap_mods_mask_Shift,
21465  &hf_x11_struct_xkb_KeyModMap_mods_mask_Lock,
21466  &hf_x11_struct_xkb_KeyModMap_mods_mask_Control,
21467  &hf_x11_struct_xkb_KeyModMap_mods_mask_1,
21468  &hf_x11_struct_xkb_KeyModMap_mods_mask_2,
21469  &hf_x11_struct_xkb_KeyModMap_mods_mask_3,
21470  &hf_x11_struct_xkb_KeyModMap_mods_mask_4,
21471  &hf_x11_struct_xkb_KeyModMap_mods_mask_5,
21472  &hf_x11_struct_xkb_KeyModMap_mods_mask_Any,
21473  NULL
21474  };
21475  proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_struct_xkb_KeyModMap_mods, ett_x11_rectangle, mods_bits, byte_order);
21476  }
21477  *offsetp += 1;
21478  }
21479 }
21480 
21481 static void struct_xkb_KeyVModMap(tvbuff_t *tvb, int *offsetp, proto_tree *root, guint byte_order _U_, int count)
21482 {
21483  int i;
21484  for (i = 0; i < count; i++) {
21485  proto_item *item;
21486  proto_tree *t;
21487 
21488  item = proto_tree_add_item(root, hf_x11_struct_xkb_KeyVModMap, tvb, *offsetp, 4, ENC_NA);
21489  t = proto_item_add_subtree(item, ett_x11_rectangle);
21490  proto_tree_add_item(t, hf_x11_struct_xkb_KeyVModMap_keycode, tvb, *offsetp, 1, byte_order);
21491  *offsetp += 1;
21492  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
21493  *offsetp += 1;
21494  {
21495  const int* vmods_bits [] = {
21496  &hf_x11_struct_xkb_KeyVModMap_vmods_mask_0,
21497  &hf_x11_struct_xkb_KeyVModMap_vmods_mask_1,
21498  &hf_x11_struct_xkb_KeyVModMap_vmods_mask_2,
21499  &hf_x11_struct_xkb_KeyVModMap_vmods_mask_3,
21500  &hf_x11_struct_xkb_KeyVModMap_vmods_mask_4,
21501  &hf_x11_struct_xkb_KeyVModMap_vmods_mask_5,
21502  &hf_x11_struct_xkb_KeyVModMap_vmods_mask_6,
21503  &hf_x11_struct_xkb_KeyVModMap_vmods_mask_7,
21504  &hf_x11_struct_xkb_KeyVModMap_vmods_mask_8,
21505  &hf_x11_struct_xkb_KeyVModMap_vmods_mask_9,
21506  &hf_x11_struct_xkb_KeyVModMap_vmods_mask_10,
21507  &hf_x11_struct_xkb_KeyVModMap_vmods_mask_11,
21508  &hf_x11_struct_xkb_KeyVModMap_vmods_mask_12,
21509  &hf_x11_struct_xkb_KeyVModMap_vmods_mask_13,
21510  &hf_x11_struct_xkb_KeyVModMap_vmods_mask_14,
21511  &hf_x11_struct_xkb_KeyVModMap_vmods_mask_15,
21512  NULL
21513  };
21514  proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_struct_xkb_KeyVModMap_vmods, ett_x11_rectangle, vmods_bits, byte_order);
21515  }
21516  *offsetp += 2;
21517  }
21518 }
21519 
21520 static void struct_xkb_KTSetMapEntry(tvbuff_t *tvb, int *offsetp, proto_tree *root, guint byte_order _U_, int count)
21521 {
21522  int i;
21523  for (i = 0; i < count; i++) {
21524  proto_item *item;
21525  proto_tree *t;
21526 
21527  item = proto_tree_add_item(root, hf_x11_struct_xkb_KTSetMapEntry, tvb, *offsetp, 4, ENC_NA);
21528  t = proto_item_add_subtree(item, ett_x11_rectangle);
21529  proto_tree_add_item(t, hf_x11_struct_xkb_KTSetMapEntry_level, tvb, *offsetp, 1, byte_order);
21530  *offsetp += 1;
21531  {
21532  const int* realMods_bits [] = {
21533  &hf_x11_struct_xkb_KTSetMapEntry_realMods_mask_Shift,
21534  &hf_x11_struct_xkb_KTSetMapEntry_realMods_mask_Lock,
21535  &hf_x11_struct_xkb_KTSetMapEntry_realMods_mask_Control,
21536  &hf_x11_struct_xkb_KTSetMapEntry_realMods_mask_1,
21537  &hf_x11_struct_xkb_KTSetMapEntry_realMods_mask_2,
21538  &hf_x11_struct_xkb_KTSetMapEntry_realMods_mask_3,
21539  &hf_x11_struct_xkb_KTSetMapEntry_realMods_mask_4,
21540  &hf_x11_struct_xkb_KTSetMapEntry_realMods_mask_5,
21541  &hf_x11_struct_xkb_KTSetMapEntry_realMods_mask_Any,
21542  NULL
21543  };
21544  proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_struct_xkb_KTSetMapEntry_realMods, ett_x11_rectangle, realMods_bits, byte_order);
21545  }
21546  *offsetp += 1;
21547  {
21548  const int* virtualMods_bits [] = {
21549  &hf_x11_struct_xkb_KTSetMapEntry_virtualMods_mask_0,
21550  &hf_x11_struct_xkb_KTSetMapEntry_virtualMods_mask_1,
21551  &hf_x11_struct_xkb_KTSetMapEntry_virtualMods_mask_2,
21552  &hf_x11_struct_xkb_KTSetMapEntry_virtualMods_mask_3,
21553  &hf_x11_struct_xkb_KTSetMapEntry_virtualMods_mask_4,
21554  &hf_x11_struct_xkb_KTSetMapEntry_virtualMods_mask_5,
21555  &hf_x11_struct_xkb_KTSetMapEntry_virtualMods_mask_6,
21556  &hf_x11_struct_xkb_KTSetMapEntry_virtualMods_mask_7,
21557  &hf_x11_struct_xkb_KTSetMapEntry_virtualMods_mask_8,
21558  &hf_x11_struct_xkb_KTSetMapEntry_virtualMods_mask_9,
21559  &hf_x11_struct_xkb_KTSetMapEntry_virtualMods_mask_10,
21560  &hf_x11_struct_xkb_KTSetMapEntry_virtualMods_mask_11,
21561  &hf_x11_struct_xkb_KTSetMapEntry_virtualMods_mask_12,
21562  &hf_x11_struct_xkb_KTSetMapEntry_virtualMods_mask_13,
21563  &hf_x11_struct_xkb_KTSetMapEntry_virtualMods_mask_14,
21564  &hf_x11_struct_xkb_KTSetMapEntry_virtualMods_mask_15,
21565  NULL
21566  };
21567  proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_struct_xkb_KTSetMapEntry_virtualMods, ett_x11_rectangle, virtualMods_bits, byte_order);
21568  }
21569  *offsetp += 2;
21570  }
21571 }
21572 
21573 static int struct_size_xkb_SetKeyType(tvbuff_t *tvb _U_, int *offsetp _U_, guint byte_order _U_)
21574 {
21575  int size = 0;
21576  int f_nMapEntries;
21577  int f_preserve;
21578  f_nMapEntries = tvb_get_guint8(tvb, *offsetp + size + 5);
21579  f_preserve = tvb_get_guint8(tvb, *offsetp + size + 6);
21580  size += f_nMapEntries * 4;
21581  size += (f_preserve * f_nMapEntries) * 4;
21582  return size + 8;
21583 }
21584 
21585 static void struct_xkb_SetKeyType(tvbuff_t *tvb, int *offsetp, proto_tree *root, guint byte_order _U_, int count)
21586 {
21587  int i;
21588  for (i = 0; i < count; i++) {
21589  proto_item *item;
21590  proto_tree *t;
21591  int f_nMapEntries;
21592  int f_preserve;
21593 
21594  item = proto_tree_add_item(root, hf_x11_struct_xkb_SetKeyType, tvb, *offsetp, struct_size_xkb_SetKeyType(tvb, offsetp, byte_order), ENC_NA);
21595  t = proto_item_add_subtree(item, ett_x11_rectangle);
21596  {
21597  const int* mask_bits [] = {
21598  &hf_x11_struct_xkb_SetKeyType_mask_mask_Shift,
21599  &hf_x11_struct_xkb_SetKeyType_mask_mask_Lock,
21600  &hf_x11_struct_xkb_SetKeyType_mask_mask_Control,
21601  &hf_x11_struct_xkb_SetKeyType_mask_mask_1,
21602  &hf_x11_struct_xkb_SetKeyType_mask_mask_2,
21603  &hf_x11_struct_xkb_SetKeyType_mask_mask_3,
21604  &hf_x11_struct_xkb_SetKeyType_mask_mask_4,
21605  &hf_x11_struct_xkb_SetKeyType_mask_mask_5,
21606  &hf_x11_struct_xkb_SetKeyType_mask_mask_Any,
21607  NULL
21608  };
21609  proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_struct_xkb_SetKeyType_mask, ett_x11_rectangle, mask_bits, byte_order);
21610  }
21611  *offsetp += 1;
21612  {
21613  const int* realMods_bits [] = {
21614  &hf_x11_struct_xkb_SetKeyType_realMods_mask_Shift,
21615  &hf_x11_struct_xkb_SetKeyType_realMods_mask_Lock,
21616  &hf_x11_struct_xkb_SetKeyType_realMods_mask_Control,
21617  &hf_x11_struct_xkb_SetKeyType_realMods_mask_1,
21618  &hf_x11_struct_xkb_SetKeyType_realMods_mask_2,
21619  &hf_x11_struct_xkb_SetKeyType_realMods_mask_3,
21620  &hf_x11_struct_xkb_SetKeyType_realMods_mask_4,
21621  &hf_x11_struct_xkb_SetKeyType_realMods_mask_5,
21622  &hf_x11_struct_xkb_SetKeyType_realMods_mask_Any,
21623  NULL
21624  };
21625  proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_struct_xkb_SetKeyType_realMods, ett_x11_rectangle, realMods_bits, byte_order);
21626  }
21627  *offsetp += 1;
21628  {
21629  const int* virtualMods_bits [] = {
21630  &hf_x11_struct_xkb_SetKeyType_virtualMods_mask_0,
21631  &hf_x11_struct_xkb_SetKeyType_virtualMods_mask_1,
21632  &hf_x11_struct_xkb_SetKeyType_virtualMods_mask_2,
21633  &hf_x11_struct_xkb_SetKeyType_virtualMods_mask_3,
21634  &hf_x11_struct_xkb_SetKeyType_virtualMods_mask_4,
21635  &hf_x11_struct_xkb_SetKeyType_virtualMods_mask_5,
21636  &hf_x11_struct_xkb_SetKeyType_virtualMods_mask_6,
21637  &hf_x11_struct_xkb_SetKeyType_virtualMods_mask_7,
21638  &hf_x11_struct_xkb_SetKeyType_virtualMods_mask_8,
21639  &hf_x11_struct_xkb_SetKeyType_virtualMods_mask_9,
21640  &hf_x11_struct_xkb_SetKeyType_virtualMods_mask_10,
21641  &hf_x11_struct_xkb_SetKeyType_virtualMods_mask_11,
21642  &hf_x11_struct_xkb_SetKeyType_virtualMods_mask_12,
21643  &hf_x11_struct_xkb_SetKeyType_virtualMods_mask_13,
21644  &hf_x11_struct_xkb_SetKeyType_virtualMods_mask_14,
21645  &hf_x11_struct_xkb_SetKeyType_virtualMods_mask_15,
21646  NULL
21647  };
21648  proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_struct_xkb_SetKeyType_virtualMods, ett_x11_rectangle, virtualMods_bits, byte_order);
21649  }
21650  *offsetp += 2;
21651  proto_tree_add_item(t, hf_x11_struct_xkb_SetKeyType_numLevels, tvb, *offsetp, 1, byte_order);
21652  *offsetp += 1;
21653  f_nMapEntries = tvb_get_guint8(tvb, *offsetp);
21654  proto_tree_add_item(t, hf_x11_struct_xkb_SetKeyType_nMapEntries, tvb, *offsetp, 1, byte_order);
21655  *offsetp += 1;
21656  f_preserve = tvb_get_guint8(tvb, *offsetp);
21657  proto_tree_add_item(t, hf_x11_struct_xkb_SetKeyType_preserve, tvb, *offsetp, 1, byte_order);
21658  *offsetp += 1;
21659  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
21660  *offsetp += 1;
21661  struct_xkb_KTSetMapEntry(tvb, offsetp, t, byte_order, f_nMapEntries);
21662  struct_xkb_KTSetMapEntry(tvb, offsetp, t, byte_order, (f_preserve * f_nMapEntries));
21663  }
21664 }
21665 
21666 static int struct_size_xkb_Listing(tvbuff_t *tvb _U_, int *offsetp _U_, guint byte_order _U_)
21667 {
21668  int size = 0;
21669  int f_length;
21670  f_length = tvb_get_guint16(tvb, *offsetp + size + 2, byte_order);
21671  size += f_length * 1;
21672  size = (size + 1) & ~1;
21673  return size + 4;
21674 }
21675 
21676 static void struct_xkb_Listing(tvbuff_t *tvb, int *offsetp, proto_tree *root, guint byte_order _U_, int count)
21677 {
21678  int i;
21679  for (i = 0; i < count; i++) {
21680  proto_item *item;
21681  proto_tree *t;
21682  int f_length;
21683 
21684  item = proto_tree_add_item(root, hf_x11_struct_xkb_Listing, tvb, *offsetp, struct_size_xkb_Listing(tvb, offsetp, byte_order), ENC_NA);
21685  t = proto_item_add_subtree(item, ett_x11_rectangle);
21686  proto_tree_add_item(t, hf_x11_struct_xkb_Listing_flags, tvb, *offsetp, 2, byte_order);
21687  *offsetp += 2;
21688  f_length = tvb_get_guint16(tvb, *offsetp, byte_order);
21689  proto_tree_add_item(t, hf_x11_struct_xkb_Listing_length, tvb, *offsetp, 2, byte_order);
21690  *offsetp += 2;
21691  listOfByte(tvb, offsetp, t, hf_x11_struct_xkb_Listing_string, f_length, byte_order);
21692  if (*offsetp % 2) {
21693  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, (2 - *offsetp % 2), ENC_NA);
21694  *offsetp += (2 - *offsetp % 2);
21695  }
21696  }
21697 }
21698 
21699 static int struct_size_xkb_DeviceLedInfo(tvbuff_t *tvb _U_, int *offsetp _U_, guint byte_order _U_)
21700 {
21701  int size = 0;
21702  int f_mapsPresent;
21703  int f_namesPresent;
21704  f_namesPresent = tvb_get_guint32(tvb, *offsetp + size + 4, byte_order);
21705  f_mapsPresent = tvb_get_guint32(tvb, *offsetp + size + 8, byte_order);
21706  size += ws_count_ones(f_namesPresent) * 4;
21707  size += ws_count_ones(f_mapsPresent) * 12;
21708  return size + 20;
21709 }
21710 
21711 static void struct_xkb_DeviceLedInfo(tvbuff_t *tvb, int *offsetp, proto_tree *root, guint byte_order _U_, int count)
21712 {
21713  int i;
21714  for (i = 0; i < count; i++) {
21715  proto_item *item;
21716  proto_tree *t;
21717  int f_namesPresent;
21718  int f_mapsPresent;
21719 
21720  item = proto_tree_add_item(root, hf_x11_struct_xkb_DeviceLedInfo, tvb, *offsetp, struct_size_xkb_DeviceLedInfo(tvb, offsetp, byte_order), ENC_NA);
21721  t = proto_item_add_subtree(item, ett_x11_rectangle);
21722  field16(tvb, offsetp, t, hf_x11_struct_xkb_DeviceLedInfo_ledClass, byte_order);
21723  field16(tvb, offsetp, t, hf_x11_struct_xkb_DeviceLedInfo_ledID, byte_order);
21724  f_namesPresent = tvb_get_guint32(tvb, *offsetp, byte_order);
21725  proto_tree_add_item(t, hf_x11_struct_xkb_DeviceLedInfo_namesPresent, tvb, *offsetp, 4, byte_order);
21726  *offsetp += 4;
21727  f_mapsPresent = tvb_get_guint32(tvb, *offsetp, byte_order);
21728  proto_tree_add_item(t, hf_x11_struct_xkb_DeviceLedInfo_mapsPresent, tvb, *offsetp, 4, byte_order);
21729  *offsetp += 4;
21730  proto_tree_add_item(t, hf_x11_struct_xkb_DeviceLedInfo_physIndicators, tvb, *offsetp, 4, byte_order);
21731  *offsetp += 4;
21732  proto_tree_add_item(t, hf_x11_struct_xkb_DeviceLedInfo_state, tvb, *offsetp, 4, byte_order);
21733  *offsetp += 4;
21734  listOfCard32(tvb, offsetp, t, hf_x11_struct_xkb_DeviceLedInfo_names, hf_x11_struct_xkb_DeviceLedInfo_names_item, ws_count_ones(f_namesPresent), byte_order);
21735  struct_xkb_IndicatorMap(tvb, offsetp, t, byte_order, ws_count_ones(f_mapsPresent));
21736  }
21737 }
21738 
21739 static void struct_xkb_SANoAction(tvbuff_t *tvb, int *offsetp, proto_tree *root, guint byte_order _U_, int count)
21740 {
21741  int i;
21742  for (i = 0; i < count; i++) {
21743  proto_item *item;
21744  proto_tree *t;
21745 
21746  item = proto_tree_add_item(root, hf_x11_struct_xkb_SANoAction, tvb, *offsetp, 8, ENC_NA);
21747  t = proto_item_add_subtree(item, ett_x11_rectangle);
21748  field8(tvb, offsetp, t, hf_x11_struct_xkb_SANoAction_type, byte_order);
21749  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 7, ENC_NA);
21750  *offsetp += 7;
21751  }
21752 }
21753 
21754 static void struct_xkb_SASetMods(tvbuff_t *tvb, int *offsetp, proto_tree *root, guint byte_order _U_, int count)
21755 {
21756  int i;
21757  for (i = 0; i < count; i++) {
21758  proto_item *item;
21759  proto_tree *t;
21760 
21761  item = proto_tree_add_item(root, hf_x11_struct_xkb_SASetMods, tvb, *offsetp, 8, ENC_NA);
21762  t = proto_item_add_subtree(item, ett_x11_rectangle);
21763  field8(tvb, offsetp, t, hf_x11_struct_xkb_SASetMods_type, byte_order);
21764  {
21765  const int* flags_bits [] = {
21766  &hf_x11_struct_xkb_SASetMods_flags_mask_ClearLocks,
21767  &hf_x11_struct_xkb_SASetMods_flags_mask_LatchToLock,
21768  &hf_x11_struct_xkb_SASetMods_flags_mask_GroupAbsolute,
21769  NULL
21770  };
21771  proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_struct_xkb_SASetMods_flags, ett_x11_rectangle, flags_bits, byte_order);
21772  }
21773  *offsetp += 1;
21774  {
21775  const int* mask_bits [] = {
21776  &hf_x11_struct_xkb_SASetMods_mask_mask_Shift,
21777  &hf_x11_struct_xkb_SASetMods_mask_mask_Lock,
21778  &hf_x11_struct_xkb_SASetMods_mask_mask_Control,
21779  &hf_x11_struct_xkb_SASetMods_mask_mask_1,
21780  &hf_x11_struct_xkb_SASetMods_mask_mask_2,
21781  &hf_x11_struct_xkb_SASetMods_mask_mask_3,
21782  &hf_x11_struct_xkb_SASetMods_mask_mask_4,
21783  &hf_x11_struct_xkb_SASetMods_mask_mask_5,
21784  &hf_x11_struct_xkb_SASetMods_mask_mask_Any,
21785  NULL
21786  };
21787  proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_struct_xkb_SASetMods_mask, ett_x11_rectangle, mask_bits, byte_order);
21788  }
21789  *offsetp += 1;
21790  {
21791  const int* realMods_bits [] = {
21792  &hf_x11_struct_xkb_SASetMods_realMods_mask_Shift,
21793  &hf_x11_struct_xkb_SASetMods_realMods_mask_Lock,
21794  &hf_x11_struct_xkb_SASetMods_realMods_mask_Control,
21795  &hf_x11_struct_xkb_SASetMods_realMods_mask_1,
21796  &hf_x11_struct_xkb_SASetMods_realMods_mask_2,
21797  &hf_x11_struct_xkb_SASetMods_realMods_mask_3,
21798  &hf_x11_struct_xkb_SASetMods_realMods_mask_4,
21799  &hf_x11_struct_xkb_SASetMods_realMods_mask_5,
21800  &hf_x11_struct_xkb_SASetMods_realMods_mask_Any,
21801  NULL
21802  };
21803  proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_struct_xkb_SASetMods_realMods, ett_x11_rectangle, realMods_bits, byte_order);
21804  }
21805  *offsetp += 1;
21806  {
21807  const int* vmodsHigh_bits [] = {
21808  &hf_x11_struct_xkb_SASetMods_vmodsHigh_mask_8,
21809  &hf_x11_struct_xkb_SASetMods_vmodsHigh_mask_9,
21810  &hf_x11_struct_xkb_SASetMods_vmodsHigh_mask_10,
21811  &hf_x11_struct_xkb_SASetMods_vmodsHigh_mask_11,
21812  &hf_x11_struct_xkb_SASetMods_vmodsHigh_mask_12,
21813  &hf_x11_struct_xkb_SASetMods_vmodsHigh_mask_13,
21814  &hf_x11_struct_xkb_SASetMods_vmodsHigh_mask_14,
21815  &hf_x11_struct_xkb_SASetMods_vmodsHigh_mask_15,
21816  NULL
21817  };
21818  proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_struct_xkb_SASetMods_vmodsHigh, ett_x11_rectangle, vmodsHigh_bits, byte_order);
21819  }
21820  *offsetp += 1;
21821  {
21822  const int* vmodsLow_bits [] = {
21823  &hf_x11_struct_xkb_SASetMods_vmodsLow_mask_0,
21824  &hf_x11_struct_xkb_SASetMods_vmodsLow_mask_1,
21825  &hf_x11_struct_xkb_SASetMods_vmodsLow_mask_2,
21826  &hf_x11_struct_xkb_SASetMods_vmodsLow_mask_3,
21827  &hf_x11_struct_xkb_SASetMods_vmodsLow_mask_4,
21828  &hf_x11_struct_xkb_SASetMods_vmodsLow_mask_5,
21829  &hf_x11_struct_xkb_SASetMods_vmodsLow_mask_6,
21830  &hf_x11_struct_xkb_SASetMods_vmodsLow_mask_7,
21831  NULL
21832  };
21833  proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_struct_xkb_SASetMods_vmodsLow, ett_x11_rectangle, vmodsLow_bits, byte_order);
21834  }
21835  *offsetp += 1;
21836  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 2, ENC_NA);
21837  *offsetp += 2;
21838  }
21839 }
21840 
21841 static void struct_xkb_SASetGroup(tvbuff_t *tvb, int *offsetp, proto_tree *root, guint byte_order _U_, int count)
21842 {
21843  int i;
21844  for (i = 0; i < count; i++) {
21845  proto_item *item;
21846  proto_tree *t;
21847 
21848  item = proto_tree_add_item(root, hf_x11_struct_xkb_SASetGroup, tvb, *offsetp, 8, ENC_NA);
21849  t = proto_item_add_subtree(item, ett_x11_rectangle);
21850  field8(tvb, offsetp, t, hf_x11_struct_xkb_SASetGroup_type, byte_order);
21851  {
21852  const int* flags_bits [] = {
21853  &hf_x11_struct_xkb_SASetGroup_flags_mask_ClearLocks,
21854  &hf_x11_struct_xkb_SASetGroup_flags_mask_LatchToLock,
21855  &hf_x11_struct_xkb_SASetGroup_flags_mask_GroupAbsolute,
21856  NULL
21857  };
21858  proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_struct_xkb_SASetGroup_flags, ett_x11_rectangle, flags_bits, byte_order);
21859  }
21860  *offsetp += 1;
21861  proto_tree_add_item(t, hf_x11_struct_xkb_SASetGroup_group, tvb, *offsetp, 1, byte_order);
21862  *offsetp += 1;
21863  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 5, ENC_NA);
21864  *offsetp += 5;
21865  }
21866 }
21867 
21868 static void struct_xkb_SAMovePtr(tvbuff_t *tvb, int *offsetp, proto_tree *root, guint byte_order _U_, int count)
21869 {
21870  int i;
21871  for (i = 0; i < count; i++) {
21872  proto_item *item;
21873  proto_tree *t;
21874 
21875  item = proto_tree_add_item(root, hf_x11_struct_xkb_SAMovePtr, tvb, *offsetp, 8, ENC_NA);
21876  t = proto_item_add_subtree(item, ett_x11_rectangle);
21877  field8(tvb, offsetp, t, hf_x11_struct_xkb_SAMovePtr_type, byte_order);
21878  {
21879  const int* flags_bits [] = {
21880  &hf_x11_struct_xkb_SAMovePtr_flags_mask_NoAcceleration,
21881  &hf_x11_struct_xkb_SAMovePtr_flags_mask_MoveAbsoluteX,
21882  &hf_x11_struct_xkb_SAMovePtr_flags_mask_MoveAbsoluteY,
21883  NULL
21884  };
21885  proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_struct_xkb_SAMovePtr_flags, ett_x11_rectangle, flags_bits, byte_order);
21886  }
21887  *offsetp += 1;
21888  proto_tree_add_item(t, hf_x11_struct_xkb_SAMovePtr_xHigh, tvb, *offsetp, 1, byte_order);
21889  *offsetp += 1;
21890  proto_tree_add_item(t, hf_x11_struct_xkb_SAMovePtr_xLow, tvb, *offsetp, 1, byte_order);
21891  *offsetp += 1;
21892  proto_tree_add_item(t, hf_x11_struct_xkb_SAMovePtr_yHigh, tvb, *offsetp, 1, byte_order);
21893  *offsetp += 1;
21894  proto_tree_add_item(t, hf_x11_struct_xkb_SAMovePtr_yLow, tvb, *offsetp, 1, byte_order);
21895  *offsetp += 1;
21896  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 2, ENC_NA);
21897  *offsetp += 2;
21898  }
21899 }
21900 
21901 static void struct_xkb_SAPtrBtn(tvbuff_t *tvb, int *offsetp, proto_tree *root, guint byte_order _U_, int count)
21902 {
21903  int i;
21904  for (i = 0; i < count; i++) {
21905  proto_item *item;
21906  proto_tree *t;
21907 
21908  item = proto_tree_add_item(root, hf_x11_struct_xkb_SAPtrBtn, tvb, *offsetp, 8, ENC_NA);
21909  t = proto_item_add_subtree(item, ett_x11_rectangle);
21910  field8(tvb, offsetp, t, hf_x11_struct_xkb_SAPtrBtn_type, byte_order);
21911  proto_tree_add_item(t, hf_x11_struct_xkb_SAPtrBtn_flags, tvb, *offsetp, 1, byte_order);
21912  *offsetp += 1;
21913  proto_tree_add_item(t, hf_x11_struct_xkb_SAPtrBtn_count, tvb, *offsetp, 1, byte_order);
21914  *offsetp += 1;
21915  proto_tree_add_item(t, hf_x11_struct_xkb_SAPtrBtn_button, tvb, *offsetp, 1, byte_order);
21916  *offsetp += 1;
21917  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 4, ENC_NA);
21918  *offsetp += 4;
21919  }
21920 }
21921 
21922 static void struct_xkb_SALockPtrBtn(tvbuff_t *tvb, int *offsetp, proto_tree *root, guint byte_order _U_, int count)
21923 {
21924  int i;
21925  for (i = 0; i < count; i++) {
21926  proto_item *item;
21927  proto_tree *t;
21928 
21929  item = proto_tree_add_item(root, hf_x11_struct_xkb_SALockPtrBtn, tvb, *offsetp, 8, ENC_NA);
21930  t = proto_item_add_subtree(item, ett_x11_rectangle);
21931  field8(tvb, offsetp, t, hf_x11_struct_xkb_SALockPtrBtn_type, byte_order);
21932  proto_tree_add_item(t, hf_x11_struct_xkb_SALockPtrBtn_flags, tvb, *offsetp, 1, byte_order);
21933  *offsetp += 1;
21934  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
21935  *offsetp += 1;
21936  proto_tree_add_item(t, hf_x11_struct_xkb_SALockPtrBtn_button, tvb, *offsetp, 1, byte_order);
21937  *offsetp += 1;
21938  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 4, ENC_NA);
21939  *offsetp += 4;
21940  }
21941 }
21942 
21943 static void struct_xkb_SASetPtrDflt(tvbuff_t *tvb, int *offsetp, proto_tree *root, guint byte_order _U_, int count)
21944 {
21945  int i;
21946  for (i = 0; i < count; i++) {
21947  proto_item *item;
21948  proto_tree *t;
21949 
21950  item = proto_tree_add_item(root, hf_x11_struct_xkb_SASetPtrDflt, tvb, *offsetp, 8, ENC_NA);
21951  t = proto_item_add_subtree(item, ett_x11_rectangle);
21952  field8(tvb, offsetp, t, hf_x11_struct_xkb_SASetPtrDflt_type, byte_order);
21953  {
21954  const int* flags_bits [] = {
21955  &hf_x11_struct_xkb_SASetPtrDflt_flags_mask_AffectDfltButton,
21956  &hf_x11_struct_xkb_SASetPtrDflt_flags_mask_DfltBtnAbsolute,
21957  NULL
21958  };
21959  proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_struct_xkb_SASetPtrDflt_flags, ett_x11_rectangle, flags_bits, byte_order);
21960  }
21961  *offsetp += 1;
21962  {
21963  const int* affect_bits [] = {
21964  &hf_x11_struct_xkb_SASetPtrDflt_affect_mask_AffectDfltButton,
21965  &hf_x11_struct_xkb_SASetPtrDflt_affect_mask_DfltBtnAbsolute,
21966  NULL
21967  };
21968  proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_struct_xkb_SASetPtrDflt_affect, ett_x11_rectangle, affect_bits, byte_order);
21969  }
21970  *offsetp += 1;
21971  proto_tree_add_item(t, hf_x11_struct_xkb_SASetPtrDflt_value, tvb, *offsetp, 1, byte_order);
21972  *offsetp += 1;
21973  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 4, ENC_NA);
21974  *offsetp += 4;
21975  }
21976 }
21977 
21978 static void struct_xkb_SAIsoLock(tvbuff_t *tvb, int *offsetp, proto_tree *root, guint byte_order _U_, int count)
21979 {
21980  int i;
21981  for (i = 0; i < count; i++) {
21982  proto_item *item;
21983  proto_tree *t;
21984 
21985  item = proto_tree_add_item(root, hf_x11_struct_xkb_SAIsoLock, tvb, *offsetp, 8, ENC_NA);
21986  t = proto_item_add_subtree(item, ett_x11_rectangle);
21987  field8(tvb, offsetp, t, hf_x11_struct_xkb_SAIsoLock_type, byte_order);
21988  {
21989  const int* flags_bits [] = {
21990  &hf_x11_struct_xkb_SAIsoLock_flags_mask_NoLock,
21991  &hf_x11_struct_xkb_SAIsoLock_flags_mask_NoUnlock,
21992  &hf_x11_struct_xkb_SAIsoLock_flags_mask_GroupAbsolute,
21993  &hf_x11_struct_xkb_SAIsoLock_flags_mask_ISODfltIsGroup,
21994  NULL
21995  };
21996  proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_struct_xkb_SAIsoLock_flags, ett_x11_rectangle, flags_bits, byte_order);
21997  }
21998  *offsetp += 1;
21999  {
22000  const int* mask_bits [] = {
22001  &hf_x11_struct_xkb_SAIsoLock_mask_mask_Shift,
22002  &hf_x11_struct_xkb_SAIsoLock_mask_mask_Lock,
22003  &hf_x11_struct_xkb_SAIsoLock_mask_mask_Control,
22004  &hf_x11_struct_xkb_SAIsoLock_mask_mask_1,
22005  &hf_x11_struct_xkb_SAIsoLock_mask_mask_2,
22006  &hf_x11_struct_xkb_SAIsoLock_mask_mask_3,
22007  &hf_x11_struct_xkb_SAIsoLock_mask_mask_4,
22008  &hf_x11_struct_xkb_SAIsoLock_mask_mask_5,
22009  &hf_x11_struct_xkb_SAIsoLock_mask_mask_Any,
22010  NULL
22011  };
22012  proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_struct_xkb_SAIsoLock_mask, ett_x11_rectangle, mask_bits, byte_order);
22013  }
22014  *offsetp += 1;
22015  {
22016  const int* realMods_bits [] = {
22017  &hf_x11_struct_xkb_SAIsoLock_realMods_mask_Shift,
22018  &hf_x11_struct_xkb_SAIsoLock_realMods_mask_Lock,
22019  &hf_x11_struct_xkb_SAIsoLock_realMods_mask_Control,
22020  &hf_x11_struct_xkb_SAIsoLock_realMods_mask_1,
22021  &hf_x11_struct_xkb_SAIsoLock_realMods_mask_2,
22022  &hf_x11_struct_xkb_SAIsoLock_realMods_mask_3,
22023  &hf_x11_struct_xkb_SAIsoLock_realMods_mask_4,
22024  &hf_x11_struct_xkb_SAIsoLock_realMods_mask_5,
22025  &hf_x11_struct_xkb_SAIsoLock_realMods_mask_Any,
22026  NULL
22027  };
22028  proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_struct_xkb_SAIsoLock_realMods, ett_x11_rectangle, realMods_bits, byte_order);
22029  }
22030  *offsetp += 1;
22031  proto_tree_add_item(t, hf_x11_struct_xkb_SAIsoLock_group, tvb, *offsetp, 1, byte_order);
22032  *offsetp += 1;
22033  {
22034  const int* affect_bits [] = {
22035  &hf_x11_struct_xkb_SAIsoLock_affect_mask_Ctrls,
22036  &hf_x11_struct_xkb_SAIsoLock_affect_mask_Ptr,
22037  &hf_x11_struct_xkb_SAIsoLock_affect_mask_Group,
22038  &hf_x11_struct_xkb_SAIsoLock_affect_mask_Mods,
22039  NULL
22040  };
22041  proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_struct_xkb_SAIsoLock_affect, ett_x11_rectangle, affect_bits, byte_order);
22042  }
22043  *offsetp += 1;
22044  {
22045  const int* vmodsHigh_bits [] = {
22046  &hf_x11_struct_xkb_SAIsoLock_vmodsHigh_mask_8,
22047  &hf_x11_struct_xkb_SAIsoLock_vmodsHigh_mask_9,
22048  &hf_x11_struct_xkb_SAIsoLock_vmodsHigh_mask_10,
22049  &hf_x11_struct_xkb_SAIsoLock_vmodsHigh_mask_11,
22050  &hf_x11_struct_xkb_SAIsoLock_vmodsHigh_mask_12,
22051  &hf_x11_struct_xkb_SAIsoLock_vmodsHigh_mask_13,
22052  &hf_x11_struct_xkb_SAIsoLock_vmodsHigh_mask_14,
22053  &hf_x11_struct_xkb_SAIsoLock_vmodsHigh_mask_15,
22054  NULL
22055  };
22056  proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_struct_xkb_SAIsoLock_vmodsHigh, ett_x11_rectangle, vmodsHigh_bits, byte_order);
22057  }
22058  *offsetp += 1;
22059  {
22060  const int* vmodsLow_bits [] = {
22061  &hf_x11_struct_xkb_SAIsoLock_vmodsLow_mask_0,
22062  &hf_x11_struct_xkb_SAIsoLock_vmodsLow_mask_1,
22063  &hf_x11_struct_xkb_SAIsoLock_vmodsLow_mask_2,
22064  &hf_x11_struct_xkb_SAIsoLock_vmodsLow_mask_3,
22065  &hf_x11_struct_xkb_SAIsoLock_vmodsLow_mask_4,
22066  &hf_x11_struct_xkb_SAIsoLock_vmodsLow_mask_5,
22067  &hf_x11_struct_xkb_SAIsoLock_vmodsLow_mask_6,
22068  &hf_x11_struct_xkb_SAIsoLock_vmodsLow_mask_7,
22069  NULL
22070  };
22071  proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_struct_xkb_SAIsoLock_vmodsLow, ett_x11_rectangle, vmodsLow_bits, byte_order);
22072  }
22073  *offsetp += 1;
22074  }
22075 }
22076 
22077 static void struct_xkb_SATerminate(tvbuff_t *tvb, int *offsetp, proto_tree *root, guint byte_order _U_, int count)
22078 {
22079  int i;
22080  for (i = 0; i < count; i++) {
22081  proto_item *item;
22082  proto_tree *t;
22083 
22084  item = proto_tree_add_item(root, hf_x11_struct_xkb_SATerminate, tvb, *offsetp, 8, ENC_NA);
22085  t = proto_item_add_subtree(item, ett_x11_rectangle);
22086  field8(tvb, offsetp, t, hf_x11_struct_xkb_SATerminate_type, byte_order);
22087  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 7, ENC_NA);
22088  *offsetp += 7;
22089  }
22090 }
22091 
22092 static void struct_xkb_SASwitchScreen(tvbuff_t *tvb, int *offsetp, proto_tree *root, guint byte_order _U_, int count)
22093 {
22094  int i;
22095  for (i = 0; i < count; i++) {
22096  proto_item *item;
22097  proto_tree *t;
22098 
22099  item = proto_tree_add_item(root, hf_x11_struct_xkb_SASwitchScreen, tvb, *offsetp, 8, ENC_NA);
22100  t = proto_item_add_subtree(item, ett_x11_rectangle);
22101  field8(tvb, offsetp, t, hf_x11_struct_xkb_SASwitchScreen_type, byte_order);
22102  proto_tree_add_item(t, hf_x11_struct_xkb_SASwitchScreen_flags, tvb, *offsetp, 1, byte_order);
22103  *offsetp += 1;
22104  proto_tree_add_item(t, hf_x11_struct_xkb_SASwitchScreen_newScreen, tvb, *offsetp, 1, byte_order);
22105  *offsetp += 1;
22106  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 5, ENC_NA);
22107  *offsetp += 5;
22108  }
22109 }
22110 
22111 static void struct_xkb_SASetControls(tvbuff_t *tvb, int *offsetp, proto_tree *root, guint byte_order _U_, int count)
22112 {
22113  int i;
22114  for (i = 0; i < count; i++) {
22115  proto_item *item;
22116  proto_tree *t;
22117 
22118  item = proto_tree_add_item(root, hf_x11_struct_xkb_SASetControls, tvb, *offsetp, 8, ENC_NA);
22119  t = proto_item_add_subtree(item, ett_x11_rectangle);
22120  field8(tvb, offsetp, t, hf_x11_struct_xkb_SASetControls_type, byte_order);
22121  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 3, ENC_NA);
22122  *offsetp += 3;
22123  {
22124  const int* boolCtrlsHigh_bits [] = {
22125  &hf_x11_struct_xkb_SASetControls_boolCtrlsHigh_mask_AccessXFeedback,
22126  &hf_x11_struct_xkb_SASetControls_boolCtrlsHigh_mask_AudibleBell,
22127  &hf_x11_struct_xkb_SASetControls_boolCtrlsHigh_mask_Overlay1,
22128  &hf_x11_struct_xkb_SASetControls_boolCtrlsHigh_mask_Overlay2,
22129  &hf_x11_struct_xkb_SASetControls_boolCtrlsHigh_mask_IgnoreGroupLock,
22130  NULL
22131  };
22132  proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_struct_xkb_SASetControls_boolCtrlsHigh, ett_x11_rectangle, boolCtrlsHigh_bits, byte_order);
22133  }
22134  *offsetp += 1;
22135  {
22136  const int* boolCtrlsLow_bits [] = {
22137  &hf_x11_struct_xkb_SASetControls_boolCtrlsLow_mask_RepeatKeys,
22138  &hf_x11_struct_xkb_SASetControls_boolCtrlsLow_mask_SlowKeys,
22139  &hf_x11_struct_xkb_SASetControls_boolCtrlsLow_mask_BounceKeys,
22140  &hf_x11_struct_xkb_SASetControls_boolCtrlsLow_mask_StickyKeys,
22141  &hf_x11_struct_xkb_SASetControls_boolCtrlsLow_mask_MouseKeys,
22142  &hf_x11_struct_xkb_SASetControls_boolCtrlsLow_mask_MouseKeysAccel,
22143  &hf_x11_struct_xkb_SASetControls_boolCtrlsLow_mask_AccessXKeys,
22144  &hf_x11_struct_xkb_SASetControls_boolCtrlsLow_mask_AccessXTimeout,
22145  NULL
22146  };
22147  proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_struct_xkb_SASetControls_boolCtrlsLow, ett_x11_rectangle, boolCtrlsLow_bits, byte_order);
22148  }
22149  *offsetp += 1;
22150  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 2, ENC_NA);
22151  *offsetp += 2;
22152  }
22153 }
22154 
22155 static void struct_xkb_SAActionMessage(tvbuff_t *tvb, int *offsetp, proto_tree *root, guint byte_order _U_, int count)
22156 {
22157  int i;
22158  for (i = 0; i < count; i++) {
22159  proto_item *item;
22160  proto_tree *t;
22161 
22162  item = proto_tree_add_item(root, hf_x11_struct_xkb_SAActionMessage, tvb, *offsetp, 8, ENC_NA);
22163  t = proto_item_add_subtree(item, ett_x11_rectangle);
22164  field8(tvb, offsetp, t, hf_x11_struct_xkb_SAActionMessage_type, byte_order);
22165  {
22166  const int* flags_bits [] = {
22167  &hf_x11_struct_xkb_SAActionMessage_flags_mask_OnPress,
22168  &hf_x11_struct_xkb_SAActionMessage_flags_mask_OnRelease,
22169  &hf_x11_struct_xkb_SAActionMessage_flags_mask_GenKeyEvent,
22170  NULL
22171  };
22172  proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_struct_xkb_SAActionMessage_flags, ett_x11_rectangle, flags_bits, byte_order);
22173  }
22174  *offsetp += 1;
22175  listOfByte(tvb, offsetp, t, hf_x11_struct_xkb_SAActionMessage_message, 6, byte_order);
22176  }
22177 }
22178 
22179 static void struct_xkb_SARedirectKey(tvbuff_t *tvb, int *offsetp, proto_tree *root, guint byte_order _U_, int count)
22180 {
22181  int i;
22182  for (i = 0; i < count; i++) {
22183  proto_item *item;
22184  proto_tree *t;
22185 
22186  item = proto_tree_add_item(root, hf_x11_struct_xkb_SARedirectKey, tvb, *offsetp, 8, ENC_NA);
22187  t = proto_item_add_subtree(item, ett_x11_rectangle);
22188  field8(tvb, offsetp, t, hf_x11_struct_xkb_SARedirectKey_type, byte_order);
22189  proto_tree_add_item(t, hf_x11_struct_xkb_SARedirectKey_newkey, tvb, *offsetp, 1, byte_order);
22190  *offsetp += 1;
22191  {
22192  const int* mask_bits [] = {
22193  &hf_x11_struct_xkb_SARedirectKey_mask_mask_Shift,
22194  &hf_x11_struct_xkb_SARedirectKey_mask_mask_Lock,
22195  &hf_x11_struct_xkb_SARedirectKey_mask_mask_Control,
22196  &hf_x11_struct_xkb_SARedirectKey_mask_mask_1,
22197  &hf_x11_struct_xkb_SARedirectKey_mask_mask_2,
22198  &hf_x11_struct_xkb_SARedirectKey_mask_mask_3,
22199  &hf_x11_struct_xkb_SARedirectKey_mask_mask_4,
22200  &hf_x11_struct_xkb_SARedirectKey_mask_mask_5,
22201  &hf_x11_struct_xkb_SARedirectKey_mask_mask_Any,
22202  NULL
22203  };
22204  proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_struct_xkb_SARedirectKey_mask, ett_x11_rectangle, mask_bits, byte_order);
22205  }
22206  *offsetp += 1;
22207  {
22208  const int* realModifiers_bits [] = {
22209  &hf_x11_struct_xkb_SARedirectKey_realModifiers_mask_Shift,
22210  &hf_x11_struct_xkb_SARedirectKey_realModifiers_mask_Lock,
22211  &hf_x11_struct_xkb_SARedirectKey_realModifiers_mask_Control,
22212  &hf_x11_struct_xkb_SARedirectKey_realModifiers_mask_1,
22213  &hf_x11_struct_xkb_SARedirectKey_realModifiers_mask_2,
22214  &hf_x11_struct_xkb_SARedirectKey_realModifiers_mask_3,
22215  &hf_x11_struct_xkb_SARedirectKey_realModifiers_mask_4,
22216  &hf_x11_struct_xkb_SARedirectKey_realModifiers_mask_5,
22217  &hf_x11_struct_xkb_SARedirectKey_realModifiers_mask_Any,
22218  NULL
22219  };
22220  proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_struct_xkb_SARedirectKey_realModifiers, ett_x11_rectangle, realModifiers_bits, byte_order);
22221  }
22222  *offsetp += 1;
22223  {
22224  const int* vmodsMaskHigh_bits [] = {
22225  &hf_x11_struct_xkb_SARedirectKey_vmodsMaskHigh_mask_8,
22226  &hf_x11_struct_xkb_SARedirectKey_vmodsMaskHigh_mask_9,
22227  &hf_x11_struct_xkb_SARedirectKey_vmodsMaskHigh_mask_10,
22228  &hf_x11_struct_xkb_SARedirectKey_vmodsMaskHigh_mask_11,
22229  &hf_x11_struct_xkb_SARedirectKey_vmodsMaskHigh_mask_12,
22230  &hf_x11_struct_xkb_SARedirectKey_vmodsMaskHigh_mask_13,
22231  &hf_x11_struct_xkb_SARedirectKey_vmodsMaskHigh_mask_14,
22232  &hf_x11_struct_xkb_SARedirectKey_vmodsMaskHigh_mask_15,
22233  NULL
22234  };
22235  proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_struct_xkb_SARedirectKey_vmodsMaskHigh, ett_x11_rectangle, vmodsMaskHigh_bits, byte_order);
22236  }
22237  *offsetp += 1;
22238  {
22239  const int* vmodsMaskLow_bits [] = {
22240  &hf_x11_struct_xkb_SARedirectKey_vmodsMaskLow_mask_0,
22241  &hf_x11_struct_xkb_SARedirectKey_vmodsMaskLow_mask_1,
22242  &hf_x11_struct_xkb_SARedirectKey_vmodsMaskLow_mask_2,
22243  &hf_x11_struct_xkb_SARedirectKey_vmodsMaskLow_mask_3,
22244  &hf_x11_struct_xkb_SARedirectKey_vmodsMaskLow_mask_4,
22245  &hf_x11_struct_xkb_SARedirectKey_vmodsMaskLow_mask_5,
22246  &hf_x11_struct_xkb_SARedirectKey_vmodsMaskLow_mask_6,
22247  &hf_x11_struct_xkb_SARedirectKey_vmodsMaskLow_mask_7,
22248  NULL
22249  };
22250  proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_struct_xkb_SARedirectKey_vmodsMaskLow, ett_x11_rectangle, vmodsMaskLow_bits, byte_order);
22251  }
22252  *offsetp += 1;
22253  {
22254  const int* vmodsHigh_bits [] = {
22255  &hf_x11_struct_xkb_SARedirectKey_vmodsHigh_mask_8,
22256  &hf_x11_struct_xkb_SARedirectKey_vmodsHigh_mask_9,
22257  &hf_x11_struct_xkb_SARedirectKey_vmodsHigh_mask_10,
22258  &hf_x11_struct_xkb_SARedirectKey_vmodsHigh_mask_11,
22259  &hf_x11_struct_xkb_SARedirectKey_vmodsHigh_mask_12,
22260  &hf_x11_struct_xkb_SARedirectKey_vmodsHigh_mask_13,
22261  &hf_x11_struct_xkb_SARedirectKey_vmodsHigh_mask_14,
22262  &hf_x11_struct_xkb_SARedirectKey_vmodsHigh_mask_15,
22263  NULL
22264  };
22265  proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_struct_xkb_SARedirectKey_vmodsHigh, ett_x11_rectangle, vmodsHigh_bits, byte_order);
22266  }
22267  *offsetp += 1;
22268  {
22269  const int* vmodsLow_bits [] = {
22270  &hf_x11_struct_xkb_SARedirectKey_vmodsLow_mask_0,
22271  &hf_x11_struct_xkb_SARedirectKey_vmodsLow_mask_1,
22272  &hf_x11_struct_xkb_SARedirectKey_vmodsLow_mask_2,
22273  &hf_x11_struct_xkb_SARedirectKey_vmodsLow_mask_3,
22274  &hf_x11_struct_xkb_SARedirectKey_vmodsLow_mask_4,
22275  &hf_x11_struct_xkb_SARedirectKey_vmodsLow_mask_5,
22276  &hf_x11_struct_xkb_SARedirectKey_vmodsLow_mask_6,
22277  &hf_x11_struct_xkb_SARedirectKey_vmodsLow_mask_7,
22278  NULL
22279  };
22280  proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_struct_xkb_SARedirectKey_vmodsLow, ett_x11_rectangle, vmodsLow_bits, byte_order);
22281  }
22282  *offsetp += 1;
22283  }
22284 }
22285 
22286 static void struct_xkb_SADeviceBtn(tvbuff_t *tvb, int *offsetp, proto_tree *root, guint byte_order _U_, int count)
22287 {
22288  int i;
22289  for (i = 0; i < count; i++) {
22290  proto_item *item;
22291  proto_tree *t;
22292 
22293  item = proto_tree_add_item(root, hf_x11_struct_xkb_SADeviceBtn, tvb, *offsetp, 8, ENC_NA);
22294  t = proto_item_add_subtree(item, ett_x11_rectangle);
22295  field8(tvb, offsetp, t, hf_x11_struct_xkb_SADeviceBtn_type, byte_order);
22296  proto_tree_add_item(t, hf_x11_struct_xkb_SADeviceBtn_flags, tvb, *offsetp, 1, byte_order);
22297  *offsetp += 1;
22298  proto_tree_add_item(t, hf_x11_struct_xkb_SADeviceBtn_count, tvb, *offsetp, 1, byte_order);
22299  *offsetp += 1;
22300  proto_tree_add_item(t, hf_x11_struct_xkb_SADeviceBtn_button, tvb, *offsetp, 1, byte_order);
22301  *offsetp += 1;
22302  proto_tree_add_item(t, hf_x11_struct_xkb_SADeviceBtn_device, tvb, *offsetp, 1, byte_order);
22303  *offsetp += 1;
22304  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 3, ENC_NA);
22305  *offsetp += 3;
22306  }
22307 }
22308 
22309 static void struct_xkb_SALockDeviceBtn(tvbuff_t *tvb, int *offsetp, proto_tree *root, guint byte_order _U_, int count)
22310 {
22311  int i;
22312  for (i = 0; i < count; i++) {
22313  proto_item *item;
22314  proto_tree *t;
22315 
22316  item = proto_tree_add_item(root, hf_x11_struct_xkb_SALockDeviceBtn, tvb, *offsetp, 8, ENC_NA);
22317  t = proto_item_add_subtree(item, ett_x11_rectangle);
22318  field8(tvb, offsetp, t, hf_x11_struct_xkb_SALockDeviceBtn_type, byte_order);
22319  {
22320  const int* flags_bits [] = {
22321  &hf_x11_struct_xkb_SALockDeviceBtn_flags_mask_NoLock,
22322  &hf_x11_struct_xkb_SALockDeviceBtn_flags_mask_NoUnlock,
22323  NULL
22324  };
22325  proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_struct_xkb_SALockDeviceBtn_flags, ett_x11_rectangle, flags_bits, byte_order);
22326  }
22327  *offsetp += 1;
22328  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
22329  *offsetp += 1;
22330  proto_tree_add_item(t, hf_x11_struct_xkb_SALockDeviceBtn_button, tvb, *offsetp, 1, byte_order);
22331  *offsetp += 1;
22332  proto_tree_add_item(t, hf_x11_struct_xkb_SALockDeviceBtn_device, tvb, *offsetp, 1, byte_order);
22333  *offsetp += 1;
22334  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 3, ENC_NA);
22335  *offsetp += 3;
22336  }
22337 }
22338 
22339 static void struct_xkb_SADeviceValuator(tvbuff_t *tvb, int *offsetp, proto_tree *root, guint byte_order _U_, int count)
22340 {
22341  int i;
22342  for (i = 0; i < count; i++) {
22343  proto_item *item;
22344  proto_tree *t;
22345 
22346  item = proto_tree_add_item(root, hf_x11_struct_xkb_SADeviceValuator, tvb, *offsetp, 8, ENC_NA);
22347  t = proto_item_add_subtree(item, ett_x11_rectangle);
22348  field8(tvb, offsetp, t, hf_x11_struct_xkb_SADeviceValuator_type, byte_order);
22349  proto_tree_add_item(t, hf_x11_struct_xkb_SADeviceValuator_device, tvb, *offsetp, 1, byte_order);
22350  *offsetp += 1;
22351  field8(tvb, offsetp, t, hf_x11_struct_xkb_SADeviceValuator_val1what, byte_order);
22352  proto_tree_add_item(t, hf_x11_struct_xkb_SADeviceValuator_val1index, tvb, *offsetp, 1, byte_order);
22353  *offsetp += 1;
22354  proto_tree_add_item(t, hf_x11_struct_xkb_SADeviceValuator_val1value, tvb, *offsetp, 1, byte_order);
22355  *offsetp += 1;
22356  field8(tvb, offsetp, t, hf_x11_struct_xkb_SADeviceValuator_val2what, byte_order);
22357  proto_tree_add_item(t, hf_x11_struct_xkb_SADeviceValuator_val2index, tvb, *offsetp, 1, byte_order);
22358  *offsetp += 1;
22359  proto_tree_add_item(t, hf_x11_struct_xkb_SADeviceValuator_val2value, tvb, *offsetp, 1, byte_order);
22360  *offsetp += 1;
22361  }
22362 }
22363 
22364 static void struct_xkb_SIAction(tvbuff_t *tvb, int *offsetp, proto_tree *root, guint byte_order _U_, int count)
22365 {
22366  int i;
22367  for (i = 0; i < count; i++) {
22368  proto_item *item;
22369  proto_tree *t;
22370 
22371  item = proto_tree_add_item(root, hf_x11_struct_xkb_SIAction, tvb, *offsetp, 8, ENC_NA);
22372  t = proto_item_add_subtree(item, ett_x11_rectangle);
22373  field8(tvb, offsetp, t, hf_x11_struct_xkb_SIAction_type, byte_order);
22374  listOfByte(tvb, offsetp, t, hf_x11_struct_xkb_SIAction_data, 7, byte_order);
22375  }
22376 }
22377 
22378 static void struct_xkb_SymInterpret(tvbuff_t *tvb, int *offsetp, proto_tree *root, guint byte_order _U_, int count)
22379 {
22380  int i;
22381  for (i = 0; i < count; i++) {
22382  proto_item *item;
22383  proto_tree *t;
22384 
22385  item = proto_tree_add_item(root, hf_x11_struct_xkb_SymInterpret, tvb, *offsetp, 16, ENC_NA);
22386  t = proto_item_add_subtree(item, ett_x11_rectangle);
22387  proto_tree_add_item(t, hf_x11_struct_xkb_SymInterpret_sym, tvb, *offsetp, 4, byte_order);
22388  *offsetp += 4;
22389  {
22390  const int* mods_bits [] = {
22391  &hf_x11_struct_xkb_SymInterpret_mods_mask_Shift,
22392  &hf_x11_struct_xkb_SymInterpret_mods_mask_Lock,
22393  &hf_x11_struct_xkb_SymInterpret_mods_mask_Control,
22394  &hf_x11_struct_xkb_SymInterpret_mods_mask_1,
22395  &hf_x11_struct_xkb_SymInterpret_mods_mask_2,
22396  &hf_x11_struct_xkb_SymInterpret_mods_mask_3,
22397  &hf_x11_struct_xkb_SymInterpret_mods_mask_4,
22398  &hf_x11_struct_xkb_SymInterpret_mods_mask_5,
22399  &hf_x11_struct_xkb_SymInterpret_mods_mask_Any,
22400  NULL
22401  };
22402  proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_struct_xkb_SymInterpret_mods, ett_x11_rectangle, mods_bits, byte_order);
22403  }
22404  *offsetp += 1;
22405  field8(tvb, offsetp, t, hf_x11_struct_xkb_SymInterpret_match, byte_order);
22406  {
22407  const int* virtualMod_bits [] = {
22408  &hf_x11_struct_xkb_SymInterpret_virtualMod_mask_0,
22409  &hf_x11_struct_xkb_SymInterpret_virtualMod_mask_1,
22410  &hf_x11_struct_xkb_SymInterpret_virtualMod_mask_2,
22411  &hf_x11_struct_xkb_SymInterpret_virtualMod_mask_3,
22412  &hf_x11_struct_xkb_SymInterpret_virtualMod_mask_4,
22413  &hf_x11_struct_xkb_SymInterpret_virtualMod_mask_5,
22414  &hf_x11_struct_xkb_SymInterpret_virtualMod_mask_6,
22415  &hf_x11_struct_xkb_SymInterpret_virtualMod_mask_7,
22416  NULL
22417  };
22418  proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_struct_xkb_SymInterpret_virtualMod, ett_x11_rectangle, virtualMod_bits, byte_order);
22419  }
22420  *offsetp += 1;
22421  proto_tree_add_item(t, hf_x11_struct_xkb_SymInterpret_flags, tvb, *offsetp, 1, byte_order);
22422  *offsetp += 1;
22423  struct_xkb_SIAction(tvb, offsetp, t, byte_order, 1);
22424  }
22425 }
22426 
22427 static void struct_xkb_Action(tvbuff_t *tvb, int *offsetp, proto_tree *root, guint byte_order, int count)
22428 {
22429  int i;
22430  int base = *offsetp;
22431  for (i = 0; i < count; i++) {
22432  proto_item *item;
22433  proto_tree *t;
22434  item = proto_tree_add_item(root, hf_x11_union_xkb_Action, tvb, base, 8, ENC_NA);
22435  t = proto_item_add_subtree(item, ett_x11_rectangle);
22436 
22437  *offsetp = base;
22438  struct_xkb_SANoAction(tvb, offsetp, t, byte_order, 1);
22439  *offsetp = base;
22440  struct_xkb_SASetMods(tvb, offsetp, t, byte_order, 1);
22441  *offsetp = base;
22442  struct_xkb_SASetMods(tvb, offsetp, t, byte_order, 1);
22443  *offsetp = base;
22444  struct_xkb_SASetMods(tvb, offsetp, t, byte_order, 1);
22445  *offsetp = base;
22446  struct_xkb_SASetGroup(tvb, offsetp, t, byte_order, 1);
22447  *offsetp = base;
22448  struct_xkb_SASetGroup(tvb, offsetp, t, byte_order, 1);
22449  *offsetp = base;
22450  struct_xkb_SASetGroup(tvb, offsetp, t, byte_order, 1);
22451  *offsetp = base;
22452  struct_xkb_SAMovePtr(tvb, offsetp, t, byte_order, 1);
22453  *offsetp = base;
22454  struct_xkb_SAPtrBtn(tvb, offsetp, t, byte_order, 1);
22455  *offsetp = base;
22456  struct_xkb_SALockPtrBtn(tvb, offsetp, t, byte_order, 1);
22457  *offsetp = base;
22458  struct_xkb_SASetPtrDflt(tvb, offsetp, t, byte_order, 1);
22459  *offsetp = base;
22460  struct_xkb_SAIsoLock(tvb, offsetp, t, byte_order, 1);
22461  *offsetp = base;
22462  struct_xkb_SATerminate(tvb, offsetp, t, byte_order, 1);
22463  *offsetp = base;
22464  struct_xkb_SASwitchScreen(tvb, offsetp, t, byte_order, 1);
22465  *offsetp = base;
22466  struct_xkb_SASetControls(tvb, offsetp, t, byte_order, 1);
22467  *offsetp = base;
22468  struct_xkb_SASetControls(tvb, offsetp, t, byte_order, 1);
22469  *offsetp = base;
22470  struct_xkb_SAActionMessage(tvb, offsetp, t, byte_order, 1);
22471  *offsetp = base;
22472  struct_xkb_SARedirectKey(tvb, offsetp, t, byte_order, 1);
22473  *offsetp = base;
22474  struct_xkb_SADeviceBtn(tvb, offsetp, t, byte_order, 1);
22475  *offsetp = base;
22476  struct_xkb_SALockDeviceBtn(tvb, offsetp, t, byte_order, 1);
22477  *offsetp = base;
22478  struct_xkb_SADeviceValuator(tvb, offsetp, t, byte_order, 1);
22479  *offsetp = base;
22480  field8(tvb, offsetp, t, hf_x11_union_xkb_Action_type, byte_order);
22481  base += 8;
22482  }
22483  *offsetp = base;
22484 }
22485 
22486 static void xkbUseExtension(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
22487 {
22488  proto_tree_add_item(t, hf_x11_xkb_UseExtension_wantedMajor, tvb, *offsetp, 2, byte_order);
22489  *offsetp += 2;
22490  proto_tree_add_item(t, hf_x11_xkb_UseExtension_wantedMinor, tvb, *offsetp, 2, byte_order);
22491  *offsetp += 2;
22492 }
22493 static void xkbUseExtension_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
22494 {
22495  int sequence_number;
22496 
22497  col_append_fstr(pinfo->cinfo, COL_INFO, "-UseExtension");
22498 
22499  REPLY(reply);
22500  proto_tree_add_item(t, hf_x11_xkb_UseExtension_reply_supported, tvb, *offsetp, 1, byte_order);
22501  *offsetp += 1;
22502  sequence_number = tvb_get_guint16(tvb, *offsetp, byte_order);
22503  proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
22504  "%d (xkb-UseExtension)", sequence_number);
22505  *offsetp += 2;
22506  proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
22507  *offsetp += 4;
22508  proto_tree_add_item(t, hf_x11_xkb_UseExtension_reply_serverMajor, tvb, *offsetp, 2, byte_order);
22509  *offsetp += 2;
22510  proto_tree_add_item(t, hf_x11_xkb_UseExtension_reply_serverMinor, tvb, *offsetp, 2, byte_order);
22511  *offsetp += 2;
22512  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 20, ENC_NA);
22513  *offsetp += 20;
22514 }
22515 
22516 static void xkbSelectEvents(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
22517 {
22518  int f_affectWhich;
22519  int f_clear;
22520  int f_selectAll;
22521  proto_tree_add_item(t, hf_x11_xkb_SelectEvents_deviceSpec, tvb, *offsetp, 2, byte_order);
22522  *offsetp += 2;
22523  f_affectWhich = tvb_get_guint16(tvb, *offsetp, byte_order);
22524  {
22525  const int* affectWhich_bits [] = {
22526  &hf_x11_xkb_SelectEvents_affectWhich_mask_NewKeyboardNotify,
22527  &hf_x11_xkb_SelectEvents_affectWhich_mask_MapNotify,
22528  &hf_x11_xkb_SelectEvents_affectWhich_mask_StateNotify,
22529  &hf_x11_xkb_SelectEvents_affectWhich_mask_ControlsNotify,
22530  &hf_x11_xkb_SelectEvents_affectWhich_mask_IndicatorStateNotify,
22531  &hf_x11_xkb_SelectEvents_affectWhich_mask_IndicatorMapNotify,
22532  &hf_x11_xkb_SelectEvents_affectWhich_mask_NamesNotify,
22533  &hf_x11_xkb_SelectEvents_affectWhich_mask_CompatMapNotify,
22534  &hf_x11_xkb_SelectEvents_affectWhich_mask_BellNotify,
22535  &hf_x11_xkb_SelectEvents_affectWhich_mask_ActionMessage,
22536  &hf_x11_xkb_SelectEvents_affectWhich_mask_AccessXNotify,
22537  &hf_x11_xkb_SelectEvents_affectWhich_mask_ExtensionDeviceNotify,
22538  NULL
22539  };
22540  proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_xkb_SelectEvents_affectWhich, ett_x11_rectangle, affectWhich_bits, byte_order);
22541  }
22542  *offsetp += 2;
22543  f_clear = tvb_get_guint16(tvb, *offsetp, byte_order);
22544  {
22545  const int* clear_bits [] = {
22546  &hf_x11_xkb_SelectEvents_clear_mask_NewKeyboardNotify,
22547  &hf_x11_xkb_SelectEvents_clear_mask_MapNotify,
22548  &hf_x11_xkb_SelectEvents_clear_mask_StateNotify,
22549  &hf_x11_xkb_SelectEvents_clear_mask_ControlsNotify,
22550  &hf_x11_xkb_SelectEvents_clear_mask_IndicatorStateNotify,
22551  &hf_x11_xkb_SelectEvents_clear_mask_IndicatorMapNotify,
22552  &hf_x11_xkb_SelectEvents_clear_mask_NamesNotify,
22553  &hf_x11_xkb_SelectEvents_clear_mask_CompatMapNotify,
22554  &hf_x11_xkb_SelectEvents_clear_mask_BellNotify,
22555  &hf_x11_xkb_SelectEvents_clear_mask_ActionMessage,
22556  &hf_x11_xkb_SelectEvents_clear_mask_AccessXNotify,
22557  &hf_x11_xkb_SelectEvents_clear_mask_ExtensionDeviceNotify,
22558  NULL
22559  };
22560  proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_xkb_SelectEvents_clear, ett_x11_rectangle, clear_bits, byte_order);
22561  }
22562  *offsetp += 2;
22563  f_selectAll = tvb_get_guint16(tvb, *offsetp, byte_order);
22564  {
22565  const int* selectAll_bits [] = {
22566  &hf_x11_xkb_SelectEvents_selectAll_mask_NewKeyboardNotify,
22567  &hf_x11_xkb_SelectEvents_selectAll_mask_MapNotify,
22568  &hf_x11_xkb_SelectEvents_selectAll_mask_StateNotify,
22569  &hf_x11_xkb_SelectEvents_selectAll_mask_ControlsNotify,
22570  &hf_x11_xkb_SelectEvents_selectAll_mask_IndicatorStateNotify,
22571  &hf_x11_xkb_SelectEvents_selectAll_mask_IndicatorMapNotify,
22572  &hf_x11_xkb_SelectEvents_selectAll_mask_NamesNotify,
22573  &hf_x11_xkb_SelectEvents_selectAll_mask_CompatMapNotify,
22574  &hf_x11_xkb_SelectEvents_selectAll_mask_BellNotify,
22575  &hf_x11_xkb_SelectEvents_selectAll_mask_ActionMessage,
22576  &hf_x11_xkb_SelectEvents_selectAll_mask_AccessXNotify,
22577  &hf_x11_xkb_SelectEvents_selectAll_mask_ExtensionDeviceNotify,
22578  NULL
22579  };
22580  proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_xkb_SelectEvents_selectAll, ett_x11_rectangle, selectAll_bits, byte_order);
22581  }
22582  *offsetp += 2;
22583  {
22584  const int* affectMap_bits [] = {
22585  &hf_x11_xkb_SelectEvents_affectMap_mask_KeyTypes,
22586  &hf_x11_xkb_SelectEvents_affectMap_mask_KeySyms,
22587  &hf_x11_xkb_SelectEvents_affectMap_mask_ModifierMap,
22588  &hf_x11_xkb_SelectEvents_affectMap_mask_ExplicitComponents,
22589  &hf_x11_xkb_SelectEvents_affectMap_mask_KeyActions,
22590  &hf_x11_xkb_SelectEvents_affectMap_mask_KeyBehaviors,
22591  &hf_x11_xkb_SelectEvents_affectMap_mask_VirtualMods,
22592  &hf_x11_xkb_SelectEvents_affectMap_mask_VirtualModMap,
22593  NULL
22594  };
22595  proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_xkb_SelectEvents_affectMap, ett_x11_rectangle, affectMap_bits, byte_order);
22596  }
22597  *offsetp += 2;
22598  {
22599  const int* map_bits [] = {
22600  &hf_x11_xkb_SelectEvents_map_mask_KeyTypes,
22601  &hf_x11_xkb_SelectEvents_map_mask_KeySyms,
22602  &hf_x11_xkb_SelectEvents_map_mask_ModifierMap,
22603  &hf_x11_xkb_SelectEvents_map_mask_ExplicitComponents,
22604  &hf_x11_xkb_SelectEvents_map_mask_KeyActions,
22605  &hf_x11_xkb_SelectEvents_map_mask_KeyBehaviors,
22606  &hf_x11_xkb_SelectEvents_map_mask_VirtualMods,
22607  &hf_x11_xkb_SelectEvents_map_mask_VirtualModMap,
22608  NULL
22609  };
22610  proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_xkb_SelectEvents_map, ett_x11_rectangle, map_bits, byte_order);
22611  }
22612  *offsetp += 2;
22613  if ((f_affectWhich & ((~f_clear) & (~f_selectAll))) & (1U << 0)) {
22614  {
22615  const int* affectNewKeyboard_bits [] = {
22616  &hf_x11_xkb_SelectEvents_NewKeyboardNotify_affectNewKeyboard_mask_Keycodes,
22617  &hf_x11_xkb_SelectEvents_NewKeyboardNotify_affectNewKeyboard_mask_Geometry,
22618  &hf_x11_xkb_SelectEvents_NewKeyboardNotify_affectNewKeyboard_mask_DeviceID,
22619  NULL
22620  };
22621  proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_xkb_SelectEvents_NewKeyboardNotify_affectNewKeyboard, ett_x11_rectangle, affectNewKeyboard_bits, byte_order);
22622  }
22623  *offsetp += 2;
22624  {
22625  const int* newKeyboardDetails_bits [] = {
22626  &hf_x11_xkb_SelectEvents_NewKeyboardNotify_newKeyboardDetails_mask_Keycodes,
22627  &hf_x11_xkb_SelectEvents_NewKeyboardNotify_newKeyboardDetails_mask_Geometry,
22628  &hf_x11_xkb_SelectEvents_NewKeyboardNotify_newKeyboardDetails_mask_DeviceID,
22629  NULL
22630  };
22631  proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_xkb_SelectEvents_NewKeyboardNotify_newKeyboardDetails, ett_x11_rectangle, newKeyboardDetails_bits, byte_order);
22632  }
22633  *offsetp += 2;
22634  }
22635  if ((f_affectWhich & ((~f_clear) & (~f_selectAll))) & (1U << 2)) {
22636  {
22637  const int* affectState_bits [] = {
22638  &hf_x11_xkb_SelectEvents_StateNotify_affectState_mask_ModifierState,
22639  &hf_x11_xkb_SelectEvents_StateNotify_affectState_mask_ModifierBase,
22640  &hf_x11_xkb_SelectEvents_StateNotify_affectState_mask_ModifierLatch,
22641  &hf_x11_xkb_SelectEvents_StateNotify_affectState_mask_ModifierLock,
22642  &hf_x11_xkb_SelectEvents_StateNotify_affectState_mask_GroupState,
22643  &hf_x11_xkb_SelectEvents_StateNotify_affectState_mask_GroupBase,
22644  &hf_x11_xkb_SelectEvents_StateNotify_affectState_mask_GroupLatch,
22645  &hf_x11_xkb_SelectEvents_StateNotify_affectState_mask_GroupLock,
22646  &hf_x11_xkb_SelectEvents_StateNotify_affectState_mask_CompatState,
22647  &hf_x11_xkb_SelectEvents_StateNotify_affectState_mask_GrabMods,
22648  &hf_x11_xkb_SelectEvents_StateNotify_affectState_mask_CompatGrabMods,
22649  &hf_x11_xkb_SelectEvents_StateNotify_affectState_mask_LookupMods,
22650  &hf_x11_xkb_SelectEvents_StateNotify_affectState_mask_CompatLookupMods,
22651  &hf_x11_xkb_SelectEvents_StateNotify_affectState_mask_PointerButtons,
22652  NULL
22653  };
22654  proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_xkb_SelectEvents_StateNotify_affectState, ett_x11_rectangle, affectState_bits, byte_order);
22655  }
22656  *offsetp += 2;
22657  {
22658  const int* stateDetails_bits [] = {
22659  &hf_x11_xkb_SelectEvents_StateNotify_stateDetails_mask_ModifierState,
22660  &hf_x11_xkb_SelectEvents_StateNotify_stateDetails_mask_ModifierBase,
22661  &hf_x11_xkb_SelectEvents_StateNotify_stateDetails_mask_ModifierLatch,
22662  &hf_x11_xkb_SelectEvents_StateNotify_stateDetails_mask_ModifierLock,
22663  &hf_x11_xkb_SelectEvents_StateNotify_stateDetails_mask_GroupState,
22664  &hf_x11_xkb_SelectEvents_StateNotify_stateDetails_mask_GroupBase,
22665  &hf_x11_xkb_SelectEvents_StateNotify_stateDetails_mask_GroupLatch,
22666  &hf_x11_xkb_SelectEvents_StateNotify_stateDetails_mask_GroupLock,
22667  &hf_x11_xkb_SelectEvents_StateNotify_stateDetails_mask_CompatState,
22668  &hf_x11_xkb_SelectEvents_StateNotify_stateDetails_mask_GrabMods,
22669  &hf_x11_xkb_SelectEvents_StateNotify_stateDetails_mask_CompatGrabMods,
22670  &hf_x11_xkb_SelectEvents_StateNotify_stateDetails_mask_LookupMods,
22671  &hf_x11_xkb_SelectEvents_StateNotify_stateDetails_mask_CompatLookupMods,
22672  &hf_x11_xkb_SelectEvents_StateNotify_stateDetails_mask_PointerButtons,
22673  NULL
22674  };
22675  proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_xkb_SelectEvents_StateNotify_stateDetails, ett_x11_rectangle, stateDetails_bits, byte_order);
22676  }
22677  *offsetp += 2;
22678  }
22679  if ((f_affectWhich & ((~f_clear) & (~f_selectAll))) & (1U << 3)) {
22680  {
22681  const int* affectCtrls_bits [] = {
22682  &hf_x11_xkb_SelectEvents_ControlsNotify_affectCtrls_mask_GroupsWrap,
22683  &hf_x11_xkb_SelectEvents_ControlsNotify_affectCtrls_mask_InternalMods,
22684  &hf_x11_xkb_SelectEvents_ControlsNotify_affectCtrls_mask_IgnoreLockMods,
22685  &hf_x11_xkb_SelectEvents_ControlsNotify_affectCtrls_mask_PerKeyRepeat,
22686  &hf_x11_xkb_SelectEvents_ControlsNotify_affectCtrls_mask_ControlsEnabled,
22687  NULL
22688  };
22689  proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_xkb_SelectEvents_ControlsNotify_affectCtrls, ett_x11_rectangle, affectCtrls_bits, byte_order);
22690  }
22691  *offsetp += 4;
22692  {
22693  const int* ctrlDetails_bits [] = {
22694  &hf_x11_xkb_SelectEvents_ControlsNotify_ctrlDetails_mask_GroupsWrap,
22695  &hf_x11_xkb_SelectEvents_ControlsNotify_ctrlDetails_mask_InternalMods,
22696  &hf_x11_xkb_SelectEvents_ControlsNotify_ctrlDetails_mask_IgnoreLockMods,
22697  &hf_x11_xkb_SelectEvents_ControlsNotify_ctrlDetails_mask_PerKeyRepeat,
22698  &hf_x11_xkb_SelectEvents_ControlsNotify_ctrlDetails_mask_ControlsEnabled,
22699  NULL
22700  };
22701  proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_xkb_SelectEvents_ControlsNotify_ctrlDetails, ett_x11_rectangle, ctrlDetails_bits, byte_order);
22702  }
22703  *offsetp += 4;
22704  }
22705  if ((f_affectWhich & ((~f_clear) & (~f_selectAll))) & (1U << 4)) {
22706  proto_tree_add_item(t, hf_x11_xkb_SelectEvents_IndicatorStateNotify_affectIndicatorState, tvb, *offsetp, 4, byte_order);
22707  *offsetp += 4;
22708  proto_tree_add_item(t, hf_x11_xkb_SelectEvents_IndicatorStateNotify_indicatorStateDetails, tvb, *offsetp, 4, byte_order);
22709  *offsetp += 4;
22710  }
22711  if ((f_affectWhich & ((~f_clear) & (~f_selectAll))) & (1U << 5)) {
22712  proto_tree_add_item(t, hf_x11_xkb_SelectEvents_IndicatorMapNotify_affectIndicatorMap, tvb, *offsetp, 4, byte_order);
22713  *offsetp += 4;
22714  proto_tree_add_item(t, hf_x11_xkb_SelectEvents_IndicatorMapNotify_indicatorMapDetails, tvb, *offsetp, 4, byte_order);
22715  *offsetp += 4;
22716  }
22717  if ((f_affectWhich & ((~f_clear) & (~f_selectAll))) & (1U << 6)) {
22718  {
22719  const int* affectNames_bits [] = {
22720  &hf_x11_xkb_SelectEvents_NamesNotify_affectNames_mask_Keycodes,
22721  &hf_x11_xkb_SelectEvents_NamesNotify_affectNames_mask_Geometry,
22722  &hf_x11_xkb_SelectEvents_NamesNotify_affectNames_mask_Symbols,
22723  &hf_x11_xkb_SelectEvents_NamesNotify_affectNames_mask_PhysSymbols,
22724  &hf_x11_xkb_SelectEvents_NamesNotify_affectNames_mask_Types,
22725  &hf_x11_xkb_SelectEvents_NamesNotify_affectNames_mask_Compat,
22726  &hf_x11_xkb_SelectEvents_NamesNotify_affectNames_mask_KeyTypeNames,
22727  &hf_x11_xkb_SelectEvents_NamesNotify_affectNames_mask_KTLevelNames,
22728  &hf_x11_xkb_SelectEvents_NamesNotify_affectNames_mask_IndicatorNames,
22729  &hf_x11_xkb_SelectEvents_NamesNotify_affectNames_mask_KeyNames,
22730  &hf_x11_xkb_SelectEvents_NamesNotify_affectNames_mask_KeyAliases,
22731  &hf_x11_xkb_SelectEvents_NamesNotify_affectNames_mask_VirtualModNames,
22732  &hf_x11_xkb_SelectEvents_NamesNotify_affectNames_mask_GroupNames,
22733  &hf_x11_xkb_SelectEvents_NamesNotify_affectNames_mask_RGNames,
22734  NULL
22735  };
22736  proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_xkb_SelectEvents_NamesNotify_affectNames, ett_x11_rectangle, affectNames_bits, byte_order);
22737  }
22738  *offsetp += 2;
22739  {
22740  const int* namesDetails_bits [] = {
22741  &hf_x11_xkb_SelectEvents_NamesNotify_namesDetails_mask_Keycodes,
22742  &hf_x11_xkb_SelectEvents_NamesNotify_namesDetails_mask_Geometry,
22743  &hf_x11_xkb_SelectEvents_NamesNotify_namesDetails_mask_Symbols,
22744  &hf_x11_xkb_SelectEvents_NamesNotify_namesDetails_mask_PhysSymbols,
22745  &hf_x11_xkb_SelectEvents_NamesNotify_namesDetails_mask_Types,
22746  &hf_x11_xkb_SelectEvents_NamesNotify_namesDetails_mask_Compat,
22747  &hf_x11_xkb_SelectEvents_NamesNotify_namesDetails_mask_KeyTypeNames,
22748  &hf_x11_xkb_SelectEvents_NamesNotify_namesDetails_mask_KTLevelNames,
22749  &hf_x11_xkb_SelectEvents_NamesNotify_namesDetails_mask_IndicatorNames,
22750  &hf_x11_xkb_SelectEvents_NamesNotify_namesDetails_mask_KeyNames,
22751  &hf_x11_xkb_SelectEvents_NamesNotify_namesDetails_mask_KeyAliases,
22752  &hf_x11_xkb_SelectEvents_NamesNotify_namesDetails_mask_VirtualModNames,
22753  &hf_x11_xkb_SelectEvents_NamesNotify_namesDetails_mask_GroupNames,
22754  &hf_x11_xkb_SelectEvents_NamesNotify_namesDetails_mask_RGNames,
22755  NULL
22756  };
22757  proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_xkb_SelectEvents_NamesNotify_namesDetails, ett_x11_rectangle, namesDetails_bits, byte_order);
22758  }
22759  *offsetp += 2;
22760  }
22761  if ((f_affectWhich & ((~f_clear) & (~f_selectAll))) & (1U << 7)) {
22762  {
22763  const int* affectCompat_bits [] = {
22764  &hf_x11_xkb_SelectEvents_CompatMapNotify_affectCompat_mask_SymInterp,
22765  &hf_x11_xkb_SelectEvents_CompatMapNotify_affectCompat_mask_GroupCompat,
22766  NULL
22767  };
22768  proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_xkb_SelectEvents_CompatMapNotify_affectCompat, ett_x11_rectangle, affectCompat_bits, byte_order);
22769  }
22770  *offsetp += 1;
22771  {
22772  const int* compatDetails_bits [] = {
22773  &hf_x11_xkb_SelectEvents_CompatMapNotify_compatDetails_mask_SymInterp,
22774  &hf_x11_xkb_SelectEvents_CompatMapNotify_compatDetails_mask_GroupCompat,
22775  NULL
22776  };
22777  proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_xkb_SelectEvents_CompatMapNotify_compatDetails, ett_x11_rectangle, compatDetails_bits, byte_order);
22778  }
22779  *offsetp += 1;
22780  }
22781  if ((f_affectWhich & ((~f_clear) & (~f_selectAll))) & (1U << 8)) {
22782  proto_tree_add_item(t, hf_x11_xkb_SelectEvents_BellNotify_affectBell, tvb, *offsetp, 1, byte_order);
22783  *offsetp += 1;
22784  proto_tree_add_item(t, hf_x11_xkb_SelectEvents_BellNotify_bellDetails, tvb, *offsetp, 1, byte_order);
22785  *offsetp += 1;
22786  }
22787  if ((f_affectWhich & ((~f_clear) & (~f_selectAll))) & (1U << 9)) {
22788  proto_tree_add_item(t, hf_x11_xkb_SelectEvents_ActionMessage_affectMsgDetails, tvb, *offsetp, 1, byte_order);
22789  *offsetp += 1;
22790  proto_tree_add_item(t, hf_x11_xkb_SelectEvents_ActionMessage_msgDetails, tvb, *offsetp, 1, byte_order);
22791  *offsetp += 1;
22792  }
22793  if ((f_affectWhich & ((~f_clear) & (~f_selectAll))) & (1U << 10)) {
22794  {
22795  const int* affectAccessX_bits [] = {
22796  &hf_x11_xkb_SelectEvents_AccessXNotify_affectAccessX_mask_SKPress,
22797  &hf_x11_xkb_SelectEvents_AccessXNotify_affectAccessX_mask_SKAccept,
22798  &hf_x11_xkb_SelectEvents_AccessXNotify_affectAccessX_mask_SKReject,
22799  &hf_x11_xkb_SelectEvents_AccessXNotify_affectAccessX_mask_SKRelease,
22800  &hf_x11_xkb_SelectEvents_AccessXNotify_affectAccessX_mask_BKAccept,
22801  &hf_x11_xkb_SelectEvents_AccessXNotify_affectAccessX_mask_BKReject,
22802  &hf_x11_xkb_SelectEvents_AccessXNotify_affectAccessX_mask_AXKWarning,
22803  NULL
22804  };
22805  proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_xkb_SelectEvents_AccessXNotify_affectAccessX, ett_x11_rectangle, affectAccessX_bits, byte_order);
22806  }
22807  *offsetp += 2;
22808  {
22809  const int* accessXDetails_bits [] = {
22810  &hf_x11_xkb_SelectEvents_AccessXNotify_accessXDetails_mask_SKPress,
22811  &hf_x11_xkb_SelectEvents_AccessXNotify_accessXDetails_mask_SKAccept,
22812  &hf_x11_xkb_SelectEvents_AccessXNotify_accessXDetails_mask_SKReject,
22813  &hf_x11_xkb_SelectEvents_AccessXNotify_accessXDetails_mask_SKRelease,
22814  &hf_x11_xkb_SelectEvents_AccessXNotify_accessXDetails_mask_BKAccept,
22815  &hf_x11_xkb_SelectEvents_AccessXNotify_accessXDetails_mask_BKReject,
22816  &hf_x11_xkb_SelectEvents_AccessXNotify_accessXDetails_mask_AXKWarning,
22817  NULL
22818  };
22819  proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_xkb_SelectEvents_AccessXNotify_accessXDetails, ett_x11_rectangle, accessXDetails_bits, byte_order);
22820  }
22821  *offsetp += 2;
22822  }
22823  if ((f_affectWhich & ((~f_clear) & (~f_selectAll))) & (1U << 11)) {
22824  {
22825  const int* affectExtDev_bits [] = {
22826  &hf_x11_xkb_SelectEvents_ExtensionDeviceNotify_affectExtDev_mask_Keyboards,
22827  &hf_x11_xkb_SelectEvents_ExtensionDeviceNotify_affectExtDev_mask_ButtonActions,
22828  &hf_x11_xkb_SelectEvents_ExtensionDeviceNotify_affectExtDev_mask_IndicatorNames,
22829  &hf_x11_xkb_SelectEvents_ExtensionDeviceNotify_affectExtDev_mask_IndicatorMaps,
22830  &hf_x11_xkb_SelectEvents_ExtensionDeviceNotify_affectExtDev_mask_IndicatorState,
22831  NULL
22832  };
22833  proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_xkb_SelectEvents_ExtensionDeviceNotify_affectExtDev, ett_x11_rectangle, affectExtDev_bits, byte_order);
22834  }
22835  *offsetp += 2;
22836  {
22837  const int* extdevDetails_bits [] = {
22838  &hf_x11_xkb_SelectEvents_ExtensionDeviceNotify_extdevDetails_mask_Keyboards,
22839  &hf_x11_xkb_SelectEvents_ExtensionDeviceNotify_extdevDetails_mask_ButtonActions,
22840  &hf_x11_xkb_SelectEvents_ExtensionDeviceNotify_extdevDetails_mask_IndicatorNames,
22841  &hf_x11_xkb_SelectEvents_ExtensionDeviceNotify_extdevDetails_mask_IndicatorMaps,
22842  &hf_x11_xkb_SelectEvents_ExtensionDeviceNotify_extdevDetails_mask_IndicatorState,
22843  NULL
22844  };
22845  proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_xkb_SelectEvents_ExtensionDeviceNotify_extdevDetails, ett_x11_rectangle, extdevDetails_bits, byte_order);
22846  }
22847  *offsetp += 2;
22848  }
22849 }
22850 
22851 static void xkbBell(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
22852 {
22853  proto_tree_add_item(t, hf_x11_xkb_Bell_deviceSpec, tvb, *offsetp, 2, byte_order);
22854  *offsetp += 2;
22855  proto_tree_add_item(t, hf_x11_xkb_Bell_bellClass, tvb, *offsetp, 2, byte_order);
22856  *offsetp += 2;
22857  proto_tree_add_item(t, hf_x11_xkb_Bell_bellID, tvb, *offsetp, 2, byte_order);
22858  *offsetp += 2;
22859  proto_tree_add_item(t, hf_x11_xkb_Bell_percent, tvb, *offsetp, 1, byte_order);
22860  *offsetp += 1;
22861  proto_tree_add_item(t, hf_x11_xkb_Bell_forceSound, tvb, *offsetp, 1, byte_order);
22862  *offsetp += 1;
22863  proto_tree_add_item(t, hf_x11_xkb_Bell_eventOnly, tvb, *offsetp, 1, byte_order);
22864  *offsetp += 1;
22865  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
22866  *offsetp += 1;
22867  proto_tree_add_item(t, hf_x11_xkb_Bell_pitch, tvb, *offsetp, 2, byte_order);
22868  *offsetp += 2;
22869  proto_tree_add_item(t, hf_x11_xkb_Bell_duration, tvb, *offsetp, 2, byte_order);
22870  *offsetp += 2;
22871  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 2, ENC_NA);
22872  *offsetp += 2;
22873  proto_tree_add_item(t, hf_x11_xkb_Bell_name, tvb, *offsetp, 4, byte_order);
22874  *offsetp += 4;
22875  proto_tree_add_item(t, hf_x11_xkb_Bell_window, tvb, *offsetp, 4, byte_order);
22876  *offsetp += 4;
22877 }
22878 
22879 static void xkbGetState(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
22880 {
22881  proto_tree_add_item(t, hf_x11_xkb_GetState_deviceSpec, tvb, *offsetp, 2, byte_order);
22882  *offsetp += 2;
22883  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 2, ENC_NA);
22884  *offsetp += 2;
22885 }
22886 static void xkbGetState_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
22887 {
22888  int sequence_number;
22889 
22890  col_append_fstr(pinfo->cinfo, COL_INFO, "-GetState");
22891 
22892  REPLY(reply);
22893  proto_tree_add_item(t, hf_x11_xkb_GetState_reply_deviceID, tvb, *offsetp, 1, byte_order);
22894  *offsetp += 1;
22895  sequence_number = tvb_get_guint16(tvb, *offsetp, byte_order);
22896  proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
22897  "%d (xkb-GetState)", sequence_number);
22898  *offsetp += 2;
22899  proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
22900  *offsetp += 4;
22901  {
22902  const int* mods_bits [] = {
22903  &hf_x11_xkb_GetState_reply_mods_mask_Shift,
22904  &hf_x11_xkb_GetState_reply_mods_mask_Lock,
22905  &hf_x11_xkb_GetState_reply_mods_mask_Control,
22906  &hf_x11_xkb_GetState_reply_mods_mask_1,
22907  &hf_x11_xkb_GetState_reply_mods_mask_2,
22908  &hf_x11_xkb_GetState_reply_mods_mask_3,
22909  &hf_x11_xkb_GetState_reply_mods_mask_4,
22910  &hf_x11_xkb_GetState_reply_mods_mask_5,
22911  &hf_x11_xkb_GetState_reply_mods_mask_Any,
22912  NULL
22913  };
22914  proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_xkb_GetState_reply_mods, ett_x11_rectangle, mods_bits, byte_order);
22915  }
22916  *offsetp += 1;
22917  {
22918  const int* baseMods_bits [] = {
22919  &hf_x11_xkb_GetState_reply_baseMods_mask_Shift,
22920  &hf_x11_xkb_GetState_reply_baseMods_mask_Lock,
22921  &hf_x11_xkb_GetState_reply_baseMods_mask_Control,
22922  &hf_x11_xkb_GetState_reply_baseMods_mask_1,
22923  &hf_x11_xkb_GetState_reply_baseMods_mask_2,
22924  &hf_x11_xkb_GetState_reply_baseMods_mask_3,
22925  &hf_x11_xkb_GetState_reply_baseMods_mask_4,
22926  &hf_x11_xkb_GetState_reply_baseMods_mask_5,
22927  &hf_x11_xkb_GetState_reply_baseMods_mask_Any,
22928  NULL
22929  };
22930  proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_xkb_GetState_reply_baseMods, ett_x11_rectangle, baseMods_bits, byte_order);
22931  }
22932  *offsetp += 1;
22933  {
22934  const int* latchedMods_bits [] = {
22935  &hf_x11_xkb_GetState_reply_latchedMods_mask_Shift,
22936  &hf_x11_xkb_GetState_reply_latchedMods_mask_Lock,
22937  &hf_x11_xkb_GetState_reply_latchedMods_mask_Control,
22938  &hf_x11_xkb_GetState_reply_latchedMods_mask_1,
22939  &hf_x11_xkb_GetState_reply_latchedMods_mask_2,
22940  &hf_x11_xkb_GetState_reply_latchedMods_mask_3,
22941  &hf_x11_xkb_GetState_reply_latchedMods_mask_4,
22942  &hf_x11_xkb_GetState_reply_latchedMods_mask_5,
22943  &hf_x11_xkb_GetState_reply_latchedMods_mask_Any,
22944  NULL
22945  };
22946  proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_xkb_GetState_reply_latchedMods, ett_x11_rectangle, latchedMods_bits, byte_order);
22947  }
22948  *offsetp += 1;
22949  {
22950  const int* lockedMods_bits [] = {
22951  &hf_x11_xkb_GetState_reply_lockedMods_mask_Shift,
22952  &hf_x11_xkb_GetState_reply_lockedMods_mask_Lock,
22953  &hf_x11_xkb_GetState_reply_lockedMods_mask_Control,
22954  &hf_x11_xkb_GetState_reply_lockedMods_mask_1,
22955  &hf_x11_xkb_GetState_reply_lockedMods_mask_2,
22956  &hf_x11_xkb_GetState_reply_lockedMods_mask_3,
22957  &hf_x11_xkb_GetState_reply_lockedMods_mask_4,
22958  &hf_x11_xkb_GetState_reply_lockedMods_mask_5,
22959  &hf_x11_xkb_GetState_reply_lockedMods_mask_Any,
22960  NULL
22961  };
22962  proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_xkb_GetState_reply_lockedMods, ett_x11_rectangle, lockedMods_bits, byte_order);
22963  }
22964  *offsetp += 1;
22965  field8(tvb, offsetp, t, hf_x11_xkb_GetState_reply_group, byte_order);
22966  field8(tvb, offsetp, t, hf_x11_xkb_GetState_reply_lockedGroup, byte_order);
22967  proto_tree_add_item(t, hf_x11_xkb_GetState_reply_baseGroup, tvb, *offsetp, 2, byte_order);
22968  *offsetp += 2;
22969  proto_tree_add_item(t, hf_x11_xkb_GetState_reply_latchedGroup, tvb, *offsetp, 2, byte_order);
22970  *offsetp += 2;
22971  {
22972  const int* compatState_bits [] = {
22973  &hf_x11_xkb_GetState_reply_compatState_mask_Shift,
22974  &hf_x11_xkb_GetState_reply_compatState_mask_Lock,
22975  &hf_x11_xkb_GetState_reply_compatState_mask_Control,
22976  &hf_x11_xkb_GetState_reply_compatState_mask_1,
22977  &hf_x11_xkb_GetState_reply_compatState_mask_2,
22978  &hf_x11_xkb_GetState_reply_compatState_mask_3,
22979  &hf_x11_xkb_GetState_reply_compatState_mask_4,
22980  &hf_x11_xkb_GetState_reply_compatState_mask_5,
22981  &hf_x11_xkb_GetState_reply_compatState_mask_Any,
22982  NULL
22983  };
22984  proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_xkb_GetState_reply_compatState, ett_x11_rectangle, compatState_bits, byte_order);
22985  }
22986  *offsetp += 1;
22987  {
22988  const int* grabMods_bits [] = {
22989  &hf_x11_xkb_GetState_reply_grabMods_mask_Shift,
22990  &hf_x11_xkb_GetState_reply_grabMods_mask_Lock,
22991  &hf_x11_xkb_GetState_reply_grabMods_mask_Control,
22992  &hf_x11_xkb_GetState_reply_grabMods_mask_1,
22993  &hf_x11_xkb_GetState_reply_grabMods_mask_2,
22994  &hf_x11_xkb_GetState_reply_grabMods_mask_3,
22995  &hf_x11_xkb_GetState_reply_grabMods_mask_4,
22996  &hf_x11_xkb_GetState_reply_grabMods_mask_5,
22997  &hf_x11_xkb_GetState_reply_grabMods_mask_Any,
22998  NULL
22999  };
23000  proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_xkb_GetState_reply_grabMods, ett_x11_rectangle, grabMods_bits, byte_order);
23001  }
23002  *offsetp += 1;
23003  {
23004  const int* compatGrabMods_bits [] = {
23005  &hf_x11_xkb_GetState_reply_compatGrabMods_mask_Shift,
23006  &hf_x11_xkb_GetState_reply_compatGrabMods_mask_Lock,
23007  &hf_x11_xkb_GetState_reply_compatGrabMods_mask_Control,
23008  &hf_x11_xkb_GetState_reply_compatGrabMods_mask_1,
23009  &hf_x11_xkb_GetState_reply_compatGrabMods_mask_2,
23010  &hf_x11_xkb_GetState_reply_compatGrabMods_mask_3,
23011  &hf_x11_xkb_GetState_reply_compatGrabMods_mask_4,
23012  &hf_x11_xkb_GetState_reply_compatGrabMods_mask_5,
23013  &hf_x11_xkb_GetState_reply_compatGrabMods_mask_Any,
23014  NULL
23015  };
23016  proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_xkb_GetState_reply_compatGrabMods, ett_x11_rectangle, compatGrabMods_bits, byte_order);
23017  }
23018  *offsetp += 1;
23019  {
23020  const int* lookupMods_bits [] = {
23021  &hf_x11_xkb_GetState_reply_lookupMods_mask_Shift,
23022  &hf_x11_xkb_GetState_reply_lookupMods_mask_Lock,
23023  &hf_x11_xkb_GetState_reply_lookupMods_mask_Control,
23024  &hf_x11_xkb_GetState_reply_lookupMods_mask_1,
23025  &hf_x11_xkb_GetState_reply_lookupMods_mask_2,
23026  &hf_x11_xkb_GetState_reply_lookupMods_mask_3,
23027  &hf_x11_xkb_GetState_reply_lookupMods_mask_4,
23028  &hf_x11_xkb_GetState_reply_lookupMods_mask_5,
23029  &hf_x11_xkb_GetState_reply_lookupMods_mask_Any,
23030  NULL
23031  };
23032  proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_xkb_GetState_reply_lookupMods, ett_x11_rectangle, lookupMods_bits, byte_order);
23033  }
23034  *offsetp += 1;
23035  {
23036  const int* compatLookupMods_bits [] = {
23037  &hf_x11_xkb_GetState_reply_compatLookupMods_mask_Shift,
23038  &hf_x11_xkb_GetState_reply_compatLookupMods_mask_Lock,
23039  &hf_x11_xkb_GetState_reply_compatLookupMods_mask_Control,
23040  &hf_x11_xkb_GetState_reply_compatLookupMods_mask_1,
23041  &hf_x11_xkb_GetState_reply_compatLookupMods_mask_2,
23042  &hf_x11_xkb_GetState_reply_compatLookupMods_mask_3,
23043  &hf_x11_xkb_GetState_reply_compatLookupMods_mask_4,
23044  &hf_x11_xkb_GetState_reply_compatLookupMods_mask_5,
23045  &hf_x11_xkb_GetState_reply_compatLookupMods_mask_Any,
23046  NULL
23047  };
23048  proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_xkb_GetState_reply_compatLookupMods, ett_x11_rectangle, compatLookupMods_bits, byte_order);
23049  }
23050  *offsetp += 1;
23051  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
23052  *offsetp += 1;
23053  {
23054  const int* ptrBtnState_bits [] = {
23055  &hf_x11_xkb_GetState_reply_ptrBtnState_mask_Shift,
23056  &hf_x11_xkb_GetState_reply_ptrBtnState_mask_Lock,
23057  &hf_x11_xkb_GetState_reply_ptrBtnState_mask_Control,
23058  &hf_x11_xkb_GetState_reply_ptrBtnState_mask_Mod1,
23059  &hf_x11_xkb_GetState_reply_ptrBtnState_mask_Mod2,
23060  &hf_x11_xkb_GetState_reply_ptrBtnState_mask_Mod3,
23061  &hf_x11_xkb_GetState_reply_ptrBtnState_mask_Mod4,
23062  &hf_x11_xkb_GetState_reply_ptrBtnState_mask_Mod5,
23063  &hf_x11_xkb_GetState_reply_ptrBtnState_mask_Button1,
23064  &hf_x11_xkb_GetState_reply_ptrBtnState_mask_Button2,
23065  &hf_x11_xkb_GetState_reply_ptrBtnState_mask_Button3,
23066  &hf_x11_xkb_GetState_reply_ptrBtnState_mask_Button4,
23067  &hf_x11_xkb_GetState_reply_ptrBtnState_mask_Button5,
23068  NULL
23069  };
23070  proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_xkb_GetState_reply_ptrBtnState, ett_x11_rectangle, ptrBtnState_bits, byte_order);
23071  }
23072  *offsetp += 2;
23073  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 6, ENC_NA);
23074  *offsetp += 6;
23075 }
23076 
23077 static void xkbLatchLockState(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
23078 {
23079  proto_tree_add_item(t, hf_x11_xkb_LatchLockState_deviceSpec, tvb, *offsetp, 2, byte_order);
23080  *offsetp += 2;
23081  {
23082  const int* affectModLocks_bits [] = {
23083  &hf_x11_xkb_LatchLockState_affectModLocks_mask_Shift,
23084  &hf_x11_xkb_LatchLockState_affectModLocks_mask_Lock,
23085  &hf_x11_xkb_LatchLockState_affectModLocks_mask_Control,
23086  &hf_x11_xkb_LatchLockState_affectModLocks_mask_1,
23087  &hf_x11_xkb_LatchLockState_affectModLocks_mask_2,
23088  &hf_x11_xkb_LatchLockState_affectModLocks_mask_3,
23089  &hf_x11_xkb_LatchLockState_affectModLocks_mask_4,
23090  &hf_x11_xkb_LatchLockState_affectModLocks_mask_5,
23091  &hf_x11_xkb_LatchLockState_affectModLocks_mask_Any,
23092  NULL
23093  };
23094  proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_xkb_LatchLockState_affectModLocks, ett_x11_rectangle, affectModLocks_bits, byte_order);
23095  }
23096  *offsetp += 1;
23097  {
23098  const int* modLocks_bits [] = {
23099  &hf_x11_xkb_LatchLockState_modLocks_mask_Shift,
23100  &hf_x11_xkb_LatchLockState_modLocks_mask_Lock,
23101  &hf_x11_xkb_LatchLockState_modLocks_mask_Control,
23102  &hf_x11_xkb_LatchLockState_modLocks_mask_1,
23103  &hf_x11_xkb_LatchLockState_modLocks_mask_2,
23104  &hf_x11_xkb_LatchLockState_modLocks_mask_3,
23105  &hf_x11_xkb_LatchLockState_modLocks_mask_4,
23106  &hf_x11_xkb_LatchLockState_modLocks_mask_5,
23107  &hf_x11_xkb_LatchLockState_modLocks_mask_Any,
23108  NULL
23109  };
23110  proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_xkb_LatchLockState_modLocks, ett_x11_rectangle, modLocks_bits, byte_order);
23111  }
23112  *offsetp += 1;
23113  proto_tree_add_item(t, hf_x11_xkb_LatchLockState_lockGroup, tvb, *offsetp, 1, byte_order);
23114  *offsetp += 1;
23115  field8(tvb, offsetp, t, hf_x11_xkb_LatchLockState_groupLock, byte_order);
23116  {
23117  const int* affectModLatches_bits [] = {
23118  &hf_x11_xkb_LatchLockState_affectModLatches_mask_Shift,
23119  &hf_x11_xkb_LatchLockState_affectModLatches_mask_Lock,
23120  &hf_x11_xkb_LatchLockState_affectModLatches_mask_Control,
23121  &hf_x11_xkb_LatchLockState_affectModLatches_mask_1,
23122  &hf_x11_xkb_LatchLockState_affectModLatches_mask_2,
23123  &hf_x11_xkb_LatchLockState_affectModLatches_mask_3,
23124  &hf_x11_xkb_LatchLockState_affectModLatches_mask_4,
23125  &hf_x11_xkb_LatchLockState_affectModLatches_mask_5,
23126  &hf_x11_xkb_LatchLockState_affectModLatches_mask_Any,
23127  NULL
23128  };
23129  proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_xkb_LatchLockState_affectModLatches, ett_x11_rectangle, affectModLatches_bits, byte_order);
23130  }
23131  *offsetp += 1;
23132  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
23133  *offsetp += 1;
23134  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
23135  *offsetp += 1;
23136  proto_tree_add_item(t, hf_x11_xkb_LatchLockState_latchGroup, tvb, *offsetp, 1, byte_order);
23137  *offsetp += 1;
23138  proto_tree_add_item(t, hf_x11_xkb_LatchLockState_groupLatch, tvb, *offsetp, 2, byte_order);
23139  *offsetp += 2;
23140 }
23141 
23142 static void xkbGetControls(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
23143 {
23144  proto_tree_add_item(t, hf_x11_xkb_GetControls_deviceSpec, tvb, *offsetp, 2, byte_order);
23145  *offsetp += 2;
23146  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 2, ENC_NA);
23147  *offsetp += 2;
23148 }
23149 static void xkbGetControls_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
23150 {
23151  int sequence_number;
23152 
23153  col_append_fstr(pinfo->cinfo, COL_INFO, "-GetControls");
23154 
23155  REPLY(reply);
23156  proto_tree_add_item(t, hf_x11_xkb_GetControls_reply_deviceID, tvb, *offsetp, 1, byte_order);
23157  *offsetp += 1;
23158  sequence_number = tvb_get_guint16(tvb, *offsetp, byte_order);
23159  proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
23160  "%d (xkb-GetControls)", sequence_number);
23161  *offsetp += 2;
23162  proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
23163  *offsetp += 4;
23164  proto_tree_add_item(t, hf_x11_xkb_GetControls_reply_mouseKeysDfltBtn, tvb, *offsetp, 1, byte_order);
23165  *offsetp += 1;
23166  proto_tree_add_item(t, hf_x11_xkb_GetControls_reply_numGroups, tvb, *offsetp, 1, byte_order);
23167  *offsetp += 1;
23168  proto_tree_add_item(t, hf_x11_xkb_GetControls_reply_groupsWrap, tvb, *offsetp, 1, byte_order);
23169  *offsetp += 1;
23170  {
23171  const int* internalModsMask_bits [] = {
23172  &hf_x11_xkb_GetControls_reply_internalModsMask_mask_Shift,
23173  &hf_x11_xkb_GetControls_reply_internalModsMask_mask_Lock,
23174  &hf_x11_xkb_GetControls_reply_internalModsMask_mask_Control,
23175  &hf_x11_xkb_GetControls_reply_internalModsMask_mask_1,
23176  &hf_x11_xkb_GetControls_reply_internalModsMask_mask_2,
23177  &hf_x11_xkb_GetControls_reply_internalModsMask_mask_3,
23178  &hf_x11_xkb_GetControls_reply_internalModsMask_mask_4,
23179  &hf_x11_xkb_GetControls_reply_internalModsMask_mask_5,
23180  &hf_x11_xkb_GetControls_reply_internalModsMask_mask_Any,
23181  NULL
23182  };
23183  proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_xkb_GetControls_reply_internalModsMask, ett_x11_rectangle, internalModsMask_bits, byte_order);
23184  }
23185  *offsetp += 1;
23186  {
23187  const int* ignoreLockModsMask_bits [] = {
23188  &hf_x11_xkb_GetControls_reply_ignoreLockModsMask_mask_Shift,
23189  &hf_x11_xkb_GetControls_reply_ignoreLockModsMask_mask_Lock,
23190  &hf_x11_xkb_GetControls_reply_ignoreLockModsMask_mask_Control,
23191  &hf_x11_xkb_GetControls_reply_ignoreLockModsMask_mask_1,
23192  &hf_x11_xkb_GetControls_reply_ignoreLockModsMask_mask_2,
23193  &hf_x11_xkb_GetControls_reply_ignoreLockModsMask_mask_3,
23194  &hf_x11_xkb_GetControls_reply_ignoreLockModsMask_mask_4,
23195  &hf_x11_xkb_GetControls_reply_ignoreLockModsMask_mask_5,
23196  &hf_x11_xkb_GetControls_reply_ignoreLockModsMask_mask_Any,
23197  NULL
23198  };
23199  proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_xkb_GetControls_reply_ignoreLockModsMask, ett_x11_rectangle, ignoreLockModsMask_bits, byte_order);
23200  }
23201  *offsetp += 1;
23202  {
23203  const int* internalModsRealMods_bits [] = {
23204  &hf_x11_xkb_GetControls_reply_internalModsRealMods_mask_Shift,
23205  &hf_x11_xkb_GetControls_reply_internalModsRealMods_mask_Lock,
23206  &hf_x11_xkb_GetControls_reply_internalModsRealMods_mask_Control,
23207  &hf_x11_xkb_GetControls_reply_internalModsRealMods_mask_1,
23208  &hf_x11_xkb_GetControls_reply_internalModsRealMods_mask_2,
23209  &hf_x11_xkb_GetControls_reply_internalModsRealMods_mask_3,
23210  &hf_x11_xkb_GetControls_reply_internalModsRealMods_mask_4,
23211  &hf_x11_xkb_GetControls_reply_internalModsRealMods_mask_5,
23212  &hf_x11_xkb_GetControls_reply_internalModsRealMods_mask_Any,
23213  NULL
23214  };
23215  proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_xkb_GetControls_reply_internalModsRealMods, ett_x11_rectangle, internalModsRealMods_bits, byte_order);
23216  }
23217  *offsetp += 1;
23218  {
23219  const int* ignoreLockModsRealMods_bits [] = {
23220  &hf_x11_xkb_GetControls_reply_ignoreLockModsRealMods_mask_Shift,
23221  &hf_x11_xkb_GetControls_reply_ignoreLockModsRealMods_mask_Lock,
23222  &hf_x11_xkb_GetControls_reply_ignoreLockModsRealMods_mask_Control,
23223  &hf_x11_xkb_GetControls_reply_ignoreLockModsRealMods_mask_1,
23224  &hf_x11_xkb_GetControls_reply_ignoreLockModsRealMods_mask_2,
23225  &hf_x11_xkb_GetControls_reply_ignoreLockModsRealMods_mask_3,
23226  &hf_x11_xkb_GetControls_reply_ignoreLockModsRealMods_mask_4,
23227  &hf_x11_xkb_GetControls_reply_ignoreLockModsRealMods_mask_5,
23228  &hf_x11_xkb_GetControls_reply_ignoreLockModsRealMods_mask_Any,
23229  NULL
23230  };
23231  proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_xkb_GetControls_reply_ignoreLockModsRealMods, ett_x11_rectangle, ignoreLockModsRealMods_bits, byte_order);
23232  }
23233  *offsetp += 1;
23234  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
23235  *offsetp += 1;
23236  {
23237  const int* internalModsVmods_bits [] = {
23238  &hf_x11_xkb_GetControls_reply_internalModsVmods_mask_0,
23239  &hf_x11_xkb_GetControls_reply_internalModsVmods_mask_1,
23240  &hf_x11_xkb_GetControls_reply_internalModsVmods_mask_2,
23241  &hf_x11_xkb_GetControls_reply_internalModsVmods_mask_3,
23242  &hf_x11_xkb_GetControls_reply_internalModsVmods_mask_4,
23243  &hf_x11_xkb_GetControls_reply_internalModsVmods_mask_5,
23244  &hf_x11_xkb_GetControls_reply_internalModsVmods_mask_6,
23245  &hf_x11_xkb_GetControls_reply_internalModsVmods_mask_7,
23246  &hf_x11_xkb_GetControls_reply_internalModsVmods_mask_8,
23247  &hf_x11_xkb_GetControls_reply_internalModsVmods_mask_9,
23248  &hf_x11_xkb_GetControls_reply_internalModsVmods_mask_10,
23249  &hf_x11_xkb_GetControls_reply_internalModsVmods_mask_11,
23250  &hf_x11_xkb_GetControls_reply_internalModsVmods_mask_12,
23251  &hf_x11_xkb_GetControls_reply_internalModsVmods_mask_13,
23252  &hf_x11_xkb_GetControls_reply_internalModsVmods_mask_14,
23253  &hf_x11_xkb_GetControls_reply_internalModsVmods_mask_15,
23254  NULL
23255  };
23256  proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_xkb_GetControls_reply_internalModsVmods, ett_x11_rectangle, internalModsVmods_bits, byte_order);
23257  }
23258  *offsetp += 2;
23259  {
23260  const int* ignoreLockModsVmods_bits [] = {
23261  &hf_x11_xkb_GetControls_reply_ignoreLockModsVmods_mask_0,
23262  &hf_x11_xkb_GetControls_reply_ignoreLockModsVmods_mask_1,
23263  &hf_x11_xkb_GetControls_reply_ignoreLockModsVmods_mask_2,
23264  &hf_x11_xkb_GetControls_reply_ignoreLockModsVmods_mask_3,
23265  &hf_x11_xkb_GetControls_reply_ignoreLockModsVmods_mask_4,
23266  &hf_x11_xkb_GetControls_reply_ignoreLockModsVmods_mask_5,
23267  &hf_x11_xkb_GetControls_reply_ignoreLockModsVmods_mask_6,
23268  &hf_x11_xkb_GetControls_reply_ignoreLockModsVmods_mask_7,
23269  &hf_x11_xkb_GetControls_reply_ignoreLockModsVmods_mask_8,
23270  &hf_x11_xkb_GetControls_reply_ignoreLockModsVmods_mask_9,
23271  &hf_x11_xkb_GetControls_reply_ignoreLockModsVmods_mask_10,
23272  &hf_x11_xkb_GetControls_reply_ignoreLockModsVmods_mask_11,
23273  &hf_x11_xkb_GetControls_reply_ignoreLockModsVmods_mask_12,
23274  &hf_x11_xkb_GetControls_reply_ignoreLockModsVmods_mask_13,
23275  &hf_x11_xkb_GetControls_reply_ignoreLockModsVmods_mask_14,
23276  &hf_x11_xkb_GetControls_reply_ignoreLockModsVmods_mask_15,
23277  NULL
23278  };
23279  proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_xkb_GetControls_reply_ignoreLockModsVmods, ett_x11_rectangle, ignoreLockModsVmods_bits, byte_order);
23280  }
23281  *offsetp += 2;
23282  proto_tree_add_item(t, hf_x11_xkb_GetControls_reply_repeatDelay, tvb, *offsetp, 2, byte_order);
23283  *offsetp += 2;
23284  proto_tree_add_item(t, hf_x11_xkb_GetControls_reply_repeatInterval, tvb, *offsetp, 2, byte_order);
23285  *offsetp += 2;
23286  proto_tree_add_item(t, hf_x11_xkb_GetControls_reply_slowKeysDelay, tvb, *offsetp, 2, byte_order);
23287  *offsetp += 2;
23288  proto_tree_add_item(t, hf_x11_xkb_GetControls_reply_debounceDelay, tvb, *offsetp, 2, byte_order);
23289  *offsetp += 2;
23290  proto_tree_add_item(t, hf_x11_xkb_GetControls_reply_mouseKeysDelay, tvb, *offsetp, 2, byte_order);
23291  *offsetp += 2;
23292  proto_tree_add_item(t, hf_x11_xkb_GetControls_reply_mouseKeysInterval, tvb, *offsetp, 2, byte_order);
23293  *offsetp += 2;
23294  proto_tree_add_item(t, hf_x11_xkb_GetControls_reply_mouseKeysTimeToMax, tvb, *offsetp, 2, byte_order);
23295  *offsetp += 2;
23296  proto_tree_add_item(t, hf_x11_xkb_GetControls_reply_mouseKeysMaxSpeed, tvb, *offsetp, 2, byte_order);
23297  *offsetp += 2;
23298  proto_tree_add_item(t, hf_x11_xkb_GetControls_reply_mouseKeysCurve, tvb, *offsetp, 2, byte_order);
23299  *offsetp += 2;
23300  {
23301  const int* accessXOption_bits [] = {
23302  &hf_x11_xkb_GetControls_reply_accessXOption_mask_SKPressFB,
23303  &hf_x11_xkb_GetControls_reply_accessXOption_mask_SKAcceptFB,
23304  &hf_x11_xkb_GetControls_reply_accessXOption_mask_FeatureFB,
23305  &hf_x11_xkb_GetControls_reply_accessXOption_mask_SlowWarnFB,
23306  &hf_x11_xkb_GetControls_reply_accessXOption_mask_IndicatorFB,
23307  &hf_x11_xkb_GetControls_reply_accessXOption_mask_StickyKeysFB,
23308  &hf_x11_xkb_GetControls_reply_accessXOption_mask_TwoKeys,
23309  &hf_x11_xkb_GetControls_reply_accessXOption_mask_LatchToLock,
23310  &hf_x11_xkb_GetControls_reply_accessXOption_mask_SKReleaseFB,
23311  &hf_x11_xkb_GetControls_reply_accessXOption_mask_SKRejectFB,
23312  &hf_x11_xkb_GetControls_reply_accessXOption_mask_BKRejectFB,
23313  &hf_x11_xkb_GetControls_reply_accessXOption_mask_DumbBell,
23314  NULL
23315  };
23316  proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_xkb_GetControls_reply_accessXOption, ett_x11_rectangle, accessXOption_bits, byte_order);
23317  }
23318  *offsetp += 2;
23319  proto_tree_add_item(t, hf_x11_xkb_GetControls_reply_accessXTimeout, tvb, *offsetp, 2, byte_order);
23320  *offsetp += 2;
23321  {
23322  const int* accessXTimeoutOptionsMask_bits [] = {
23323  &hf_x11_xkb_GetControls_reply_accessXTimeoutOptionsMask_mask_SKPressFB,
23324  &hf_x11_xkb_GetControls_reply_accessXTimeoutOptionsMask_mask_SKAcceptFB,
23325  &hf_x11_xkb_GetControls_reply_accessXTimeoutOptionsMask_mask_FeatureFB,
23326  &hf_x11_xkb_GetControls_reply_accessXTimeoutOptionsMask_mask_SlowWarnFB,
23327  &hf_x11_xkb_GetControls_reply_accessXTimeoutOptionsMask_mask_IndicatorFB,
23328  &hf_x11_xkb_GetControls_reply_accessXTimeoutOptionsMask_mask_StickyKeysFB,
23329  &hf_x11_xkb_GetControls_reply_accessXTimeoutOptionsMask_mask_TwoKeys,
23330  &hf_x11_xkb_GetControls_reply_accessXTimeoutOptionsMask_mask_LatchToLock,
23331  &hf_x11_xkb_GetControls_reply_accessXTimeoutOptionsMask_mask_SKReleaseFB,
23332  &hf_x11_xkb_GetControls_reply_accessXTimeoutOptionsMask_mask_SKRejectFB,
23333  &hf_x11_xkb_GetControls_reply_accessXTimeoutOptionsMask_mask_BKRejectFB,
23334  &hf_x11_xkb_GetControls_reply_accessXTimeoutOptionsMask_mask_DumbBell,
23335  NULL
23336  };
23337  proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_xkb_GetControls_reply_accessXTimeoutOptionsMask, ett_x11_rectangle, accessXTimeoutOptionsMask_bits, byte_order);
23338  }
23339  *offsetp += 2;
23340  {
23341  const int* accessXTimeoutOptionsValues_bits [] = {
23342  &hf_x11_xkb_GetControls_reply_accessXTimeoutOptionsValues_mask_SKPressFB,
23343  &hf_x11_xkb_GetControls_reply_accessXTimeoutOptionsValues_mask_SKAcceptFB,
23344  &hf_x11_xkb_GetControls_reply_accessXTimeoutOptionsValues_mask_FeatureFB,
23345  &hf_x11_xkb_GetControls_reply_accessXTimeoutOptionsValues_mask_SlowWarnFB,
23346  &hf_x11_xkb_GetControls_reply_accessXTimeoutOptionsValues_mask_IndicatorFB,
23347  &hf_x11_xkb_GetControls_reply_accessXTimeoutOptionsValues_mask_StickyKeysFB,
23348  &hf_x11_xkb_GetControls_reply_accessXTimeoutOptionsValues_mask_TwoKeys,
23349  &hf_x11_xkb_GetControls_reply_accessXTimeoutOptionsValues_mask_LatchToLock,
23350  &hf_x11_xkb_GetControls_reply_accessXTimeoutOptionsValues_mask_SKReleaseFB,
23351  &hf_x11_xkb_GetControls_reply_accessXTimeoutOptionsValues_mask_SKRejectFB,
23352  &hf_x11_xkb_GetControls_reply_accessXTimeoutOptionsValues_mask_BKRejectFB,
23353  &hf_x11_xkb_GetControls_reply_accessXTimeoutOptionsValues_mask_DumbBell,
23354  NULL
23355  };
23356  proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_xkb_GetControls_reply_accessXTimeoutOptionsValues, ett_x11_rectangle, accessXTimeoutOptionsValues_bits, byte_order);
23357  }
23358  *offsetp += 2;
23359  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 2, ENC_NA);
23360  *offsetp += 2;
23361  {
23362  const int* accessXTimeoutMask_bits [] = {
23363  &hf_x11_xkb_GetControls_reply_accessXTimeoutMask_mask_RepeatKeys,
23364  &hf_x11_xkb_GetControls_reply_accessXTimeoutMask_mask_SlowKeys,
23365  &hf_x11_xkb_GetControls_reply_accessXTimeoutMask_mask_BounceKeys,
23366  &hf_x11_xkb_GetControls_reply_accessXTimeoutMask_mask_StickyKeys,
23367  &hf_x11_xkb_GetControls_reply_accessXTimeoutMask_mask_MouseKeys,
23368  &hf_x11_xkb_GetControls_reply_accessXTimeoutMask_mask_MouseKeysAccel,
23369  &hf_x11_xkb_GetControls_reply_accessXTimeoutMask_mask_AccessXKeys,
23370  &hf_x11_xkb_GetControls_reply_accessXTimeoutMask_mask_AccessXTimeoutMask,
23371  &hf_x11_xkb_GetControls_reply_accessXTimeoutMask_mask_AccessXFeedbackMask,
23372  &hf_x11_xkb_GetControls_reply_accessXTimeoutMask_mask_AudibleBellMask,
23373  &hf_x11_xkb_GetControls_reply_accessXTimeoutMask_mask_Overlay1Mask,
23374  &hf_x11_xkb_GetControls_reply_accessXTimeoutMask_mask_Overlay2Mask,
23375  &hf_x11_xkb_GetControls_reply_accessXTimeoutMask_mask_IgnoreGroupLockMask,
23376  NULL
23377  };
23378  proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_xkb_GetControls_reply_accessXTimeoutMask, ett_x11_rectangle, accessXTimeoutMask_bits, byte_order);
23379  }
23380  *offsetp += 4;
23381  {
23382  const int* accessXTimeoutValues_bits [] = {
23383  &hf_x11_xkb_GetControls_reply_accessXTimeoutValues_mask_RepeatKeys,
23384  &hf_x11_xkb_GetControls_reply_accessXTimeoutValues_mask_SlowKeys,
23385  &hf_x11_xkb_GetControls_reply_accessXTimeoutValues_mask_BounceKeys,
23386  &hf_x11_xkb_GetControls_reply_accessXTimeoutValues_mask_StickyKeys,
23387  &hf_x11_xkb_GetControls_reply_accessXTimeoutValues_mask_MouseKeys,
23388  &hf_x11_xkb_GetControls_reply_accessXTimeoutValues_mask_MouseKeysAccel,
23389  &hf_x11_xkb_GetControls_reply_accessXTimeoutValues_mask_AccessXKeys,
23390  &hf_x11_xkb_GetControls_reply_accessXTimeoutValues_mask_AccessXTimeoutMask,
23391  &hf_x11_xkb_GetControls_reply_accessXTimeoutValues_mask_AccessXFeedbackMask,
23392  &hf_x11_xkb_GetControls_reply_accessXTimeoutValues_mask_AudibleBellMask,
23393  &hf_x11_xkb_GetControls_reply_accessXTimeoutValues_mask_Overlay1Mask,
23394  &hf_x11_xkb_GetControls_reply_accessXTimeoutValues_mask_Overlay2Mask,
23395  &hf_x11_xkb_GetControls_reply_accessXTimeoutValues_mask_IgnoreGroupLockMask,
23396  NULL
23397  };
23398  proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_xkb_GetControls_reply_accessXTimeoutValues, ett_x11_rectangle, accessXTimeoutValues_bits, byte_order);
23399  }
23400  *offsetp += 4;
23401  {
23402  const int* enabledControls_bits [] = {
23403  &hf_x11_xkb_GetControls_reply_enabledControls_mask_RepeatKeys,
23404  &hf_x11_xkb_GetControls_reply_enabledControls_mask_SlowKeys,
23405  &hf_x11_xkb_GetControls_reply_enabledControls_mask_BounceKeys,
23406  &hf_x11_xkb_GetControls_reply_enabledControls_mask_StickyKeys,
23407  &hf_x11_xkb_GetControls_reply_enabledControls_mask_MouseKeys,
23408  &hf_x11_xkb_GetControls_reply_enabledControls_mask_MouseKeysAccel,
23409  &hf_x11_xkb_GetControls_reply_enabledControls_mask_AccessXKeys,
23410  &hf_x11_xkb_GetControls_reply_enabledControls_mask_AccessXTimeoutMask,
23411  &hf_x11_xkb_GetControls_reply_enabledControls_mask_AccessXFeedbackMask,
23412  &hf_x11_xkb_GetControls_reply_enabledControls_mask_AudibleBellMask,
23413  &hf_x11_xkb_GetControls_reply_enabledControls_mask_Overlay1Mask,
23414  &hf_x11_xkb_GetControls_reply_enabledControls_mask_Overlay2Mask,
23415  &hf_x11_xkb_GetControls_reply_enabledControls_mask_IgnoreGroupLockMask,
23416  NULL
23417  };
23418  proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_xkb_GetControls_reply_enabledControls, ett_x11_rectangle, enabledControls_bits, byte_order);
23419  }
23420  *offsetp += 4;
23421  listOfByte(tvb, offsetp, t, hf_x11_xkb_GetControls_reply_perKeyRepeat, 32, byte_order);
23422 }
23423 
23424 static void xkbSetControls(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
23425 {
23426  proto_tree_add_item(t, hf_x11_xkb_SetControls_deviceSpec, tvb, *offsetp, 2, byte_order);
23427  *offsetp += 2;
23428  {
23429  const int* affectInternalRealMods_bits [] = {
23430  &hf_x11_xkb_SetControls_affectInternalRealMods_mask_Shift,
23431  &hf_x11_xkb_SetControls_affectInternalRealMods_mask_Lock,
23432  &hf_x11_xkb_SetControls_affectInternalRealMods_mask_Control,
23433  &hf_x11_xkb_SetControls_affectInternalRealMods_mask_1,
23434  &hf_x11_xkb_SetControls_affectInternalRealMods_mask_2,
23435  &hf_x11_xkb_SetControls_affectInternalRealMods_mask_3,
23436  &hf_x11_xkb_SetControls_affectInternalRealMods_mask_4,
23437  &hf_x11_xkb_SetControls_affectInternalRealMods_mask_5,
23438  &hf_x11_xkb_SetControls_affectInternalRealMods_mask_Any,
23439  NULL
23440  };
23441  proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_xkb_SetControls_affectInternalRealMods, ett_x11_rectangle, affectInternalRealMods_bits, byte_order);
23442  }
23443  *offsetp += 1;
23444  {
23445  const int* internalRealMods_bits [] = {
23446  &hf_x11_xkb_SetControls_internalRealMods_mask_Shift,
23447  &hf_x11_xkb_SetControls_internalRealMods_mask_Lock,
23448  &hf_x11_xkb_SetControls_internalRealMods_mask_Control,
23449  &hf_x11_xkb_SetControls_internalRealMods_mask_1,
23450  &hf_x11_xkb_SetControls_internalRealMods_mask_2,
23451  &hf_x11_xkb_SetControls_internalRealMods_mask_3,
23452  &hf_x11_xkb_SetControls_internalRealMods_mask_4,
23453  &hf_x11_xkb_SetControls_internalRealMods_mask_5,
23454  &hf_x11_xkb_SetControls_internalRealMods_mask_Any,
23455  NULL
23456  };
23457  proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_xkb_SetControls_internalRealMods, ett_x11_rectangle, internalRealMods_bits, byte_order);
23458  }
23459  *offsetp += 1;
23460  {
23461  const int* affectIgnoreLockRealMods_bits [] = {
23462  &hf_x11_xkb_SetControls_affectIgnoreLockRealMods_mask_Shift,
23463  &hf_x11_xkb_SetControls_affectIgnoreLockRealMods_mask_Lock,
23464  &hf_x11_xkb_SetControls_affectIgnoreLockRealMods_mask_Control,
23465  &hf_x11_xkb_SetControls_affectIgnoreLockRealMods_mask_1,
23466  &hf_x11_xkb_SetControls_affectIgnoreLockRealMods_mask_2,
23467  &hf_x11_xkb_SetControls_affectIgnoreLockRealMods_mask_3,
23468  &hf_x11_xkb_SetControls_affectIgnoreLockRealMods_mask_4,
23469  &hf_x11_xkb_SetControls_affectIgnoreLockRealMods_mask_5,
23470  &hf_x11_xkb_SetControls_affectIgnoreLockRealMods_mask_Any,
23471  NULL
23472  };
23473  proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_xkb_SetControls_affectIgnoreLockRealMods, ett_x11_rectangle, affectIgnoreLockRealMods_bits, byte_order);
23474  }
23475  *offsetp += 1;
23476  {
23477  const int* ignoreLockRealMods_bits [] = {
23478  &hf_x11_xkb_SetControls_ignoreLockRealMods_mask_Shift,
23479  &hf_x11_xkb_SetControls_ignoreLockRealMods_mask_Lock,
23480  &hf_x11_xkb_SetControls_ignoreLockRealMods_mask_Control,
23481  &hf_x11_xkb_SetControls_ignoreLockRealMods_mask_1,
23482  &hf_x11_xkb_SetControls_ignoreLockRealMods_mask_2,
23483  &hf_x11_xkb_SetControls_ignoreLockRealMods_mask_3,
23484  &hf_x11_xkb_SetControls_ignoreLockRealMods_mask_4,
23485  &hf_x11_xkb_SetControls_ignoreLockRealMods_mask_5,
23486  &hf_x11_xkb_SetControls_ignoreLockRealMods_mask_Any,
23487  NULL
23488  };
23489  proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_xkb_SetControls_ignoreLockRealMods, ett_x11_rectangle, ignoreLockRealMods_bits, byte_order);
23490  }
23491  *offsetp += 1;
23492  {
23493  const int* affectInternalVirtualMods_bits [] = {
23494  &hf_x11_xkb_SetControls_affectInternalVirtualMods_mask_0,
23495  &hf_x11_xkb_SetControls_affectInternalVirtualMods_mask_1,
23496  &hf_x11_xkb_SetControls_affectInternalVirtualMods_mask_2,
23497  &hf_x11_xkb_SetControls_affectInternalVirtualMods_mask_3,
23498  &hf_x11_xkb_SetControls_affectInternalVirtualMods_mask_4,
23499  &hf_x11_xkb_SetControls_affectInternalVirtualMods_mask_5,
23500  &hf_x11_xkb_SetControls_affectInternalVirtualMods_mask_6,
23501  &hf_x11_xkb_SetControls_affectInternalVirtualMods_mask_7,
23502  &hf_x11_xkb_SetControls_affectInternalVirtualMods_mask_8,
23503  &hf_x11_xkb_SetControls_affectInternalVirtualMods_mask_9,
23504  &hf_x11_xkb_SetControls_affectInternalVirtualMods_mask_10,
23505  &hf_x11_xkb_SetControls_affectInternalVirtualMods_mask_11,
23506  &hf_x11_xkb_SetControls_affectInternalVirtualMods_mask_12,
23507  &hf_x11_xkb_SetControls_affectInternalVirtualMods_mask_13,
23508  &hf_x11_xkb_SetControls_affectInternalVirtualMods_mask_14,
23509  &hf_x11_xkb_SetControls_affectInternalVirtualMods_mask_15,
23510  NULL
23511  };
23512  proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_xkb_SetControls_affectInternalVirtualMods, ett_x11_rectangle, affectInternalVirtualMods_bits, byte_order);
23513  }
23514  *offsetp += 2;
23515  {
23516  const int* internalVirtualMods_bits [] = {
23517  &hf_x11_xkb_SetControls_internalVirtualMods_mask_0,
23518  &hf_x11_xkb_SetControls_internalVirtualMods_mask_1,
23519  &hf_x11_xkb_SetControls_internalVirtualMods_mask_2,
23520  &hf_x11_xkb_SetControls_internalVirtualMods_mask_3,
23521  &hf_x11_xkb_SetControls_internalVirtualMods_mask_4,
23522  &hf_x11_xkb_SetControls_internalVirtualMods_mask_5,
23523  &hf_x11_xkb_SetControls_internalVirtualMods_mask_6,
23524  &hf_x11_xkb_SetControls_internalVirtualMods_mask_7,
23525  &hf_x11_xkb_SetControls_internalVirtualMods_mask_8,
23526  &hf_x11_xkb_SetControls_internalVirtualMods_mask_9,
23527  &hf_x11_xkb_SetControls_internalVirtualMods_mask_10,
23528  &hf_x11_xkb_SetControls_internalVirtualMods_mask_11,
23529  &hf_x11_xkb_SetControls_internalVirtualMods_mask_12,
23530  &hf_x11_xkb_SetControls_internalVirtualMods_mask_13,
23531  &hf_x11_xkb_SetControls_internalVirtualMods_mask_14,
23532  &hf_x11_xkb_SetControls_internalVirtualMods_mask_15,
23533  NULL
23534  };
23535  proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_xkb_SetControls_internalVirtualMods, ett_x11_rectangle, internalVirtualMods_bits, byte_order);
23536  }
23537  *offsetp += 2;
23538  {
23539  const int* affectIgnoreLockVirtualMods_bits [] = {
23540  &hf_x11_xkb_SetControls_affectIgnoreLockVirtualMods_mask_0,
23541  &hf_x11_xkb_SetControls_affectIgnoreLockVirtualMods_mask_1,
23542  &hf_x11_xkb_SetControls_affectIgnoreLockVirtualMods_mask_2,
23543  &hf_x11_xkb_SetControls_affectIgnoreLockVirtualMods_mask_3,
23544  &hf_x11_xkb_SetControls_affectIgnoreLockVirtualMods_mask_4,
23545  &hf_x11_xkb_SetControls_affectIgnoreLockVirtualMods_mask_5,
23546  &hf_x11_xkb_SetControls_affectIgnoreLockVirtualMods_mask_6,
23547  &hf_x11_xkb_SetControls_affectIgnoreLockVirtualMods_mask_7,
23548  &hf_x11_xkb_SetControls_affectIgnoreLockVirtualMods_mask_8,
23549  &hf_x11_xkb_SetControls_affectIgnoreLockVirtualMods_mask_9,
23550  &hf_x11_xkb_SetControls_affectIgnoreLockVirtualMods_mask_10,
23551  &hf_x11_xkb_SetControls_affectIgnoreLockVirtualMods_mask_11,
23552  &hf_x11_xkb_SetControls_affectIgnoreLockVirtualMods_mask_12,
23553  &hf_x11_xkb_SetControls_affectIgnoreLockVirtualMods_mask_13,
23554  &hf_x11_xkb_SetControls_affectIgnoreLockVirtualMods_mask_14,
23555  &hf_x11_xkb_SetControls_affectIgnoreLockVirtualMods_mask_15,
23556  NULL
23557  };
23558  proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_xkb_SetControls_affectIgnoreLockVirtualMods, ett_x11_rectangle, affectIgnoreLockVirtualMods_bits, byte_order);
23559  }
23560  *offsetp += 2;
23561  {
23562  const int* ignoreLockVirtualMods_bits [] = {
23563  &hf_x11_xkb_SetControls_ignoreLockVirtualMods_mask_0,
23564  &hf_x11_xkb_SetControls_ignoreLockVirtualMods_mask_1,
23565  &hf_x11_xkb_SetControls_ignoreLockVirtualMods_mask_2,
23566  &hf_x11_xkb_SetControls_ignoreLockVirtualMods_mask_3,
23567  &hf_x11_xkb_SetControls_ignoreLockVirtualMods_mask_4,
23568  &hf_x11_xkb_SetControls_ignoreLockVirtualMods_mask_5,
23569  &hf_x11_xkb_SetControls_ignoreLockVirtualMods_mask_6,
23570  &hf_x11_xkb_SetControls_ignoreLockVirtualMods_mask_7,
23571  &hf_x11_xkb_SetControls_ignoreLockVirtualMods_mask_8,
23572  &hf_x11_xkb_SetControls_ignoreLockVirtualMods_mask_9,
23573  &hf_x11_xkb_SetControls_ignoreLockVirtualMods_mask_10,
23574  &hf_x11_xkb_SetControls_ignoreLockVirtualMods_mask_11,
23575  &hf_x11_xkb_SetControls_ignoreLockVirtualMods_mask_12,
23576  &hf_x11_xkb_SetControls_ignoreLockVirtualMods_mask_13,
23577  &hf_x11_xkb_SetControls_ignoreLockVirtualMods_mask_14,
23578  &hf_x11_xkb_SetControls_ignoreLockVirtualMods_mask_15,
23579  NULL
23580  };
23581  proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_xkb_SetControls_ignoreLockVirtualMods, ett_x11_rectangle, ignoreLockVirtualMods_bits, byte_order);
23582  }
23583  *offsetp += 2;
23584  proto_tree_add_item(t, hf_x11_xkb_SetControls_mouseKeysDfltBtn, tvb, *offsetp, 1, byte_order);
23585  *offsetp += 1;
23586  proto_tree_add_item(t, hf_x11_xkb_SetControls_groupsWrap, tvb, *offsetp, 1, byte_order);
23587  *offsetp += 1;
23588  {
23589  const int* accessXOptions_bits [] = {
23590  &hf_x11_xkb_SetControls_accessXOptions_mask_SKPressFB,
23591  &hf_x11_xkb_SetControls_accessXOptions_mask_SKAcceptFB,
23592  &hf_x11_xkb_SetControls_accessXOptions_mask_FeatureFB,
23593  &hf_x11_xkb_SetControls_accessXOptions_mask_SlowWarnFB,
23594  &hf_x11_xkb_SetControls_accessXOptions_mask_IndicatorFB,
23595  &hf_x11_xkb_SetControls_accessXOptions_mask_StickyKeysFB,
23596  &hf_x11_xkb_SetControls_accessXOptions_mask_TwoKeys,
23597  &hf_x11_xkb_SetControls_accessXOptions_mask_LatchToLock,
23598  &hf_x11_xkb_SetControls_accessXOptions_mask_SKReleaseFB,
23599  &hf_x11_xkb_SetControls_accessXOptions_mask_SKRejectFB,
23600  &hf_x11_xkb_SetControls_accessXOptions_mask_BKRejectFB,
23601  &hf_x11_xkb_SetControls_accessXOptions_mask_DumbBell,
23602  NULL
23603  };
23604  proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_xkb_SetControls_accessXOptions, ett_x11_rectangle, accessXOptions_bits, byte_order);
23605  }
23606  *offsetp += 2;
23607  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 2, ENC_NA);
23608  *offsetp += 2;
23609  {
23610  const int* affectEnabledControls_bits [] = {
23611  &hf_x11_xkb_SetControls_affectEnabledControls_mask_RepeatKeys,
23612  &hf_x11_xkb_SetControls_affectEnabledControls_mask_SlowKeys,
23613  &hf_x11_xkb_SetControls_affectEnabledControls_mask_BounceKeys,
23614  &hf_x11_xkb_SetControls_affectEnabledControls_mask_StickyKeys,
23615  &hf_x11_xkb_SetControls_affectEnabledControls_mask_MouseKeys,
23616  &hf_x11_xkb_SetControls_affectEnabledControls_mask_MouseKeysAccel,
23617  &hf_x11_xkb_SetControls_affectEnabledControls_mask_AccessXKeys,
23618  &hf_x11_xkb_SetControls_affectEnabledControls_mask_AccessXTimeoutMask,
23619  &hf_x11_xkb_SetControls_affectEnabledControls_mask_AccessXFeedbackMask,
23620  &hf_x11_xkb_SetControls_affectEnabledControls_mask_AudibleBellMask,
23621  &hf_x11_xkb_SetControls_affectEnabledControls_mask_Overlay1Mask,
23622  &hf_x11_xkb_SetControls_affectEnabledControls_mask_Overlay2Mask,
23623  &hf_x11_xkb_SetControls_affectEnabledControls_mask_IgnoreGroupLockMask,
23624  NULL
23625  };
23626  proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_xkb_SetControls_affectEnabledControls, ett_x11_rectangle, affectEnabledControls_bits, byte_order);
23627  }
23628  *offsetp += 4;
23629  {
23630  const int* enabledControls_bits [] = {
23631  &hf_x11_xkb_SetControls_enabledControls_mask_RepeatKeys,
23632  &hf_x11_xkb_SetControls_enabledControls_mask_SlowKeys,
23633  &hf_x11_xkb_SetControls_enabledControls_mask_BounceKeys,
23634  &hf_x11_xkb_SetControls_enabledControls_mask_StickyKeys,
23635  &hf_x11_xkb_SetControls_enabledControls_mask_MouseKeys,
23636  &hf_x11_xkb_SetControls_enabledControls_mask_MouseKeysAccel,
23637  &hf_x11_xkb_SetControls_enabledControls_mask_AccessXKeys,
23638  &hf_x11_xkb_SetControls_enabledControls_mask_AccessXTimeoutMask,
23639  &hf_x11_xkb_SetControls_enabledControls_mask_AccessXFeedbackMask,
23640  &hf_x11_xkb_SetControls_enabledControls_mask_AudibleBellMask,
23641  &hf_x11_xkb_SetControls_enabledControls_mask_Overlay1Mask,
23642  &hf_x11_xkb_SetControls_enabledControls_mask_Overlay2Mask,
23643  &hf_x11_xkb_SetControls_enabledControls_mask_IgnoreGroupLockMask,
23644  NULL
23645  };
23646  proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_xkb_SetControls_enabledControls, ett_x11_rectangle, enabledControls_bits, byte_order);
23647  }
23648  *offsetp += 4;
23649  {
23650  const int* changeControls_bits [] = {
23651  &hf_x11_xkb_SetControls_changeControls_mask_GroupsWrap,
23652  &hf_x11_xkb_SetControls_changeControls_mask_InternalMods,
23653  &hf_x11_xkb_SetControls_changeControls_mask_IgnoreLockMods,
23654  &hf_x11_xkb_SetControls_changeControls_mask_PerKeyRepeat,
23655  &hf_x11_xkb_SetControls_changeControls_mask_ControlsEnabled,
23656  NULL
23657  };
23658  proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_xkb_SetControls_changeControls, ett_x11_rectangle, changeControls_bits, byte_order);
23659  }
23660  *offsetp += 4;
23661  proto_tree_add_item(t, hf_x11_xkb_SetControls_repeatDelay, tvb, *offsetp, 2, byte_order);
23662  *offsetp += 2;
23663  proto_tree_add_item(t, hf_x11_xkb_SetControls_repeatInterval, tvb, *offsetp, 2, byte_order);
23664  *offsetp += 2;
23665  proto_tree_add_item(t, hf_x11_xkb_SetControls_slowKeysDelay, tvb, *offsetp, 2, byte_order);
23666  *offsetp += 2;
23667  proto_tree_add_item(t, hf_x11_xkb_SetControls_debounceDelay, tvb, *offsetp, 2, byte_order);
23668  *offsetp += 2;
23669  proto_tree_add_item(t, hf_x11_xkb_SetControls_mouseKeysDelay, tvb, *offsetp, 2, byte_order);
23670  *offsetp += 2;
23671  proto_tree_add_item(t, hf_x11_xkb_SetControls_mouseKeysInterval, tvb, *offsetp, 2, byte_order);
23672  *offsetp += 2;
23673  proto_tree_add_item(t, hf_x11_xkb_SetControls_mouseKeysTimeToMax, tvb, *offsetp, 2, byte_order);
23674  *offsetp += 2;
23675  proto_tree_add_item(t, hf_x11_xkb_SetControls_mouseKeysMaxSpeed, tvb, *offsetp, 2, byte_order);
23676  *offsetp += 2;
23677  proto_tree_add_item(t, hf_x11_xkb_SetControls_mouseKeysCurve, tvb, *offsetp, 2, byte_order);
23678  *offsetp += 2;
23679  proto_tree_add_item(t, hf_x11_xkb_SetControls_accessXTimeout, tvb, *offsetp, 2, byte_order);
23680  *offsetp += 2;
23681  {
23682  const int* accessXTimeoutMask_bits [] = {
23683  &hf_x11_xkb_SetControls_accessXTimeoutMask_mask_RepeatKeys,
23684  &hf_x11_xkb_SetControls_accessXTimeoutMask_mask_SlowKeys,
23685  &hf_x11_xkb_SetControls_accessXTimeoutMask_mask_BounceKeys,
23686  &hf_x11_xkb_SetControls_accessXTimeoutMask_mask_StickyKeys,
23687  &hf_x11_xkb_SetControls_accessXTimeoutMask_mask_MouseKeys,
23688  &hf_x11_xkb_SetControls_accessXTimeoutMask_mask_MouseKeysAccel,
23689  &hf_x11_xkb_SetControls_accessXTimeoutMask_mask_AccessXKeys,
23690  &hf_x11_xkb_SetControls_accessXTimeoutMask_mask_AccessXTimeoutMask,
23691  &hf_x11_xkb_SetControls_accessXTimeoutMask_mask_AccessXFeedbackMask,
23692  &hf_x11_xkb_SetControls_accessXTimeoutMask_mask_AudibleBellMask,
23693  &hf_x11_xkb_SetControls_accessXTimeoutMask_mask_Overlay1Mask,
23694  &hf_x11_xkb_SetControls_accessXTimeoutMask_mask_Overlay2Mask,
23695  &hf_x11_xkb_SetControls_accessXTimeoutMask_mask_IgnoreGroupLockMask,
23696  NULL
23697  };
23698  proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_xkb_SetControls_accessXTimeoutMask, ett_x11_rectangle, accessXTimeoutMask_bits, byte_order);
23699  }
23700  *offsetp += 4;
23701  {
23702  const int* accessXTimeoutValues_bits [] = {
23703  &hf_x11_xkb_SetControls_accessXTimeoutValues_mask_RepeatKeys,
23704  &hf_x11_xkb_SetControls_accessXTimeoutValues_mask_SlowKeys,
23705  &hf_x11_xkb_SetControls_accessXTimeoutValues_mask_BounceKeys,
23706  &hf_x11_xkb_SetControls_accessXTimeoutValues_mask_StickyKeys,
23707  &hf_x11_xkb_SetControls_accessXTimeoutValues_mask_MouseKeys,
23708  &hf_x11_xkb_SetControls_accessXTimeoutValues_mask_MouseKeysAccel,
23709  &hf_x11_xkb_SetControls_accessXTimeoutValues_mask_AccessXKeys,
23710  &hf_x11_xkb_SetControls_accessXTimeoutValues_mask_AccessXTimeoutMask,
23711  &hf_x11_xkb_SetControls_accessXTimeoutValues_mask_AccessXFeedbackMask,
23712  &hf_x11_xkb_SetControls_accessXTimeoutValues_mask_AudibleBellMask,
23713  &hf_x11_xkb_SetControls_accessXTimeoutValues_mask_Overlay1Mask,
23714  &hf_x11_xkb_SetControls_accessXTimeoutValues_mask_Overlay2Mask,
23715  &hf_x11_xkb_SetControls_accessXTimeoutValues_mask_IgnoreGroupLockMask,
23716  NULL
23717  };
23718  proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_xkb_SetControls_accessXTimeoutValues, ett_x11_rectangle, accessXTimeoutValues_bits, byte_order);
23719  }
23720  *offsetp += 4;
23721  {
23722  const int* accessXTimeoutOptionsMask_bits [] = {
23723  &hf_x11_xkb_SetControls_accessXTimeoutOptionsMask_mask_SKPressFB,
23724  &hf_x11_xkb_SetControls_accessXTimeoutOptionsMask_mask_SKAcceptFB,
23725  &hf_x11_xkb_SetControls_accessXTimeoutOptionsMask_mask_FeatureFB,
23726  &hf_x11_xkb_SetControls_accessXTimeoutOptionsMask_mask_SlowWarnFB,
23727  &hf_x11_xkb_SetControls_accessXTimeoutOptionsMask_mask_IndicatorFB,
23728  &hf_x11_xkb_SetControls_accessXTimeoutOptionsMask_mask_StickyKeysFB,
23729  &hf_x11_xkb_SetControls_accessXTimeoutOptionsMask_mask_TwoKeys,
23730  &hf_x11_xkb_SetControls_accessXTimeoutOptionsMask_mask_LatchToLock,
23731  &hf_x11_xkb_SetControls_accessXTimeoutOptionsMask_mask_SKReleaseFB,
23732  &hf_x11_xkb_SetControls_accessXTimeoutOptionsMask_mask_SKRejectFB,
23733  &hf_x11_xkb_SetControls_accessXTimeoutOptionsMask_mask_BKRejectFB,
23734  &hf_x11_xkb_SetControls_accessXTimeoutOptionsMask_mask_DumbBell,
23735  NULL
23736  };
23737  proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_xkb_SetControls_accessXTimeoutOptionsMask, ett_x11_rectangle, accessXTimeoutOptionsMask_bits, byte_order);
23738  }
23739  *offsetp += 2;
23740  {
23741  const int* accessXTimeoutOptionsValues_bits [] = {
23742  &hf_x11_xkb_SetControls_accessXTimeoutOptionsValues_mask_SKPressFB,
23743  &hf_x11_xkb_SetControls_accessXTimeoutOptionsValues_mask_SKAcceptFB,
23744  &hf_x11_xkb_SetControls_accessXTimeoutOptionsValues_mask_FeatureFB,
23745  &hf_x11_xkb_SetControls_accessXTimeoutOptionsValues_mask_SlowWarnFB,
23746  &hf_x11_xkb_SetControls_accessXTimeoutOptionsValues_mask_IndicatorFB,
23747  &hf_x11_xkb_SetControls_accessXTimeoutOptionsValues_mask_StickyKeysFB,
23748  &hf_x11_xkb_SetControls_accessXTimeoutOptionsValues_mask_TwoKeys,
23749  &hf_x11_xkb_SetControls_accessXTimeoutOptionsValues_mask_LatchToLock,
23750  &hf_x11_xkb_SetControls_accessXTimeoutOptionsValues_mask_SKReleaseFB,
23751  &hf_x11_xkb_SetControls_accessXTimeoutOptionsValues_mask_SKRejectFB,
23752  &hf_x11_xkb_SetControls_accessXTimeoutOptionsValues_mask_BKRejectFB,
23753  &hf_x11_xkb_SetControls_accessXTimeoutOptionsValues_mask_DumbBell,
23754  NULL
23755  };
23756  proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_xkb_SetControls_accessXTimeoutOptionsValues, ett_x11_rectangle, accessXTimeoutOptionsValues_bits, byte_order);
23757  }
23758  *offsetp += 2;
23759  listOfByte(tvb, offsetp, t, hf_x11_xkb_SetControls_perKeyRepeat, 32, byte_order);
23760  length -= 32 * 1;
23761 }
23762 
23763 static void xkbGetMap(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
23764 {
23765  proto_tree_add_item(t, hf_x11_xkb_GetMap_deviceSpec, tvb, *offsetp, 2, byte_order);
23766  *offsetp += 2;
23767  {
23768  const int* full_bits [] = {
23769  &hf_x11_xkb_GetMap_full_mask_KeyTypes,
23770  &hf_x11_xkb_GetMap_full_mask_KeySyms,
23771  &hf_x11_xkb_GetMap_full_mask_ModifierMap,
23772  &hf_x11_xkb_GetMap_full_mask_ExplicitComponents,
23773  &hf_x11_xkb_GetMap_full_mask_KeyActions,
23774  &hf_x11_xkb_GetMap_full_mask_KeyBehaviors,
23775  &hf_x11_xkb_GetMap_full_mask_VirtualMods,
23776  &hf_x11_xkb_GetMap_full_mask_VirtualModMap,
23777  NULL
23778  };
23779  proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_xkb_GetMap_full, ett_x11_rectangle, full_bits, byte_order);
23780  }
23781  *offsetp += 2;
23782  {
23783  const int* partial_bits [] = {
23784  &hf_x11_xkb_GetMap_partial_mask_KeyTypes,
23785  &hf_x11_xkb_GetMap_partial_mask_KeySyms,
23786  &hf_x11_xkb_GetMap_partial_mask_ModifierMap,
23787  &hf_x11_xkb_GetMap_partial_mask_ExplicitComponents,
23788  &hf_x11_xkb_GetMap_partial_mask_KeyActions,
23789  &hf_x11_xkb_GetMap_partial_mask_KeyBehaviors,
23790  &hf_x11_xkb_GetMap_partial_mask_VirtualMods,
23791  &hf_x11_xkb_GetMap_partial_mask_VirtualModMap,
23792  NULL
23793  };
23794  proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_xkb_GetMap_partial, ett_x11_rectangle, partial_bits, byte_order);
23795  }
23796  *offsetp += 2;
23797  proto_tree_add_item(t, hf_x11_xkb_GetMap_firstType, tvb, *offsetp, 1, byte_order);
23798  *offsetp += 1;
23799  proto_tree_add_item(t, hf_x11_xkb_GetMap_nTypes, tvb, *offsetp, 1, byte_order);
23800  *offsetp += 1;
23801  proto_tree_add_item(t, hf_x11_xkb_GetMap_firstKeySym, tvb, *offsetp, 1, byte_order);
23802  *offsetp += 1;
23803  proto_tree_add_item(t, hf_x11_xkb_GetMap_nKeySyms, tvb, *offsetp, 1, byte_order);
23804  *offsetp += 1;
23805  proto_tree_add_item(t, hf_x11_xkb_GetMap_firstKeyAction, tvb, *offsetp, 1, byte_order);
23806  *offsetp += 1;
23807  proto_tree_add_item(t, hf_x11_xkb_GetMap_nKeyActions, tvb, *offsetp, 1, byte_order);
23808  *offsetp += 1;
23809  proto_tree_add_item(t, hf_x11_xkb_GetMap_firstKeyBehavior, tvb, *offsetp, 1, byte_order);
23810  *offsetp += 1;
23811  proto_tree_add_item(t, hf_x11_xkb_GetMap_nKeyBehaviors, tvb, *offsetp, 1, byte_order);
23812  *offsetp += 1;
23813  {
23814  const int* virtualMods_bits [] = {
23815  &hf_x11_xkb_GetMap_virtualMods_mask_0,
23816  &hf_x11_xkb_GetMap_virtualMods_mask_1,
23817  &hf_x11_xkb_GetMap_virtualMods_mask_2,
23818  &hf_x11_xkb_GetMap_virtualMods_mask_3,
23819  &hf_x11_xkb_GetMap_virtualMods_mask_4,
23820  &hf_x11_xkb_GetMap_virtualMods_mask_5,
23821  &hf_x11_xkb_GetMap_virtualMods_mask_6,
23822  &hf_x11_xkb_GetMap_virtualMods_mask_7,
23823  &hf_x11_xkb_GetMap_virtualMods_mask_8,
23824  &hf_x11_xkb_GetMap_virtualMods_mask_9,
23825  &hf_x11_xkb_GetMap_virtualMods_mask_10,
23826  &hf_x11_xkb_GetMap_virtualMods_mask_11,
23827  &hf_x11_xkb_GetMap_virtualMods_mask_12,
23828  &hf_x11_xkb_GetMap_virtualMods_mask_13,
23829  &hf_x11_xkb_GetMap_virtualMods_mask_14,
23830  &hf_x11_xkb_GetMap_virtualMods_mask_15,
23831  NULL
23832  };
23833  proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_xkb_GetMap_virtualMods, ett_x11_rectangle, virtualMods_bits, byte_order);
23834  }
23835  *offsetp += 2;
23836  proto_tree_add_item(t, hf_x11_xkb_GetMap_firstKeyExplicit, tvb, *offsetp, 1, byte_order);
23837  *offsetp += 1;
23838  proto_tree_add_item(t, hf_x11_xkb_GetMap_nKeyExplicit, tvb, *offsetp, 1, byte_order);
23839  *offsetp += 1;
23840  proto_tree_add_item(t, hf_x11_xkb_GetMap_firstModMapKey, tvb, *offsetp, 1, byte_order);
23841  *offsetp += 1;
23842  proto_tree_add_item(t, hf_x11_xkb_GetMap_nModMapKeys, tvb, *offsetp, 1, byte_order);
23843  *offsetp += 1;
23844  proto_tree_add_item(t, hf_x11_xkb_GetMap_firstVModMapKey, tvb, *offsetp, 1, byte_order);
23845  *offsetp += 1;
23846  proto_tree_add_item(t, hf_x11_xkb_GetMap_nVModMapKeys, tvb, *offsetp, 1, byte_order);
23847  *offsetp += 1;
23848  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 2, ENC_NA);
23849  *offsetp += 2;
23850 }
23851 static void xkbGetMap_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
23852 {
23853  int sequence_number;
23854  int f_present;
23855  int f_nTypes;
23856  int f_nKeySyms;
23857  int f_totalActions;
23858  int f_nKeyActions;
23859  int f_totalKeyBehaviors;
23860  int f_totalKeyExplicit;
23861  int f_totalModMapKeys;
23862  int f_totalVModMapKeys;
23863  int f_virtualMods;
23864 
23865  col_append_fstr(pinfo->cinfo, COL_INFO, "-GetMap");
23866 
23867  REPLY(reply);
23868  proto_tree_add_item(t, hf_x11_xkb_GetMap_reply_deviceID, tvb, *offsetp, 1, byte_order);
23869  *offsetp += 1;
23870  sequence_number = tvb_get_guint16(tvb, *offsetp, byte_order);
23871  proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
23872  "%d (xkb-GetMap)", sequence_number);
23873  *offsetp += 2;
23874  proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
23875  *offsetp += 4;
23876  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 2, ENC_NA);
23877  *offsetp += 2;
23878  proto_tree_add_item(t, hf_x11_xkb_GetMap_reply_minKeyCode, tvb, *offsetp, 1, byte_order);
23879  *offsetp += 1;
23880  proto_tree_add_item(t, hf_x11_xkb_GetMap_reply_maxKeyCode, tvb, *offsetp, 1, byte_order);
23881  *offsetp += 1;
23882  f_present = tvb_get_guint16(tvb, *offsetp, byte_order);
23883  {
23884  const int* present_bits [] = {
23885  &hf_x11_xkb_GetMap_reply_present_mask_KeyTypes,
23886  &hf_x11_xkb_GetMap_reply_present_mask_KeySyms,
23887  &hf_x11_xkb_GetMap_reply_present_mask_ModifierMap,
23888  &hf_x11_xkb_GetMap_reply_present_mask_ExplicitComponents,
23889  &hf_x11_xkb_GetMap_reply_present_mask_KeyActions,
23890  &hf_x11_xkb_GetMap_reply_present_mask_KeyBehaviors,
23891  &hf_x11_xkb_GetMap_reply_present_mask_VirtualMods,
23892  &hf_x11_xkb_GetMap_reply_present_mask_VirtualModMap,
23893  NULL
23894  };
23895  proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_xkb_GetMap_reply_present, ett_x11_rectangle, present_bits, byte_order);
23896  }
23897  *offsetp += 2;
23898  proto_tree_add_item(t, hf_x11_xkb_GetMap_reply_firstType, tvb, *offsetp, 1, byte_order);
23899  *offsetp += 1;
23900  f_nTypes = tvb_get_guint8(tvb, *offsetp);
23901  proto_tree_add_item(t, hf_x11_xkb_GetMap_reply_nTypes, tvb, *offsetp, 1, byte_order);
23902  *offsetp += 1;
23903  proto_tree_add_item(t, hf_x11_xkb_GetMap_reply_totalTypes, tvb, *offsetp, 1, byte_order);
23904  *offsetp += 1;
23905  proto_tree_add_item(t, hf_x11_xkb_GetMap_reply_firstKeySym, tvb, *offsetp, 1, byte_order);
23906  *offsetp += 1;
23907  proto_tree_add_item(t, hf_x11_xkb_GetMap_reply_totalSyms, tvb, *offsetp, 2, byte_order);
23908  *offsetp += 2;
23909  f_nKeySyms = tvb_get_guint8(tvb, *offsetp);
23910  proto_tree_add_item(t, hf_x11_xkb_GetMap_reply_nKeySyms, tvb, *offsetp, 1, byte_order);
23911  *offsetp += 1;
23912  proto_tree_add_item(t, hf_x11_xkb_GetMap_reply_firstKeyAction, tvb, *offsetp, 1, byte_order);
23913  *offsetp += 1;
23914  f_totalActions = tvb_get_guint16(tvb, *offsetp, byte_order);
23915  proto_tree_add_item(t, hf_x11_xkb_GetMap_reply_totalActions, tvb, *offsetp, 2, byte_order);
23916  *offsetp += 2;
23917  f_nKeyActions = tvb_get_guint8(tvb, *offsetp);
23918  proto_tree_add_item(t, hf_x11_xkb_GetMap_reply_nKeyActions, tvb, *offsetp, 1, byte_order);
23919  *offsetp += 1;
23920  proto_tree_add_item(t, hf_x11_xkb_GetMap_reply_firstKeyBehavior, tvb, *offsetp, 1, byte_order);
23921  *offsetp += 1;
23922  proto_tree_add_item(t, hf_x11_xkb_GetMap_reply_nKeyBehaviors, tvb, *offsetp, 1, byte_order);
23923  *offsetp += 1;
23924  f_totalKeyBehaviors = tvb_get_guint8(tvb, *offsetp);
23925  proto_tree_add_item(t, hf_x11_xkb_GetMap_reply_totalKeyBehaviors, tvb, *offsetp, 1, byte_order);
23926  *offsetp += 1;
23927  proto_tree_add_item(t, hf_x11_xkb_GetMap_reply_firstKeyExplicit, tvb, *offsetp, 1, byte_order);
23928  *offsetp += 1;
23929  proto_tree_add_item(t, hf_x11_xkb_GetMap_reply_nKeyExplicit, tvb, *offsetp, 1, byte_order);
23930  *offsetp += 1;
23931  f_totalKeyExplicit = tvb_get_guint8(tvb, *offsetp);
23932  proto_tree_add_item(t, hf_x11_xkb_GetMap_reply_totalKeyExplicit, tvb, *offsetp, 1, byte_order);
23933  *offsetp += 1;
23934  proto_tree_add_item(t, hf_x11_xkb_GetMap_reply_firstModMapKey, tvb, *offsetp, 1, byte_order);
23935  *offsetp += 1;
23936  proto_tree_add_item(t, hf_x11_xkb_GetMap_reply_nModMapKeys, tvb, *offsetp, 1, byte_order);
23937  *offsetp += 1;
23938  f_totalModMapKeys = tvb_get_guint8(tvb, *offsetp);
23939  proto_tree_add_item(t, hf_x11_xkb_GetMap_reply_totalModMapKeys, tvb, *offsetp, 1, byte_order);
23940  *offsetp += 1;
23941  proto_tree_add_item(t, hf_x11_xkb_GetMap_reply_firstVModMapKey, tvb, *offsetp, 1, byte_order);
23942  *offsetp += 1;
23943  proto_tree_add_item(t, hf_x11_xkb_GetMap_reply_nVModMapKeys, tvb, *offsetp, 1, byte_order);
23944  *offsetp += 1;
23945  f_totalVModMapKeys = tvb_get_guint8(tvb, *offsetp);
23946  proto_tree_add_item(t, hf_x11_xkb_GetMap_reply_totalVModMapKeys, tvb, *offsetp, 1, byte_order);
23947  *offsetp += 1;
23948  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
23949  *offsetp += 1;
23950  f_virtualMods = tvb_get_guint16(tvb, *offsetp, byte_order);
23951  {
23952  const int* virtualMods_bits [] = {
23953  &hf_x11_xkb_GetMap_reply_virtualMods_mask_0,
23954  &hf_x11_xkb_GetMap_reply_virtualMods_mask_1,
23955  &hf_x11_xkb_GetMap_reply_virtualMods_mask_2,
23956  &hf_x11_xkb_GetMap_reply_virtualMods_mask_3,
23957  &hf_x11_xkb_GetMap_reply_virtualMods_mask_4,
23958  &hf_x11_xkb_GetMap_reply_virtualMods_mask_5,
23959  &hf_x11_xkb_GetMap_reply_virtualMods_mask_6,
23960  &hf_x11_xkb_GetMap_reply_virtualMods_mask_7,
23961  &hf_x11_xkb_GetMap_reply_virtualMods_mask_8,
23962  &hf_x11_xkb_GetMap_reply_virtualMods_mask_9,
23963  &hf_x11_xkb_GetMap_reply_virtualMods_mask_10,
23964  &hf_x11_xkb_GetMap_reply_virtualMods_mask_11,
23965  &hf_x11_xkb_GetMap_reply_virtualMods_mask_12,
23966  &hf_x11_xkb_GetMap_reply_virtualMods_mask_13,
23967  &hf_x11_xkb_GetMap_reply_virtualMods_mask_14,
23968  &hf_x11_xkb_GetMap_reply_virtualMods_mask_15,
23969  NULL
23970  };
23971  proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_xkb_GetMap_reply_virtualMods, ett_x11_rectangle, virtualMods_bits, byte_order);
23972  }
23973  *offsetp += 2;
23974  if (f_present & (1U << 0)) {
23975  struct_xkb_KeyType(tvb, offsetp, t, byte_order, f_nTypes);
23976  }
23977  if (f_present & (1U << 1)) {
23978  struct_xkb_KeySymMap(tvb, offsetp, t, byte_order, f_nKeySyms);
23979  }
23980  if (f_present & (1U << 4)) {
23981  listOfByte(tvb, offsetp, t, hf_x11_xkb_GetMap_reply_KeyActions_acts_rtrn_count, f_nKeyActions, byte_order);
23982  if (*offsetp % 4) {
23983  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, (4 - *offsetp % 4), ENC_NA);
23984  *offsetp += (4 - *offsetp % 4);
23985  }
23986  struct_xkb_Action(tvb, offsetp, t, byte_order, f_totalActions);
23987  }
23988  if (f_present & (1U << 5)) {
23989  struct_xkb_SetBehavior(tvb, offsetp, t, byte_order, f_totalKeyBehaviors);
23990  }
23991  if (f_present & (1U << 6)) {
23992  listOfByte(tvb, offsetp, t, hf_x11_xkb_GetMap_reply_VirtualMods_vmods_rtrn, ws_count_ones(f_virtualMods), byte_order);
23993  if (*offsetp % 4) {
23994  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, (4 - *offsetp % 4), ENC_NA);
23995  *offsetp += (4 - *offsetp % 4);
23996  }
23997  }
23998  if (f_present & (1U << 3)) {
23999  struct_xkb_SetExplicit(tvb, offsetp, t, byte_order, f_totalKeyExplicit);
24000  if (*offsetp % 4) {
24001  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, (4 - *offsetp % 4), ENC_NA);
24002  *offsetp += (4 - *offsetp % 4);
24003  }
24004  }
24005  if (f_present & (1U << 2)) {
24006  struct_xkb_KeyModMap(tvb, offsetp, t, byte_order, f_totalModMapKeys);
24007  if (*offsetp % 4) {
24008  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, (4 - *offsetp % 4), ENC_NA);
24009  *offsetp += (4 - *offsetp % 4);
24010  }
24011  }
24012  if (f_present & (1U << 7)) {
24013  struct_xkb_KeyVModMap(tvb, offsetp, t, byte_order, f_totalVModMapKeys);
24014  }
24015 }
24016 
24017 static void xkbSetMap(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
24018 {
24019  int f_present;
24020  int f_nTypes;
24021  int f_nKeySyms;
24022  int f_nKeyActions;
24023  int f_totalActions;
24024  int f_totalKeyBehaviors;
24025  int f_totalKeyExplicit;
24026  int f_totalModMapKeys;
24027  int f_totalVModMapKeys;
24028  int f_virtualMods;
24029  proto_tree_add_item(t, hf_x11_xkb_SetMap_deviceSpec, tvb, *offsetp, 2, byte_order);
24030  *offsetp += 2;
24031  f_present = tvb_get_guint16(tvb, *offsetp, byte_order);
24032  {
24033  const int* present_bits [] = {
24034  &hf_x11_xkb_SetMap_present_mask_KeyTypes,
24035  &hf_x11_xkb_SetMap_present_mask_KeySyms,
24036  &hf_x11_xkb_SetMap_present_mask_ModifierMap,
24037  &hf_x11_xkb_SetMap_present_mask_ExplicitComponents,
24038  &hf_x11_xkb_SetMap_present_mask_KeyActions,
24039  &hf_x11_xkb_SetMap_present_mask_KeyBehaviors,
24040  &hf_x11_xkb_SetMap_present_mask_VirtualMods,
24041  &hf_x11_xkb_SetMap_present_mask_VirtualModMap,
24042  NULL
24043  };
24044  proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_xkb_SetMap_present, ett_x11_rectangle, present_bits, byte_order);
24045  }
24046  *offsetp += 2;
24047  {
24048  const int* flags_bits [] = {
24049  &hf_x11_xkb_SetMap_flags_mask_ResizeTypes,
24050  &hf_x11_xkb_SetMap_flags_mask_RecomputeActions,
24051  NULL
24052  };
24053  proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_xkb_SetMap_flags, ett_x11_rectangle, flags_bits, byte_order);
24054  }
24055  *offsetp += 2;
24056  proto_tree_add_item(t, hf_x11_xkb_SetMap_minKeyCode, tvb, *offsetp, 1, byte_order);
24057  *offsetp += 1;
24058  proto_tree_add_item(t, hf_x11_xkb_SetMap_maxKeyCode, tvb, *offsetp, 1, byte_order);
24059  *offsetp += 1;
24060  proto_tree_add_item(t, hf_x11_xkb_SetMap_firstType, tvb, *offsetp, 1, byte_order);
24061  *offsetp += 1;
24062  f_nTypes = tvb_get_guint8(tvb, *offsetp);
24063  proto_tree_add_item(t, hf_x11_xkb_SetMap_nTypes, tvb, *offsetp, 1, byte_order);
24064  *offsetp += 1;
24065  proto_tree_add_item(t, hf_x11_xkb_SetMap_firstKeySym, tvb, *offsetp, 1, byte_order);
24066  *offsetp += 1;
24067  f_nKeySyms = tvb_get_guint8(tvb, *offsetp);
24068  proto_tree_add_item(t, hf_x11_xkb_SetMap_nKeySyms, tvb, *offsetp, 1, byte_order);
24069  *offsetp += 1;
24070  proto_tree_add_item(t, hf_x11_xkb_SetMap_totalSyms, tvb, *offsetp, 2, byte_order);
24071  *offsetp += 2;
24072  proto_tree_add_item(t, hf_x11_xkb_SetMap_firstKeyAction, tvb, *offsetp, 1, byte_order);
24073  *offsetp += 1;
24074  f_nKeyActions = tvb_get_guint8(tvb, *offsetp);
24075  proto_tree_add_item(t, hf_x11_xkb_SetMap_nKeyActions, tvb, *offsetp, 1, byte_order);
24076  *offsetp += 1;
24077  f_totalActions = tvb_get_guint16(tvb, *offsetp, byte_order);
24078  proto_tree_add_item(t, hf_x11_xkb_SetMap_totalActions, tvb, *offsetp, 2, byte_order);
24079  *offsetp += 2;
24080  proto_tree_add_item(t, hf_x11_xkb_SetMap_firstKeyBehavior, tvb, *offsetp, 1, byte_order);
24081  *offsetp += 1;
24082  proto_tree_add_item(t, hf_x11_xkb_SetMap_nKeyBehaviors, tvb, *offsetp, 1, byte_order);
24083  *offsetp += 1;
24084  f_totalKeyBehaviors = tvb_get_guint8(tvb, *offsetp);
24085  proto_tree_add_item(t, hf_x11_xkb_SetMap_totalKeyBehaviors, tvb, *offsetp, 1, byte_order);
24086  *offsetp += 1;
24087  proto_tree_add_item(t, hf_x11_xkb_SetMap_firstKeyExplicit, tvb, *offsetp, 1, byte_order);
24088  *offsetp += 1;
24089  proto_tree_add_item(t, hf_x11_xkb_SetMap_nKeyExplicit, tvb, *offsetp, 1, byte_order);
24090  *offsetp += 1;
24091  f_totalKeyExplicit = tvb_get_guint8(tvb, *offsetp);
24092  proto_tree_add_item(t, hf_x11_xkb_SetMap_totalKeyExplicit, tvb, *offsetp, 1, byte_order);
24093  *offsetp += 1;
24094  proto_tree_add_item(t, hf_x11_xkb_SetMap_firstModMapKey, tvb, *offsetp, 1, byte_order);
24095  *offsetp += 1;
24096  proto_tree_add_item(t, hf_x11_xkb_SetMap_nModMapKeys, tvb, *offsetp, 1, byte_order);
24097  *offsetp += 1;
24098  f_totalModMapKeys = tvb_get_guint8(tvb, *offsetp);
24099  proto_tree_add_item(t, hf_x11_xkb_SetMap_totalModMapKeys, tvb, *offsetp, 1, byte_order);
24100  *offsetp += 1;
24101  proto_tree_add_item(t, hf_x11_xkb_SetMap_firstVModMapKey, tvb, *offsetp, 1, byte_order);
24102  *offsetp += 1;
24103  proto_tree_add_item(t, hf_x11_xkb_SetMap_nVModMapKeys, tvb, *offsetp, 1, byte_order);
24104  *offsetp += 1;
24105  f_totalVModMapKeys = tvb_get_guint8(tvb, *offsetp);
24106  proto_tree_add_item(t, hf_x11_xkb_SetMap_totalVModMapKeys, tvb, *offsetp, 1, byte_order);
24107  *offsetp += 1;
24108  f_virtualMods = tvb_get_guint16(tvb, *offsetp, byte_order);
24109  {
24110  const int* virtualMods_bits [] = {
24111  &hf_x11_xkb_SetMap_virtualMods_mask_0,
24112  &hf_x11_xkb_SetMap_virtualMods_mask_1,
24113  &hf_x11_xkb_SetMap_virtualMods_mask_2,
24114  &hf_x11_xkb_SetMap_virtualMods_mask_3,
24115  &hf_x11_xkb_SetMap_virtualMods_mask_4,
24116  &hf_x11_xkb_SetMap_virtualMods_mask_5,
24117  &hf_x11_xkb_SetMap_virtualMods_mask_6,
24118  &hf_x11_xkb_SetMap_virtualMods_mask_7,
24119  &hf_x11_xkb_SetMap_virtualMods_mask_8,
24120  &hf_x11_xkb_SetMap_virtualMods_mask_9,
24121  &hf_x11_xkb_SetMap_virtualMods_mask_10,
24122  &hf_x11_xkb_SetMap_virtualMods_mask_11,
24123  &hf_x11_xkb_SetMap_virtualMods_mask_12,
24124  &hf_x11_xkb_SetMap_virtualMods_mask_13,
24125  &hf_x11_xkb_SetMap_virtualMods_mask_14,
24126  &hf_x11_xkb_SetMap_virtualMods_mask_15,
24127  NULL
24128  };
24129  proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_xkb_SetMap_virtualMods, ett_x11_rectangle, virtualMods_bits, byte_order);
24130  }
24131  *offsetp += 2;
24132  if (f_present & (1U << 0)) {
24133  struct_xkb_SetKeyType(tvb, offsetp, t, byte_order, f_nTypes);
24134  length -= f_nTypes * 0;
24135  }
24136  if (f_present & (1U << 1)) {
24137  struct_xkb_KeySymMap(tvb, offsetp, t, byte_order, f_nKeySyms);
24138  length -= f_nKeySyms * 0;
24139  }
24140  if (f_present & (1U << 4)) {
24141  listOfByte(tvb, offsetp, t, hf_x11_xkb_SetMap_KeyActions_actionsCount, f_nKeyActions, byte_order);
24142  length -= f_nKeyActions * 1;
24143  if (*offsetp % 4) {
24144  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, (4 - *offsetp % 4), ENC_NA);
24145  *offsetp += (4 - *offsetp % 4);
24146  }
24147  length = ((length + 3) & ~3);
24148  struct_xkb_Action(tvb, offsetp, t, byte_order, f_totalActions);
24149  length -= f_totalActions * 8;
24150  }
24151  if (f_present & (1U << 5)) {
24152  struct_xkb_SetBehavior(tvb, offsetp, t, byte_order, f_totalKeyBehaviors);
24153  length -= f_totalKeyBehaviors * 4;
24154  }
24155  if (f_present & (1U << 6)) {
24156  listOfByte(tvb, offsetp, t, hf_x11_xkb_SetMap_VirtualMods_vmods, ws_count_ones(f_virtualMods), byte_order);
24157  length -= ws_count_ones(f_virtualMods) * 1;
24158  if (*offsetp % 4) {
24159  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, (4 - *offsetp % 4), ENC_NA);
24160  *offsetp += (4 - *offsetp % 4);
24161  }
24162  length = ((length + 3) & ~3);
24163  }
24164  if (f_present & (1U << 3)) {
24165  struct_xkb_SetExplicit(tvb, offsetp, t, byte_order, f_totalKeyExplicit);
24166  length -= f_totalKeyExplicit * 2;
24167  }
24168  if (f_present & (1U << 2)) {
24169  struct_xkb_KeyModMap(tvb, offsetp, t, byte_order, f_totalModMapKeys);
24170  length -= f_totalModMapKeys * 2;
24171  }
24172  if (f_present & (1U << 7)) {
24173  struct_xkb_KeyVModMap(tvb, offsetp, t, byte_order, f_totalVModMapKeys);
24174  length -= f_totalVModMapKeys * 4;
24175  }
24176 }
24177 
24178 static void xkbGetCompatMap(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
24179 {
24180  proto_tree_add_item(t, hf_x11_xkb_GetCompatMap_deviceSpec, tvb, *offsetp, 2, byte_order);
24181  *offsetp += 2;
24182  {
24183  const int* groups_bits [] = {
24184  &hf_x11_xkb_GetCompatMap_groups_mask_Group1,
24185  &hf_x11_xkb_GetCompatMap_groups_mask_Group2,
24186  &hf_x11_xkb_GetCompatMap_groups_mask_Group3,
24187  &hf_x11_xkb_GetCompatMap_groups_mask_Group4,
24188  NULL
24189  };
24190  proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_xkb_GetCompatMap_groups, ett_x11_rectangle, groups_bits, byte_order);
24191  }
24192  *offsetp += 1;
24193  proto_tree_add_item(t, hf_x11_xkb_GetCompatMap_getAllSI, tvb, *offsetp, 1, byte_order);
24194  *offsetp += 1;
24195  proto_tree_add_item(t, hf_x11_xkb_GetCompatMap_firstSI, tvb, *offsetp, 2, byte_order);
24196  *offsetp += 2;
24197  proto_tree_add_item(t, hf_x11_xkb_GetCompatMap_nSI, tvb, *offsetp, 2, byte_order);
24198  *offsetp += 2;
24199 }
24200 static void xkbGetCompatMap_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
24201 {
24202  int sequence_number;
24203  int f_groupsRtrn;
24204  int f_nSIRtrn;
24205 
24206  col_append_fstr(pinfo->cinfo, COL_INFO, "-GetCompatMap");
24207 
24208  REPLY(reply);
24209  proto_tree_add_item(t, hf_x11_xkb_GetCompatMap_reply_deviceID, tvb, *offsetp, 1, byte_order);
24210  *offsetp += 1;
24211  sequence_number = tvb_get_guint16(tvb, *offsetp, byte_order);
24212  proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
24213  "%d (xkb-GetCompatMap)", sequence_number);
24214  *offsetp += 2;
24215  proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
24216  *offsetp += 4;
24217  f_groupsRtrn = tvb_get_guint8(tvb, *offsetp);
24218  {
24219  const int* groupsRtrn_bits [] = {
24220  &hf_x11_xkb_GetCompatMap_reply_groupsRtrn_mask_Group1,
24221  &hf_x11_xkb_GetCompatMap_reply_groupsRtrn_mask_Group2,
24222  &hf_x11_xkb_GetCompatMap_reply_groupsRtrn_mask_Group3,
24223  &hf_x11_xkb_GetCompatMap_reply_groupsRtrn_mask_Group4,
24224  NULL
24225  };
24226  proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_xkb_GetCompatMap_reply_groupsRtrn, ett_x11_rectangle, groupsRtrn_bits, byte_order);
24227  }
24228  *offsetp += 1;
24229  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
24230  *offsetp += 1;
24231  proto_tree_add_item(t, hf_x11_xkb_GetCompatMap_reply_firstSIRtrn, tvb, *offsetp, 2, byte_order);
24232  *offsetp += 2;
24233  f_nSIRtrn = tvb_get_guint16(tvb, *offsetp, byte_order);
24234  proto_tree_add_item(t, hf_x11_xkb_GetCompatMap_reply_nSIRtrn, tvb, *offsetp, 2, byte_order);
24235  *offsetp += 2;
24236  proto_tree_add_item(t, hf_x11_xkb_GetCompatMap_reply_nTotalSI, tvb, *offsetp, 2, byte_order);
24237  *offsetp += 2;
24238  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 16, ENC_NA);
24239  *offsetp += 16;
24240  struct_xkb_SymInterpret(tvb, offsetp, t, byte_order, f_nSIRtrn);
24241  struct_xkb_ModDef(tvb, offsetp, t, byte_order, ws_count_ones(f_groupsRtrn));
24242 }
24243 
24244 static void xkbSetCompatMap(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
24245 {
24246  int f_groups;
24247  int f_nSI;
24248  proto_tree_add_item(t, hf_x11_xkb_SetCompatMap_deviceSpec, tvb, *offsetp, 2, byte_order);
24249  *offsetp += 2;
24250  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
24251  *offsetp += 1;
24252  proto_tree_add_item(t, hf_x11_xkb_SetCompatMap_recomputeActions, tvb, *offsetp, 1, byte_order);
24253  *offsetp += 1;
24254  proto_tree_add_item(t, hf_x11_xkb_SetCompatMap_truncateSI, tvb, *offsetp, 1, byte_order);
24255  *offsetp += 1;
24256  f_groups = tvb_get_guint8(tvb, *offsetp);
24257  {
24258  const int* groups_bits [] = {
24259  &hf_x11_xkb_SetCompatMap_groups_mask_Group1,
24260  &hf_x11_xkb_SetCompatMap_groups_mask_Group2,
24261  &hf_x11_xkb_SetCompatMap_groups_mask_Group3,
24262  &hf_x11_xkb_SetCompatMap_groups_mask_Group4,
24263  NULL
24264  };
24265  proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_xkb_SetCompatMap_groups, ett_x11_rectangle, groups_bits, byte_order);
24266  }
24267  *offsetp += 1;
24268  proto_tree_add_item(t, hf_x11_xkb_SetCompatMap_firstSI, tvb, *offsetp, 2, byte_order);
24269  *offsetp += 2;
24270  f_nSI = tvb_get_guint16(tvb, *offsetp, byte_order);
24271  proto_tree_add_item(t, hf_x11_xkb_SetCompatMap_nSI, tvb, *offsetp, 2, byte_order);
24272  *offsetp += 2;
24273  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 2, ENC_NA);
24274  *offsetp += 2;
24275  struct_xkb_SymInterpret(tvb, offsetp, t, byte_order, f_nSI);
24276  length -= f_nSI * 16;
24277  struct_xkb_ModDef(tvb, offsetp, t, byte_order, ws_count_ones(f_groups));
24278  length -= ws_count_ones(f_groups) * 4;
24279 }
24280 
24281 static void xkbGetIndicatorState(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
24282 {
24283  proto_tree_add_item(t, hf_x11_xkb_GetIndicatorState_deviceSpec, tvb, *offsetp, 2, byte_order);
24284  *offsetp += 2;
24285  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 2, ENC_NA);
24286  *offsetp += 2;
24287 }
24288 static void xkbGetIndicatorState_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
24289 {
24290  int sequence_number;
24291 
24292  col_append_fstr(pinfo->cinfo, COL_INFO, "-GetIndicatorState");
24293 
24294  REPLY(reply);
24295  proto_tree_add_item(t, hf_x11_xkb_GetIndicatorState_reply_deviceID, tvb, *offsetp, 1, byte_order);
24296  *offsetp += 1;
24297  sequence_number = tvb_get_guint16(tvb, *offsetp, byte_order);
24298  proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
24299  "%d (xkb-GetIndicatorState)", sequence_number);
24300  *offsetp += 2;
24301  proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
24302  *offsetp += 4;
24303  proto_tree_add_item(t, hf_x11_xkb_GetIndicatorState_reply_state, tvb, *offsetp, 4, byte_order);
24304  *offsetp += 4;
24305  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 20, ENC_NA);
24306  *offsetp += 20;
24307 }
24308 
24309 static void xkbGetIndicatorMap(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
24310 {
24311  proto_tree_add_item(t, hf_x11_xkb_GetIndicatorMap_deviceSpec, tvb, *offsetp, 2, byte_order);
24312  *offsetp += 2;
24313  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 2, ENC_NA);
24314  *offsetp += 2;
24315  proto_tree_add_item(t, hf_x11_xkb_GetIndicatorMap_which, tvb, *offsetp, 4, byte_order);
24316  *offsetp += 4;
24317 }
24318 static void xkbGetIndicatorMap_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
24319 {
24320  int sequence_number;
24321  int f_which;
24322 
24323  col_append_fstr(pinfo->cinfo, COL_INFO, "-GetIndicatorMap");
24324 
24325  REPLY(reply);
24326  proto_tree_add_item(t, hf_x11_xkb_GetIndicatorMap_reply_deviceID, tvb, *offsetp, 1, byte_order);
24327  *offsetp += 1;
24328  sequence_number = tvb_get_guint16(tvb, *offsetp, byte_order);
24329  proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
24330  "%d (xkb-GetIndicatorMap)", sequence_number);
24331  *offsetp += 2;
24332  proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
24333  *offsetp += 4;
24334  f_which = tvb_get_guint32(tvb, *offsetp, byte_order);
24335  proto_tree_add_item(t, hf_x11_xkb_GetIndicatorMap_reply_which, tvb, *offsetp, 4, byte_order);
24336  *offsetp += 4;
24337  proto_tree_add_item(t, hf_x11_xkb_GetIndicatorMap_reply_realIndicators, tvb, *offsetp, 4, byte_order);
24338  *offsetp += 4;
24339  proto_tree_add_item(t, hf_x11_xkb_GetIndicatorMap_reply_nIndicators, tvb, *offsetp, 1, byte_order);
24340  *offsetp += 1;
24341  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 15, ENC_NA);
24342  *offsetp += 15;
24343  struct_xkb_IndicatorMap(tvb, offsetp, t, byte_order, ws_count_ones(f_which));
24344 }
24345 
24346 static void xkbSetIndicatorMap(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
24347 {
24348  int f_which;
24349  proto_tree_add_item(t, hf_x11_xkb_SetIndicatorMap_deviceSpec, tvb, *offsetp, 2, byte_order);
24350  *offsetp += 2;
24351  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 2, ENC_NA);
24352  *offsetp += 2;
24353  f_which = tvb_get_guint32(tvb, *offsetp, byte_order);
24354  proto_tree_add_item(t, hf_x11_xkb_SetIndicatorMap_which, tvb, *offsetp, 4, byte_order);
24355  *offsetp += 4;
24356  struct_xkb_IndicatorMap(tvb, offsetp, t, byte_order, ws_count_ones(f_which));
24357  length -= ws_count_ones(f_which) * 12;
24358 }
24359 
24360 static void xkbGetNamedIndicator(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
24361 {
24362  proto_tree_add_item(t, hf_x11_xkb_GetNamedIndicator_deviceSpec, tvb, *offsetp, 2, byte_order);
24363  *offsetp += 2;
24364  field16(tvb, offsetp, t, hf_x11_xkb_GetNamedIndicator_ledClass, byte_order);
24365  field16(tvb, offsetp, t, hf_x11_xkb_GetNamedIndicator_ledID, byte_order);
24366  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 2, ENC_NA);
24367  *offsetp += 2;
24368  proto_tree_add_item(t, hf_x11_xkb_GetNamedIndicator_indicator, tvb, *offsetp, 4, byte_order);
24369  *offsetp += 4;
24370 }
24371 static void xkbGetNamedIndicator_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
24372 {
24373  int sequence_number;
24374 
24375  col_append_fstr(pinfo->cinfo, COL_INFO, "-GetNamedIndicator");
24376 
24377  REPLY(reply);
24378  proto_tree_add_item(t, hf_x11_xkb_GetNamedIndicator_reply_deviceID, tvb, *offsetp, 1, byte_order);
24379  *offsetp += 1;
24380  sequence_number = tvb_get_guint16(tvb, *offsetp, byte_order);
24381  proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
24382  "%d (xkb-GetNamedIndicator)", sequence_number);
24383  *offsetp += 2;
24384  proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
24385  *offsetp += 4;
24386  proto_tree_add_item(t, hf_x11_xkb_GetNamedIndicator_reply_indicator, tvb, *offsetp, 4, byte_order);
24387  *offsetp += 4;
24388  proto_tree_add_item(t, hf_x11_xkb_GetNamedIndicator_reply_found, tvb, *offsetp, 1, byte_order);
24389  *offsetp += 1;
24390  proto_tree_add_item(t, hf_x11_xkb_GetNamedIndicator_reply_on, tvb, *offsetp, 1, byte_order);
24391  *offsetp += 1;
24392  proto_tree_add_item(t, hf_x11_xkb_GetNamedIndicator_reply_realIndicator, tvb, *offsetp, 1, byte_order);
24393  *offsetp += 1;
24394  proto_tree_add_item(t, hf_x11_xkb_GetNamedIndicator_reply_ndx, tvb, *offsetp, 1, byte_order);
24395  *offsetp += 1;
24396  {
24397  const int* map_flags_bits [] = {
24398  &hf_x11_xkb_GetNamedIndicator_reply_map_flags_mask_LEDDrivesKB,
24399  &hf_x11_xkb_GetNamedIndicator_reply_map_flags_mask_NoAutomatic,
24400  &hf_x11_xkb_GetNamedIndicator_reply_map_flags_mask_NoExplicit,
24401  NULL
24402  };
24403  proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_xkb_GetNamedIndicator_reply_map_flags, ett_x11_rectangle, map_flags_bits, byte_order);
24404  }
24405  *offsetp += 1;
24406  {
24407  const int* map_whichGroups_bits [] = {
24408  &hf_x11_xkb_GetNamedIndicator_reply_map_whichGroups_mask_UseBase,
24409  &hf_x11_xkb_GetNamedIndicator_reply_map_whichGroups_mask_UseLatched,
24410  &hf_x11_xkb_GetNamedIndicator_reply_map_whichGroups_mask_UseLocked,
24411  &hf_x11_xkb_GetNamedIndicator_reply_map_whichGroups_mask_UseEffective,
24412  &hf_x11_xkb_GetNamedIndicator_reply_map_whichGroups_mask_UseCompat,
24413  NULL
24414  };
24415  proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_xkb_GetNamedIndicator_reply_map_whichGroups, ett_x11_rectangle, map_whichGroups_bits, byte_order);
24416  }
24417  *offsetp += 1;
24418  {
24419  const int* map_groups_bits [] = {
24420  &hf_x11_xkb_GetNamedIndicator_reply_map_groups_mask_Any,
24421  NULL
24422  };
24423  proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_xkb_GetNamedIndicator_reply_map_groups, ett_x11_rectangle, map_groups_bits, byte_order);
24424  }
24425  *offsetp += 1;
24426  {
24427  const int* map_whichMods_bits [] = {
24428  &hf_x11_xkb_GetNamedIndicator_reply_map_whichMods_mask_UseBase,
24429  &hf_x11_xkb_GetNamedIndicator_reply_map_whichMods_mask_UseLatched,
24430  &hf_x11_xkb_GetNamedIndicator_reply_map_whichMods_mask_UseLocked,
24431  &hf_x11_xkb_GetNamedIndicator_reply_map_whichMods_mask_UseEffective,
24432  &hf_x11_xkb_GetNamedIndicator_reply_map_whichMods_mask_UseCompat,
24433  NULL
24434  };
24435  proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_xkb_GetNamedIndicator_reply_map_whichMods, ett_x11_rectangle, map_whichMods_bits, byte_order);
24436  }
24437  *offsetp += 1;
24438  {
24439  const int* map_mods_bits [] = {
24440  &hf_x11_xkb_GetNamedIndicator_reply_map_mods_mask_Shift,
24441  &hf_x11_xkb_GetNamedIndicator_reply_map_mods_mask_Lock,
24442  &hf_x11_xkb_GetNamedIndicator_reply_map_mods_mask_Control,
24443  &hf_x11_xkb_GetNamedIndicator_reply_map_mods_mask_1,
24444  &hf_x11_xkb_GetNamedIndicator_reply_map_mods_mask_2,
24445  &hf_x11_xkb_GetNamedIndicator_reply_map_mods_mask_3,
24446  &hf_x11_xkb_GetNamedIndicator_reply_map_mods_mask_4,
24447  &hf_x11_xkb_GetNamedIndicator_reply_map_mods_mask_5,
24448  &hf_x11_xkb_GetNamedIndicator_reply_map_mods_mask_Any,
24449  NULL
24450  };
24451  proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_xkb_GetNamedIndicator_reply_map_mods, ett_x11_rectangle, map_mods_bits, byte_order);
24452  }
24453  *offsetp += 1;
24454  {
24455  const int* map_realMods_bits [] = {
24456  &hf_x11_xkb_GetNamedIndicator_reply_map_realMods_mask_Shift,
24457  &hf_x11_xkb_GetNamedIndicator_reply_map_realMods_mask_Lock,
24458  &hf_x11_xkb_GetNamedIndicator_reply_map_realMods_mask_Control,
24459  &hf_x11_xkb_GetNamedIndicator_reply_map_realMods_mask_1,
24460  &hf_x11_xkb_GetNamedIndicator_reply_map_realMods_mask_2,
24461  &hf_x11_xkb_GetNamedIndicator_reply_map_realMods_mask_3,
24462  &hf_x11_xkb_GetNamedIndicator_reply_map_realMods_mask_4,
24463  &hf_x11_xkb_GetNamedIndicator_reply_map_realMods_mask_5,
24464  &hf_x11_xkb_GetNamedIndicator_reply_map_realMods_mask_Any,
24465  NULL
24466  };
24467  proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_xkb_GetNamedIndicator_reply_map_realMods, ett_x11_rectangle, map_realMods_bits, byte_order);
24468  }
24469  *offsetp += 1;
24470  {
24471  const int* map_vmod_bits [] = {
24472  &hf_x11_xkb_GetNamedIndicator_reply_map_vmod_mask_0,
24473  &hf_x11_xkb_GetNamedIndicator_reply_map_vmod_mask_1,
24474  &hf_x11_xkb_GetNamedIndicator_reply_map_vmod_mask_2,
24475  &hf_x11_xkb_GetNamedIndicator_reply_map_vmod_mask_3,
24476  &hf_x11_xkb_GetNamedIndicator_reply_map_vmod_mask_4,
24477  &hf_x11_xkb_GetNamedIndicator_reply_map_vmod_mask_5,
24478  &hf_x11_xkb_GetNamedIndicator_reply_map_vmod_mask_6,
24479  &hf_x11_xkb_GetNamedIndicator_reply_map_vmod_mask_7,
24480  &hf_x11_xkb_GetNamedIndicator_reply_map_vmod_mask_8,
24481  &hf_x11_xkb_GetNamedIndicator_reply_map_vmod_mask_9,
24482  &hf_x11_xkb_GetNamedIndicator_reply_map_vmod_mask_10,
24483  &hf_x11_xkb_GetNamedIndicator_reply_map_vmod_mask_11,
24484  &hf_x11_xkb_GetNamedIndicator_reply_map_vmod_mask_12,
24485  &hf_x11_xkb_GetNamedIndicator_reply_map_vmod_mask_13,
24486  &hf_x11_xkb_GetNamedIndicator_reply_map_vmod_mask_14,
24487  &hf_x11_xkb_GetNamedIndicator_reply_map_vmod_mask_15,
24488  NULL
24489  };
24490  proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_xkb_GetNamedIndicator_reply_map_vmod, ett_x11_rectangle, map_vmod_bits, byte_order);
24491  }
24492  *offsetp += 2;
24493  {
24494  const int* map_ctrls_bits [] = {
24495  &hf_x11_xkb_GetNamedIndicator_reply_map_ctrls_mask_RepeatKeys,
24496  &hf_x11_xkb_GetNamedIndicator_reply_map_ctrls_mask_SlowKeys,
24497  &hf_x11_xkb_GetNamedIndicator_reply_map_ctrls_mask_BounceKeys,
24498  &hf_x11_xkb_GetNamedIndicator_reply_map_ctrls_mask_StickyKeys,
24499  &hf_x11_xkb_GetNamedIndicator_reply_map_ctrls_mask_MouseKeys,
24500  &hf_x11_xkb_GetNamedIndicator_reply_map_ctrls_mask_MouseKeysAccel,
24501  &hf_x11_xkb_GetNamedIndicator_reply_map_ctrls_mask_AccessXKeys,
24502  &hf_x11_xkb_GetNamedIndicator_reply_map_ctrls_mask_AccessXTimeoutMask,
24503  &hf_x11_xkb_GetNamedIndicator_reply_map_ctrls_mask_AccessXFeedbackMask,
24504  &hf_x11_xkb_GetNamedIndicator_reply_map_ctrls_mask_AudibleBellMask,
24505  &hf_x11_xkb_GetNamedIndicator_reply_map_ctrls_mask_Overlay1Mask,
24506  &hf_x11_xkb_GetNamedIndicator_reply_map_ctrls_mask_Overlay2Mask,
24507  &hf_x11_xkb_GetNamedIndicator_reply_map_ctrls_mask_IgnoreGroupLockMask,
24508  NULL
24509  };
24510  proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_xkb_GetNamedIndicator_reply_map_ctrls, ett_x11_rectangle, map_ctrls_bits, byte_order);
24511  }
24512  *offsetp += 4;
24513  proto_tree_add_item(t, hf_x11_xkb_GetNamedIndicator_reply_supported, tvb, *offsetp, 1, byte_order);
24514  *offsetp += 1;
24515  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 3, ENC_NA);
24516  *offsetp += 3;
24517 }
24518 
24519 static void xkbSetNamedIndicator(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
24520 {
24521  proto_tree_add_item(t, hf_x11_xkb_SetNamedIndicator_deviceSpec, tvb, *offsetp, 2, byte_order);
24522  *offsetp += 2;
24523  field16(tvb, offsetp, t, hf_x11_xkb_SetNamedIndicator_ledClass, byte_order);
24524  field16(tvb, offsetp, t, hf_x11_xkb_SetNamedIndicator_ledID, byte_order);
24525  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 2, ENC_NA);
24526  *offsetp += 2;
24527  proto_tree_add_item(t, hf_x11_xkb_SetNamedIndicator_indicator, tvb, *offsetp, 4, byte_order);
24528  *offsetp += 4;
24529  proto_tree_add_item(t, hf_x11_xkb_SetNamedIndicator_setState, tvb, *offsetp, 1, byte_order);
24530  *offsetp += 1;
24531  proto_tree_add_item(t, hf_x11_xkb_SetNamedIndicator_on, tvb, *offsetp, 1, byte_order);
24532  *offsetp += 1;
24533  proto_tree_add_item(t, hf_x11_xkb_SetNamedIndicator_setMap, tvb, *offsetp, 1, byte_order);
24534  *offsetp += 1;
24535  proto_tree_add_item(t, hf_x11_xkb_SetNamedIndicator_createMap, tvb, *offsetp, 1, byte_order);
24536  *offsetp += 1;
24537  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
24538  *offsetp += 1;
24539  {
24540  const int* map_flags_bits [] = {
24541  &hf_x11_xkb_SetNamedIndicator_map_flags_mask_LEDDrivesKB,
24542  &hf_x11_xkb_SetNamedIndicator_map_flags_mask_NoAutomatic,
24543  &hf_x11_xkb_SetNamedIndicator_map_flags_mask_NoExplicit,
24544  NULL
24545  };
24546  proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_xkb_SetNamedIndicator_map_flags, ett_x11_rectangle, map_flags_bits, byte_order);
24547  }
24548  *offsetp += 1;
24549  {
24550  const int* map_whichGroups_bits [] = {
24551  &hf_x11_xkb_SetNamedIndicator_map_whichGroups_mask_UseBase,
24552  &hf_x11_xkb_SetNamedIndicator_map_whichGroups_mask_UseLatched,
24553  &hf_x11_xkb_SetNamedIndicator_map_whichGroups_mask_UseLocked,
24554  &hf_x11_xkb_SetNamedIndicator_map_whichGroups_mask_UseEffective,
24555  &hf_x11_xkb_SetNamedIndicator_map_whichGroups_mask_UseCompat,
24556  NULL
24557  };
24558  proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_xkb_SetNamedIndicator_map_whichGroups, ett_x11_rectangle, map_whichGroups_bits, byte_order);
24559  }
24560  *offsetp += 1;
24561  {
24562  const int* map_groups_bits [] = {
24563  &hf_x11_xkb_SetNamedIndicator_map_groups_mask_Any,
24564  NULL
24565  };
24566  proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_xkb_SetNamedIndicator_map_groups, ett_x11_rectangle, map_groups_bits, byte_order);
24567  }
24568  *offsetp += 1;
24569  {
24570  const int* map_whichMods_bits [] = {
24571  &hf_x11_xkb_SetNamedIndicator_map_whichMods_mask_UseBase,
24572  &hf_x11_xkb_SetNamedIndicator_map_whichMods_mask_UseLatched,
24573  &hf_x11_xkb_SetNamedIndicator_map_whichMods_mask_UseLocked,
24574  &hf_x11_xkb_SetNamedIndicator_map_whichMods_mask_UseEffective,
24575  &hf_x11_xkb_SetNamedIndicator_map_whichMods_mask_UseCompat,
24576  NULL
24577  };
24578  proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_xkb_SetNamedIndicator_map_whichMods, ett_x11_rectangle, map_whichMods_bits, byte_order);
24579  }
24580  *offsetp += 1;
24581  {
24582  const int* map_realMods_bits [] = {
24583  &hf_x11_xkb_SetNamedIndicator_map_realMods_mask_Shift,
24584  &hf_x11_xkb_SetNamedIndicator_map_realMods_mask_Lock,
24585  &hf_x11_xkb_SetNamedIndicator_map_realMods_mask_Control,
24586  &hf_x11_xkb_SetNamedIndicator_map_realMods_mask_1,
24587  &hf_x11_xkb_SetNamedIndicator_map_realMods_mask_2,
24588  &hf_x11_xkb_SetNamedIndicator_map_realMods_mask_3,
24589  &hf_x11_xkb_SetNamedIndicator_map_realMods_mask_4,
24590  &hf_x11_xkb_SetNamedIndicator_map_realMods_mask_5,
24591  &hf_x11_xkb_SetNamedIndicator_map_realMods_mask_Any,
24592  NULL
24593  };
24594  proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_xkb_SetNamedIndicator_map_realMods, ett_x11_rectangle, map_realMods_bits, byte_order);
24595  }
24596  *offsetp += 1;
24597  {
24598  const int* map_vmods_bits [] = {
24599  &hf_x11_xkb_SetNamedIndicator_map_vmods_mask_0,
24600  &hf_x11_xkb_SetNamedIndicator_map_vmods_mask_1,
24601  &hf_x11_xkb_SetNamedIndicator_map_vmods_mask_2,
24602  &hf_x11_xkb_SetNamedIndicator_map_vmods_mask_3,
24603  &hf_x11_xkb_SetNamedIndicator_map_vmods_mask_4,
24604  &hf_x11_xkb_SetNamedIndicator_map_vmods_mask_5,
24605  &hf_x11_xkb_SetNamedIndicator_map_vmods_mask_6,
24606  &hf_x11_xkb_SetNamedIndicator_map_vmods_mask_7,
24607  &hf_x11_xkb_SetNamedIndicator_map_vmods_mask_8,
24608  &hf_x11_xkb_SetNamedIndicator_map_vmods_mask_9,
24609  &hf_x11_xkb_SetNamedIndicator_map_vmods_mask_10,
24610  &hf_x11_xkb_SetNamedIndicator_map_vmods_mask_11,
24611  &hf_x11_xkb_SetNamedIndicator_map_vmods_mask_12,
24612  &hf_x11_xkb_SetNamedIndicator_map_vmods_mask_13,
24613  &hf_x11_xkb_SetNamedIndicator_map_vmods_mask_14,
24614  &hf_x11_xkb_SetNamedIndicator_map_vmods_mask_15,
24615  NULL
24616  };
24617  proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_xkb_SetNamedIndicator_map_vmods, ett_x11_rectangle, map_vmods_bits, byte_order);
24618  }
24619  *offsetp += 2;
24620  {
24621  const int* map_ctrls_bits [] = {
24622  &hf_x11_xkb_SetNamedIndicator_map_ctrls_mask_RepeatKeys,
24623  &hf_x11_xkb_SetNamedIndicator_map_ctrls_mask_SlowKeys,
24624  &hf_x11_xkb_SetNamedIndicator_map_ctrls_mask_BounceKeys,
24625  &hf_x11_xkb_SetNamedIndicator_map_ctrls_mask_StickyKeys,
24626  &hf_x11_xkb_SetNamedIndicator_map_ctrls_mask_MouseKeys,
24627  &hf_x11_xkb_SetNamedIndicator_map_ctrls_mask_MouseKeysAccel,
24628  &hf_x11_xkb_SetNamedIndicator_map_ctrls_mask_AccessXKeys,
24629  &hf_x11_xkb_SetNamedIndicator_map_ctrls_mask_AccessXTimeoutMask,
24630  &hf_x11_xkb_SetNamedIndicator_map_ctrls_mask_AccessXFeedbackMask,
24631  &hf_x11_xkb_SetNamedIndicator_map_ctrls_mask_AudibleBellMask,
24632  &hf_x11_xkb_SetNamedIndicator_map_ctrls_mask_Overlay1Mask,
24633  &hf_x11_xkb_SetNamedIndicator_map_ctrls_mask_Overlay2Mask,
24634  &hf_x11_xkb_SetNamedIndicator_map_ctrls_mask_IgnoreGroupLockMask,
24635  NULL
24636  };
24637  proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_xkb_SetNamedIndicator_map_ctrls, ett_x11_rectangle, map_ctrls_bits, byte_order);
24638  }
24639  *offsetp += 4;
24640 }
24641 
24642 static void xkbGetNames(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
24643 {
24644  proto_tree_add_item(t, hf_x11_xkb_GetNames_deviceSpec, tvb, *offsetp, 2, byte_order);
24645  *offsetp += 2;
24646  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 2, ENC_NA);
24647  *offsetp += 2;
24648  {
24649  const int* which_bits [] = {
24650  &hf_x11_xkb_GetNames_which_mask_Keycodes,
24651  &hf_x11_xkb_GetNames_which_mask_Geometry,
24652  &hf_x11_xkb_GetNames_which_mask_Symbols,
24653  &hf_x11_xkb_GetNames_which_mask_PhysSymbols,
24654  &hf_x11_xkb_GetNames_which_mask_Types,
24655  &hf_x11_xkb_GetNames_which_mask_Compat,
24656  &hf_x11_xkb_GetNames_which_mask_KeyTypeNames,
24657  &hf_x11_xkb_GetNames_which_mask_KTLevelNames,
24658  &hf_x11_xkb_GetNames_which_mask_IndicatorNames,
24659  &hf_x11_xkb_GetNames_which_mask_KeyNames,
24660  &hf_x11_xkb_GetNames_which_mask_KeyAliases,
24661  &hf_x11_xkb_GetNames_which_mask_VirtualModNames,
24662  &hf_x11_xkb_GetNames_which_mask_GroupNames,
24663  &hf_x11_xkb_GetNames_which_mask_RGNames,
24664  NULL
24665  };
24666  proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_xkb_GetNames_which, ett_x11_rectangle, which_bits, byte_order);
24667  }
24668  *offsetp += 4;
24669 }
24670 static void xkbGetNames_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
24671 {
24672  int sequence_number;
24673  int f_which;
24674  int f_nTypes;
24675  int f_groupNames;
24676  int f_virtualMods;
24677  int f_nKeys;
24678  int f_indicators;
24679  int f_nRadioGroups;
24680  int f_nKeyAliases;
24681 
24682  col_append_fstr(pinfo->cinfo, COL_INFO, "-GetNames");
24683 
24684  REPLY(reply);
24685  proto_tree_add_item(t, hf_x11_xkb_GetNames_reply_deviceID, tvb, *offsetp, 1, byte_order);
24686  *offsetp += 1;
24687  sequence_number = tvb_get_guint16(tvb, *offsetp, byte_order);
24688  proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
24689  "%d (xkb-GetNames)", sequence_number);
24690  *offsetp += 2;
24691  proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
24692  *offsetp += 4;
24693  f_which = tvb_get_guint32(tvb, *offsetp, byte_order);
24694  {
24695  const int* which_bits [] = {
24696  &hf_x11_xkb_GetNames_reply_which_mask_Keycodes,
24697  &hf_x11_xkb_GetNames_reply_which_mask_Geometry,
24698  &hf_x11_xkb_GetNames_reply_which_mask_Symbols,
24699  &hf_x11_xkb_GetNames_reply_which_mask_PhysSymbols,
24700  &hf_x11_xkb_GetNames_reply_which_mask_Types,
24701  &hf_x11_xkb_GetNames_reply_which_mask_Compat,
24702  &hf_x11_xkb_GetNames_reply_which_mask_KeyTypeNames,
24703  &hf_x11_xkb_GetNames_reply_which_mask_KTLevelNames,
24704  &hf_x11_xkb_GetNames_reply_which_mask_IndicatorNames,
24705  &hf_x11_xkb_GetNames_reply_which_mask_KeyNames,
24706  &hf_x11_xkb_GetNames_reply_which_mask_KeyAliases,
24707  &hf_x11_xkb_GetNames_reply_which_mask_VirtualModNames,
24708  &hf_x11_xkb_GetNames_reply_which_mask_GroupNames,
24709  &hf_x11_xkb_GetNames_reply_which_mask_RGNames,
24710  NULL
24711  };
24712  proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_xkb_GetNames_reply_which, ett_x11_rectangle, which_bits, byte_order);
24713  }
24714  *offsetp += 4;
24715  proto_tree_add_item(t, hf_x11_xkb_GetNames_reply_minKeyCode, tvb, *offsetp, 1, byte_order);
24716  *offsetp += 1;
24717  proto_tree_add_item(t, hf_x11_xkb_GetNames_reply_maxKeyCode, tvb, *offsetp, 1, byte_order);
24718  *offsetp += 1;
24719  f_nTypes = tvb_get_guint8(tvb, *offsetp);
24720  proto_tree_add_item(t, hf_x11_xkb_GetNames_reply_nTypes, tvb, *offsetp, 1, byte_order);
24721  *offsetp += 1;
24722  f_groupNames = tvb_get_guint8(tvb, *offsetp);
24723  {
24724  const int* groupNames_bits [] = {
24725  &hf_x11_xkb_GetNames_reply_groupNames_mask_Group1,
24726  &hf_x11_xkb_GetNames_reply_groupNames_mask_Group2,
24727  &hf_x11_xkb_GetNames_reply_groupNames_mask_Group3,
24728  &hf_x11_xkb_GetNames_reply_groupNames_mask_Group4,
24729  NULL
24730  };
24731  proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_xkb_GetNames_reply_groupNames, ett_x11_rectangle, groupNames_bits, byte_order);
24732  }
24733  *offsetp += 1;
24734  f_virtualMods = tvb_get_guint16(tvb, *offsetp, byte_order);
24735  {
24736  const int* virtualMods_bits [] = {
24737  &hf_x11_xkb_GetNames_reply_virtualMods_mask_0,
24738  &hf_x11_xkb_GetNames_reply_virtualMods_mask_1,
24739  &hf_x11_xkb_GetNames_reply_virtualMods_mask_2,
24740  &hf_x11_xkb_GetNames_reply_virtualMods_mask_3,
24741  &hf_x11_xkb_GetNames_reply_virtualMods_mask_4,
24742  &hf_x11_xkb_GetNames_reply_virtualMods_mask_5,
24743  &hf_x11_xkb_GetNames_reply_virtualMods_mask_6,
24744  &hf_x11_xkb_GetNames_reply_virtualMods_mask_7,
24745  &hf_x11_xkb_GetNames_reply_virtualMods_mask_8,
24746  &hf_x11_xkb_GetNames_reply_virtualMods_mask_9,
24747  &hf_x11_xkb_GetNames_reply_virtualMods_mask_10,
24748  &hf_x11_xkb_GetNames_reply_virtualMods_mask_11,
24749  &hf_x11_xkb_GetNames_reply_virtualMods_mask_12,
24750  &hf_x11_xkb_GetNames_reply_virtualMods_mask_13,
24751  &hf_x11_xkb_GetNames_reply_virtualMods_mask_14,
24752  &hf_x11_xkb_GetNames_reply_virtualMods_mask_15,
24753  NULL
24754  };
24755  proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_xkb_GetNames_reply_virtualMods, ett_x11_rectangle, virtualMods_bits, byte_order);
24756  }
24757  *offsetp += 2;
24758  proto_tree_add_item(t, hf_x11_xkb_GetNames_reply_firstKey, tvb, *offsetp, 1, byte_order);
24759  *offsetp += 1;
24760  f_nKeys = tvb_get_guint8(tvb, *offsetp);
24761  proto_tree_add_item(t, hf_x11_xkb_GetNames_reply_nKeys, tvb, *offsetp, 1, byte_order);
24762  *offsetp += 1;
24763  f_indicators = tvb_get_guint32(tvb, *offsetp, byte_order);
24764  proto_tree_add_item(t, hf_x11_xkb_GetNames_reply_indicators, tvb, *offsetp, 4, byte_order);
24765  *offsetp += 4;
24766  f_nRadioGroups = tvb_get_guint8(tvb, *offsetp);
24767  proto_tree_add_item(t, hf_x11_xkb_GetNames_reply_nRadioGroups, tvb, *offsetp, 1, byte_order);
24768  *offsetp += 1;
24769  f_nKeyAliases = tvb_get_guint8(tvb, *offsetp);
24770  proto_tree_add_item(t, hf_x11_xkb_GetNames_reply_nKeyAliases, tvb, *offsetp, 1, byte_order);
24771  *offsetp += 1;
24772  proto_tree_add_item(t, hf_x11_xkb_GetNames_reply_nKTLevels, tvb, *offsetp, 2, byte_order);
24773  *offsetp += 2;
24774  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 4, ENC_NA);
24775  *offsetp += 4;
24776  if (f_which & (1U << 0)) {
24777  proto_tree_add_item(t, hf_x11_xkb_GetNames_reply_Keycodes_keycodesName, tvb, *offsetp, 4, byte_order);
24778  *offsetp += 4;
24779  }
24780  if (f_which & (1U << 1)) {
24781  proto_tree_add_item(t, hf_x11_xkb_GetNames_reply_Geometry_geometryName, tvb, *offsetp, 4, byte_order);
24782  *offsetp += 4;
24783  }
24784  if (f_which & (1U << 2)) {
24785  proto_tree_add_item(t, hf_x11_xkb_GetNames_reply_Symbols_symbolsName, tvb, *offsetp, 4, byte_order);
24786  *offsetp += 4;
24787  }
24788  if (f_which & (1U << 3)) {
24789  proto_tree_add_item(t, hf_x11_xkb_GetNames_reply_PhysSymbols_physSymbolsName, tvb, *offsetp, 4, byte_order);
24790  *offsetp += 4;
24791  }
24792  if (f_which & (1U << 4)) {
24793  proto_tree_add_item(t, hf_x11_xkb_GetNames_reply_Types_typesName, tvb, *offsetp, 4, byte_order);
24794  *offsetp += 4;
24795  }
24796  if (f_which & (1U << 5)) {
24797  proto_tree_add_item(t, hf_x11_xkb_GetNames_reply_Compat_compatName, tvb, *offsetp, 4, byte_order);
24798  *offsetp += 4;
24799  }
24800  if (f_which & (1U << 6)) {
24801  listOfCard32(tvb, offsetp, t, hf_x11_xkb_GetNames_reply_KeyTypeNames_typeNames, hf_x11_xkb_GetNames_reply_KeyTypeNames_typeNames_item, f_nTypes, byte_order);
24802  }
24803  if (f_which & (1U << 7)) {
24804  int sumof_nLevelsPerType = 0;
24805  {
24806  int i;
24807  for (i = 0; i < f_nTypes; i++) {
24808  sumof_nLevelsPerType += tvb_get_guint8(tvb, *offsetp + i * 1);
24809  }
24810  }
24811  listOfByte(tvb, offsetp, t, hf_x11_xkb_GetNames_reply_KTLevelNames_nLevelsPerType, f_nTypes, byte_order);
24812  if (*offsetp % 4) {
24813  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, (4 - *offsetp % 4), ENC_NA);
24814  *offsetp += (4 - *offsetp % 4);
24815  }
24816  listOfCard32(tvb, offsetp, t, hf_x11_xkb_GetNames_reply_KTLevelNames_ktLevelNames, hf_x11_xkb_GetNames_reply_KTLevelNames_ktLevelNames_item, sumof_nLevelsPerType, byte_order);
24817  }
24818  if (f_which & (1U << 8)) {
24819  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);
24820  }
24821  if (f_which & (1U << 11)) {
24822  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);
24823  }
24824  if (f_which & (1U << 12)) {
24825  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);
24826  }
24827  if (f_which & (1U << 9)) {
24828  struct_xkb_KeyName(tvb, offsetp, t, byte_order, f_nKeys);
24829  }
24830  if (f_which & (1U << 10)) {
24831  struct_xkb_KeyAlias(tvb, offsetp, t, byte_order, f_nKeyAliases);
24832  }
24833  if (f_which & (1U << 13)) {
24834  listOfCard32(tvb, offsetp, t, hf_x11_xkb_GetNames_reply_RGNames_radioGroupNames, hf_x11_xkb_GetNames_reply_RGNames_radioGroupNames_item, f_nRadioGroups, byte_order);
24835  }
24836 }
24837 
24838 static void xkbSetNames(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
24839 {
24840  int f_virtualMods;
24841  int f_which;
24842  int f_nTypes;
24843  int f_indicators;
24844  int f_groupNames;
24845  int f_nRadioGroups;
24846  int f_nKeys;
24847  int f_nKeyAliases;
24848  proto_tree_add_item(t, hf_x11_xkb_SetNames_deviceSpec, tvb, *offsetp, 2, byte_order);
24849  *offsetp += 2;
24850  f_virtualMods = tvb_get_guint16(tvb, *offsetp, byte_order);
24851  {
24852  const int* virtualMods_bits [] = {
24853  &hf_x11_xkb_SetNames_virtualMods_mask_0,
24854  &hf_x11_xkb_SetNames_virtualMods_mask_1,
24855  &hf_x11_xkb_SetNames_virtualMods_mask_2,
24856  &hf_x11_xkb_SetNames_virtualMods_mask_3,
24857  &hf_x11_xkb_SetNames_virtualMods_mask_4,
24858  &hf_x11_xkb_SetNames_virtualMods_mask_5,
24859  &hf_x11_xkb_SetNames_virtualMods_mask_6,
24860  &hf_x11_xkb_SetNames_virtualMods_mask_7,
24861  &hf_x11_xkb_SetNames_virtualMods_mask_8,
24862  &hf_x11_xkb_SetNames_virtualMods_mask_9,
24863  &hf_x11_xkb_SetNames_virtualMods_mask_10,
24864  &hf_x11_xkb_SetNames_virtualMods_mask_11,
24865  &hf_x11_xkb_SetNames_virtualMods_mask_12,
24866  &hf_x11_xkb_SetNames_virtualMods_mask_13,
24867  &hf_x11_xkb_SetNames_virtualMods_mask_14,
24868  &hf_x11_xkb_SetNames_virtualMods_mask_15,
24869  NULL
24870  };
24871  proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_xkb_SetNames_virtualMods, ett_x11_rectangle, virtualMods_bits, byte_order);
24872  }
24873  *offsetp += 2;
24874  f_which = tvb_get_guint32(tvb, *offsetp, byte_order);
24875  {
24876  const int* which_bits [] = {
24877  &hf_x11_xkb_SetNames_which_mask_Keycodes,
24878  &hf_x11_xkb_SetNames_which_mask_Geometry,
24879  &hf_x11_xkb_SetNames_which_mask_Symbols,
24880  &hf_x11_xkb_SetNames_which_mask_PhysSymbols,
24881  &hf_x11_xkb_SetNames_which_mask_Types,
24882  &hf_x11_xkb_SetNames_which_mask_Compat,
24883  &hf_x11_xkb_SetNames_which_mask_KeyTypeNames,
24884  &hf_x11_xkb_SetNames_which_mask_KTLevelNames,
24885  &hf_x11_xkb_SetNames_which_mask_IndicatorNames,
24886  &hf_x11_xkb_SetNames_which_mask_KeyNames,
24887  &hf_x11_xkb_SetNames_which_mask_KeyAliases,
24888  &hf_x11_xkb_SetNames_which_mask_VirtualModNames,
24889  &hf_x11_xkb_SetNames_which_mask_GroupNames,
24890  &hf_x11_xkb_SetNames_which_mask_RGNames,
24891  NULL
24892  };
24893  proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_xkb_SetNames_which, ett_x11_rectangle, which_bits, byte_order);
24894  }
24895  *offsetp += 4;
24896  proto_tree_add_item(t, hf_x11_xkb_SetNames_firstType, tvb, *offsetp, 1, byte_order);
24897  *offsetp += 1;
24898  f_nTypes = tvb_get_guint8(tvb, *offsetp);
24899  proto_tree_add_item(t, hf_x11_xkb_SetNames_nTypes, tvb, *offsetp, 1, byte_order);
24900  *offsetp += 1;
24901  proto_tree_add_item(t, hf_x11_xkb_SetNames_firstKTLevelt, tvb, *offsetp, 1, byte_order);
24902  *offsetp += 1;
24903  proto_tree_add_item(t, hf_x11_xkb_SetNames_nKTLevels, tvb, *offsetp, 1, byte_order);
24904  *offsetp += 1;
24905  f_indicators = tvb_get_guint32(tvb, *offsetp, byte_order);
24906  proto_tree_add_item(t, hf_x11_xkb_SetNames_indicators, tvb, *offsetp, 4, byte_order);
24907  *offsetp += 4;
24908  f_groupNames = tvb_get_guint8(tvb, *offsetp);
24909  {
24910  const int* groupNames_bits [] = {
24911  &hf_x11_xkb_SetNames_groupNames_mask_Group1,
24912  &hf_x11_xkb_SetNames_groupNames_mask_Group2,
24913  &hf_x11_xkb_SetNames_groupNames_mask_Group3,
24914  &hf_x11_xkb_SetNames_groupNames_mask_Group4,
24915  NULL
24916  };
24917  proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_xkb_SetNames_groupNames, ett_x11_rectangle, groupNames_bits, byte_order);
24918  }
24919  *offsetp += 1;
24920  f_nRadioGroups = tvb_get_guint8(tvb, *offsetp);
24921  proto_tree_add_item(t, hf_x11_xkb_SetNames_nRadioGroups, tvb, *offsetp, 1, byte_order);
24922  *offsetp += 1;
24923  proto_tree_add_item(t, hf_x11_xkb_SetNames_firstKey, tvb, *offsetp, 1, byte_order);
24924  *offsetp += 1;
24925  f_nKeys = tvb_get_guint8(tvb, *offsetp);
24926  proto_tree_add_item(t, hf_x11_xkb_SetNames_nKeys, tvb, *offsetp, 1, byte_order);
24927  *offsetp += 1;
24928  f_nKeyAliases = tvb_get_guint8(tvb, *offsetp);
24929  proto_tree_add_item(t, hf_x11_xkb_SetNames_nKeyAliases, tvb, *offsetp, 1, byte_order);
24930  *offsetp += 1;
24931  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
24932  *offsetp += 1;
24933  proto_tree_add_item(t, hf_x11_xkb_SetNames_totalKTLevelNames, tvb, *offsetp, 2, byte_order);
24934  *offsetp += 2;
24935  if (f_which & (1U << 0)) {
24936  proto_tree_add_item(t, hf_x11_xkb_SetNames_Keycodes_keycodesName, tvb, *offsetp, 4, byte_order);
24937  *offsetp += 4;
24938  }
24939  if (f_which & (1U << 1)) {
24940  proto_tree_add_item(t, hf_x11_xkb_SetNames_Geometry_geometryName, tvb, *offsetp, 4, byte_order);
24941  *offsetp += 4;
24942  }
24943  if (f_which & (1U << 2)) {
24944  proto_tree_add_item(t, hf_x11_xkb_SetNames_Symbols_symbolsName, tvb, *offsetp, 4, byte_order);
24945  *offsetp += 4;
24946  }
24947  if (f_which & (1U << 3)) {
24948  proto_tree_add_item(t, hf_x11_xkb_SetNames_PhysSymbols_physSymbolsName, tvb, *offsetp, 4, byte_order);
24949  *offsetp += 4;
24950  }
24951  if (f_which & (1U << 4)) {
24952  proto_tree_add_item(t, hf_x11_xkb_SetNames_Types_typesName, tvb, *offsetp, 4, byte_order);
24953  *offsetp += 4;
24954  }
24955  if (f_which & (1U << 5)) {
24956  proto_tree_add_item(t, hf_x11_xkb_SetNames_Compat_compatName, tvb, *offsetp, 4, byte_order);
24957  *offsetp += 4;
24958  }
24959  if (f_which & (1U << 6)) {
24960  listOfCard32(tvb, offsetp, t, hf_x11_xkb_SetNames_KeyTypeNames_typeNames, hf_x11_xkb_SetNames_KeyTypeNames_typeNames_item, f_nTypes, byte_order);
24961  length -= f_nTypes * 4;
24962  }
24963  if (f_which & (1U << 7)) {
24964  int sumof_nLevelsPerType = 0;
24965  {
24966  int i;
24967  for (i = 0; i < f_nTypes; i++) {
24968  sumof_nLevelsPerType += tvb_get_guint8(tvb, *offsetp + i * 1);
24969  }
24970  }
24971  listOfByte(tvb, offsetp, t, hf_x11_xkb_SetNames_KTLevelNames_nLevelsPerType, f_nTypes, byte_order);
24972  length -= f_nTypes * 1;
24973  if (*offsetp % 4) {
24974  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, (4 - *offsetp % 4), ENC_NA);
24975  *offsetp += (4 - *offsetp % 4);
24976  }
24977  length = ((length + 3) & ~3);
24978  listOfCard32(tvb, offsetp, t, hf_x11_xkb_SetNames_KTLevelNames_ktLevelNames, hf_x11_xkb_SetNames_KTLevelNames_ktLevelNames_item, sumof_nLevelsPerType, byte_order);
24979  length -= sumof_nLevelsPerType * 4;
24980  }
24981  if (f_which & (1U << 8)) {
24982  listOfCard32(tvb, offsetp, t, hf_x11_xkb_SetNames_IndicatorNames_indicatorNames, hf_x11_xkb_SetNames_IndicatorNames_indicatorNames_item, ws_count_ones(f_indicators), byte_order);
24983  length -= ws_count_ones(f_indicators) * 4;
24984  }
24985  if (f_which & (1U << 11)) {
24986  listOfCard32(tvb, offsetp, t, hf_x11_xkb_SetNames_VirtualModNames_virtualModNames, hf_x11_xkb_SetNames_VirtualModNames_virtualModNames_item, ws_count_ones(f_virtualMods), byte_order);
24987  length -= ws_count_ones(f_virtualMods) * 4;
24988  }
24989  if (f_which & (1U << 12)) {
24990  listOfCard32(tvb, offsetp, t, hf_x11_xkb_SetNames_GroupNames_groups, hf_x11_xkb_SetNames_GroupNames_groups_item, ws_count_ones(f_groupNames), byte_order);
24991  length -= ws_count_ones(f_groupNames) * 4;
24992  }
24993  if (f_which & (1U << 9)) {
24994  struct_xkb_KeyName(tvb, offsetp, t, byte_order, f_nKeys);
24995  length -= f_nKeys * 4;
24996  }
24997  if (f_which & (1U << 10)) {
24998  struct_xkb_KeyAlias(tvb, offsetp, t, byte_order, f_nKeyAliases);
24999  length -= f_nKeyAliases * 8;
25000  }
25001  if (f_which & (1U << 13)) {
25002  listOfCard32(tvb, offsetp, t, hf_x11_xkb_SetNames_RGNames_radioGroupNames, hf_x11_xkb_SetNames_RGNames_radioGroupNames_item, f_nRadioGroups, byte_order);
25003  length -= f_nRadioGroups * 4;
25004  }
25005 }
25006 
25007 static void xkbPerClientFlags(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
25008 {
25009  proto_tree_add_item(t, hf_x11_xkb_PerClientFlags_deviceSpec, tvb, *offsetp, 2, byte_order);
25010  *offsetp += 2;
25011  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 2, ENC_NA);
25012  *offsetp += 2;
25013  {
25014  const int* change_bits [] = {
25015  &hf_x11_xkb_PerClientFlags_change_mask_DetectableAutoRepeat,
25016  &hf_x11_xkb_PerClientFlags_change_mask_GrabsUseXKBState,
25017  &hf_x11_xkb_PerClientFlags_change_mask_AutoResetControls,
25018  &hf_x11_xkb_PerClientFlags_change_mask_LookupStateWhenGrabbed,
25019  &hf_x11_xkb_PerClientFlags_change_mask_SendEventUsesXKBState,
25020  NULL
25021  };
25022  proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_xkb_PerClientFlags_change, ett_x11_rectangle, change_bits, byte_order);
25023  }
25024  *offsetp += 4;
25025  {
25026  const int* value_bits [] = {
25027  &hf_x11_xkb_PerClientFlags_value_mask_DetectableAutoRepeat,
25028  &hf_x11_xkb_PerClientFlags_value_mask_GrabsUseXKBState,
25029  &hf_x11_xkb_PerClientFlags_value_mask_AutoResetControls,
25030  &hf_x11_xkb_PerClientFlags_value_mask_LookupStateWhenGrabbed,
25031  &hf_x11_xkb_PerClientFlags_value_mask_SendEventUsesXKBState,
25032  NULL
25033  };
25034  proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_xkb_PerClientFlags_value, ett_x11_rectangle, value_bits, byte_order);
25035  }
25036  *offsetp += 4;
25037  {
25038  const int* ctrlsToChange_bits [] = {
25039  &hf_x11_xkb_PerClientFlags_ctrlsToChange_mask_RepeatKeys,
25040  &hf_x11_xkb_PerClientFlags_ctrlsToChange_mask_SlowKeys,
25041  &hf_x11_xkb_PerClientFlags_ctrlsToChange_mask_BounceKeys,
25042  &hf_x11_xkb_PerClientFlags_ctrlsToChange_mask_StickyKeys,
25043  &hf_x11_xkb_PerClientFlags_ctrlsToChange_mask_MouseKeys,
25044  &hf_x11_xkb_PerClientFlags_ctrlsToChange_mask_MouseKeysAccel,
25045  &hf_x11_xkb_PerClientFlags_ctrlsToChange_mask_AccessXKeys,
25046  &hf_x11_xkb_PerClientFlags_ctrlsToChange_mask_AccessXTimeoutMask,
25047  &hf_x11_xkb_PerClientFlags_ctrlsToChange_mask_AccessXFeedbackMask,
25048  &hf_x11_xkb_PerClientFlags_ctrlsToChange_mask_AudibleBellMask,
25049  &hf_x11_xkb_PerClientFlags_ctrlsToChange_mask_Overlay1Mask,
25050  &hf_x11_xkb_PerClientFlags_ctrlsToChange_mask_Overlay2Mask,
25051  &hf_x11_xkb_PerClientFlags_ctrlsToChange_mask_IgnoreGroupLockMask,
25052  NULL
25053  };
25054  proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_xkb_PerClientFlags_ctrlsToChange, ett_x11_rectangle, ctrlsToChange_bits, byte_order);
25055  }
25056  *offsetp += 4;
25057  {
25058  const int* autoCtrls_bits [] = {
25059  &hf_x11_xkb_PerClientFlags_autoCtrls_mask_RepeatKeys,
25060  &hf_x11_xkb_PerClientFlags_autoCtrls_mask_SlowKeys,
25061  &hf_x11_xkb_PerClientFlags_autoCtrls_mask_BounceKeys,
25062  &hf_x11_xkb_PerClientFlags_autoCtrls_mask_StickyKeys,
25063  &hf_x11_xkb_PerClientFlags_autoCtrls_mask_MouseKeys,
25064  &hf_x11_xkb_PerClientFlags_autoCtrls_mask_MouseKeysAccel,
25065  &hf_x11_xkb_PerClientFlags_autoCtrls_mask_AccessXKeys,
25066  &hf_x11_xkb_PerClientFlags_autoCtrls_mask_AccessXTimeoutMask,
25067  &hf_x11_xkb_PerClientFlags_autoCtrls_mask_AccessXFeedbackMask,
25068  &hf_x11_xkb_PerClientFlags_autoCtrls_mask_AudibleBellMask,
25069  &hf_x11_xkb_PerClientFlags_autoCtrls_mask_Overlay1Mask,
25070  &hf_x11_xkb_PerClientFlags_autoCtrls_mask_Overlay2Mask,
25071  &hf_x11_xkb_PerClientFlags_autoCtrls_mask_IgnoreGroupLockMask,
25072  NULL
25073  };
25074  proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_xkb_PerClientFlags_autoCtrls, ett_x11_rectangle, autoCtrls_bits, byte_order);
25075  }
25076  *offsetp += 4;
25077  {
25078  const int* autoCtrlsValues_bits [] = {
25079  &hf_x11_xkb_PerClientFlags_autoCtrlsValues_mask_RepeatKeys,
25080  &hf_x11_xkb_PerClientFlags_autoCtrlsValues_mask_SlowKeys,
25081  &hf_x11_xkb_PerClientFlags_autoCtrlsValues_mask_BounceKeys,
25082  &hf_x11_xkb_PerClientFlags_autoCtrlsValues_mask_StickyKeys,
25083  &hf_x11_xkb_PerClientFlags_autoCtrlsValues_mask_MouseKeys,
25084  &hf_x11_xkb_PerClientFlags_autoCtrlsValues_mask_MouseKeysAccel,
25085  &hf_x11_xkb_PerClientFlags_autoCtrlsValues_mask_AccessXKeys,
25086  &hf_x11_xkb_PerClientFlags_autoCtrlsValues_mask_AccessXTimeoutMask,
25087  &hf_x11_xkb_PerClientFlags_autoCtrlsValues_mask_AccessXFeedbackMask,
25088  &hf_x11_xkb_PerClientFlags_autoCtrlsValues_mask_AudibleBellMask,
25089  &hf_x11_xkb_PerClientFlags_autoCtrlsValues_mask_Overlay1Mask,
25090  &hf_x11_xkb_PerClientFlags_autoCtrlsValues_mask_Overlay2Mask,
25091  &hf_x11_xkb_PerClientFlags_autoCtrlsValues_mask_IgnoreGroupLockMask,
25092  NULL
25093  };
25094  proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_xkb_PerClientFlags_autoCtrlsValues, ett_x11_rectangle, autoCtrlsValues_bits, byte_order);
25095  }
25096  *offsetp += 4;
25097 }
25098 static void xkbPerClientFlags_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
25099 {
25100  int sequence_number;
25101 
25102  col_append_fstr(pinfo->cinfo, COL_INFO, "-PerClientFlags");
25103 
25104  REPLY(reply);
25105  proto_tree_add_item(t, hf_x11_xkb_PerClientFlags_reply_deviceID, tvb, *offsetp, 1, byte_order);
25106  *offsetp += 1;
25107  sequence_number = tvb_get_guint16(tvb, *offsetp, byte_order);
25108  proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
25109  "%d (xkb-PerClientFlags)", sequence_number);
25110  *offsetp += 2;
25111  proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
25112  *offsetp += 4;
25113  {
25114  const int* supported_bits [] = {
25115  &hf_x11_xkb_PerClientFlags_reply_supported_mask_DetectableAutoRepeat,
25116  &hf_x11_xkb_PerClientFlags_reply_supported_mask_GrabsUseXKBState,
25117  &hf_x11_xkb_PerClientFlags_reply_supported_mask_AutoResetControls,
25118  &hf_x11_xkb_PerClientFlags_reply_supported_mask_LookupStateWhenGrabbed,
25119  &hf_x11_xkb_PerClientFlags_reply_supported_mask_SendEventUsesXKBState,
25120  NULL
25121  };
25122  proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_xkb_PerClientFlags_reply_supported, ett_x11_rectangle, supported_bits, byte_order);
25123  }
25124  *offsetp += 4;
25125  {
25126  const int* value_bits [] = {
25127  &hf_x11_xkb_PerClientFlags_reply_value_mask_DetectableAutoRepeat,
25128  &hf_x11_xkb_PerClientFlags_reply_value_mask_GrabsUseXKBState,
25129  &hf_x11_xkb_PerClientFlags_reply_value_mask_AutoResetControls,
25130  &hf_x11_xkb_PerClientFlags_reply_value_mask_LookupStateWhenGrabbed,
25131  &hf_x11_xkb_PerClientFlags_reply_value_mask_SendEventUsesXKBState,
25132  NULL
25133  };
25134  proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_xkb_PerClientFlags_reply_value, ett_x11_rectangle, value_bits, byte_order);
25135  }
25136  *offsetp += 4;
25137  {
25138  const int* autoCtrls_bits [] = {
25139  &hf_x11_xkb_PerClientFlags_reply_autoCtrls_mask_RepeatKeys,
25140  &hf_x11_xkb_PerClientFlags_reply_autoCtrls_mask_SlowKeys,
25141  &hf_x11_xkb_PerClientFlags_reply_autoCtrls_mask_BounceKeys,
25142  &hf_x11_xkb_PerClientFlags_reply_autoCtrls_mask_StickyKeys,
25143  &hf_x11_xkb_PerClientFlags_reply_autoCtrls_mask_MouseKeys,
25144  &hf_x11_xkb_PerClientFlags_reply_autoCtrls_mask_MouseKeysAccel,
25145  &hf_x11_xkb_PerClientFlags_reply_autoCtrls_mask_AccessXKeys,
25146  &hf_x11_xkb_PerClientFlags_reply_autoCtrls_mask_AccessXTimeoutMask,
25147  &hf_x11_xkb_PerClientFlags_reply_autoCtrls_mask_AccessXFeedbackMask,
25148  &hf_x11_xkb_PerClientFlags_reply_autoCtrls_mask_AudibleBellMask,
25149  &hf_x11_xkb_PerClientFlags_reply_autoCtrls_mask_Overlay1Mask,
25150  &hf_x11_xkb_PerClientFlags_reply_autoCtrls_mask_Overlay2Mask,
25151  &hf_x11_xkb_PerClientFlags_reply_autoCtrls_mask_IgnoreGroupLockMask,
25152  NULL
25153  };
25154  proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_xkb_PerClientFlags_reply_autoCtrls, ett_x11_rectangle, autoCtrls_bits, byte_order);
25155  }
25156  *offsetp += 4;
25157  {
25158  const int* autoCtrlsValues_bits [] = {
25159  &hf_x11_xkb_PerClientFlags_reply_autoCtrlsValues_mask_RepeatKeys,
25160  &hf_x11_xkb_PerClientFlags_reply_autoCtrlsValues_mask_SlowKeys,
25161  &hf_x11_xkb_PerClientFlags_reply_autoCtrlsValues_mask_BounceKeys,
25162  &hf_x11_xkb_PerClientFlags_reply_autoCtrlsValues_mask_StickyKeys,
25163  &hf_x11_xkb_PerClientFlags_reply_autoCtrlsValues_mask_MouseKeys,
25164  &hf_x11_xkb_PerClientFlags_reply_autoCtrlsValues_mask_MouseKeysAccel,
25165  &hf_x11_xkb_PerClientFlags_reply_autoCtrlsValues_mask_AccessXKeys,
25166  &hf_x11_xkb_PerClientFlags_reply_autoCtrlsValues_mask_AccessXTimeoutMask,
25167  &hf_x11_xkb_PerClientFlags_reply_autoCtrlsValues_mask_AccessXFeedbackMask,
25168  &hf_x11_xkb_PerClientFlags_reply_autoCtrlsValues_mask_AudibleBellMask,
25169  &hf_x11_xkb_PerClientFlags_reply_autoCtrlsValues_mask_Overlay1Mask,
25170  &hf_x11_xkb_PerClientFlags_reply_autoCtrlsValues_mask_Overlay2Mask,
25171  &hf_x11_xkb_PerClientFlags_reply_autoCtrlsValues_mask_IgnoreGroupLockMask,
25172  NULL
25173  };
25174  proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_xkb_PerClientFlags_reply_autoCtrlsValues, ett_x11_rectangle, autoCtrlsValues_bits, byte_order);
25175  }
25176  *offsetp += 4;
25177  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 8, ENC_NA);
25178  *offsetp += 8;
25179 }
25180 
25181 static void xkbListComponents(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
25182 {
25183  proto_tree_add_item(t, hf_x11_xkb_ListComponents_deviceSpec, tvb, *offsetp, 2, byte_order);
25184  *offsetp += 2;
25185  proto_tree_add_item(t, hf_x11_xkb_ListComponents_maxNames, tvb, *offsetp, 2, byte_order);
25186  *offsetp += 2;
25187 }
25188 static void xkbListComponents_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
25189 {
25190  int sequence_number;
25191  int f_nKeymaps;
25192  int f_nKeycodes;
25193  int f_nTypes;
25194  int f_nCompatMaps;
25195  int f_nSymbols;
25196  int f_nGeometries;
25197 
25198  col_append_fstr(pinfo->cinfo, COL_INFO, "-ListComponents");
25199 
25200  REPLY(reply);
25201  proto_tree_add_item(t, hf_x11_xkb_ListComponents_reply_deviceID, tvb, *offsetp, 1, byte_order);
25202  *offsetp += 1;
25203  sequence_number = tvb_get_guint16(tvb, *offsetp, byte_order);
25204  proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
25205  "%d (xkb-ListComponents)", sequence_number);
25206  *offsetp += 2;
25207  proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
25208  *offsetp += 4;
25209  f_nKeymaps = tvb_get_guint16(tvb, *offsetp, byte_order);
25210  proto_tree_add_item(t, hf_x11_xkb_ListComponents_reply_nKeymaps, tvb, *offsetp, 2, byte_order);
25211  *offsetp += 2;
25212  f_nKeycodes = tvb_get_guint16(tvb, *offsetp, byte_order);
25213  proto_tree_add_item(t, hf_x11_xkb_ListComponents_reply_nKeycodes, tvb, *offsetp, 2, byte_order);
25214  *offsetp += 2;
25215  f_nTypes = tvb_get_guint16(tvb, *offsetp, byte_order);
25216  proto_tree_add_item(t, hf_x11_xkb_ListComponents_reply_nTypes, tvb, *offsetp, 2, byte_order);
25217  *offsetp += 2;
25218  f_nCompatMaps = tvb_get_guint16(tvb, *offsetp, byte_order);
25219  proto_tree_add_item(t, hf_x11_xkb_ListComponents_reply_nCompatMaps, tvb, *offsetp, 2, byte_order);
25220  *offsetp += 2;
25221  f_nSymbols = tvb_get_guint16(tvb, *offsetp, byte_order);
25222  proto_tree_add_item(t, hf_x11_xkb_ListComponents_reply_nSymbols, tvb, *offsetp, 2, byte_order);
25223  *offsetp += 2;
25224  f_nGeometries = tvb_get_guint16(tvb, *offsetp, byte_order);
25225  proto_tree_add_item(t, hf_x11_xkb_ListComponents_reply_nGeometries, tvb, *offsetp, 2, byte_order);
25226  *offsetp += 2;
25227  proto_tree_add_item(t, hf_x11_xkb_ListComponents_reply_extra, tvb, *offsetp, 2, byte_order);
25228  *offsetp += 2;
25229  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 10, ENC_NA);
25230  *offsetp += 10;
25231  struct_xkb_Listing(tvb, offsetp, t, byte_order, f_nKeymaps);
25232  struct_xkb_Listing(tvb, offsetp, t, byte_order, f_nKeycodes);
25233  struct_xkb_Listing(tvb, offsetp, t, byte_order, f_nTypes);
25234  struct_xkb_Listing(tvb, offsetp, t, byte_order, f_nCompatMaps);
25235  struct_xkb_Listing(tvb, offsetp, t, byte_order, f_nSymbols);
25236  struct_xkb_Listing(tvb, offsetp, t, byte_order, f_nGeometries);
25237 }
25238 
25239 static void xkbGetKbdByName(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
25240 {
25241  proto_tree_add_item(t, hf_x11_xkb_GetKbdByName_deviceSpec, tvb, *offsetp, 2, byte_order);
25242  *offsetp += 2;
25243  {
25244  const int* need_bits [] = {
25245  &hf_x11_xkb_GetKbdByName_need_mask_Types,
25246  &hf_x11_xkb_GetKbdByName_need_mask_CompatMap,
25247  &hf_x11_xkb_GetKbdByName_need_mask_ClientSymbols,
25248  &hf_x11_xkb_GetKbdByName_need_mask_ServerSymbols,
25249  &hf_x11_xkb_GetKbdByName_need_mask_IndicatorMaps,
25250  &hf_x11_xkb_GetKbdByName_need_mask_KeyNames,
25251  &hf_x11_xkb_GetKbdByName_need_mask_Geometry,
25252  &hf_x11_xkb_GetKbdByName_need_mask_OtherNames,
25253  NULL
25254  };
25255  proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_xkb_GetKbdByName_need, ett_x11_rectangle, need_bits, byte_order);
25256  }
25257  *offsetp += 2;
25258  {
25259  const int* want_bits [] = {
25260  &hf_x11_xkb_GetKbdByName_want_mask_Types,
25261  &hf_x11_xkb_GetKbdByName_want_mask_CompatMap,
25262  &hf_x11_xkb_GetKbdByName_want_mask_ClientSymbols,
25263  &hf_x11_xkb_GetKbdByName_want_mask_ServerSymbols,
25264  &hf_x11_xkb_GetKbdByName_want_mask_IndicatorMaps,
25265  &hf_x11_xkb_GetKbdByName_want_mask_KeyNames,
25266  &hf_x11_xkb_GetKbdByName_want_mask_Geometry,
25267  &hf_x11_xkb_GetKbdByName_want_mask_OtherNames,
25268  NULL
25269  };
25270  proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_xkb_GetKbdByName_want, ett_x11_rectangle, want_bits, byte_order);
25271  }
25272  *offsetp += 2;
25273  proto_tree_add_item(t, hf_x11_xkb_GetKbdByName_load, tvb, *offsetp, 1, byte_order);
25274  *offsetp += 1;
25275  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
25276  *offsetp += 1;
25277 }
25278 static void xkbGetKbdByName_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
25279 {
25280  int sequence_number;
25281  int f_reported;
25282 
25283  col_append_fstr(pinfo->cinfo, COL_INFO, "-GetKbdByName");
25284 
25285  REPLY(reply);
25286  proto_tree_add_item(t, hf_x11_xkb_GetKbdByName_reply_deviceID, tvb, *offsetp, 1, byte_order);
25287  *offsetp += 1;
25288  sequence_number = tvb_get_guint16(tvb, *offsetp, byte_order);
25289  proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
25290  "%d (xkb-GetKbdByName)", sequence_number);
25291  *offsetp += 2;
25292  proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
25293  *offsetp += 4;
25294  proto_tree_add_item(t, hf_x11_xkb_GetKbdByName_reply_minKeyCode, tvb, *offsetp, 1, byte_order);
25295  *offsetp += 1;
25296  proto_tree_add_item(t, hf_x11_xkb_GetKbdByName_reply_maxKeyCode, tvb, *offsetp, 1, byte_order);
25297  *offsetp += 1;
25298  proto_tree_add_item(t, hf_x11_xkb_GetKbdByName_reply_loaded, tvb, *offsetp, 1, byte_order);
25299  *offsetp += 1;
25300  proto_tree_add_item(t, hf_x11_xkb_GetKbdByName_reply_newKeyboard, tvb, *offsetp, 1, byte_order);
25301  *offsetp += 1;
25302  {
25303  const int* found_bits [] = {
25304  &hf_x11_xkb_GetKbdByName_reply_found_mask_Types,
25305  &hf_x11_xkb_GetKbdByName_reply_found_mask_CompatMap,
25306  &hf_x11_xkb_GetKbdByName_reply_found_mask_ClientSymbols,
25307  &hf_x11_xkb_GetKbdByName_reply_found_mask_ServerSymbols,
25308  &hf_x11_xkb_GetKbdByName_reply_found_mask_IndicatorMaps,
25309  &hf_x11_xkb_GetKbdByName_reply_found_mask_KeyNames,
25310  &hf_x11_xkb_GetKbdByName_reply_found_mask_Geometry,
25311  &hf_x11_xkb_GetKbdByName_reply_found_mask_OtherNames,
25312  NULL
25313  };
25314  proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_xkb_GetKbdByName_reply_found, ett_x11_rectangle, found_bits, byte_order);
25315  }
25316  *offsetp += 2;
25317  f_reported = tvb_get_guint16(tvb, *offsetp, byte_order);
25318  {
25319  const int* reported_bits [] = {
25320  &hf_x11_xkb_GetKbdByName_reply_reported_mask_Types,
25321  &hf_x11_xkb_GetKbdByName_reply_reported_mask_CompatMap,
25322  &hf_x11_xkb_GetKbdByName_reply_reported_mask_ClientSymbols,
25323  &hf_x11_xkb_GetKbdByName_reply_reported_mask_ServerSymbols,
25324  &hf_x11_xkb_GetKbdByName_reply_reported_mask_IndicatorMaps,
25325  &hf_x11_xkb_GetKbdByName_reply_reported_mask_KeyNames,
25326  &hf_x11_xkb_GetKbdByName_reply_reported_mask_Geometry,
25327  &hf_x11_xkb_GetKbdByName_reply_reported_mask_OtherNames,
25328  NULL
25329  };
25330  proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_xkb_GetKbdByName_reply_reported, ett_x11_rectangle, reported_bits, byte_order);
25331  }
25332  *offsetp += 2;
25333  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 16, ENC_NA);
25334  *offsetp += 16;
25335  if ((f_reported & (1U << 0)) || (f_reported & (1U << 2)) || (f_reported & (1U << 3))) {
25336  int f_present;
25337  int f_nTypes;
25338  int f_nKeySyms;
25339  int f_totalActions;
25340  int f_nKeyActions;
25341  int f_totalKeyBehaviors;
25342  int f_totalKeyExplicit;
25343  int f_totalModMapKeys;
25344  int f_totalVModMapKeys;
25345  int f_virtualMods;
25346  proto_tree_add_item(t, hf_x11_xkb_GetKbdByName_reply_Types_getmap_type, tvb, *offsetp, 1, byte_order);
25347  *offsetp += 1;
25348  proto_tree_add_item(t, hf_x11_xkb_GetKbdByName_reply_Types_typeDeviceID, tvb, *offsetp, 1, byte_order);
25349  *offsetp += 1;
25350  proto_tree_add_item(t, hf_x11_xkb_GetKbdByName_reply_Types_getmap_sequence, tvb, *offsetp, 2, byte_order);
25351  *offsetp += 2;
25352  proto_tree_add_item(t, hf_x11_xkb_GetKbdByName_reply_Types_getmap_length, tvb, *offsetp, 4, byte_order);
25353  *offsetp += 4;
25354  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 2, ENC_NA);
25355  *offsetp += 2;
25356  proto_tree_add_item(t, hf_x11_xkb_GetKbdByName_reply_Types_typeMinKeyCode, tvb, *offsetp, 1, byte_order);
25357  *offsetp += 1;
25358  proto_tree_add_item(t, hf_x11_xkb_GetKbdByName_reply_Types_typeMaxKeyCode, tvb, *offsetp, 1, byte_order);
25359  *offsetp += 1;
25360  f_present = tvb_get_guint16(tvb, *offsetp, byte_order);
25361  {
25362  const int* present_bits [] = {
25363  &hf_x11_xkb_GetKbdByName_reply_Types_present_mask_KeyTypes,
25364  &hf_x11_xkb_GetKbdByName_reply_Types_present_mask_KeySyms,
25365  &hf_x11_xkb_GetKbdByName_reply_Types_present_mask_ModifierMap,
25366  &hf_x11_xkb_GetKbdByName_reply_Types_present_mask_ExplicitComponents,
25367  &hf_x11_xkb_GetKbdByName_reply_Types_present_mask_KeyActions,
25368  &hf_x11_xkb_GetKbdByName_reply_Types_present_mask_KeyBehaviors,
25369  &hf_x11_xkb_GetKbdByName_reply_Types_present_mask_VirtualMods,
25370  &hf_x11_xkb_GetKbdByName_reply_Types_present_mask_VirtualModMap,
25371  NULL
25372  };
25373  proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_xkb_GetKbdByName_reply_Types_present, ett_x11_rectangle, present_bits, byte_order);
25374  }
25375  *offsetp += 2;
25376  proto_tree_add_item(t, hf_x11_xkb_GetKbdByName_reply_Types_firstType, tvb, *offsetp, 1, byte_order);
25377  *offsetp += 1;
25378  f_nTypes = tvb_get_guint8(tvb, *offsetp);
25379  proto_tree_add_item(t, hf_x11_xkb_GetKbdByName_reply_Types_nTypes, tvb, *offsetp, 1, byte_order);
25380  *offsetp += 1;
25381  proto_tree_add_item(t, hf_x11_xkb_GetKbdByName_reply_Types_totalTypes, tvb, *offsetp, 1, byte_order);
25382  *offsetp += 1;
25383  proto_tree_add_item(t, hf_x11_xkb_GetKbdByName_reply_Types_firstKeySym, tvb, *offsetp, 1, byte_order);
25384  *offsetp += 1;
25385  proto_tree_add_item(t, hf_x11_xkb_GetKbdByName_reply_Types_totalSyms, tvb, *offsetp, 2, byte_order);
25386  *offsetp += 2;
25387  f_nKeySyms = tvb_get_guint8(tvb, *offsetp);
25388  proto_tree_add_item(t, hf_x11_xkb_GetKbdByName_reply_Types_nKeySyms, tvb, *offsetp, 1, byte_order);
25389  *offsetp += 1;
25390  proto_tree_add_item(t, hf_x11_xkb_GetKbdByName_reply_Types_firstKeyAction, tvb, *offsetp, 1, byte_order);
25391  *offsetp += 1;
25392  f_totalActions = tvb_get_guint16(tvb, *offsetp, byte_order);
25393  proto_tree_add_item(t, hf_x11_xkb_GetKbdByName_reply_Types_totalActions, tvb, *offsetp, 2, byte_order);
25394  *offsetp += 2;
25395  f_nKeyActions = tvb_get_guint8(tvb, *offsetp);
25396  proto_tree_add_item(t, hf_x11_xkb_GetKbdByName_reply_Types_nKeyActions, tvb, *offsetp, 1, byte_order);
25397  *offsetp += 1;
25398  proto_tree_add_item(t, hf_x11_xkb_GetKbdByName_reply_Types_firstKeyBehavior, tvb, *offsetp, 1, byte_order);
25399  *offsetp += 1;
25400  proto_tree_add_item(t, hf_x11_xkb_GetKbdByName_reply_Types_nKeyBehaviors, tvb, *offsetp, 1, byte_order);
25401  *offsetp += 1;
25402  f_totalKeyBehaviors = tvb_get_guint8(tvb, *offsetp);
25403  proto_tree_add_item(t, hf_x11_xkb_GetKbdByName_reply_Types_totalKeyBehaviors, tvb, *offsetp, 1, byte_order);
25404  *offsetp += 1;
25405  proto_tree_add_item(t, hf_x11_xkb_GetKbdByName_reply_Types_firstKeyExplicit, tvb, *offsetp, 1, byte_order);
25406  *offsetp += 1;
25407  proto_tree_add_item(t, hf_x11_xkb_GetKbdByName_reply_Types_nKeyExplicit, tvb, *offsetp, 1, byte_order);
25408  *offsetp += 1;
25409  f_totalKeyExplicit = tvb_get_guint8(tvb, *offsetp);
25410  proto_tree_add_item(t, hf_x11_xkb_GetKbdByName_reply_Types_totalKeyExplicit, tvb, *offsetp, 1, byte_order);
25411  *offsetp += 1;
25412  proto_tree_add_item(t, hf_x11_xkb_GetKbdByName_reply_Types_firstModMapKey, tvb, *offsetp, 1, byte_order);
25413  *offsetp += 1;
25414  proto_tree_add_item(t, hf_x11_xkb_GetKbdByName_reply_Types_nModMapKeys, tvb, *offsetp, 1, byte_order);
25415  *offsetp += 1;
25416  f_totalModMapKeys = tvb_get_guint8(tvb, *offsetp);
25417  proto_tree_add_item(t, hf_x11_xkb_GetKbdByName_reply_Types_totalModMapKeys, tvb, *offsetp, 1, byte_order);
25418  *offsetp += 1;
25419  proto_tree_add_item(t, hf_x11_xkb_GetKbdByName_reply_Types_firstVModMapKey, tvb, *offsetp, 1, byte_order);
25420  *offsetp += 1;
25421  proto_tree_add_item(t, hf_x11_xkb_GetKbdByName_reply_Types_nVModMapKeys, tvb, *offsetp, 1, byte_order);
25422  *offsetp += 1;
25423  f_totalVModMapKeys = tvb_get_guint8(tvb, *offsetp);
25424  proto_tree_add_item(t, hf_x11_xkb_GetKbdByName_reply_Types_totalVModMapKeys, tvb, *offsetp, 1, byte_order);
25425  *offsetp += 1;
25426  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
25427  *offsetp += 1;
25428  f_virtualMods = tvb_get_guint16(tvb, *offsetp, byte_order);
25429  {
25430  const int* virtualMods_bits [] = {
25431  &hf_x11_xkb_GetKbdByName_reply_Types_virtualMods_mask_0,
25432  &hf_x11_xkb_GetKbdByName_reply_Types_virtualMods_mask_1,
25433  &hf_x11_xkb_GetKbdByName_reply_Types_virtualMods_mask_2,
25434  &hf_x11_xkb_GetKbdByName_reply_Types_virtualMods_mask_3,
25435  &hf_x11_xkb_GetKbdByName_reply_Types_virtualMods_mask_4,
25436  &hf_x11_xkb_GetKbdByName_reply_Types_virtualMods_mask_5,
25437  &hf_x11_xkb_GetKbdByName_reply_Types_virtualMods_mask_6,
25438  &hf_x11_xkb_GetKbdByName_reply_Types_virtualMods_mask_7,
25439  &hf_x11_xkb_GetKbdByName_reply_Types_virtualMods_mask_8,
25440  &hf_x11_xkb_GetKbdByName_reply_Types_virtualMods_mask_9,
25441  &hf_x11_xkb_GetKbdByName_reply_Types_virtualMods_mask_10,
25442  &hf_x11_xkb_GetKbdByName_reply_Types_virtualMods_mask_11,
25443  &hf_x11_xkb_GetKbdByName_reply_Types_virtualMods_mask_12,
25444  &hf_x11_xkb_GetKbdByName_reply_Types_virtualMods_mask_13,
25445  &hf_x11_xkb_GetKbdByName_reply_Types_virtualMods_mask_14,
25446  &hf_x11_xkb_GetKbdByName_reply_Types_virtualMods_mask_15,
25447  NULL
25448  };
25449  proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_xkb_GetKbdByName_reply_Types_virtualMods, ett_x11_rectangle, virtualMods_bits, byte_order);
25450  }
25451  *offsetp += 2;
25452  if (f_present & (1U << 0)) {
25453  struct_xkb_KeyType(tvb, offsetp, t, byte_order, f_nTypes);
25454  }
25455  if (f_present & (1U << 1)) {
25456  struct_xkb_KeySymMap(tvb, offsetp, t, byte_order, f_nKeySyms);
25457  }
25458  if (f_present & (1U << 4)) {
25459  listOfByte(tvb, offsetp, t, hf_x11_xkb_GetKbdByName_reply_Types_KeyActions_acts_rtrn_count, f_nKeyActions, byte_order);
25460  if (*offsetp % 4) {
25461  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, (4 - *offsetp % 4), ENC_NA);
25462  *offsetp += (4 - *offsetp % 4);
25463  }
25464  struct_xkb_Action(tvb, offsetp, t, byte_order, f_totalActions);
25465  }
25466  if (f_present & (1U << 5)) {
25467  struct_xkb_SetBehavior(tvb, offsetp, t, byte_order, f_totalKeyBehaviors);
25468  }
25469  if (f_present & (1U << 6)) {
25470  listOfByte(tvb, offsetp, t, hf_x11_xkb_GetKbdByName_reply_Types_VirtualMods_vmods_rtrn, ws_count_ones(f_virtualMods), byte_order);
25471  if (*offsetp % 4) {
25472  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, (4 - *offsetp % 4), ENC_NA);
25473  *offsetp += (4 - *offsetp % 4);
25474  }
25475  }
25476  if (f_present & (1U << 3)) {
25477  struct_xkb_SetExplicit(tvb, offsetp, t, byte_order, f_totalKeyExplicit);
25478  if (*offsetp % 4) {
25479  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, (4 - *offsetp % 4), ENC_NA);
25480  *offsetp += (4 - *offsetp % 4);
25481  }
25482  }
25483  if (f_present & (1U << 2)) {
25484  struct_xkb_KeyModMap(tvb, offsetp, t, byte_order, f_totalModMapKeys);
25485  if (*offsetp % 4) {
25486  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, (4 - *offsetp % 4), ENC_NA);
25487  *offsetp += (4 - *offsetp % 4);
25488  }
25489  }
25490  if (f_present & (1U << 7)) {
25491  struct_xkb_KeyVModMap(tvb, offsetp, t, byte_order, f_totalVModMapKeys);
25492  }
25493  }
25494  if (f_reported & (1U << 1)) {
25495  int f_groupsRtrn;
25496  int f_nSIRtrn;
25497  proto_tree_add_item(t, hf_x11_xkb_GetKbdByName_reply_CompatMap_compatmap_type, tvb, *offsetp, 1, byte_order);
25498  *offsetp += 1;
25499  proto_tree_add_item(t, hf_x11_xkb_GetKbdByName_reply_CompatMap_compatDeviceID, tvb, *offsetp, 1, byte_order);
25500  *offsetp += 1;
25501  proto_tree_add_item(t, hf_x11_xkb_GetKbdByName_reply_CompatMap_compatmap_sequence, tvb, *offsetp, 2, byte_order);
25502  *offsetp += 2;
25503  proto_tree_add_item(t, hf_x11_xkb_GetKbdByName_reply_CompatMap_compatmap_length, tvb, *offsetp, 4, byte_order);
25504  *offsetp += 4;
25505  f_groupsRtrn = tvb_get_guint8(tvb, *offsetp);
25506  {
25507  const int* groupsRtrn_bits [] = {
25508  &hf_x11_xkb_GetKbdByName_reply_CompatMap_groupsRtrn_mask_Group1,
25509  &hf_x11_xkb_GetKbdByName_reply_CompatMap_groupsRtrn_mask_Group2,
25510  &hf_x11_xkb_GetKbdByName_reply_CompatMap_groupsRtrn_mask_Group3,
25511  &hf_x11_xkb_GetKbdByName_reply_CompatMap_groupsRtrn_mask_Group4,
25512  NULL
25513  };
25514  proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_xkb_GetKbdByName_reply_CompatMap_groupsRtrn, ett_x11_rectangle, groupsRtrn_bits, byte_order);
25515  }
25516  *offsetp += 1;
25517  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
25518  *offsetp += 1;
25519  proto_tree_add_item(t, hf_x11_xkb_GetKbdByName_reply_CompatMap_firstSIRtrn, tvb, *offsetp, 2, byte_order);
25520  *offsetp += 2;
25521  f_nSIRtrn = tvb_get_guint16(tvb, *offsetp, byte_order);
25522  proto_tree_add_item(t, hf_x11_xkb_GetKbdByName_reply_CompatMap_nSIRtrn, tvb, *offsetp, 2, byte_order);
25523  *offsetp += 2;
25524  proto_tree_add_item(t, hf_x11_xkb_GetKbdByName_reply_CompatMap_nTotalSI, tvb, *offsetp, 2, byte_order);
25525  *offsetp += 2;
25526  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 16, ENC_NA);
25527  *offsetp += 16;
25528  struct_xkb_SymInterpret(tvb, offsetp, t, byte_order, f_nSIRtrn);
25529  struct_xkb_ModDef(tvb, offsetp, t, byte_order, ws_count_ones(f_groupsRtrn));
25530  }
25531  if (f_reported & (1U << 4)) {
25532  int f_nIndicators;
25533  proto_tree_add_item(t, hf_x11_xkb_GetKbdByName_reply_IndicatorMaps_indicatormap_type, tvb, *offsetp, 1, byte_order);
25534  *offsetp += 1;
25535  proto_tree_add_item(t, hf_x11_xkb_GetKbdByName_reply_IndicatorMaps_indicatorDeviceID, tvb, *offsetp, 1, byte_order);
25536  *offsetp += 1;
25537  proto_tree_add_item(t, hf_x11_xkb_GetKbdByName_reply_IndicatorMaps_indicatormap_sequence, tvb, *offsetp, 2, byte_order);
25538  *offsetp += 2;
25539  proto_tree_add_item(t, hf_x11_xkb_GetKbdByName_reply_IndicatorMaps_indicatormap_length, tvb, *offsetp, 4, byte_order);
25540  *offsetp += 4;
25541  proto_tree_add_item(t, hf_x11_xkb_GetKbdByName_reply_IndicatorMaps_which, tvb, *offsetp, 4, byte_order);
25542  *offsetp += 4;
25543  proto_tree_add_item(t, hf_x11_xkb_GetKbdByName_reply_IndicatorMaps_realIndicators, tvb, *offsetp, 4, byte_order);
25544  *offsetp += 4;
25545  f_nIndicators = tvb_get_guint8(tvb, *offsetp);
25546  proto_tree_add_item(t, hf_x11_xkb_GetKbdByName_reply_IndicatorMaps_nIndicators, tvb, *offsetp, 1, byte_order);
25547  *offsetp += 1;
25548  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 15, ENC_NA);
25549  *offsetp += 15;
25550  struct_xkb_IndicatorMap(tvb, offsetp, t, byte_order, f_nIndicators);
25551  }
25552  if ((f_reported & (1U << 5)) || (f_reported & (1U << 7))) {
25553  int f_which;
25554  int f_nTypes;
25555  int f_groupNames;
25556  int f_virtualMods;
25557  int f_nKeys;
25558  int f_indicators;
25559  int f_nRadioGroups;
25560  int f_nKeyAliases;
25561  proto_tree_add_item(t, hf_x11_xkb_GetKbdByName_reply_KeyNames_keyname_type, tvb, *offsetp, 1, byte_order);
25562  *offsetp += 1;
25563  proto_tree_add_item(t, hf_x11_xkb_GetKbdByName_reply_KeyNames_keyDeviceID, tvb, *offsetp, 1, byte_order);
25564  *offsetp += 1;
25565  proto_tree_add_item(t, hf_x11_xkb_GetKbdByName_reply_KeyNames_keyname_sequence, tvb, *offsetp, 2, byte_order);
25566  *offsetp += 2;
25567  proto_tree_add_item(t, hf_x11_xkb_GetKbdByName_reply_KeyNames_keyname_length, tvb, *offsetp, 4, byte_order);
25568  *offsetp += 4;
25569  f_which = tvb_get_guint32(tvb, *offsetp, byte_order);
25570  {
25571  const int* which_bits [] = {
25572  &hf_x11_xkb_GetKbdByName_reply_KeyNames_which_mask_Keycodes,
25573  &hf_x11_xkb_GetKbdByName_reply_KeyNames_which_mask_Geometry,
25574  &hf_x11_xkb_GetKbdByName_reply_KeyNames_which_mask_Symbols,
25575  &hf_x11_xkb_GetKbdByName_reply_KeyNames_which_mask_PhysSymbols,
25576  &hf_x11_xkb_GetKbdByName_reply_KeyNames_which_mask_Types,
25577  &hf_x11_xkb_GetKbdByName_reply_KeyNames_which_mask_Compat,
25578  &hf_x11_xkb_GetKbdByName_reply_KeyNames_which_mask_KeyTypeNames,
25579  &hf_x11_xkb_GetKbdByName_reply_KeyNames_which_mask_KTLevelNames,
25580  &hf_x11_xkb_GetKbdByName_reply_KeyNames_which_mask_IndicatorNames,
25581  &hf_x11_xkb_GetKbdByName_reply_KeyNames_which_mask_KeyNames,
25582  &hf_x11_xkb_GetKbdByName_reply_KeyNames_which_mask_KeyAliases,
25583  &hf_x11_xkb_GetKbdByName_reply_KeyNames_which_mask_VirtualModNames,
25584  &hf_x11_xkb_GetKbdByName_reply_KeyNames_which_mask_GroupNames,
25585  &hf_x11_xkb_GetKbdByName_reply_KeyNames_which_mask_RGNames,
25586  NULL
25587  };
25588  proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_xkb_GetKbdByName_reply_KeyNames_which, ett_x11_rectangle, which_bits, byte_order);
25589  }
25590  *offsetp += 4;
25591  proto_tree_add_item(t, hf_x11_xkb_GetKbdByName_reply_KeyNames_keyMinKeyCode, tvb, *offsetp, 1, byte_order);
25592  *offsetp += 1;
25593  proto_tree_add_item(t, hf_x11_xkb_GetKbdByName_reply_KeyNames_keyMaxKeyCode, tvb, *offsetp, 1, byte_order);
25594  *offsetp += 1;
25595  f_nTypes = tvb_get_guint8(tvb, *offsetp);
25596  proto_tree_add_item(t, hf_x11_xkb_GetKbdByName_reply_KeyNames_nTypes, tvb, *offsetp, 1, byte_order);
25597  *offsetp += 1;
25598  f_groupNames = tvb_get_guint8(tvb, *offsetp);
25599  {
25600  const int* groupNames_bits [] = {
25601  &hf_x11_xkb_GetKbdByName_reply_KeyNames_groupNames_mask_Group1,
25602  &hf_x11_xkb_GetKbdByName_reply_KeyNames_groupNames_mask_Group2,
25603  &hf_x11_xkb_GetKbdByName_reply_KeyNames_groupNames_mask_Group3,
25604  &hf_x11_xkb_GetKbdByName_reply_KeyNames_groupNames_mask_Group4,
25605  NULL
25606  };
25607  proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_xkb_GetKbdByName_reply_KeyNames_groupNames, ett_x11_rectangle, groupNames_bits, byte_order);
25608  }
25609  *offsetp += 1;
25610  f_virtualMods = tvb_get_guint16(tvb, *offsetp, byte_order);
25611  {
25612  const int* virtualMods_bits [] = {
25613  &hf_x11_xkb_GetKbdByName_reply_KeyNames_virtualMods_mask_0,
25614  &hf_x11_xkb_GetKbdByName_reply_KeyNames_virtualMods_mask_1,
25615  &hf_x11_xkb_GetKbdByName_reply_KeyNames_virtualMods_mask_2,
25616  &hf_x11_xkb_GetKbdByName_reply_KeyNames_virtualMods_mask_3,
25617  &hf_x11_xkb_GetKbdByName_reply_KeyNames_virtualMods_mask_4,
25618  &hf_x11_xkb_GetKbdByName_reply_KeyNames_virtualMods_mask_5,
25619  &hf_x11_xkb_GetKbdByName_reply_KeyNames_virtualMods_mask_6,
25620  &hf_x11_xkb_GetKbdByName_reply_KeyNames_virtualMods_mask_7,
25621  &hf_x11_xkb_GetKbdByName_reply_KeyNames_virtualMods_mask_8,
25622  &hf_x11_xkb_GetKbdByName_reply_KeyNames_virtualMods_mask_9,
25623  &hf_x11_xkb_GetKbdByName_reply_KeyNames_virtualMods_mask_10,
25624  &hf_x11_xkb_GetKbdByName_reply_KeyNames_virtualMods_mask_11,
25625  &hf_x11_xkb_GetKbdByName_reply_KeyNames_virtualMods_mask_12,
25626  &hf_x11_xkb_GetKbdByName_reply_KeyNames_virtualMods_mask_13,
25627  &hf_x11_xkb_GetKbdByName_reply_KeyNames_virtualMods_mask_14,
25628  &hf_x11_xkb_GetKbdByName_reply_KeyNames_virtualMods_mask_15,
25629  NULL
25630  };
25631  proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_xkb_GetKbdByName_reply_KeyNames_virtualMods, ett_x11_rectangle, virtualMods_bits, byte_order);
25632  }
25633  *offsetp += 2;
25634  proto_tree_add_item(t, hf_x11_xkb_GetKbdByName_reply_KeyNames_firstKey, tvb, *offsetp, 1, byte_order);
25635  *offsetp += 1;
25636  f_nKeys = tvb_get_guint8(tvb, *offsetp);
25637  proto_tree_add_item(t, hf_x11_xkb_GetKbdByName_reply_KeyNames_nKeys, tvb, *offsetp, 1, byte_order);
25638  *offsetp += 1;
25639  f_indicators = tvb_get_guint32(tvb, *offsetp, byte_order);
25640  proto_tree_add_item(t, hf_x11_xkb_GetKbdByName_reply_KeyNames_indicators, tvb, *offsetp, 4, byte_order);
25641  *offsetp += 4;
25642  f_nRadioGroups = tvb_get_guint8(tvb, *offsetp);
25643  proto_tree_add_item(t, hf_x11_xkb_GetKbdByName_reply_KeyNames_nRadioGroups, tvb, *offsetp, 1, byte_order);
25644  *offsetp += 1;
25645  f_nKeyAliases = tvb_get_guint8(tvb, *offsetp);
25646  proto_tree_add_item(t, hf_x11_xkb_GetKbdByName_reply_KeyNames_nKeyAliases, tvb, *offsetp, 1, byte_order);
25647  *offsetp += 1;
25648  proto_tree_add_item(t, hf_x11_xkb_GetKbdByName_reply_KeyNames_nKTLevels, tvb, *offsetp, 2, byte_order);
25649  *offsetp += 2;
25650  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 4, ENC_NA);
25651  *offsetp += 4;
25652  if (f_which & (1U << 0)) {
25653  proto_tree_add_item(t, hf_x11_xkb_GetKbdByName_reply_KeyNames_Keycodes_keycodesName, tvb, *offsetp, 4, byte_order);
25654  *offsetp += 4;
25655  }
25656  if (f_which & (1U << 1)) {
25657  proto_tree_add_item(t, hf_x11_xkb_GetKbdByName_reply_KeyNames_Geometry_geometryName, tvb, *offsetp, 4, byte_order);
25658  *offsetp += 4;
25659  }
25660  if (f_which & (1U << 2)) {
25661  proto_tree_add_item(t, hf_x11_xkb_GetKbdByName_reply_KeyNames_Symbols_symbolsName, tvb, *offsetp, 4, byte_order);
25662  *offsetp += 4;
25663  }
25664  if (f_which & (1U << 3)) {
25665  proto_tree_add_item(t, hf_x11_xkb_GetKbdByName_reply_KeyNames_PhysSymbols_physSymbolsName, tvb, *offsetp, 4, byte_order);
25666  *offsetp += 4;
25667  }
25668  if (f_which & (1U << 4)) {
25669  proto_tree_add_item(t, hf_x11_xkb_GetKbdByName_reply_KeyNames_Types_typesName, tvb, *offsetp, 4, byte_order);
25670  *offsetp += 4;
25671  }
25672  if (f_which & (1U << 5)) {
25673  proto_tree_add_item(t, hf_x11_xkb_GetKbdByName_reply_KeyNames_Compat_compatName, tvb, *offsetp, 4, byte_order);
25674  *offsetp += 4;
25675  }
25676  if (f_which & (1U << 6)) {
25677  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);
25678  }
25679  if (f_which & (1U << 7)) {
25680  int sumof_nLevelsPerType = 0;
25681  {
25682  int i;
25683  for (i = 0; i < f_nTypes; i++) {
25684  sumof_nLevelsPerType += tvb_get_guint8(tvb, *offsetp + i * 1);
25685  }
25686  }
25687  listOfByte(tvb, offsetp, t, hf_x11_xkb_GetKbdByName_reply_KeyNames_KTLevelNames_nLevelsPerType, f_nTypes, byte_order);
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  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);
25693  }
25694  if (f_which & (1U << 8)) {
25695  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);
25696  }
25697  if (f_which & (1U << 11)) {
25698  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);
25699  }
25700  if (f_which & (1U << 12)) {
25701  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);
25702  }
25703  if (f_which & (1U << 9)) {
25704  struct_xkb_KeyName(tvb, offsetp, t, byte_order, f_nKeys);
25705  }
25706  if (f_which & (1U << 10)) {
25707  struct_xkb_KeyAlias(tvb, offsetp, t, byte_order, f_nKeyAliases);
25708  }
25709  if (f_which & (1U << 13)) {
25710  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);
25711  }
25712  }
25713  if (f_reported & (1U << 6)) {
25714  proto_tree_add_item(t, hf_x11_xkb_GetKbdByName_reply_Geometry_geometry_type, tvb, *offsetp, 1, byte_order);
25715  *offsetp += 1;
25716  proto_tree_add_item(t, hf_x11_xkb_GetKbdByName_reply_Geometry_geometryDeviceID, tvb, *offsetp, 1, byte_order);
25717  *offsetp += 1;
25718  proto_tree_add_item(t, hf_x11_xkb_GetKbdByName_reply_Geometry_geometry_sequence, tvb, *offsetp, 2, byte_order);
25719  *offsetp += 2;
25720  proto_tree_add_item(t, hf_x11_xkb_GetKbdByName_reply_Geometry_geometry_length, tvb, *offsetp, 4, byte_order);
25721  *offsetp += 4;
25722  proto_tree_add_item(t, hf_x11_xkb_GetKbdByName_reply_Geometry_name, tvb, *offsetp, 4, byte_order);
25723  *offsetp += 4;
25724  proto_tree_add_item(t, hf_x11_xkb_GetKbdByName_reply_Geometry_geometryFound, tvb, *offsetp, 1, byte_order);
25725  *offsetp += 1;
25726  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
25727  *offsetp += 1;
25728  proto_tree_add_item(t, hf_x11_xkb_GetKbdByName_reply_Geometry_widthMM, tvb, *offsetp, 2, byte_order);
25729  *offsetp += 2;
25730  proto_tree_add_item(t, hf_x11_xkb_GetKbdByName_reply_Geometry_heightMM, tvb, *offsetp, 2, byte_order);
25731  *offsetp += 2;
25732  proto_tree_add_item(t, hf_x11_xkb_GetKbdByName_reply_Geometry_nProperties, tvb, *offsetp, 2, byte_order);
25733  *offsetp += 2;
25734  proto_tree_add_item(t, hf_x11_xkb_GetKbdByName_reply_Geometry_nColors, tvb, *offsetp, 2, byte_order);
25735  *offsetp += 2;
25736  proto_tree_add_item(t, hf_x11_xkb_GetKbdByName_reply_Geometry_nShapes, tvb, *offsetp, 2, byte_order);
25737  *offsetp += 2;
25738  proto_tree_add_item(t, hf_x11_xkb_GetKbdByName_reply_Geometry_nSections, tvb, *offsetp, 2, byte_order);
25739  *offsetp += 2;
25740  proto_tree_add_item(t, hf_x11_xkb_GetKbdByName_reply_Geometry_nDoodads, tvb, *offsetp, 2, byte_order);
25741  *offsetp += 2;
25742  proto_tree_add_item(t, hf_x11_xkb_GetKbdByName_reply_Geometry_nKeyAliases, tvb, *offsetp, 2, byte_order);
25743  *offsetp += 2;
25744  proto_tree_add_item(t, hf_x11_xkb_GetKbdByName_reply_Geometry_baseColorNdx, tvb, *offsetp, 1, byte_order);
25745  *offsetp += 1;
25746  proto_tree_add_item(t, hf_x11_xkb_GetKbdByName_reply_Geometry_labelColorNdx, tvb, *offsetp, 1, byte_order);
25747  *offsetp += 1;
25748  struct_xkb_CountedString16(tvb, offsetp, t, byte_order, 1);
25749  }
25750 }
25751 
25752 static void xkbGetDeviceInfo(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
25753 {
25754  proto_tree_add_item(t, hf_x11_xkb_GetDeviceInfo_deviceSpec, tvb, *offsetp, 2, byte_order);
25755  *offsetp += 2;
25756  {
25757  const int* wanted_bits [] = {
25758  &hf_x11_xkb_GetDeviceInfo_wanted_mask_Keyboards,
25759  &hf_x11_xkb_GetDeviceInfo_wanted_mask_ButtonActions,
25760  &hf_x11_xkb_GetDeviceInfo_wanted_mask_IndicatorNames,
25761  &hf_x11_xkb_GetDeviceInfo_wanted_mask_IndicatorMaps,
25762  &hf_x11_xkb_GetDeviceInfo_wanted_mask_IndicatorState,
25763  NULL
25764  };
25765  proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_xkb_GetDeviceInfo_wanted, ett_x11_rectangle, wanted_bits, byte_order);
25766  }
25767  *offsetp += 2;
25768  proto_tree_add_item(t, hf_x11_xkb_GetDeviceInfo_allButtons, tvb, *offsetp, 1, byte_order);
25769  *offsetp += 1;
25770  proto_tree_add_item(t, hf_x11_xkb_GetDeviceInfo_firstButton, tvb, *offsetp, 1, byte_order);
25771  *offsetp += 1;
25772  proto_tree_add_item(t, hf_x11_xkb_GetDeviceInfo_nButtons, tvb, *offsetp, 1, byte_order);
25773  *offsetp += 1;
25774  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
25775  *offsetp += 1;
25776  field16(tvb, offsetp, t, hf_x11_xkb_GetDeviceInfo_ledClass, byte_order);
25777  field16(tvb, offsetp, t, hf_x11_xkb_GetDeviceInfo_ledID, byte_order);
25778 }
25779 static void xkbGetDeviceInfo_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
25780 {
25781  int sequence_number;
25782  int f_nDeviceLedFBs;
25783  int f_nBtnsRtrn;
25784  int f_nameLen;
25785 
25786  col_append_fstr(pinfo->cinfo, COL_INFO, "-GetDeviceInfo");
25787 
25788  REPLY(reply);
25789  proto_tree_add_item(t, hf_x11_xkb_GetDeviceInfo_reply_deviceID, tvb, *offsetp, 1, byte_order);
25790  *offsetp += 1;
25791  sequence_number = tvb_get_guint16(tvb, *offsetp, byte_order);
25792  proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
25793  "%d (xkb-GetDeviceInfo)", sequence_number);
25794  *offsetp += 2;
25795  proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
25796  *offsetp += 4;
25797  {
25798  const int* present_bits [] = {
25799  &hf_x11_xkb_GetDeviceInfo_reply_present_mask_Keyboards,
25800  &hf_x11_xkb_GetDeviceInfo_reply_present_mask_ButtonActions,
25801  &hf_x11_xkb_GetDeviceInfo_reply_present_mask_IndicatorNames,
25802  &hf_x11_xkb_GetDeviceInfo_reply_present_mask_IndicatorMaps,
25803  &hf_x11_xkb_GetDeviceInfo_reply_present_mask_IndicatorState,
25804  NULL
25805  };
25806  proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_xkb_GetDeviceInfo_reply_present, ett_x11_rectangle, present_bits, byte_order);
25807  }
25808  *offsetp += 2;
25809  {
25810  const int* supported_bits [] = {
25811  &hf_x11_xkb_GetDeviceInfo_reply_supported_mask_Keyboards,
25812  &hf_x11_xkb_GetDeviceInfo_reply_supported_mask_ButtonActions,
25813  &hf_x11_xkb_GetDeviceInfo_reply_supported_mask_IndicatorNames,
25814  &hf_x11_xkb_GetDeviceInfo_reply_supported_mask_IndicatorMaps,
25815  &hf_x11_xkb_GetDeviceInfo_reply_supported_mask_IndicatorState,
25816  NULL
25817  };
25818  proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_xkb_GetDeviceInfo_reply_supported, ett_x11_rectangle, supported_bits, byte_order);
25819  }
25820  *offsetp += 2;
25821  {
25822  const int* unsupported_bits [] = {
25823  &hf_x11_xkb_GetDeviceInfo_reply_unsupported_mask_Keyboards,
25824  &hf_x11_xkb_GetDeviceInfo_reply_unsupported_mask_ButtonActions,
25825  &hf_x11_xkb_GetDeviceInfo_reply_unsupported_mask_IndicatorNames,
25826  &hf_x11_xkb_GetDeviceInfo_reply_unsupported_mask_IndicatorMaps,
25827  &hf_x11_xkb_GetDeviceInfo_reply_unsupported_mask_IndicatorState,
25828  NULL
25829  };
25830  proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_xkb_GetDeviceInfo_reply_unsupported, ett_x11_rectangle, unsupported_bits, byte_order);
25831  }
25832  *offsetp += 2;
25833  f_nDeviceLedFBs = tvb_get_guint16(tvb, *offsetp, byte_order);
25834  proto_tree_add_item(t, hf_x11_xkb_GetDeviceInfo_reply_nDeviceLedFBs, tvb, *offsetp, 2, byte_order);
25835  *offsetp += 2;
25836  proto_tree_add_item(t, hf_x11_xkb_GetDeviceInfo_reply_firstBtnWanted, tvb, *offsetp, 1, byte_order);
25837  *offsetp += 1;
25838  proto_tree_add_item(t, hf_x11_xkb_GetDeviceInfo_reply_nBtnsWanted, tvb, *offsetp, 1, byte_order);
25839  *offsetp += 1;
25840  proto_tree_add_item(t, hf_x11_xkb_GetDeviceInfo_reply_firstBtnRtrn, tvb, *offsetp, 1, byte_order);
25841  *offsetp += 1;
25842  f_nBtnsRtrn = tvb_get_guint8(tvb, *offsetp);
25843  proto_tree_add_item(t, hf_x11_xkb_GetDeviceInfo_reply_nBtnsRtrn, tvb, *offsetp, 1, byte_order);
25844  *offsetp += 1;
25845  proto_tree_add_item(t, hf_x11_xkb_GetDeviceInfo_reply_totalBtns, tvb, *offsetp, 1, byte_order);
25846  *offsetp += 1;
25847  proto_tree_add_item(t, hf_x11_xkb_GetDeviceInfo_reply_hasOwnState, tvb, *offsetp, 1, byte_order);
25848  *offsetp += 1;
25849  field16(tvb, offsetp, t, hf_x11_xkb_GetDeviceInfo_reply_dfltKbdFB, byte_order);
25850  field16(tvb, offsetp, t, hf_x11_xkb_GetDeviceInfo_reply_dfltLedFB, byte_order);
25851  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 2, ENC_NA);
25852  *offsetp += 2;
25853  proto_tree_add_item(t, hf_x11_xkb_GetDeviceInfo_reply_devType, tvb, *offsetp, 4, byte_order);
25854  *offsetp += 4;
25855  f_nameLen = tvb_get_guint16(tvb, *offsetp, byte_order);
25856  proto_tree_add_item(t, hf_x11_xkb_GetDeviceInfo_reply_nameLen, tvb, *offsetp, 2, byte_order);
25857  *offsetp += 2;
25858  listOfByte(tvb, offsetp, t, hf_x11_xkb_GetDeviceInfo_reply_name, f_nameLen, byte_order);
25859  if (*offsetp % 4) {
25860  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, (4 - *offsetp % 4), ENC_NA);
25861  *offsetp += (4 - *offsetp % 4);
25862  }
25863  struct_xkb_Action(tvb, offsetp, t, byte_order, f_nBtnsRtrn);
25864  struct_xkb_DeviceLedInfo(tvb, offsetp, t, byte_order, f_nDeviceLedFBs);
25865 }
25866 
25867 static void xkbSetDeviceInfo(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
25868 {
25869  int f_nBtns;
25870  int f_nDeviceLedFBs;
25871  proto_tree_add_item(t, hf_x11_xkb_SetDeviceInfo_deviceSpec, tvb, *offsetp, 2, byte_order);
25872  *offsetp += 2;
25873  proto_tree_add_item(t, hf_x11_xkb_SetDeviceInfo_firstBtn, tvb, *offsetp, 1, byte_order);
25874  *offsetp += 1;
25875  f_nBtns = tvb_get_guint8(tvb, *offsetp);
25876  proto_tree_add_item(t, hf_x11_xkb_SetDeviceInfo_nBtns, tvb, *offsetp, 1, byte_order);
25877  *offsetp += 1;
25878  {
25879  const int* change_bits [] = {
25880  &hf_x11_xkb_SetDeviceInfo_change_mask_Keyboards,
25881  &hf_x11_xkb_SetDeviceInfo_change_mask_ButtonActions,
25882  &hf_x11_xkb_SetDeviceInfo_change_mask_IndicatorNames,
25883  &hf_x11_xkb_SetDeviceInfo_change_mask_IndicatorMaps,
25884  &hf_x11_xkb_SetDeviceInfo_change_mask_IndicatorState,
25885  NULL
25886  };
25887  proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_xkb_SetDeviceInfo_change, ett_x11_rectangle, change_bits, byte_order);
25888  }
25889  *offsetp += 2;
25890  f_nDeviceLedFBs = tvb_get_guint16(tvb, *offsetp, byte_order);
25891  proto_tree_add_item(t, hf_x11_xkb_SetDeviceInfo_nDeviceLedFBs, tvb, *offsetp, 2, byte_order);
25892  *offsetp += 2;
25893  struct_xkb_Action(tvb, offsetp, t, byte_order, f_nBtns);
25894  length -= f_nBtns * 8;
25895  struct_xkb_DeviceLedInfo(tvb, offsetp, t, byte_order, f_nDeviceLedFBs);
25896  length -= f_nDeviceLedFBs * 0;
25897 }
25898 
25899 static void xkbSetDebuggingFlags(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
25900 {
25901  int f_msgLength;
25902  f_msgLength = tvb_get_guint16(tvb, *offsetp, byte_order);
25903  proto_tree_add_item(t, hf_x11_xkb_SetDebuggingFlags_msgLength, tvb, *offsetp, 2, byte_order);
25904  *offsetp += 2;
25905  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 2, ENC_NA);
25906  *offsetp += 2;
25907  proto_tree_add_item(t, hf_x11_xkb_SetDebuggingFlags_affectFlags, tvb, *offsetp, 4, byte_order);
25908  *offsetp += 4;
25909  proto_tree_add_item(t, hf_x11_xkb_SetDebuggingFlags_flags, tvb, *offsetp, 4, byte_order);
25910  *offsetp += 4;
25911  proto_tree_add_item(t, hf_x11_xkb_SetDebuggingFlags_affectCtrls, tvb, *offsetp, 4, byte_order);
25912  *offsetp += 4;
25913  proto_tree_add_item(t, hf_x11_xkb_SetDebuggingFlags_ctrls, tvb, *offsetp, 4, byte_order);
25914  *offsetp += 4;
25915  listOfByte(tvb, offsetp, t, hf_x11_xkb_SetDebuggingFlags_message, f_msgLength, byte_order);
25916  length -= f_msgLength * 1;
25917 }
25918 static void xkbSetDebuggingFlags_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
25919 {
25920  int sequence_number;
25921 
25922  col_append_fstr(pinfo->cinfo, COL_INFO, "-SetDebuggingFlags");
25923 
25924  REPLY(reply);
25925  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
25926  *offsetp += 1;
25927  sequence_number = tvb_get_guint16(tvb, *offsetp, byte_order);
25928  proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
25929  "%d (xkb-SetDebuggingFlags)", sequence_number);
25930  *offsetp += 2;
25931  proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
25932  *offsetp += 4;
25933  proto_tree_add_item(t, hf_x11_xkb_SetDebuggingFlags_reply_currentFlags, tvb, *offsetp, 4, byte_order);
25934  *offsetp += 4;
25935  proto_tree_add_item(t, hf_x11_xkb_SetDebuggingFlags_reply_currentCtrls, tvb, *offsetp, 4, byte_order);
25936  *offsetp += 4;
25937  proto_tree_add_item(t, hf_x11_xkb_SetDebuggingFlags_reply_supportedFlags, tvb, *offsetp, 4, byte_order);
25938  *offsetp += 4;
25939  proto_tree_add_item(t, hf_x11_xkb_SetDebuggingFlags_reply_supportedCtrls, tvb, *offsetp, 4, byte_order);
25940  *offsetp += 4;
25941  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 8, ENC_NA);
25942  *offsetp += 8;
25943 }
25944 
25945 static void xkbMapNotify(tvbuff_t *tvb, int *offsetp, proto_tree *t, guint byte_order)
25946 {
25947  proto_tree_add_item(t, hf_x11_xkb_MapNotify_xkbType, tvb, *offsetp, 1, byte_order);
25948  *offsetp += 1;
25949  CARD16(event_sequencenumber);
25950  proto_tree_add_item(t, hf_x11_xkb_MapNotify_time, tvb, *offsetp, 4, byte_order);
25951  *offsetp += 4;
25952  proto_tree_add_item(t, hf_x11_xkb_MapNotify_deviceID, tvb, *offsetp, 1, byte_order);
25953  *offsetp += 1;
25954  proto_tree_add_item(t, hf_x11_xkb_MapNotify_ptrBtnActions, tvb, *offsetp, 1, byte_order);
25955  *offsetp += 1;
25956  {
25957  const int* changed_bits [] = {
25958  &hf_x11_xkb_MapNotify_changed_mask_KeyTypes,
25959  &hf_x11_xkb_MapNotify_changed_mask_KeySyms,
25960  &hf_x11_xkb_MapNotify_changed_mask_ModifierMap,
25961  &hf_x11_xkb_MapNotify_changed_mask_ExplicitComponents,
25962  &hf_x11_xkb_MapNotify_changed_mask_KeyActions,
25963  &hf_x11_xkb_MapNotify_changed_mask_KeyBehaviors,
25964  &hf_x11_xkb_MapNotify_changed_mask_VirtualMods,
25965  &hf_x11_xkb_MapNotify_changed_mask_VirtualModMap,
25966  NULL
25967  };
25968  proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_xkb_MapNotify_changed, ett_x11_rectangle, changed_bits, byte_order);
25969  }
25970  *offsetp += 2;
25971  proto_tree_add_item(t, hf_x11_xkb_MapNotify_minKeyCode, tvb, *offsetp, 1, byte_order);
25972  *offsetp += 1;
25973  proto_tree_add_item(t, hf_x11_xkb_MapNotify_maxKeyCode, tvb, *offsetp, 1, byte_order);
25974  *offsetp += 1;
25975  proto_tree_add_item(t, hf_x11_xkb_MapNotify_firstType, tvb, *offsetp, 1, byte_order);
25976  *offsetp += 1;
25977  proto_tree_add_item(t, hf_x11_xkb_MapNotify_nTypes, tvb, *offsetp, 1, byte_order);
25978  *offsetp += 1;
25979  proto_tree_add_item(t, hf_x11_xkb_MapNotify_firstKeySym, tvb, *offsetp, 1, byte_order);
25980  *offsetp += 1;
25981  proto_tree_add_item(t, hf_x11_xkb_MapNotify_nKeySyms, tvb, *offsetp, 1, byte_order);
25982  *offsetp += 1;
25983  proto_tree_add_item(t, hf_x11_xkb_MapNotify_firstKeyAct, tvb, *offsetp, 1, byte_order);
25984  *offsetp += 1;
25985  proto_tree_add_item(t, hf_x11_xkb_MapNotify_nKeyActs, tvb, *offsetp, 1, byte_order);
25986  *offsetp += 1;
25987  proto_tree_add_item(t, hf_x11_xkb_MapNotify_firstKeyBehavior, tvb, *offsetp, 1, byte_order);
25988  *offsetp += 1;
25989  proto_tree_add_item(t, hf_x11_xkb_MapNotify_nKeyBehavior, tvb, *offsetp, 1, byte_order);
25990  *offsetp += 1;
25991  proto_tree_add_item(t, hf_x11_xkb_MapNotify_firstKeyExplicit, tvb, *offsetp, 1, byte_order);
25992  *offsetp += 1;
25993  proto_tree_add_item(t, hf_x11_xkb_MapNotify_nKeyExplicit, tvb, *offsetp, 1, byte_order);
25994  *offsetp += 1;
25995  proto_tree_add_item(t, hf_x11_xkb_MapNotify_firstModMapKey, tvb, *offsetp, 1, byte_order);
25996  *offsetp += 1;
25997  proto_tree_add_item(t, hf_x11_xkb_MapNotify_nModMapKeys, tvb, *offsetp, 1, byte_order);
25998  *offsetp += 1;
25999  proto_tree_add_item(t, hf_x11_xkb_MapNotify_firstVModMapKey, tvb, *offsetp, 1, byte_order);
26000  *offsetp += 1;
26001  proto_tree_add_item(t, hf_x11_xkb_MapNotify_nVModMapKeys, tvb, *offsetp, 1, byte_order);
26002  *offsetp += 1;
26003  {
26004  const int* virtualMods_bits [] = {
26005  &hf_x11_xkb_MapNotify_virtualMods_mask_0,
26006  &hf_x11_xkb_MapNotify_virtualMods_mask_1,
26007  &hf_x11_xkb_MapNotify_virtualMods_mask_2,
26008  &hf_x11_xkb_MapNotify_virtualMods_mask_3,
26009  &hf_x11_xkb_MapNotify_virtualMods_mask_4,
26010  &hf_x11_xkb_MapNotify_virtualMods_mask_5,
26011  &hf_x11_xkb_MapNotify_virtualMods_mask_6,
26012  &hf_x11_xkb_MapNotify_virtualMods_mask_7,
26013  &hf_x11_xkb_MapNotify_virtualMods_mask_8,
26014  &hf_x11_xkb_MapNotify_virtualMods_mask_9,
26015  &hf_x11_xkb_MapNotify_virtualMods_mask_10,
26016  &hf_x11_xkb_MapNotify_virtualMods_mask_11,
26017  &hf_x11_xkb_MapNotify_virtualMods_mask_12,
26018  &hf_x11_xkb_MapNotify_virtualMods_mask_13,
26019  &hf_x11_xkb_MapNotify_virtualMods_mask_14,
26020  &hf_x11_xkb_MapNotify_virtualMods_mask_15,
26021  NULL
26022  };
26023  proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_xkb_MapNotify_virtualMods, ett_x11_rectangle, virtualMods_bits, byte_order);
26024  }
26025  *offsetp += 2;
26026  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 2, ENC_NA);
26027  *offsetp += 2;
26028 }
26029 
26030 
26031 static void xkbStateNotify(tvbuff_t *tvb, int *offsetp, proto_tree *t, guint byte_order)
26032 {
26033  proto_tree_add_item(t, hf_x11_xkb_StateNotify_xkbType, tvb, *offsetp, 1, byte_order);
26034  *offsetp += 1;
26035  CARD16(event_sequencenumber);
26036  proto_tree_add_item(t, hf_x11_xkb_StateNotify_time, tvb, *offsetp, 4, byte_order);
26037  *offsetp += 4;
26038  proto_tree_add_item(t, hf_x11_xkb_StateNotify_deviceID, tvb, *offsetp, 1, byte_order);
26039  *offsetp += 1;
26040  {
26041  const int* mods_bits [] = {
26042  &hf_x11_xkb_StateNotify_mods_mask_Shift,
26043  &hf_x11_xkb_StateNotify_mods_mask_Lock,
26044  &hf_x11_xkb_StateNotify_mods_mask_Control,
26045  &hf_x11_xkb_StateNotify_mods_mask_1,
26046  &hf_x11_xkb_StateNotify_mods_mask_2,
26047  &hf_x11_xkb_StateNotify_mods_mask_3,
26048  &hf_x11_xkb_StateNotify_mods_mask_4,
26049  &hf_x11_xkb_StateNotify_mods_mask_5,
26050  &hf_x11_xkb_StateNotify_mods_mask_Any,
26051  NULL
26052  };
26053  proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_xkb_StateNotify_mods, ett_x11_rectangle, mods_bits, byte_order);
26054  }
26055  *offsetp += 1;
26056  {
26057  const int* baseMods_bits [] = {
26058  &hf_x11_xkb_StateNotify_baseMods_mask_Shift,
26059  &hf_x11_xkb_StateNotify_baseMods_mask_Lock,
26060  &hf_x11_xkb_StateNotify_baseMods_mask_Control,
26061  &hf_x11_xkb_StateNotify_baseMods_mask_1,
26062  &hf_x11_xkb_StateNotify_baseMods_mask_2,
26063  &hf_x11_xkb_StateNotify_baseMods_mask_3,
26064  &hf_x11_xkb_StateNotify_baseMods_mask_4,
26065  &hf_x11_xkb_StateNotify_baseMods_mask_5,
26066  &hf_x11_xkb_StateNotify_baseMods_mask_Any,
26067  NULL
26068  };
26069  proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_xkb_StateNotify_baseMods, ett_x11_rectangle, baseMods_bits, byte_order);
26070  }
26071  *offsetp += 1;
26072  {
26073  const int* latchedMods_bits [] = {
26074  &hf_x11_xkb_StateNotify_latchedMods_mask_Shift,
26075  &hf_x11_xkb_StateNotify_latchedMods_mask_Lock,
26076  &hf_x11_xkb_StateNotify_latchedMods_mask_Control,
26077  &hf_x11_xkb_StateNotify_latchedMods_mask_1,
26078  &hf_x11_xkb_StateNotify_latchedMods_mask_2,
26079  &hf_x11_xkb_StateNotify_latchedMods_mask_3,
26080  &hf_x11_xkb_StateNotify_latchedMods_mask_4,
26081  &hf_x11_xkb_StateNotify_latchedMods_mask_5,
26082  &hf_x11_xkb_StateNotify_latchedMods_mask_Any,
26083  NULL
26084  };
26085  proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_xkb_StateNotify_latchedMods, ett_x11_rectangle, latchedMods_bits, byte_order);
26086  }
26087  *offsetp += 1;
26088  {
26089  const int* lockedMods_bits [] = {
26090  &hf_x11_xkb_StateNotify_lockedMods_mask_Shift,
26091  &hf_x11_xkb_StateNotify_lockedMods_mask_Lock,
26092  &hf_x11_xkb_StateNotify_lockedMods_mask_Control,
26093  &hf_x11_xkb_StateNotify_lockedMods_mask_1,
26094  &hf_x11_xkb_StateNotify_lockedMods_mask_2,
26095  &hf_x11_xkb_StateNotify_lockedMods_mask_3,
26096  &hf_x11_xkb_StateNotify_lockedMods_mask_4,
26097  &hf_x11_xkb_StateNotify_lockedMods_mask_5,
26098  &hf_x11_xkb_StateNotify_lockedMods_mask_Any,
26099  NULL
26100  };
26101  proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_xkb_StateNotify_lockedMods, ett_x11_rectangle, lockedMods_bits, byte_order);
26102  }
26103  *offsetp += 1;
26104  field8(tvb, offsetp, t, hf_x11_xkb_StateNotify_group, byte_order);
26105  proto_tree_add_item(t, hf_x11_xkb_StateNotify_baseGroup, tvb, *offsetp, 2, byte_order);
26106  *offsetp += 2;
26107  proto_tree_add_item(t, hf_x11_xkb_StateNotify_latchedGroup, tvb, *offsetp, 2, byte_order);
26108  *offsetp += 2;
26109  field8(tvb, offsetp, t, hf_x11_xkb_StateNotify_lockedGroup, byte_order);
26110  {
26111  const int* compatState_bits [] = {
26112  &hf_x11_xkb_StateNotify_compatState_mask_Shift,
26113  &hf_x11_xkb_StateNotify_compatState_mask_Lock,
26114  &hf_x11_xkb_StateNotify_compatState_mask_Control,
26115  &hf_x11_xkb_StateNotify_compatState_mask_1,
26116  &hf_x11_xkb_StateNotify_compatState_mask_2,
26117  &hf_x11_xkb_StateNotify_compatState_mask_3,
26118  &hf_x11_xkb_StateNotify_compatState_mask_4,
26119  &hf_x11_xkb_StateNotify_compatState_mask_5,
26120  &hf_x11_xkb_StateNotify_compatState_mask_Any,
26121  NULL
26122  };
26123  proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_xkb_StateNotify_compatState, ett_x11_rectangle, compatState_bits, byte_order);
26124  }
26125  *offsetp += 1;
26126  {
26127  const int* grabMods_bits [] = {
26128  &hf_x11_xkb_StateNotify_grabMods_mask_Shift,
26129  &hf_x11_xkb_StateNotify_grabMods_mask_Lock,
26130  &hf_x11_xkb_StateNotify_grabMods_mask_Control,
26131  &hf_x11_xkb_StateNotify_grabMods_mask_1,
26132  &hf_x11_xkb_StateNotify_grabMods_mask_2,
26133  &hf_x11_xkb_StateNotify_grabMods_mask_3,
26134  &hf_x11_xkb_StateNotify_grabMods_mask_4,
26135  &hf_x11_xkb_StateNotify_grabMods_mask_5,
26136  &hf_x11_xkb_StateNotify_grabMods_mask_Any,
26137  NULL
26138  };
26139  proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_xkb_StateNotify_grabMods, ett_x11_rectangle, grabMods_bits, byte_order);
26140  }
26141  *offsetp += 1;
26142  {
26143  const int* compatGrabMods_bits [] = {
26144  &hf_x11_xkb_StateNotify_compatGrabMods_mask_Shift,
26145  &hf_x11_xkb_StateNotify_compatGrabMods_mask_Lock,
26146  &hf_x11_xkb_StateNotify_compatGrabMods_mask_Control,
26147  &hf_x11_xkb_StateNotify_compatGrabMods_mask_1,
26148  &hf_x11_xkb_StateNotify_compatGrabMods_mask_2,
26149  &hf_x11_xkb_StateNotify_compatGrabMods_mask_3,
26150  &hf_x11_xkb_StateNotify_compatGrabMods_mask_4,
26151  &hf_x11_xkb_StateNotify_compatGrabMods_mask_5,
26152  &hf_x11_xkb_StateNotify_compatGrabMods_mask_Any,
26153  NULL
26154  };
26155  proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_xkb_StateNotify_compatGrabMods, ett_x11_rectangle, compatGrabMods_bits, byte_order);
26156  }
26157  *offsetp += 1;
26158  {
26159  const int* lookupMods_bits [] = {
26160  &hf_x11_xkb_StateNotify_lookupMods_mask_Shift,
26161  &hf_x11_xkb_StateNotify_lookupMods_mask_Lock,
26162  &hf_x11_xkb_StateNotify_lookupMods_mask_Control,
26163  &hf_x11_xkb_StateNotify_lookupMods_mask_1,
26164  &hf_x11_xkb_StateNotify_lookupMods_mask_2,
26165  &hf_x11_xkb_StateNotify_lookupMods_mask_3,
26166  &hf_x11_xkb_StateNotify_lookupMods_mask_4,
26167  &hf_x11_xkb_StateNotify_lookupMods_mask_5,
26168  &hf_x11_xkb_StateNotify_lookupMods_mask_Any,
26169  NULL
26170  };
26171  proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_xkb_StateNotify_lookupMods, ett_x11_rectangle, lookupMods_bits, byte_order);
26172  }
26173  *offsetp += 1;
26174  {
26175  const int* compatLoockupMods_bits [] = {
26176  &hf_x11_xkb_StateNotify_compatLoockupMods_mask_Shift,
26177  &hf_x11_xkb_StateNotify_compatLoockupMods_mask_Lock,
26178  &hf_x11_xkb_StateNotify_compatLoockupMods_mask_Control,
26179  &hf_x11_xkb_StateNotify_compatLoockupMods_mask_1,
26180  &hf_x11_xkb_StateNotify_compatLoockupMods_mask_2,
26181  &hf_x11_xkb_StateNotify_compatLoockupMods_mask_3,
26182  &hf_x11_xkb_StateNotify_compatLoockupMods_mask_4,
26183  &hf_x11_xkb_StateNotify_compatLoockupMods_mask_5,
26184  &hf_x11_xkb_StateNotify_compatLoockupMods_mask_Any,
26185  NULL
26186  };
26187  proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_xkb_StateNotify_compatLoockupMods, ett_x11_rectangle, compatLoockupMods_bits, byte_order);
26188  }
26189  *offsetp += 1;
26190  {
26191  const int* ptrBtnState_bits [] = {
26192  &hf_x11_xkb_StateNotify_ptrBtnState_mask_Shift,
26193  &hf_x11_xkb_StateNotify_ptrBtnState_mask_Lock,
26194  &hf_x11_xkb_StateNotify_ptrBtnState_mask_Control,
26195  &hf_x11_xkb_StateNotify_ptrBtnState_mask_Mod1,
26196  &hf_x11_xkb_StateNotify_ptrBtnState_mask_Mod2,
26197  &hf_x11_xkb_StateNotify_ptrBtnState_mask_Mod3,
26198  &hf_x11_xkb_StateNotify_ptrBtnState_mask_Mod4,
26199  &hf_x11_xkb_StateNotify_ptrBtnState_mask_Mod5,
26200  &hf_x11_xkb_StateNotify_ptrBtnState_mask_Button1,
26201  &hf_x11_xkb_StateNotify_ptrBtnState_mask_Button2,
26202  &hf_x11_xkb_StateNotify_ptrBtnState_mask_Button3,
26203  &hf_x11_xkb_StateNotify_ptrBtnState_mask_Button4,
26204  &hf_x11_xkb_StateNotify_ptrBtnState_mask_Button5,
26205  NULL
26206  };
26207  proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_xkb_StateNotify_ptrBtnState, ett_x11_rectangle, ptrBtnState_bits, byte_order);
26208  }
26209  *offsetp += 2;
26210  {
26211  const int* changed_bits [] = {
26212  &hf_x11_xkb_StateNotify_changed_mask_ModifierState,
26213  &hf_x11_xkb_StateNotify_changed_mask_ModifierBase,
26214  &hf_x11_xkb_StateNotify_changed_mask_ModifierLatch,
26215  &hf_x11_xkb_StateNotify_changed_mask_ModifierLock,
26216  &hf_x11_xkb_StateNotify_changed_mask_GroupState,
26217  &hf_x11_xkb_StateNotify_changed_mask_GroupBase,
26218  &hf_x11_xkb_StateNotify_changed_mask_GroupLatch,
26219  &hf_x11_xkb_StateNotify_changed_mask_GroupLock,
26220  &hf_x11_xkb_StateNotify_changed_mask_CompatState,
26221  &hf_x11_xkb_StateNotify_changed_mask_GrabMods,
26222  &hf_x11_xkb_StateNotify_changed_mask_CompatGrabMods,
26223  &hf_x11_xkb_StateNotify_changed_mask_LookupMods,
26224  &hf_x11_xkb_StateNotify_changed_mask_CompatLookupMods,
26225  &hf_x11_xkb_StateNotify_changed_mask_PointerButtons,
26226  NULL
26227  };
26228  proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_xkb_StateNotify_changed, ett_x11_rectangle, changed_bits, byte_order);
26229  }
26230  *offsetp += 2;
26231  proto_tree_add_item(t, hf_x11_xkb_StateNotify_keycode, tvb, *offsetp, 1, byte_order);
26232  *offsetp += 1;
26233  proto_tree_add_item(t, hf_x11_xkb_StateNotify_eventType, tvb, *offsetp, 1, byte_order);
26234  *offsetp += 1;
26235  proto_tree_add_item(t, hf_x11_xkb_StateNotify_requestMajor, tvb, *offsetp, 1, byte_order);
26236  *offsetp += 1;
26237  proto_tree_add_item(t, hf_x11_xkb_StateNotify_requestMinor, tvb, *offsetp, 1, byte_order);
26238  *offsetp += 1;
26239 }
26240 
26241 
26242 static void xkbControlsNotify(tvbuff_t *tvb, int *offsetp, proto_tree *t, guint byte_order)
26243 {
26244  proto_tree_add_item(t, hf_x11_xkb_ControlsNotify_xkbType, tvb, *offsetp, 1, byte_order);
26245  *offsetp += 1;
26246  CARD16(event_sequencenumber);
26247  proto_tree_add_item(t, hf_x11_xkb_ControlsNotify_time, tvb, *offsetp, 4, byte_order);
26248  *offsetp += 4;
26249  proto_tree_add_item(t, hf_x11_xkb_ControlsNotify_deviceID, tvb, *offsetp, 1, byte_order);
26250  *offsetp += 1;
26251  proto_tree_add_item(t, hf_x11_xkb_ControlsNotify_numGroups, tvb, *offsetp, 1, byte_order);
26252  *offsetp += 1;
26253  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 2, ENC_NA);
26254  *offsetp += 2;
26255  {
26256  const int* changedControls_bits [] = {
26257  &hf_x11_xkb_ControlsNotify_changedControls_mask_GroupsWrap,
26258  &hf_x11_xkb_ControlsNotify_changedControls_mask_InternalMods,
26259  &hf_x11_xkb_ControlsNotify_changedControls_mask_IgnoreLockMods,
26260  &hf_x11_xkb_ControlsNotify_changedControls_mask_PerKeyRepeat,
26261  &hf_x11_xkb_ControlsNotify_changedControls_mask_ControlsEnabled,
26262  NULL
26263  };
26264  proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_xkb_ControlsNotify_changedControls, ett_x11_rectangle, changedControls_bits, byte_order);
26265  }
26266  *offsetp += 4;
26267  {
26268  const int* enabledControls_bits [] = {
26269  &hf_x11_xkb_ControlsNotify_enabledControls_mask_RepeatKeys,
26270  &hf_x11_xkb_ControlsNotify_enabledControls_mask_SlowKeys,
26271  &hf_x11_xkb_ControlsNotify_enabledControls_mask_BounceKeys,
26272  &hf_x11_xkb_ControlsNotify_enabledControls_mask_StickyKeys,
26273  &hf_x11_xkb_ControlsNotify_enabledControls_mask_MouseKeys,
26274  &hf_x11_xkb_ControlsNotify_enabledControls_mask_MouseKeysAccel,
26275  &hf_x11_xkb_ControlsNotify_enabledControls_mask_AccessXKeys,
26276  &hf_x11_xkb_ControlsNotify_enabledControls_mask_AccessXTimeoutMask,
26277  &hf_x11_xkb_ControlsNotify_enabledControls_mask_AccessXFeedbackMask,
26278  &hf_x11_xkb_ControlsNotify_enabledControls_mask_AudibleBellMask,
26279  &hf_x11_xkb_ControlsNotify_enabledControls_mask_Overlay1Mask,
26280  &hf_x11_xkb_ControlsNotify_enabledControls_mask_Overlay2Mask,
26281  &hf_x11_xkb_ControlsNotify_enabledControls_mask_IgnoreGroupLockMask,
26282  NULL
26283  };
26284  proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_xkb_ControlsNotify_enabledControls, ett_x11_rectangle, enabledControls_bits, byte_order);
26285  }
26286  *offsetp += 4;
26287  {
26288  const int* enabledControlChanges_bits [] = {
26289  &hf_x11_xkb_ControlsNotify_enabledControlChanges_mask_RepeatKeys,
26290  &hf_x11_xkb_ControlsNotify_enabledControlChanges_mask_SlowKeys,
26291  &hf_x11_xkb_ControlsNotify_enabledControlChanges_mask_BounceKeys,
26292  &hf_x11_xkb_ControlsNotify_enabledControlChanges_mask_StickyKeys,
26293  &hf_x11_xkb_ControlsNotify_enabledControlChanges_mask_MouseKeys,
26294  &hf_x11_xkb_ControlsNotify_enabledControlChanges_mask_MouseKeysAccel,
26295  &hf_x11_xkb_ControlsNotify_enabledControlChanges_mask_AccessXKeys,
26296  &hf_x11_xkb_ControlsNotify_enabledControlChanges_mask_AccessXTimeoutMask,
26297  &hf_x11_xkb_ControlsNotify_enabledControlChanges_mask_AccessXFeedbackMask,
26298  &hf_x11_xkb_ControlsNotify_enabledControlChanges_mask_AudibleBellMask,
26299  &hf_x11_xkb_ControlsNotify_enabledControlChanges_mask_Overlay1Mask,
26300  &hf_x11_xkb_ControlsNotify_enabledControlChanges_mask_Overlay2Mask,
26301  &hf_x11_xkb_ControlsNotify_enabledControlChanges_mask_IgnoreGroupLockMask,
26302  NULL
26303  };
26304  proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_xkb_ControlsNotify_enabledControlChanges, ett_x11_rectangle, enabledControlChanges_bits, byte_order);
26305  }
26306  *offsetp += 4;
26307  proto_tree_add_item(t, hf_x11_xkb_ControlsNotify_keycode, tvb, *offsetp, 1, byte_order);
26308  *offsetp += 1;
26309  proto_tree_add_item(t, hf_x11_xkb_ControlsNotify_eventType, tvb, *offsetp, 1, byte_order);
26310  *offsetp += 1;
26311  proto_tree_add_item(t, hf_x11_xkb_ControlsNotify_requestMajor, tvb, *offsetp, 1, byte_order);
26312  *offsetp += 1;
26313  proto_tree_add_item(t, hf_x11_xkb_ControlsNotify_requestMinor, tvb, *offsetp, 1, byte_order);
26314  *offsetp += 1;
26315  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 4, ENC_NA);
26316  *offsetp += 4;
26317 }
26318 
26319 
26320 static void xkbIndicatorStateNotify(tvbuff_t *tvb, int *offsetp, proto_tree *t, guint byte_order)
26321 {
26322  proto_tree_add_item(t, hf_x11_xkb_IndicatorStateNotify_xkbType, tvb, *offsetp, 1, byte_order);
26323  *offsetp += 1;
26324  CARD16(event_sequencenumber);
26325  proto_tree_add_item(t, hf_x11_xkb_IndicatorStateNotify_time, tvb, *offsetp, 4, byte_order);
26326  *offsetp += 4;
26327  proto_tree_add_item(t, hf_x11_xkb_IndicatorStateNotify_deviceID, tvb, *offsetp, 1, byte_order);
26328  *offsetp += 1;
26329  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 3, ENC_NA);
26330  *offsetp += 3;
26331  proto_tree_add_item(t, hf_x11_xkb_IndicatorStateNotify_state, tvb, *offsetp, 4, byte_order);
26332  *offsetp += 4;
26333  proto_tree_add_item(t, hf_x11_xkb_IndicatorStateNotify_stateChanged, tvb, *offsetp, 4, byte_order);
26334  *offsetp += 4;
26335  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 12, ENC_NA);
26336  *offsetp += 12;
26337 }
26338 
26339 
26340 static void xkbIndicatorMapNotify(tvbuff_t *tvb, int *offsetp, proto_tree *t, guint byte_order)
26341 {
26342  proto_tree_add_item(t, hf_x11_xkb_IndicatorMapNotify_xkbType, tvb, *offsetp, 1, byte_order);
26343  *offsetp += 1;
26344  CARD16(event_sequencenumber);
26345  proto_tree_add_item(t, hf_x11_xkb_IndicatorMapNotify_time, tvb, *offsetp, 4, byte_order);
26346  *offsetp += 4;
26347  proto_tree_add_item(t, hf_x11_xkb_IndicatorMapNotify_deviceID, tvb, *offsetp, 1, byte_order);
26348  *offsetp += 1;
26349  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 3, ENC_NA);
26350  *offsetp += 3;
26351  proto_tree_add_item(t, hf_x11_xkb_IndicatorMapNotify_state, tvb, *offsetp, 4, byte_order);
26352  *offsetp += 4;
26353  proto_tree_add_item(t, hf_x11_xkb_IndicatorMapNotify_mapChanged, tvb, *offsetp, 4, byte_order);
26354  *offsetp += 4;
26355  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 12, ENC_NA);
26356  *offsetp += 12;
26357 }
26358 
26359 
26360 static void xkbNamesNotify(tvbuff_t *tvb, int *offsetp, proto_tree *t, guint byte_order)
26361 {
26362  proto_tree_add_item(t, hf_x11_xkb_NamesNotify_xkbType, tvb, *offsetp, 1, byte_order);
26363  *offsetp += 1;
26364  CARD16(event_sequencenumber);
26365  proto_tree_add_item(t, hf_x11_xkb_NamesNotify_time, tvb, *offsetp, 4, byte_order);
26366  *offsetp += 4;
26367  proto_tree_add_item(t, hf_x11_xkb_NamesNotify_deviceID, tvb, *offsetp, 1, byte_order);
26368  *offsetp += 1;
26369  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
26370  *offsetp += 1;
26371  {
26372  const int* changed_bits [] = {
26373  &hf_x11_xkb_NamesNotify_changed_mask_Keycodes,
26374  &hf_x11_xkb_NamesNotify_changed_mask_Geometry,
26375  &hf_x11_xkb_NamesNotify_changed_mask_Symbols,
26376  &hf_x11_xkb_NamesNotify_changed_mask_PhysSymbols,
26377  &hf_x11_xkb_NamesNotify_changed_mask_Types,
26378  &hf_x11_xkb_NamesNotify_changed_mask_Compat,
26379  &hf_x11_xkb_NamesNotify_changed_mask_KeyTypeNames,
26380  &hf_x11_xkb_NamesNotify_changed_mask_KTLevelNames,
26381  &hf_x11_xkb_NamesNotify_changed_mask_IndicatorNames,
26382  &hf_x11_xkb_NamesNotify_changed_mask_KeyNames,
26383  &hf_x11_xkb_NamesNotify_changed_mask_KeyAliases,
26384  &hf_x11_xkb_NamesNotify_changed_mask_VirtualModNames,
26385  &hf_x11_xkb_NamesNotify_changed_mask_GroupNames,
26386  &hf_x11_xkb_NamesNotify_changed_mask_RGNames,
26387  NULL
26388  };
26389  proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_xkb_NamesNotify_changed, ett_x11_rectangle, changed_bits, byte_order);
26390  }
26391  *offsetp += 2;
26392  proto_tree_add_item(t, hf_x11_xkb_NamesNotify_firstType, tvb, *offsetp, 1, byte_order);
26393  *offsetp += 1;
26394  proto_tree_add_item(t, hf_x11_xkb_NamesNotify_nTypes, tvb, *offsetp, 1, byte_order);
26395  *offsetp += 1;
26396  proto_tree_add_item(t, hf_x11_xkb_NamesNotify_firstLevelName, tvb, *offsetp, 1, byte_order);
26397  *offsetp += 1;
26398  proto_tree_add_item(t, hf_x11_xkb_NamesNotify_nLevelNames, tvb, *offsetp, 1, byte_order);
26399  *offsetp += 1;
26400  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
26401  *offsetp += 1;
26402  proto_tree_add_item(t, hf_x11_xkb_NamesNotify_nRadioGroups, tvb, *offsetp, 1, byte_order);
26403  *offsetp += 1;
26404  proto_tree_add_item(t, hf_x11_xkb_NamesNotify_nKeyAliases, tvb, *offsetp, 1, byte_order);
26405  *offsetp += 1;
26406  {
26407  const int* changedGroupNames_bits [] = {
26408  &hf_x11_xkb_NamesNotify_changedGroupNames_mask_Group1,
26409  &hf_x11_xkb_NamesNotify_changedGroupNames_mask_Group2,
26410  &hf_x11_xkb_NamesNotify_changedGroupNames_mask_Group3,
26411  &hf_x11_xkb_NamesNotify_changedGroupNames_mask_Group4,
26412  NULL
26413  };
26414  proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_xkb_NamesNotify_changedGroupNames, ett_x11_rectangle, changedGroupNames_bits, byte_order);
26415  }
26416  *offsetp += 1;
26417  {
26418  const int* changedVirtualMods_bits [] = {
26419  &hf_x11_xkb_NamesNotify_changedVirtualMods_mask_0,
26420  &hf_x11_xkb_NamesNotify_changedVirtualMods_mask_1,
26421  &hf_x11_xkb_NamesNotify_changedVirtualMods_mask_2,
26422  &hf_x11_xkb_NamesNotify_changedVirtualMods_mask_3,
26423  &hf_x11_xkb_NamesNotify_changedVirtualMods_mask_4,
26424  &hf_x11_xkb_NamesNotify_changedVirtualMods_mask_5,
26425  &hf_x11_xkb_NamesNotify_changedVirtualMods_mask_6,
26426  &hf_x11_xkb_NamesNotify_changedVirtualMods_mask_7,
26427  &hf_x11_xkb_NamesNotify_changedVirtualMods_mask_8,
26428  &hf_x11_xkb_NamesNotify_changedVirtualMods_mask_9,
26429  &hf_x11_xkb_NamesNotify_changedVirtualMods_mask_10,
26430  &hf_x11_xkb_NamesNotify_changedVirtualMods_mask_11,
26431  &hf_x11_xkb_NamesNotify_changedVirtualMods_mask_12,
26432  &hf_x11_xkb_NamesNotify_changedVirtualMods_mask_13,
26433  &hf_x11_xkb_NamesNotify_changedVirtualMods_mask_14,
26434  &hf_x11_xkb_NamesNotify_changedVirtualMods_mask_15,
26435  NULL
26436  };
26437  proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_xkb_NamesNotify_changedVirtualMods, ett_x11_rectangle, changedVirtualMods_bits, byte_order);
26438  }
26439  *offsetp += 2;
26440  proto_tree_add_item(t, hf_x11_xkb_NamesNotify_firstKey, tvb, *offsetp, 1, byte_order);
26441  *offsetp += 1;
26442  proto_tree_add_item(t, hf_x11_xkb_NamesNotify_nKeys, tvb, *offsetp, 1, byte_order);
26443  *offsetp += 1;
26444  proto_tree_add_item(t, hf_x11_xkb_NamesNotify_changedIndicators, tvb, *offsetp, 4, byte_order);
26445  *offsetp += 4;
26446  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 4, ENC_NA);
26447  *offsetp += 4;
26448 }
26449 
26450 
26451 static void xkbCompatMapNotify(tvbuff_t *tvb, int *offsetp, proto_tree *t, guint byte_order)
26452 {
26453  proto_tree_add_item(t, hf_x11_xkb_CompatMapNotify_xkbType, tvb, *offsetp, 1, byte_order);
26454  *offsetp += 1;
26455  CARD16(event_sequencenumber);
26456  proto_tree_add_item(t, hf_x11_xkb_CompatMapNotify_time, tvb, *offsetp, 4, byte_order);
26457  *offsetp += 4;
26458  proto_tree_add_item(t, hf_x11_xkb_CompatMapNotify_deviceID, tvb, *offsetp, 1, byte_order);
26459  *offsetp += 1;
26460  {
26461  const int* changedGroups_bits [] = {
26462  &hf_x11_xkb_CompatMapNotify_changedGroups_mask_Group1,
26463  &hf_x11_xkb_CompatMapNotify_changedGroups_mask_Group2,
26464  &hf_x11_xkb_CompatMapNotify_changedGroups_mask_Group3,
26465  &hf_x11_xkb_CompatMapNotify_changedGroups_mask_Group4,
26466  NULL
26467  };
26468  proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_xkb_CompatMapNotify_changedGroups, ett_x11_rectangle, changedGroups_bits, byte_order);
26469  }
26470  *offsetp += 1;
26471  proto_tree_add_item(t, hf_x11_xkb_CompatMapNotify_firstSI, tvb, *offsetp, 2, byte_order);
26472  *offsetp += 2;
26473  proto_tree_add_item(t, hf_x11_xkb_CompatMapNotify_nSI, tvb, *offsetp, 2, byte_order);
26474  *offsetp += 2;
26475  proto_tree_add_item(t, hf_x11_xkb_CompatMapNotify_nTotalSI, tvb, *offsetp, 2, byte_order);
26476  *offsetp += 2;
26477  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 16, ENC_NA);
26478  *offsetp += 16;
26479 }
26480 
26481 
26482 static void xkbBellNotify(tvbuff_t *tvb, int *offsetp, proto_tree *t, guint byte_order)
26483 {
26484  proto_tree_add_item(t, hf_x11_xkb_BellNotify_xkbType, tvb, *offsetp, 1, byte_order);
26485  *offsetp += 1;
26486  CARD16(event_sequencenumber);
26487  proto_tree_add_item(t, hf_x11_xkb_BellNotify_time, tvb, *offsetp, 4, byte_order);
26488  *offsetp += 4;
26489  proto_tree_add_item(t, hf_x11_xkb_BellNotify_deviceID, tvb, *offsetp, 1, byte_order);
26490  *offsetp += 1;
26491  field8(tvb, offsetp, t, hf_x11_xkb_BellNotify_bellClass, byte_order);
26492  proto_tree_add_item(t, hf_x11_xkb_BellNotify_bellID, tvb, *offsetp, 1, byte_order);
26493  *offsetp += 1;
26494  proto_tree_add_item(t, hf_x11_xkb_BellNotify_percent, tvb, *offsetp, 1, byte_order);
26495  *offsetp += 1;
26496  proto_tree_add_item(t, hf_x11_xkb_BellNotify_pitch, tvb, *offsetp, 2, byte_order);
26497  *offsetp += 2;
26498  proto_tree_add_item(t, hf_x11_xkb_BellNotify_duration, tvb, *offsetp, 2, byte_order);
26499  *offsetp += 2;
26500  proto_tree_add_item(t, hf_x11_xkb_BellNotify_name, tvb, *offsetp, 4, byte_order);
26501  *offsetp += 4;
26502  proto_tree_add_item(t, hf_x11_xkb_BellNotify_window, tvb, *offsetp, 4, byte_order);
26503  *offsetp += 4;
26504  proto_tree_add_item(t, hf_x11_xkb_BellNotify_eventOnly, tvb, *offsetp, 1, byte_order);
26505  *offsetp += 1;
26506  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 7, ENC_NA);
26507  *offsetp += 7;
26508 }
26509 
26510 
26511 static void xkbActionMessage(tvbuff_t *tvb, int *offsetp, proto_tree *t, guint byte_order)
26512 {
26513  proto_tree_add_item(t, hf_x11_xkb_ActionMessage_xkbType, tvb, *offsetp, 1, byte_order);
26514  *offsetp += 1;
26515  CARD16(event_sequencenumber);
26516  proto_tree_add_item(t, hf_x11_xkb_ActionMessage_time, tvb, *offsetp, 4, byte_order);
26517  *offsetp += 4;
26518  proto_tree_add_item(t, hf_x11_xkb_ActionMessage_deviceID, tvb, *offsetp, 1, byte_order);
26519  *offsetp += 1;
26520  proto_tree_add_item(t, hf_x11_xkb_ActionMessage_keycode, tvb, *offsetp, 1, byte_order);
26521  *offsetp += 1;
26522  proto_tree_add_item(t, hf_x11_xkb_ActionMessage_press, tvb, *offsetp, 1, byte_order);
26523  *offsetp += 1;
26524  proto_tree_add_item(t, hf_x11_xkb_ActionMessage_keyEventFollows, tvb, *offsetp, 1, byte_order);
26525  *offsetp += 1;
26526  {
26527  const int* mods_bits [] = {
26528  &hf_x11_xkb_ActionMessage_mods_mask_Shift,
26529  &hf_x11_xkb_ActionMessage_mods_mask_Lock,
26530  &hf_x11_xkb_ActionMessage_mods_mask_Control,
26531  &hf_x11_xkb_ActionMessage_mods_mask_1,
26532  &hf_x11_xkb_ActionMessage_mods_mask_2,
26533  &hf_x11_xkb_ActionMessage_mods_mask_3,
26534  &hf_x11_xkb_ActionMessage_mods_mask_4,
26535  &hf_x11_xkb_ActionMessage_mods_mask_5,
26536  &hf_x11_xkb_ActionMessage_mods_mask_Any,
26537  NULL
26538  };
26539  proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_xkb_ActionMessage_mods, ett_x11_rectangle, mods_bits, byte_order);
26540  }
26541  *offsetp += 1;
26542  field8(tvb, offsetp, t, hf_x11_xkb_ActionMessage_group, byte_order);
26543  listOfByte(tvb, offsetp, t, hf_x11_xkb_ActionMessage_message, 8, byte_order);
26544  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 10, ENC_NA);
26545  *offsetp += 10;
26546 }
26547 
26548 
26549 static void xkbAccessXNotify(tvbuff_t *tvb, int *offsetp, proto_tree *t, guint byte_order)
26550 {
26551  proto_tree_add_item(t, hf_x11_xkb_AccessXNotify_xkbType, tvb, *offsetp, 1, byte_order);
26552  *offsetp += 1;
26553  CARD16(event_sequencenumber);
26554  proto_tree_add_item(t, hf_x11_xkb_AccessXNotify_time, tvb, *offsetp, 4, byte_order);
26555  *offsetp += 4;
26556  proto_tree_add_item(t, hf_x11_xkb_AccessXNotify_deviceID, tvb, *offsetp, 1, byte_order);
26557  *offsetp += 1;
26558  proto_tree_add_item(t, hf_x11_xkb_AccessXNotify_keycode, tvb, *offsetp, 1, byte_order);
26559  *offsetp += 1;
26560  {
26561  const int* detailt_bits [] = {
26562  &hf_x11_xkb_AccessXNotify_detailt_mask_SKPress,
26563  &hf_x11_xkb_AccessXNotify_detailt_mask_SKAccept,
26564  &hf_x11_xkb_AccessXNotify_detailt_mask_SKReject,
26565  &hf_x11_xkb_AccessXNotify_detailt_mask_SKRelease,
26566  &hf_x11_xkb_AccessXNotify_detailt_mask_BKAccept,
26567  &hf_x11_xkb_AccessXNotify_detailt_mask_BKReject,
26568  &hf_x11_xkb_AccessXNotify_detailt_mask_AXKWarning,
26569  NULL
26570  };
26571  proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_xkb_AccessXNotify_detailt, ett_x11_rectangle, detailt_bits, byte_order);
26572  }
26573  *offsetp += 2;
26574  proto_tree_add_item(t, hf_x11_xkb_AccessXNotify_slowKeysDelay, tvb, *offsetp, 2, byte_order);
26575  *offsetp += 2;
26576  proto_tree_add_item(t, hf_x11_xkb_AccessXNotify_debounceDelay, tvb, *offsetp, 2, byte_order);
26577  *offsetp += 2;
26578  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 16, ENC_NA);
26579  *offsetp += 16;
26580 }
26581 
26582 
26583 static void xkbExtensionDeviceNotify(tvbuff_t *tvb, int *offsetp, proto_tree *t, guint byte_order)
26584 {
26585  proto_tree_add_item(t, hf_x11_xkb_ExtensionDeviceNotify_xkbType, tvb, *offsetp, 1, byte_order);
26586  *offsetp += 1;
26587  CARD16(event_sequencenumber);
26588  proto_tree_add_item(t, hf_x11_xkb_ExtensionDeviceNotify_time, tvb, *offsetp, 4, byte_order);
26589  *offsetp += 4;
26590  proto_tree_add_item(t, hf_x11_xkb_ExtensionDeviceNotify_deviceID, tvb, *offsetp, 1, byte_order);
26591  *offsetp += 1;
26592  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
26593  *offsetp += 1;
26594  {
26595  const int* reason_bits [] = {
26596  &hf_x11_xkb_ExtensionDeviceNotify_reason_mask_Keyboards,
26597  &hf_x11_xkb_ExtensionDeviceNotify_reason_mask_ButtonActions,
26598  &hf_x11_xkb_ExtensionDeviceNotify_reason_mask_IndicatorNames,
26599  &hf_x11_xkb_ExtensionDeviceNotify_reason_mask_IndicatorMaps,
26600  &hf_x11_xkb_ExtensionDeviceNotify_reason_mask_IndicatorState,
26601  NULL
26602  };
26603  proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_xkb_ExtensionDeviceNotify_reason, ett_x11_rectangle, reason_bits, byte_order);
26604  }
26605  *offsetp += 2;
26606  field16(tvb, offsetp, t, hf_x11_xkb_ExtensionDeviceNotify_ledClass, byte_order);
26607  proto_tree_add_item(t, hf_x11_xkb_ExtensionDeviceNotify_ledID, tvb, *offsetp, 2, byte_order);
26608  *offsetp += 2;
26609  proto_tree_add_item(t, hf_x11_xkb_ExtensionDeviceNotify_ledsDefined, tvb, *offsetp, 4, byte_order);
26610  *offsetp += 4;
26611  proto_tree_add_item(t, hf_x11_xkb_ExtensionDeviceNotify_ledState, tvb, *offsetp, 4, byte_order);
26612  *offsetp += 4;
26613  proto_tree_add_item(t, hf_x11_xkb_ExtensionDeviceNotify_firstButton, tvb, *offsetp, 1, byte_order);
26614  *offsetp += 1;
26615  proto_tree_add_item(t, hf_x11_xkb_ExtensionDeviceNotify_nButtons, tvb, *offsetp, 1, byte_order);
26616  *offsetp += 1;
26617  {
26618  const int* supported_bits [] = {
26619  &hf_x11_xkb_ExtensionDeviceNotify_supported_mask_Keyboards,
26620  &hf_x11_xkb_ExtensionDeviceNotify_supported_mask_ButtonActions,
26621  &hf_x11_xkb_ExtensionDeviceNotify_supported_mask_IndicatorNames,
26622  &hf_x11_xkb_ExtensionDeviceNotify_supported_mask_IndicatorMaps,
26623  &hf_x11_xkb_ExtensionDeviceNotify_supported_mask_IndicatorState,
26624  NULL
26625  };
26626  proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_xkb_ExtensionDeviceNotify_supported, ett_x11_rectangle, supported_bits, byte_order);
26627  }
26628  *offsetp += 2;
26629  {
26630  const int* unsupported_bits [] = {
26631  &hf_x11_xkb_ExtensionDeviceNotify_unsupported_mask_Keyboards,
26632  &hf_x11_xkb_ExtensionDeviceNotify_unsupported_mask_ButtonActions,
26633  &hf_x11_xkb_ExtensionDeviceNotify_unsupported_mask_IndicatorNames,
26634  &hf_x11_xkb_ExtensionDeviceNotify_unsupported_mask_IndicatorMaps,
26635  &hf_x11_xkb_ExtensionDeviceNotify_unsupported_mask_IndicatorState,
26636  NULL
26637  };
26638  proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_xkb_ExtensionDeviceNotify_unsupported, ett_x11_rectangle, unsupported_bits, byte_order);
26639  }
26640  *offsetp += 2;
26641  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 2, ENC_NA);
26642  *offsetp += 2;
26643 }
26644 
26645 static const value_string xkb_extension_minor[] = {
26646  { 0, "UseExtension" },
26647  { 1, "SelectEvents" },
26648  { 3, "Bell" },
26649  { 4, "GetState" },
26650  { 5, "LatchLockState" },
26651  { 6, "GetControls" },
26652  { 7, "SetControls" },
26653  { 8, "GetMap" },
26654  { 9, "SetMap" },
26655  { 10, "GetCompatMap" },
26656  { 11, "SetCompatMap" },
26657  { 12, "GetIndicatorState" },
26658  { 13, "GetIndicatorMap" },
26659  { 14, "SetIndicatorMap" },
26660  { 15, "GetNamedIndicator" },
26661  { 16, "SetNamedIndicator" },
26662  { 17, "GetNames" },
26663  { 18, "SetNames" },
26664  { 21, "PerClientFlags" },
26665  { 22, "ListComponents" },
26666  { 23, "GetKbdByName" },
26667  { 24, "GetDeviceInfo" },
26668  { 25, "SetDeviceInfo" },
26669  { 101, "SetDebuggingFlags" },
26670  { 0, NULL }
26671 };
26672 const x11_event_info xkb_events[] = {
26673  { "xkb-MapNotify", xkbMapNotify },
26674  { "xkb-StateNotify", xkbStateNotify },
26675  { "xkb-ControlsNotify", xkbControlsNotify },
26676  { "xkb-IndicatorStateNotify", xkbIndicatorStateNotify },
26677  { "xkb-IndicatorMapNotify", xkbIndicatorMapNotify },
26678  { "xkb-NamesNotify", xkbNamesNotify },
26679  { "xkb-CompatMapNotify", xkbCompatMapNotify },
26680  { "xkb-BellNotify", xkbBellNotify },
26681  { "xkb-ActionMessage", xkbActionMessage },
26682  { "xkb-AccessXNotify", xkbAccessXNotify },
26683  { "xkb-ExtensionDeviceNotify", xkbExtensionDeviceNotify },
26684  { NULL, NULL }
26685 };
26686 static x11_reply_info xkb_replies[] = {
26687  { 0, xkbUseExtension_Reply },
26688  { 4, xkbGetState_Reply },
26689  { 6, xkbGetControls_Reply },
26690  { 8, xkbGetMap_Reply },
26691  { 10, xkbGetCompatMap_Reply },
26692  { 12, xkbGetIndicatorState_Reply },
26693  { 13, xkbGetIndicatorMap_Reply },
26694  { 15, xkbGetNamedIndicator_Reply },
26695  { 17, xkbGetNames_Reply },
26696  { 21, xkbPerClientFlags_Reply },
26697  { 22, xkbListComponents_Reply },
26698  { 23, xkbGetKbdByName_Reply },
26699  { 24, xkbGetDeviceInfo_Reply },
26700  { 101, xkbSetDebuggingFlags_Reply },
26701  { 0, NULL }
26702 };
26703 
26704 static void dispatch_xkb(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
26705 {
26706  int minor, length;
26707  minor = CARD8(xkb_extension_minor);
26708  length = REQUEST_LENGTH();
26709 
26710  col_append_fstr(pinfo->cinfo, COL_INFO, "-%s",
26711  val_to_str(minor, xkb_extension_minor,
26712  "<Unknown opcode %d>"));
26713  switch (minor) {
26714  case 0:
26715  xkbUseExtension(tvb, pinfo, offsetp, t, byte_order, length);
26716  break;
26717  case 1:
26718  xkbSelectEvents(tvb, pinfo, offsetp, t, byte_order, length);
26719  break;
26720  case 3:
26721  xkbBell(tvb, pinfo, offsetp, t, byte_order, length);
26722  break;
26723  case 4:
26724  xkbGetState(tvb, pinfo, offsetp, t, byte_order, length);
26725  break;
26726  case 5:
26727  xkbLatchLockState(tvb, pinfo, offsetp, t, byte_order, length);
26728  break;
26729  case 6:
26730  xkbGetControls(tvb, pinfo, offsetp, t, byte_order, length);
26731  break;
26732  case 7:
26733  xkbSetControls(tvb, pinfo, offsetp, t, byte_order, length);
26734  break;
26735  case 8:
26736  xkbGetMap(tvb, pinfo, offsetp, t, byte_order, length);
26737  break;
26738  case 9:
26739  xkbSetMap(tvb, pinfo, offsetp, t, byte_order, length);
26740  break;
26741  case 10:
26742  xkbGetCompatMap(tvb, pinfo, offsetp, t, byte_order, length);
26743  break;
26744  case 11:
26745  xkbSetCompatMap(tvb, pinfo, offsetp, t, byte_order, length);
26746  break;
26747  case 12:
26748  xkbGetIndicatorState(tvb, pinfo, offsetp, t, byte_order, length);
26749  break;
26750  case 13:
26751  xkbGetIndicatorMap(tvb, pinfo, offsetp, t, byte_order, length);
26752  break;
26753  case 14:
26754  xkbSetIndicatorMap(tvb, pinfo, offsetp, t, byte_order, length);
26755  break;
26756  case 15:
26757  xkbGetNamedIndicator(tvb, pinfo, offsetp, t, byte_order, length);
26758  break;
26759  case 16:
26760  xkbSetNamedIndicator(tvb, pinfo, offsetp, t, byte_order, length);
26761  break;
26762  case 17:
26763  xkbGetNames(tvb, pinfo, offsetp, t, byte_order, length);
26764  break;
26765  case 18:
26766  xkbSetNames(tvb, pinfo, offsetp, t, byte_order, length);
26767  break;
26768  case 21:
26769  xkbPerClientFlags(tvb, pinfo, offsetp, t, byte_order, length);
26770  break;
26771  case 22:
26772  xkbListComponents(tvb, pinfo, offsetp, t, byte_order, length);
26773  break;
26774  case 23:
26775  xkbGetKbdByName(tvb, pinfo, offsetp, t, byte_order, length);
26776  break;
26777  case 24:
26778  xkbGetDeviceInfo(tvb, pinfo, offsetp, t, byte_order, length);
26779  break;
26780  case 25:
26781  xkbSetDeviceInfo(tvb, pinfo, offsetp, t, byte_order, length);
26782  break;
26783  case 101:
26784  xkbSetDebuggingFlags(tvb, pinfo, offsetp, t, byte_order, length);
26785  break;
26786  /* No need for a default case here, since Unknown is printed above,
26787  and UNDECODED() is taken care of by dissect_x11_request */
26788  }
26789 }
26790 
26791 static void register_xkb(void)
26792 {
26793  set_handler("XKEYBOARD", dispatch_xkb, xkb_errors, xkb_events, NULL, xkb_replies);
26794 }
26795 
26796 static int struct_size_xprint_PRINTER(tvbuff_t *tvb _U_, int *offsetp _U_, guint byte_order _U_)
26797 {
26798  int size = 0;
26799  int f_descLen;
26800  int f_nameLen;
26801  f_nameLen = tvb_get_guint32(tvb, *offsetp + size + 0, byte_order);
26802  size += f_nameLen * 1;
26803  size = (size + 3) & ~3;
26804  f_descLen = tvb_get_guint32(tvb, *offsetp + size + 4, byte_order);
26805  size += f_descLen * 1;
26806  size = (size + 3) & ~3;
26807  return size + 8;
26808 }
26809 
26810 static void struct_xprint_PRINTER(tvbuff_t *tvb, int *offsetp, proto_tree *root, guint byte_order _U_, int count)
26811 {
26812  int i;
26813  for (i = 0; i < count; i++) {
26814  proto_item *item;
26815  proto_tree *t;
26816  int f_nameLen;
26817  int f_descLen;
26818 
26819  item = proto_tree_add_item(root, hf_x11_struct_xprint_PRINTER, tvb, *offsetp, struct_size_xprint_PRINTER(tvb, offsetp, byte_order), ENC_NA);
26820  t = proto_item_add_subtree(item, ett_x11_rectangle);
26821  f_nameLen = tvb_get_guint32(tvb, *offsetp, byte_order);
26822  proto_tree_add_item(t, hf_x11_struct_xprint_PRINTER_nameLen, tvb, *offsetp, 4, byte_order);
26823  *offsetp += 4;
26824  listOfByte(tvb, offsetp, t, hf_x11_struct_xprint_PRINTER_name, f_nameLen, byte_order);
26825  if (*offsetp % 4) {
26826  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, (4 - *offsetp % 4), ENC_NA);
26827  *offsetp += (4 - *offsetp % 4);
26828  }
26829  f_descLen = tvb_get_guint32(tvb, *offsetp, byte_order);
26830  proto_tree_add_item(t, hf_x11_struct_xprint_PRINTER_descLen, tvb, *offsetp, 4, byte_order);
26831  *offsetp += 4;
26832  listOfByte(tvb, offsetp, t, hf_x11_struct_xprint_PRINTER_description, f_descLen, byte_order);
26833  if (*offsetp % 4) {
26834  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, (4 - *offsetp % 4), ENC_NA);
26835  *offsetp += (4 - *offsetp % 4);
26836  }
26837  }
26838 }
26839 
26840 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_)
26841 {
26842 }
26843 static void xprintPrintQueryVersion_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
26844 {
26845  int sequence_number;
26846 
26847  col_append_fstr(pinfo->cinfo, COL_INFO, "-PrintQueryVersion");
26848 
26849  REPLY(reply);
26850  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
26851  *offsetp += 1;
26852  sequence_number = tvb_get_guint16(tvb, *offsetp, byte_order);
26853  proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
26854  "%d (xprint-PrintQueryVersion)", sequence_number);
26855  *offsetp += 2;
26856  proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
26857  *offsetp += 4;
26858  proto_tree_add_item(t, hf_x11_xprint_PrintQueryVersion_reply_major_version, tvb, *offsetp, 2, byte_order);
26859  *offsetp += 2;
26860  proto_tree_add_item(t, hf_x11_xprint_PrintQueryVersion_reply_minor_version, tvb, *offsetp, 2, byte_order);
26861  *offsetp += 2;
26862 }
26863 
26864 static void xprintPrintGetPrinterList(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
26865 {
26866  int f_printerNameLen;
26867  int f_localeLen;
26868  f_printerNameLen = tvb_get_guint32(tvb, *offsetp, byte_order);
26869  proto_tree_add_item(t, hf_x11_xprint_PrintGetPrinterList_printerNameLen, tvb, *offsetp, 4, byte_order);
26870  *offsetp += 4;
26871  f_localeLen = tvb_get_guint32(tvb, *offsetp, byte_order);
26872  proto_tree_add_item(t, hf_x11_xprint_PrintGetPrinterList_localeLen, tvb, *offsetp, 4, byte_order);
26873  *offsetp += 4;
26874  listOfByte(tvb, offsetp, t, hf_x11_xprint_PrintGetPrinterList_printer_name, f_printerNameLen, byte_order);
26875  length -= f_printerNameLen * 1;
26876  listOfByte(tvb, offsetp, t, hf_x11_xprint_PrintGetPrinterList_locale, f_localeLen, byte_order);
26877  length -= f_localeLen * 1;
26878 }
26879 static void xprintPrintGetPrinterList_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
26880 {
26881  int sequence_number;
26882  int f_listCount;
26883 
26884  col_append_fstr(pinfo->cinfo, COL_INFO, "-PrintGetPrinterList");
26885 
26886  REPLY(reply);
26887  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
26888  *offsetp += 1;
26889  sequence_number = tvb_get_guint16(tvb, *offsetp, byte_order);
26890  proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
26891  "%d (xprint-PrintGetPrinterList)", sequence_number);
26892  *offsetp += 2;
26893  proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
26894  *offsetp += 4;
26895  f_listCount = tvb_get_guint32(tvb, *offsetp, byte_order);
26896  proto_tree_add_item(t, hf_x11_xprint_PrintGetPrinterList_reply_listCount, tvb, *offsetp, 4, byte_order);
26897  *offsetp += 4;
26898  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 20, ENC_NA);
26899  *offsetp += 20;
26900  struct_xprint_PRINTER(tvb, offsetp, t, byte_order, f_listCount);
26901 }
26902 
26903 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_)
26904 {
26905 }
26906 
26907 static void xprintCreateContext(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
26908 {
26909  int f_printerNameLen;
26910  int f_localeLen;
26911  proto_tree_add_item(t, hf_x11_xprint_CreateContext_context_id, tvb, *offsetp, 4, byte_order);
26912  *offsetp += 4;
26913  f_printerNameLen = tvb_get_guint32(tvb, *offsetp, byte_order);
26914  proto_tree_add_item(t, hf_x11_xprint_CreateContext_printerNameLen, tvb, *offsetp, 4, byte_order);
26915  *offsetp += 4;
26916  f_localeLen = tvb_get_guint32(tvb, *offsetp, byte_order);
26917  proto_tree_add_item(t, hf_x11_xprint_CreateContext_localeLen, tvb, *offsetp, 4, byte_order);
26918  *offsetp += 4;
26919  listOfByte(tvb, offsetp, t, hf_x11_xprint_CreateContext_printerName, f_printerNameLen, byte_order);
26920  length -= f_printerNameLen * 1;
26921  listOfByte(tvb, offsetp, t, hf_x11_xprint_CreateContext_locale, f_localeLen, byte_order);
26922  length -= f_localeLen * 1;
26923 }
26924 
26925 static void xprintPrintSetContext(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
26926 {
26927  proto_tree_add_item(t, hf_x11_xprint_PrintSetContext_context, tvb, *offsetp, 4, byte_order);
26928  *offsetp += 4;
26929 }
26930 
26931 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_)
26932 {
26933 }
26934 static void xprintPrintGetContext_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
26935 {
26936  int sequence_number;
26937 
26938  col_append_fstr(pinfo->cinfo, COL_INFO, "-PrintGetContext");
26939 
26940  REPLY(reply);
26941  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
26942  *offsetp += 1;
26943  sequence_number = tvb_get_guint16(tvb, *offsetp, byte_order);
26944  proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
26945  "%d (xprint-PrintGetContext)", sequence_number);
26946  *offsetp += 2;
26947  proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
26948  *offsetp += 4;
26949  proto_tree_add_item(t, hf_x11_xprint_PrintGetContext_reply_context, tvb, *offsetp, 4, byte_order);
26950  *offsetp += 4;
26951 }
26952 
26953 static void xprintPrintDestroyContext(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
26954 {
26955  proto_tree_add_item(t, hf_x11_xprint_PrintDestroyContext_context, tvb, *offsetp, 4, byte_order);
26956  *offsetp += 4;
26957 }
26958 
26959 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_)
26960 {
26961 }
26962 static void xprintPrintGetScreenOfContext_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
26963 {
26964  int sequence_number;
26965 
26966  col_append_fstr(pinfo->cinfo, COL_INFO, "-PrintGetScreenOfContext");
26967 
26968  REPLY(reply);
26969  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
26970  *offsetp += 1;
26971  sequence_number = tvb_get_guint16(tvb, *offsetp, byte_order);
26972  proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
26973  "%d (xprint-PrintGetScreenOfContext)", sequence_number);
26974  *offsetp += 2;
26975  proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
26976  *offsetp += 4;
26977  proto_tree_add_item(t, hf_x11_xprint_PrintGetScreenOfContext_reply_root, tvb, *offsetp, 4, byte_order);
26978  *offsetp += 4;
26979 }
26980 
26981 static void xprintPrintStartJob(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
26982 {
26983  proto_tree_add_item(t, hf_x11_xprint_PrintStartJob_output_mode, tvb, *offsetp, 1, byte_order);
26984  *offsetp += 1;
26985 }
26986 
26987 static void xprintPrintEndJob(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
26988 {
26989  proto_tree_add_item(t, hf_x11_xprint_PrintEndJob_cancel, tvb, *offsetp, 1, byte_order);
26990  *offsetp += 1;
26991 }
26992 
26993 static void xprintPrintStartDoc(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
26994 {
26995  proto_tree_add_item(t, hf_x11_xprint_PrintStartDoc_driver_mode, tvb, *offsetp, 1, byte_order);
26996  *offsetp += 1;
26997 }
26998 
26999 static void xprintPrintEndDoc(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
27000 {
27001  proto_tree_add_item(t, hf_x11_xprint_PrintEndDoc_cancel, tvb, *offsetp, 1, byte_order);
27002  *offsetp += 1;
27003 }
27004 
27005 static void xprintPrintPutDocumentData(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
27006 {
27007  int f_len_data;
27008  int f_len_fmt;
27009  int f_len_options;
27010  proto_tree_add_item(t, hf_x11_xprint_PrintPutDocumentData_drawable, tvb, *offsetp, 4, byte_order);
27011  *offsetp += 4;
27012  f_len_data = tvb_get_guint32(tvb, *offsetp, byte_order);
27013  proto_tree_add_item(t, hf_x11_xprint_PrintPutDocumentData_len_data, tvb, *offsetp, 4, byte_order);
27014  *offsetp += 4;
27015  f_len_fmt = tvb_get_guint16(tvb, *offsetp, byte_order);
27016  proto_tree_add_item(t, hf_x11_xprint_PrintPutDocumentData_len_fmt, tvb, *offsetp, 2, byte_order);
27017  *offsetp += 2;
27018  f_len_options = tvb_get_guint16(tvb, *offsetp, byte_order);
27019  proto_tree_add_item(t, hf_x11_xprint_PrintPutDocumentData_len_options, tvb, *offsetp, 2, byte_order);
27020  *offsetp += 2;
27021  listOfByte(tvb, offsetp, t, hf_x11_xprint_PrintPutDocumentData_data, f_len_data, byte_order);
27022  length -= f_len_data * 1;
27023  listOfByte(tvb, offsetp, t, hf_x11_xprint_PrintPutDocumentData_doc_format, f_len_fmt, byte_order);
27024  length -= f_len_fmt * 1;
27025  listOfByte(tvb, offsetp, t, hf_x11_xprint_PrintPutDocumentData_options, f_len_options, byte_order);
27026  length -= f_len_options * 1;
27027 }
27028 
27029 static void xprintPrintGetDocumentData(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
27030 {
27031  proto_tree_add_item(t, hf_x11_xprint_PrintGetDocumentData_context, tvb, *offsetp, 4, byte_order);
27032  *offsetp += 4;
27033  proto_tree_add_item(t, hf_x11_xprint_PrintGetDocumentData_max_bytes, tvb, *offsetp, 4, byte_order);
27034  *offsetp += 4;
27035 }
27036 static void xprintPrintGetDocumentData_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
27037 {
27038  int sequence_number;
27039  int f_dataLen;
27040 
27041  col_append_fstr(pinfo->cinfo, COL_INFO, "-PrintGetDocumentData");
27042 
27043  REPLY(reply);
27044  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
27045  *offsetp += 1;
27046  sequence_number = tvb_get_guint16(tvb, *offsetp, byte_order);
27047  proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
27048  "%d (xprint-PrintGetDocumentData)", sequence_number);
27049  *offsetp += 2;
27050  proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
27051  *offsetp += 4;
27052  proto_tree_add_item(t, hf_x11_xprint_PrintGetDocumentData_reply_status_code, tvb, *offsetp, 4, byte_order);
27053  *offsetp += 4;
27054  proto_tree_add_item(t, hf_x11_xprint_PrintGetDocumentData_reply_finished_flag, tvb, *offsetp, 4, byte_order);
27055  *offsetp += 4;
27056  f_dataLen = tvb_get_guint32(tvb, *offsetp, byte_order);
27057  proto_tree_add_item(t, hf_x11_xprint_PrintGetDocumentData_reply_dataLen, tvb, *offsetp, 4, byte_order);
27058  *offsetp += 4;
27059  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 12, ENC_NA);
27060  *offsetp += 12;
27061  listOfByte(tvb, offsetp, t, hf_x11_xprint_PrintGetDocumentData_reply_data, f_dataLen, byte_order);
27062 }
27063 
27064 static void xprintPrintStartPage(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
27065 {
27066  proto_tree_add_item(t, hf_x11_xprint_PrintStartPage_window, tvb, *offsetp, 4, byte_order);
27067  *offsetp += 4;
27068 }
27069 
27070 static void xprintPrintEndPage(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
27071 {
27072  proto_tree_add_item(t, hf_x11_xprint_PrintEndPage_cancel, tvb, *offsetp, 1, byte_order);
27073  *offsetp += 1;
27074  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 3, ENC_NA);
27075  *offsetp += 3;
27076 }
27077 
27078 static void xprintPrintSelectInput(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
27079 {
27080  proto_tree_add_item(t, hf_x11_xprint_PrintSelectInput_context, tvb, *offsetp, 4, byte_order);
27081  *offsetp += 4;
27082  proto_tree_add_item(t, hf_x11_xprint_PrintSelectInput_event_mask, tvb, *offsetp, 4, byte_order);
27083  *offsetp += 4;
27084 }
27085 
27086 static void xprintPrintInputSelected(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
27087 {
27088  proto_tree_add_item(t, hf_x11_xprint_PrintInputSelected_context, tvb, *offsetp, 4, byte_order);
27089  *offsetp += 4;
27090 }
27091 static void xprintPrintInputSelected_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
27092 {
27093  int sequence_number;
27094 
27095  col_append_fstr(pinfo->cinfo, COL_INFO, "-PrintInputSelected");
27096 
27097  REPLY(reply);
27098  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
27099  *offsetp += 1;
27100  sequence_number = tvb_get_guint16(tvb, *offsetp, byte_order);
27101  proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
27102  "%d (xprint-PrintInputSelected)", sequence_number);
27103  *offsetp += 2;
27104  proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
27105  *offsetp += 4;
27106  proto_tree_add_item(t, hf_x11_xprint_PrintInputSelected_reply_event_mask, tvb, *offsetp, 4, byte_order);
27107  *offsetp += 4;
27108  proto_tree_add_item(t, hf_x11_xprint_PrintInputSelected_reply_all_events_mask, tvb, *offsetp, 4, byte_order);
27109  *offsetp += 4;
27110 }
27111 
27112 static void xprintPrintGetAttributes(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
27113 {
27114  proto_tree_add_item(t, hf_x11_xprint_PrintGetAttributes_context, tvb, *offsetp, 4, byte_order);
27115  *offsetp += 4;
27116  proto_tree_add_item(t, hf_x11_xprint_PrintGetAttributes_pool, tvb, *offsetp, 1, byte_order);
27117  *offsetp += 1;
27118  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 3, ENC_NA);
27119  *offsetp += 3;
27120 }
27121 static void xprintPrintGetAttributes_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
27122 {
27123  int sequence_number;
27124  int f_stringLen;
27125 
27126  col_append_fstr(pinfo->cinfo, COL_INFO, "-PrintGetAttributes");
27127 
27128  REPLY(reply);
27129  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
27130  *offsetp += 1;
27131  sequence_number = tvb_get_guint16(tvb, *offsetp, byte_order);
27132  proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
27133  "%d (xprint-PrintGetAttributes)", sequence_number);
27134  *offsetp += 2;
27135  proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
27136  *offsetp += 4;
27137  f_stringLen = tvb_get_guint32(tvb, *offsetp, byte_order);
27138  proto_tree_add_item(t, hf_x11_xprint_PrintGetAttributes_reply_stringLen, tvb, *offsetp, 4, byte_order);
27139  *offsetp += 4;
27140  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 20, ENC_NA);
27141  *offsetp += 20;
27142  listOfByte(tvb, offsetp, t, hf_x11_xprint_PrintGetAttributes_reply_attributes, f_stringLen, byte_order);
27143 }
27144 
27145 static void xprintPrintGetOneAttributes(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
27146 {
27147  int f_nameLen;
27148  proto_tree_add_item(t, hf_x11_xprint_PrintGetOneAttributes_context, tvb, *offsetp, 4, byte_order);
27149  *offsetp += 4;
27150  f_nameLen = tvb_get_guint32(tvb, *offsetp, byte_order);
27151  proto_tree_add_item(t, hf_x11_xprint_PrintGetOneAttributes_nameLen, tvb, *offsetp, 4, byte_order);
27152  *offsetp += 4;
27153  proto_tree_add_item(t, hf_x11_xprint_PrintGetOneAttributes_pool, tvb, *offsetp, 1, byte_order);
27154  *offsetp += 1;
27155  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 3, ENC_NA);
27156  *offsetp += 3;
27157  listOfByte(tvb, offsetp, t, hf_x11_xprint_PrintGetOneAttributes_name, f_nameLen, byte_order);
27158  length -= f_nameLen * 1;
27159 }
27160 static void xprintPrintGetOneAttributes_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
27161 {
27162  int sequence_number;
27163  int f_valueLen;
27164 
27165  col_append_fstr(pinfo->cinfo, COL_INFO, "-PrintGetOneAttributes");
27166 
27167  REPLY(reply);
27168  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
27169  *offsetp += 1;
27170  sequence_number = tvb_get_guint16(tvb, *offsetp, byte_order);
27171  proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
27172  "%d (xprint-PrintGetOneAttributes)", sequence_number);
27173  *offsetp += 2;
27174  proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
27175  *offsetp += 4;
27176  f_valueLen = tvb_get_guint32(tvb, *offsetp, byte_order);
27177  proto_tree_add_item(t, hf_x11_xprint_PrintGetOneAttributes_reply_valueLen, tvb, *offsetp, 4, byte_order);
27178  *offsetp += 4;
27179  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 20, ENC_NA);
27180  *offsetp += 20;
27181  listOfByte(tvb, offsetp, t, hf_x11_xprint_PrintGetOneAttributes_reply_value, f_valueLen, byte_order);
27182 }
27183 
27184 static void xprintPrintSetAttributes(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_PrintSetAttributes_context, tvb, *offsetp, 4, byte_order);
27187  *offsetp += 4;
27188  proto_tree_add_item(t, hf_x11_xprint_PrintSetAttributes_stringLen, tvb, *offsetp, 4, byte_order);
27189  *offsetp += 4;
27190  proto_tree_add_item(t, hf_x11_xprint_PrintSetAttributes_pool, tvb, *offsetp, 1, byte_order);
27191  *offsetp += 1;
27192  proto_tree_add_item(t, hf_x11_xprint_PrintSetAttributes_rule, tvb, *offsetp, 1, byte_order);
27193  *offsetp += 1;
27194  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 2, ENC_NA);
27195  *offsetp += 2;
27196  listOfByte(tvb, offsetp, t, hf_x11_xprint_PrintSetAttributes_attributes, (length - 16) / 1, byte_order);
27197 }
27198 
27199 static void xprintPrintGetPageDimensions(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
27200 {
27201  proto_tree_add_item(t, hf_x11_xprint_PrintGetPageDimensions_context, tvb, *offsetp, 4, byte_order);
27202  *offsetp += 4;
27203 }
27204 static void xprintPrintGetPageDimensions_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
27205 {
27206  int sequence_number;
27207 
27208  col_append_fstr(pinfo->cinfo, COL_INFO, "-PrintGetPageDimensions");
27209 
27210  REPLY(reply);
27211  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
27212  *offsetp += 1;
27213  sequence_number = tvb_get_guint16(tvb, *offsetp, byte_order);
27214  proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
27215  "%d (xprint-PrintGetPageDimensions)", sequence_number);
27216  *offsetp += 2;
27217  proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
27218  *offsetp += 4;
27219  proto_tree_add_item(t, hf_x11_xprint_PrintGetPageDimensions_reply_width, tvb, *offsetp, 2, byte_order);
27220  *offsetp += 2;
27221  proto_tree_add_item(t, hf_x11_xprint_PrintGetPageDimensions_reply_height, tvb, *offsetp, 2, byte_order);
27222  *offsetp += 2;
27223  proto_tree_add_item(t, hf_x11_xprint_PrintGetPageDimensions_reply_offset_x, tvb, *offsetp, 2, byte_order);
27224  *offsetp += 2;
27225  proto_tree_add_item(t, hf_x11_xprint_PrintGetPageDimensions_reply_offset_y, tvb, *offsetp, 2, byte_order);
27226  *offsetp += 2;
27227  proto_tree_add_item(t, hf_x11_xprint_PrintGetPageDimensions_reply_reproducible_width, tvb, *offsetp, 2, byte_order);
27228  *offsetp += 2;
27229  proto_tree_add_item(t, hf_x11_xprint_PrintGetPageDimensions_reply_reproducible_height, tvb, *offsetp, 2, byte_order);
27230  *offsetp += 2;
27231 }
27232 
27233 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_)
27234 {
27235 }
27236 static void xprintPrintQueryScreens_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
27237 {
27238  int sequence_number;
27239  int f_listCount;
27240 
27241  col_append_fstr(pinfo->cinfo, COL_INFO, "-PrintQueryScreens");
27242 
27243  REPLY(reply);
27244  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
27245  *offsetp += 1;
27246  sequence_number = tvb_get_guint16(tvb, *offsetp, byte_order);
27247  proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
27248  "%d (xprint-PrintQueryScreens)", sequence_number);
27249  *offsetp += 2;
27250  proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
27251  *offsetp += 4;
27252  f_listCount = tvb_get_guint32(tvb, *offsetp, byte_order);
27253  proto_tree_add_item(t, hf_x11_xprint_PrintQueryScreens_reply_listCount, tvb, *offsetp, 4, byte_order);
27254  *offsetp += 4;
27255  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 20, ENC_NA);
27256  *offsetp += 20;
27257  listOfCard32(tvb, offsetp, t, hf_x11_xprint_PrintQueryScreens_reply_roots, hf_x11_xprint_PrintQueryScreens_reply_roots_item, f_listCount, byte_order);
27258 }
27259 
27260 static void xprintPrintSetImageResolution(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
27261 {
27262  proto_tree_add_item(t, hf_x11_xprint_PrintSetImageResolution_context, tvb, *offsetp, 4, byte_order);
27263  *offsetp += 4;
27264  proto_tree_add_item(t, hf_x11_xprint_PrintSetImageResolution_image_resolution, tvb, *offsetp, 2, byte_order);
27265  *offsetp += 2;
27266 }
27267 static void xprintPrintSetImageResolution_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
27268 {
27269  int sequence_number;
27270 
27271  col_append_fstr(pinfo->cinfo, COL_INFO, "-PrintSetImageResolution");
27272 
27273  REPLY(reply);
27274  proto_tree_add_item(t, hf_x11_xprint_PrintSetImageResolution_reply_status, tvb, *offsetp, 1, byte_order);
27275  *offsetp += 1;
27276  sequence_number = tvb_get_guint16(tvb, *offsetp, byte_order);
27277  proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
27278  "%d (xprint-PrintSetImageResolution)", sequence_number);
27279  *offsetp += 2;
27280  proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
27281  *offsetp += 4;
27282  proto_tree_add_item(t, hf_x11_xprint_PrintSetImageResolution_reply_previous_resolutions, tvb, *offsetp, 2, byte_order);
27283  *offsetp += 2;
27284 }
27285 
27286 static void xprintPrintGetImageResolution(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
27287 {
27288  proto_tree_add_item(t, hf_x11_xprint_PrintGetImageResolution_context, tvb, *offsetp, 4, byte_order);
27289  *offsetp += 4;
27290 }
27291 static void xprintPrintGetImageResolution_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
27292 {
27293  int sequence_number;
27294 
27295  col_append_fstr(pinfo->cinfo, COL_INFO, "-PrintGetImageResolution");
27296 
27297  REPLY(reply);
27298  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
27299  *offsetp += 1;
27300  sequence_number = tvb_get_guint16(tvb, *offsetp, byte_order);
27301  proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
27302  "%d (xprint-PrintGetImageResolution)", sequence_number);
27303  *offsetp += 2;
27304  proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
27305  *offsetp += 4;
27306  proto_tree_add_item(t, hf_x11_xprint_PrintGetImageResolution_reply_image_resolution, tvb, *offsetp, 2, byte_order);
27307  *offsetp += 2;
27308 }
27309 
27310 static void xprintAttributNotify(tvbuff_t *tvb, int *offsetp, proto_tree *t, guint byte_order)
27311 {
27312  proto_tree_add_item(t, hf_x11_xprint_AttributNotify_detail, tvb, *offsetp, 1, byte_order);
27313  *offsetp += 1;
27314  CARD16(event_sequencenumber);
27315  proto_tree_add_item(t, hf_x11_xprint_AttributNotify_context, tvb, *offsetp, 4, byte_order);
27316  *offsetp += 4;
27317 }
27318 
27319 static const value_string xprint_extension_minor[] = {
27320  { 0, "PrintQueryVersion" },
27321  { 1, "PrintGetPrinterList" },
27322  { 2, "CreateContext" },
27323  { 3, "PrintSetContext" },
27324  { 4, "PrintGetContext" },
27325  { 5, "PrintDestroyContext" },
27326  { 6, "PrintGetScreenOfContext" },
27327  { 7, "PrintStartJob" },
27328  { 8, "PrintEndJob" },
27329  { 9, "PrintStartDoc" },
27330  { 10, "PrintEndDoc" },
27331  { 11, "PrintPutDocumentData" },
27332  { 12, "PrintGetDocumentData" },
27333  { 13, "PrintStartPage" },
27334  { 14, "PrintEndPage" },
27335  { 15, "PrintSelectInput" },
27336  { 16, "PrintInputSelected" },
27337  { 17, "PrintGetAttributes" },
27338  { 18, "PrintSetAttributes" },
27339  { 19, "PrintGetOneAttributes" },
27340  { 20, "PrintRehashPrinterList" },
27341  { 21, "PrintGetPageDimensions" },
27342  { 22, "PrintQueryScreens" },
27343  { 23, "PrintSetImageResolution" },
27344  { 24, "PrintGetImageResolution" },
27345  { 0, NULL }
27346 };
27347 const x11_event_info xprint_events[] = {
27348  { "xprint-AttributNotify", xprintAttributNotify },
27349  { NULL, NULL }
27350 };
27351 static x11_reply_info xprint_replies[] = {
27352  { 0, xprintPrintQueryVersion_Reply },
27353  { 1, xprintPrintGetPrinterList_Reply },
27354  { 4, xprintPrintGetContext_Reply },
27355  { 6, xprintPrintGetScreenOfContext_Reply },
27356  { 12, xprintPrintGetDocumentData_Reply },
27357  { 16, xprintPrintInputSelected_Reply },
27358  { 17, xprintPrintGetAttributes_Reply },
27359  { 19, xprintPrintGetOneAttributes_Reply },
27360  { 21, xprintPrintGetPageDimensions_Reply },
27361  { 22, xprintPrintQueryScreens_Reply },
27362  { 23, xprintPrintSetImageResolution_Reply },
27363  { 24, xprintPrintGetImageResolution_Reply },
27364  { 0, NULL }
27365 };
27366 
27367 static void dispatch_xprint(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
27368 {
27369  int minor, length;
27370  minor = CARD8(xprint_extension_minor);
27371  length = REQUEST_LENGTH();
27372 
27373  col_append_fstr(pinfo->cinfo, COL_INFO, "-%s",
27374  val_to_str(minor, xprint_extension_minor,
27375  "<Unknown opcode %d>"));
27376  switch (minor) {
27377  case 0:
27378  xprintPrintQueryVersion(tvb, pinfo, offsetp, t, byte_order, length);
27379  break;
27380  case 1:
27381  xprintPrintGetPrinterList(tvb, pinfo, offsetp, t, byte_order, length);
27382  break;
27383  case 2:
27384  xprintCreateContext(tvb, pinfo, offsetp, t, byte_order, length);
27385  break;
27386  case 3:
27387  xprintPrintSetContext(tvb, pinfo, offsetp, t, byte_order, length);
27388  break;
27389  case 4:
27390  xprintPrintGetContext(tvb, pinfo, offsetp, t, byte_order, length);
27391  break;
27392  case 5:
27393  xprintPrintDestroyContext(tvb, pinfo, offsetp, t, byte_order, length);
27394  break;
27395  case 6:
27396  xprintPrintGetScreenOfContext(tvb, pinfo, offsetp, t, byte_order, length);
27397  break;
27398  case 7:
27399  xprintPrintStartJob(tvb, pinfo, offsetp, t, byte_order, length);
27400  break;
27401  case 8:
27402  xprintPrintEndJob(tvb, pinfo, offsetp, t, byte_order, length);
27403  break;
27404  case 9:
27405  xprintPrintStartDoc(tvb, pinfo, offsetp, t, byte_order, length);
27406  break;
27407  case 10:
27408  xprintPrintEndDoc(tvb, pinfo, offsetp, t, byte_order, length);
27409  break;
27410  case 11:
27411  xprintPrintPutDocumentData(tvb, pinfo, offsetp, t, byte_order, length);
27412  break;
27413  case 12:
27414  xprintPrintGetDocumentData(tvb, pinfo, offsetp, t, byte_order, length);
27415  break;
27416  case 13:
27417  xprintPrintStartPage(tvb, pinfo, offsetp, t, byte_order, length);
27418  break;
27419  case 14:
27420  xprintPrintEndPage(tvb, pinfo, offsetp, t, byte_order, length);
27421  break;
27422  case 15:
27423  xprintPrintSelectInput(tvb, pinfo, offsetp, t, byte_order, length);
27424  break;
27425  case 16:
27426  xprintPrintInputSelected(tvb, pinfo, offsetp, t, byte_order, length);
27427  break;
27428  case 17:
27429  xprintPrintGetAttributes(tvb, pinfo, offsetp, t, byte_order, length);
27430  break;
27431  case 18:
27432  xprintPrintSetAttributes(tvb, pinfo, offsetp, t, byte_order, length);
27433  break;
27434  case 19:
27435  xprintPrintGetOneAttributes(tvb, pinfo, offsetp, t, byte_order, length);
27436  break;
27437  case 20:
27438  xprintPrintRehashPrinterList(tvb, pinfo, offsetp, t, byte_order, length);
27439  break;
27440  case 21:
27441  xprintPrintGetPageDimensions(tvb, pinfo, offsetp, t, byte_order, length);
27442  break;
27443  case 22:
27444  xprintPrintQueryScreens(tvb, pinfo, offsetp, t, byte_order, length);
27445  break;
27446  case 23:
27447  xprintPrintSetImageResolution(tvb, pinfo, offsetp, t, byte_order, length);
27448  break;
27449  case 24:
27450  xprintPrintGetImageResolution(tvb, pinfo, offsetp, t, byte_order, length);
27451  break;
27452  /* No need for a default case here, since Unknown is printed above,
27453  and UNDECODED() is taken care of by dissect_x11_request */
27454  }
27455 }
27456 
27457 static void register_xprint(void)
27458 {
27459  set_handler("XpExtension", dispatch_xprint, xprint_errors, xprint_events, NULL, xprint_replies);
27460 }
27461 
27462 static void xselinuxQueryVersion(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
27463 {
27464  proto_tree_add_item(t, hf_x11_xselinux_QueryVersion_client_major, tvb, *offsetp, 1, byte_order);
27465  *offsetp += 1;
27466  proto_tree_add_item(t, hf_x11_xselinux_QueryVersion_client_minor, tvb, *offsetp, 1, byte_order);
27467  *offsetp += 1;
27468 }
27469 static void xselinuxQueryVersion_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
27470 {
27471  int sequence_number;
27472 
27473  col_append_fstr(pinfo->cinfo, COL_INFO, "-QueryVersion");
27474 
27475  REPLY(reply);
27476  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
27477  *offsetp += 1;
27478  sequence_number = tvb_get_guint16(tvb, *offsetp, byte_order);
27479  proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
27480  "%d (xselinux-QueryVersion)", sequence_number);
27481  *offsetp += 2;
27482  proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
27483  *offsetp += 4;
27484  proto_tree_add_item(t, hf_x11_xselinux_QueryVersion_reply_server_major, tvb, *offsetp, 2, byte_order);
27485  *offsetp += 2;
27486  proto_tree_add_item(t, hf_x11_xselinux_QueryVersion_reply_server_minor, tvb, *offsetp, 2, byte_order);
27487  *offsetp += 2;
27488 }
27489 
27490 static void xselinuxSetDeviceCreateContext(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
27491 {
27492  int f_context_len;
27493  f_context_len = tvb_get_guint32(tvb, *offsetp, byte_order);
27494  proto_tree_add_item(t, hf_x11_xselinux_SetDeviceCreateContext_context_len, tvb, *offsetp, 4, byte_order);
27495  *offsetp += 4;
27496  listOfByte(tvb, offsetp, t, hf_x11_xselinux_SetDeviceCreateContext_context, f_context_len, byte_order);
27497  length -= f_context_len * 1;
27498 }
27499 
27500 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_)
27501 {
27502 }
27503 static void xselinuxGetDeviceCreateContext_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
27504 {
27505  int sequence_number;
27506  int f_context_len;
27507 
27508  col_append_fstr(pinfo->cinfo, COL_INFO, "-GetDeviceCreateContext");
27509 
27510  REPLY(reply);
27511  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
27512  *offsetp += 1;
27513  sequence_number = tvb_get_guint16(tvb, *offsetp, byte_order);
27514  proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
27515  "%d (xselinux-GetDeviceCreateContext)", sequence_number);
27516  *offsetp += 2;
27517  proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
27518  *offsetp += 4;
27519  f_context_len = tvb_get_guint32(tvb, *offsetp, byte_order);
27520  proto_tree_add_item(t, hf_x11_xselinux_GetDeviceCreateContext_reply_context_len, tvb, *offsetp, 4, byte_order);
27521  *offsetp += 4;
27522  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 20, ENC_NA);
27523  *offsetp += 20;
27524  listOfByte(tvb, offsetp, t, hf_x11_xselinux_GetDeviceCreateContext_reply_context, f_context_len, byte_order);
27525 }
27526 
27527 static void xselinuxSetDeviceContext(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
27528 {
27529  int f_context_len;
27530  proto_tree_add_item(t, hf_x11_xselinux_SetDeviceContext_device, tvb, *offsetp, 4, byte_order);
27531  *offsetp += 4;
27532  f_context_len = tvb_get_guint32(tvb, *offsetp, byte_order);
27533  proto_tree_add_item(t, hf_x11_xselinux_SetDeviceContext_context_len, tvb, *offsetp, 4, byte_order);
27534  *offsetp += 4;
27535  listOfByte(tvb, offsetp, t, hf_x11_xselinux_SetDeviceContext_context, f_context_len, byte_order);
27536  length -= f_context_len * 1;
27537 }
27538 
27539 static void xselinuxGetDeviceContext(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
27540 {
27541  proto_tree_add_item(t, hf_x11_xselinux_GetDeviceContext_device, tvb, *offsetp, 4, byte_order);
27542  *offsetp += 4;
27543 }
27544 static void xselinuxGetDeviceContext_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
27545 {
27546  int sequence_number;
27547  int f_context_len;
27548 
27549  col_append_fstr(pinfo->cinfo, COL_INFO, "-GetDeviceContext");
27550 
27551  REPLY(reply);
27552  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
27553  *offsetp += 1;
27554  sequence_number = tvb_get_guint16(tvb, *offsetp, byte_order);
27555  proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
27556  "%d (xselinux-GetDeviceContext)", sequence_number);
27557  *offsetp += 2;
27558  proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
27559  *offsetp += 4;
27560  f_context_len = tvb_get_guint32(tvb, *offsetp, byte_order);
27561  proto_tree_add_item(t, hf_x11_xselinux_GetDeviceContext_reply_context_len, tvb, *offsetp, 4, byte_order);
27562  *offsetp += 4;
27563  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 20, ENC_NA);
27564  *offsetp += 20;
27565  listOfByte(tvb, offsetp, t, hf_x11_xselinux_GetDeviceContext_reply_context, f_context_len, byte_order);
27566 }
27567 
27568 static void xselinuxSetWindowCreateContext(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
27569 {
27570  int f_context_len;
27571  f_context_len = tvb_get_guint32(tvb, *offsetp, byte_order);
27572  proto_tree_add_item(t, hf_x11_xselinux_SetWindowCreateContext_context_len, tvb, *offsetp, 4, byte_order);
27573  *offsetp += 4;
27574  listOfByte(tvb, offsetp, t, hf_x11_xselinux_SetWindowCreateContext_context, f_context_len, byte_order);
27575  length -= f_context_len * 1;
27576 }
27577 
27578 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_)
27579 {
27580 }
27581 static void xselinuxGetWindowCreateContext_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
27582 {
27583  int sequence_number;
27584  int f_context_len;
27585 
27586  col_append_fstr(pinfo->cinfo, COL_INFO, "-GetWindowCreateContext");
27587 
27588  REPLY(reply);
27589  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
27590  *offsetp += 1;
27591  sequence_number = tvb_get_guint16(tvb, *offsetp, byte_order);
27592  proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
27593  "%d (xselinux-GetWindowCreateContext)", sequence_number);
27594  *offsetp += 2;
27595  proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
27596  *offsetp += 4;
27597  f_context_len = tvb_get_guint32(tvb, *offsetp, byte_order);
27598  proto_tree_add_item(t, hf_x11_xselinux_GetWindowCreateContext_reply_context_len, tvb, *offsetp, 4, byte_order);
27599  *offsetp += 4;
27600  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 20, ENC_NA);
27601  *offsetp += 20;
27602  listOfByte(tvb, offsetp, t, hf_x11_xselinux_GetWindowCreateContext_reply_context, f_context_len, byte_order);
27603 }
27604 
27605 static void xselinuxGetWindowContext(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
27606 {
27607  proto_tree_add_item(t, hf_x11_xselinux_GetWindowContext_window, tvb, *offsetp, 4, byte_order);
27608  *offsetp += 4;
27609 }
27610 static void xselinuxGetWindowContext_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
27611 {
27612  int sequence_number;
27613  int f_context_len;
27614 
27615  col_append_fstr(pinfo->cinfo, COL_INFO, "-GetWindowContext");
27616 
27617  REPLY(reply);
27618  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
27619  *offsetp += 1;
27620  sequence_number = tvb_get_guint16(tvb, *offsetp, byte_order);
27621  proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
27622  "%d (xselinux-GetWindowContext)", sequence_number);
27623  *offsetp += 2;
27624  proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
27625  *offsetp += 4;
27626  f_context_len = tvb_get_guint32(tvb, *offsetp, byte_order);
27627  proto_tree_add_item(t, hf_x11_xselinux_GetWindowContext_reply_context_len, tvb, *offsetp, 4, byte_order);
27628  *offsetp += 4;
27629  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 20, ENC_NA);
27630  *offsetp += 20;
27631  listOfByte(tvb, offsetp, t, hf_x11_xselinux_GetWindowContext_reply_context, f_context_len, byte_order);
27632 }
27633 
27634 static int struct_size_xselinux_ListItem(tvbuff_t *tvb _U_, int *offsetp _U_, guint byte_order _U_)
27635 {
27636  int size = 0;
27637  int f_data_context_len;
27638  int f_object_context_len;
27639  f_object_context_len = tvb_get_guint32(tvb, *offsetp + size + 4, byte_order);
27640  f_data_context_len = tvb_get_guint32(tvb, *offsetp + size + 8, byte_order);
27641  size += f_object_context_len * 1;
27642  size = (size + 3) & ~3;
27643  size += f_data_context_len * 1;
27644  size = (size + 3) & ~3;
27645  return size + 12;
27646 }
27647 
27648 static void struct_xselinux_ListItem(tvbuff_t *tvb, int *offsetp, proto_tree *root, guint byte_order _U_, int count)
27649 {
27650  int i;
27651  for (i = 0; i < count; i++) {
27652  proto_item *item;
27653  proto_tree *t;
27654  int f_object_context_len;
27655  int f_data_context_len;
27656 
27657  item = proto_tree_add_item(root, hf_x11_struct_xselinux_ListItem, tvb, *offsetp, struct_size_xselinux_ListItem(tvb, offsetp, byte_order), ENC_NA);
27658  t = proto_item_add_subtree(item, ett_x11_rectangle);
27659  proto_tree_add_item(t, hf_x11_struct_xselinux_ListItem_name, tvb, *offsetp, 4, byte_order);
27660  *offsetp += 4;
27661  f_object_context_len = tvb_get_guint32(tvb, *offsetp, byte_order);
27662  proto_tree_add_item(t, hf_x11_struct_xselinux_ListItem_object_context_len, tvb, *offsetp, 4, byte_order);
27663  *offsetp += 4;
27664  f_data_context_len = tvb_get_guint32(tvb, *offsetp, byte_order);
27665  proto_tree_add_item(t, hf_x11_struct_xselinux_ListItem_data_context_len, tvb, *offsetp, 4, byte_order);
27666  *offsetp += 4;
27667  listOfByte(tvb, offsetp, t, hf_x11_struct_xselinux_ListItem_object_context, f_object_context_len, byte_order);
27668  if (*offsetp % 4) {
27669  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, (4 - *offsetp % 4), ENC_NA);
27670  *offsetp += (4 - *offsetp % 4);
27671  }
27672  listOfByte(tvb, offsetp, t, hf_x11_struct_xselinux_ListItem_data_context, f_data_context_len, byte_order);
27673  if (*offsetp % 4) {
27674  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, (4 - *offsetp % 4), ENC_NA);
27675  *offsetp += (4 - *offsetp % 4);
27676  }
27677  }
27678 }
27679 
27680 static void xselinuxSetPropertyCreateContext(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
27681 {
27682  int f_context_len;
27683  f_context_len = tvb_get_guint32(tvb, *offsetp, byte_order);
27684  proto_tree_add_item(t, hf_x11_xselinux_SetPropertyCreateContext_context_len, tvb, *offsetp, 4, byte_order);
27685  *offsetp += 4;
27686  listOfByte(tvb, offsetp, t, hf_x11_xselinux_SetPropertyCreateContext_context, f_context_len, byte_order);
27687  length -= f_context_len * 1;
27688 }
27689 
27690 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_)
27691 {
27692 }
27693 static void xselinuxGetPropertyCreateContext_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
27694 {
27695  int sequence_number;
27696  int f_context_len;
27697 
27698  col_append_fstr(pinfo->cinfo, COL_INFO, "-GetPropertyCreateContext");
27699 
27700  REPLY(reply);
27701  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
27702  *offsetp += 1;
27703  sequence_number = tvb_get_guint16(tvb, *offsetp, byte_order);
27704  proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
27705  "%d (xselinux-GetPropertyCreateContext)", sequence_number);
27706  *offsetp += 2;
27707  proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
27708  *offsetp += 4;
27709  f_context_len = tvb_get_guint32(tvb, *offsetp, byte_order);
27710  proto_tree_add_item(t, hf_x11_xselinux_GetPropertyCreateContext_reply_context_len, tvb, *offsetp, 4, byte_order);
27711  *offsetp += 4;
27712  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 20, ENC_NA);
27713  *offsetp += 20;
27714  listOfByte(tvb, offsetp, t, hf_x11_xselinux_GetPropertyCreateContext_reply_context, f_context_len, byte_order);
27715 }
27716 
27717 static void xselinuxSetPropertyUseContext(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
27718 {
27719  int f_context_len;
27720  f_context_len = tvb_get_guint32(tvb, *offsetp, byte_order);
27721  proto_tree_add_item(t, hf_x11_xselinux_SetPropertyUseContext_context_len, tvb, *offsetp, 4, byte_order);
27722  *offsetp += 4;
27723  listOfByte(tvb, offsetp, t, hf_x11_xselinux_SetPropertyUseContext_context, f_context_len, byte_order);
27724  length -= f_context_len * 1;
27725 }
27726 
27727 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_)
27728 {
27729 }
27730 static void xselinuxGetPropertyUseContext_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
27731 {
27732  int sequence_number;
27733  int f_context_len;
27734 
27735  col_append_fstr(pinfo->cinfo, COL_INFO, "-GetPropertyUseContext");
27736 
27737  REPLY(reply);
27738  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
27739  *offsetp += 1;
27740  sequence_number = tvb_get_guint16(tvb, *offsetp, byte_order);
27741  proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
27742  "%d (xselinux-GetPropertyUseContext)", sequence_number);
27743  *offsetp += 2;
27744  proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
27745  *offsetp += 4;
27746  f_context_len = tvb_get_guint32(tvb, *offsetp, byte_order);
27747  proto_tree_add_item(t, hf_x11_xselinux_GetPropertyUseContext_reply_context_len, tvb, *offsetp, 4, byte_order);
27748  *offsetp += 4;
27749  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 20, ENC_NA);
27750  *offsetp += 20;
27751  listOfByte(tvb, offsetp, t, hf_x11_xselinux_GetPropertyUseContext_reply_context, f_context_len, byte_order);
27752 }
27753 
27754 static void xselinuxGetPropertyContext(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
27755 {
27756  proto_tree_add_item(t, hf_x11_xselinux_GetPropertyContext_window, tvb, *offsetp, 4, byte_order);
27757  *offsetp += 4;
27758  proto_tree_add_item(t, hf_x11_xselinux_GetPropertyContext_property, tvb, *offsetp, 4, byte_order);
27759  *offsetp += 4;
27760 }
27761 static void xselinuxGetPropertyContext_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
27762 {
27763  int sequence_number;
27764  int f_context_len;
27765 
27766  col_append_fstr(pinfo->cinfo, COL_INFO, "-GetPropertyContext");
27767 
27768  REPLY(reply);
27769  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
27770  *offsetp += 1;
27771  sequence_number = tvb_get_guint16(tvb, *offsetp, byte_order);
27772  proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
27773  "%d (xselinux-GetPropertyContext)", sequence_number);
27774  *offsetp += 2;
27775  proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
27776  *offsetp += 4;
27777  f_context_len = tvb_get_guint32(tvb, *offsetp, byte_order);
27778  proto_tree_add_item(t, hf_x11_xselinux_GetPropertyContext_reply_context_len, tvb, *offsetp, 4, byte_order);
27779  *offsetp += 4;
27780  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 20, ENC_NA);
27781  *offsetp += 20;
27782  listOfByte(tvb, offsetp, t, hf_x11_xselinux_GetPropertyContext_reply_context, f_context_len, byte_order);
27783 }
27784 
27785 static void xselinuxGetPropertyDataContext(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
27786 {
27787  proto_tree_add_item(t, hf_x11_xselinux_GetPropertyDataContext_window, tvb, *offsetp, 4, byte_order);
27788  *offsetp += 4;
27789  proto_tree_add_item(t, hf_x11_xselinux_GetPropertyDataContext_property, tvb, *offsetp, 4, byte_order);
27790  *offsetp += 4;
27791 }
27792 static void xselinuxGetPropertyDataContext_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
27793 {
27794  int sequence_number;
27795  int f_context_len;
27796 
27797  col_append_fstr(pinfo->cinfo, COL_INFO, "-GetPropertyDataContext");
27798 
27799  REPLY(reply);
27800  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
27801  *offsetp += 1;
27802  sequence_number = tvb_get_guint16(tvb, *offsetp, byte_order);
27803  proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
27804  "%d (xselinux-GetPropertyDataContext)", sequence_number);
27805  *offsetp += 2;
27806  proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
27807  *offsetp += 4;
27808  f_context_len = tvb_get_guint32(tvb, *offsetp, byte_order);
27809  proto_tree_add_item(t, hf_x11_xselinux_GetPropertyDataContext_reply_context_len, tvb, *offsetp, 4, byte_order);
27810  *offsetp += 4;
27811  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 20, ENC_NA);
27812  *offsetp += 20;
27813  listOfByte(tvb, offsetp, t, hf_x11_xselinux_GetPropertyDataContext_reply_context, f_context_len, byte_order);
27814 }
27815 
27816 static void xselinuxListProperties(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
27817 {
27818  proto_tree_add_item(t, hf_x11_xselinux_ListProperties_window, tvb, *offsetp, 4, byte_order);
27819  *offsetp += 4;
27820 }
27821 static void xselinuxListProperties_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
27822 {
27823  int sequence_number;
27824  int f_properties_len;
27825 
27826  col_append_fstr(pinfo->cinfo, COL_INFO, "-ListProperties");
27827 
27828  REPLY(reply);
27829  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
27830  *offsetp += 1;
27831  sequence_number = tvb_get_guint16(tvb, *offsetp, byte_order);
27832  proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
27833  "%d (xselinux-ListProperties)", sequence_number);
27834  *offsetp += 2;
27835  proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
27836  *offsetp += 4;
27837  f_properties_len = tvb_get_guint32(tvb, *offsetp, byte_order);
27838  proto_tree_add_item(t, hf_x11_xselinux_ListProperties_reply_properties_len, tvb, *offsetp, 4, byte_order);
27839  *offsetp += 4;
27840  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 20, ENC_NA);
27841  *offsetp += 20;
27842  struct_xselinux_ListItem(tvb, offsetp, t, byte_order, f_properties_len);
27843 }
27844 
27845 static void xselinuxSetSelectionCreateContext(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
27846 {
27847  int f_context_len;
27848  f_context_len = tvb_get_guint32(tvb, *offsetp, byte_order);
27849  proto_tree_add_item(t, hf_x11_xselinux_SetSelectionCreateContext_context_len, tvb, *offsetp, 4, byte_order);
27850  *offsetp += 4;
27851  listOfByte(tvb, offsetp, t, hf_x11_xselinux_SetSelectionCreateContext_context, f_context_len, byte_order);
27852  length -= f_context_len * 1;
27853 }
27854 
27855 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_)
27856 {
27857 }
27858 static void xselinuxGetSelectionCreateContext_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
27859 {
27860  int sequence_number;
27861  int f_context_len;
27862 
27863  col_append_fstr(pinfo->cinfo, COL_INFO, "-GetSelectionCreateContext");
27864 
27865  REPLY(reply);
27866  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
27867  *offsetp += 1;
27868  sequence_number = tvb_get_guint16(tvb, *offsetp, byte_order);
27869  proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
27870  "%d (xselinux-GetSelectionCreateContext)", sequence_number);
27871  *offsetp += 2;
27872  proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
27873  *offsetp += 4;
27874  f_context_len = tvb_get_guint32(tvb, *offsetp, byte_order);
27875  proto_tree_add_item(t, hf_x11_xselinux_GetSelectionCreateContext_reply_context_len, tvb, *offsetp, 4, byte_order);
27876  *offsetp += 4;
27877  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 20, ENC_NA);
27878  *offsetp += 20;
27879  listOfByte(tvb, offsetp, t, hf_x11_xselinux_GetSelectionCreateContext_reply_context, f_context_len, byte_order);
27880 }
27881 
27882 static void xselinuxSetSelectionUseContext(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
27883 {
27884  int f_context_len;
27885  f_context_len = tvb_get_guint32(tvb, *offsetp, byte_order);
27886  proto_tree_add_item(t, hf_x11_xselinux_SetSelectionUseContext_context_len, tvb, *offsetp, 4, byte_order);
27887  *offsetp += 4;
27888  listOfByte(tvb, offsetp, t, hf_x11_xselinux_SetSelectionUseContext_context, f_context_len, byte_order);
27889  length -= f_context_len * 1;
27890 }
27891 
27892 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_)
27893 {
27894 }
27895 static void xselinuxGetSelectionUseContext_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
27896 {
27897  int sequence_number;
27898  int f_context_len;
27899 
27900  col_append_fstr(pinfo->cinfo, COL_INFO, "-GetSelectionUseContext");
27901 
27902  REPLY(reply);
27903  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
27904  *offsetp += 1;
27905  sequence_number = tvb_get_guint16(tvb, *offsetp, byte_order);
27906  proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
27907  "%d (xselinux-GetSelectionUseContext)", sequence_number);
27908  *offsetp += 2;
27909  proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
27910  *offsetp += 4;
27911  f_context_len = tvb_get_guint32(tvb, *offsetp, byte_order);
27912  proto_tree_add_item(t, hf_x11_xselinux_GetSelectionUseContext_reply_context_len, tvb, *offsetp, 4, byte_order);
27913  *offsetp += 4;
27914  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 20, ENC_NA);
27915  *offsetp += 20;
27916  listOfByte(tvb, offsetp, t, hf_x11_xselinux_GetSelectionUseContext_reply_context, f_context_len, byte_order);
27917 }
27918 
27919 static void xselinuxGetSelectionContext(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
27920 {
27921  proto_tree_add_item(t, hf_x11_xselinux_GetSelectionContext_selection, tvb, *offsetp, 4, byte_order);
27922  *offsetp += 4;
27923 }
27924 static void xselinuxGetSelectionContext_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
27925 {
27926  int sequence_number;
27927  int f_context_len;
27928 
27929  col_append_fstr(pinfo->cinfo, COL_INFO, "-GetSelectionContext");
27930 
27931  REPLY(reply);
27932  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
27933  *offsetp += 1;
27934  sequence_number = tvb_get_guint16(tvb, *offsetp, byte_order);
27935  proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
27936  "%d (xselinux-GetSelectionContext)", sequence_number);
27937  *offsetp += 2;
27938  proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
27939  *offsetp += 4;
27940  f_context_len = tvb_get_guint32(tvb, *offsetp, byte_order);
27941  proto_tree_add_item(t, hf_x11_xselinux_GetSelectionContext_reply_context_len, tvb, *offsetp, 4, byte_order);
27942  *offsetp += 4;
27943  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 20, ENC_NA);
27944  *offsetp += 20;
27945  listOfByte(tvb, offsetp, t, hf_x11_xselinux_GetSelectionContext_reply_context, f_context_len, byte_order);
27946 }
27947 
27948 static void xselinuxGetSelectionDataContext(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
27949 {
27950  proto_tree_add_item(t, hf_x11_xselinux_GetSelectionDataContext_selection, tvb, *offsetp, 4, byte_order);
27951  *offsetp += 4;
27952 }
27953 static void xselinuxGetSelectionDataContext_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
27954 {
27955  int sequence_number;
27956  int f_context_len;
27957 
27958  col_append_fstr(pinfo->cinfo, COL_INFO, "-GetSelectionDataContext");
27959 
27960  REPLY(reply);
27961  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
27962  *offsetp += 1;
27963  sequence_number = tvb_get_guint16(tvb, *offsetp, byte_order);
27964  proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
27965  "%d (xselinux-GetSelectionDataContext)", sequence_number);
27966  *offsetp += 2;
27967  proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
27968  *offsetp += 4;
27969  f_context_len = tvb_get_guint32(tvb, *offsetp, byte_order);
27970  proto_tree_add_item(t, hf_x11_xselinux_GetSelectionDataContext_reply_context_len, tvb, *offsetp, 4, byte_order);
27971  *offsetp += 4;
27972  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 20, ENC_NA);
27973  *offsetp += 20;
27974  listOfByte(tvb, offsetp, t, hf_x11_xselinux_GetSelectionDataContext_reply_context, f_context_len, byte_order);
27975 }
27976 
27977 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_)
27978 {
27979 }
27980 static void xselinuxListSelections_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
27981 {
27982  int sequence_number;
27983  int f_selections_len;
27984 
27985  col_append_fstr(pinfo->cinfo, COL_INFO, "-ListSelections");
27986 
27987  REPLY(reply);
27988  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
27989  *offsetp += 1;
27990  sequence_number = tvb_get_guint16(tvb, *offsetp, byte_order);
27991  proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
27992  "%d (xselinux-ListSelections)", sequence_number);
27993  *offsetp += 2;
27994  proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
27995  *offsetp += 4;
27996  f_selections_len = tvb_get_guint32(tvb, *offsetp, byte_order);
27997  proto_tree_add_item(t, hf_x11_xselinux_ListSelections_reply_selections_len, tvb, *offsetp, 4, byte_order);
27998  *offsetp += 4;
27999  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 20, ENC_NA);
28000  *offsetp += 20;
28001  struct_xselinux_ListItem(tvb, offsetp, t, byte_order, f_selections_len);
28002 }
28003 
28004 static void xselinuxGetClientContext(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
28005 {
28006  proto_tree_add_item(t, hf_x11_xselinux_GetClientContext_resource, tvb, *offsetp, 4, byte_order);
28007  *offsetp += 4;
28008 }
28009 static void xselinuxGetClientContext_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
28010 {
28011  int sequence_number;
28012  int f_context_len;
28013 
28014  col_append_fstr(pinfo->cinfo, COL_INFO, "-GetClientContext");
28015 
28016  REPLY(reply);
28017  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
28018  *offsetp += 1;
28019  sequence_number = tvb_get_guint16(tvb, *offsetp, byte_order);
28020  proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
28021  "%d (xselinux-GetClientContext)", sequence_number);
28022  *offsetp += 2;
28023  proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
28024  *offsetp += 4;
28025  f_context_len = tvb_get_guint32(tvb, *offsetp, byte_order);
28026  proto_tree_add_item(t, hf_x11_xselinux_GetClientContext_reply_context_len, tvb, *offsetp, 4, byte_order);
28027  *offsetp += 4;
28028  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 20, ENC_NA);
28029  *offsetp += 20;
28030  listOfByte(tvb, offsetp, t, hf_x11_xselinux_GetClientContext_reply_context, f_context_len, byte_order);
28031 }
28032 static const value_string xselinux_extension_minor[] = {
28033  { 0, "QueryVersion" },
28034  { 1, "SetDeviceCreateContext" },
28035  { 2, "GetDeviceCreateContext" },
28036  { 3, "SetDeviceContext" },
28037  { 4, "GetDeviceContext" },
28038  { 5, "SetWindowCreateContext" },
28039  { 6, "GetWindowCreateContext" },
28040  { 7, "GetWindowContext" },
28041  { 8, "SetPropertyCreateContext" },
28042  { 9, "GetPropertyCreateContext" },
28043  { 10, "SetPropertyUseContext" },
28044  { 11, "GetPropertyUseContext" },
28045  { 12, "GetPropertyContext" },
28046  { 13, "GetPropertyDataContext" },
28047  { 14, "ListProperties" },
28048  { 15, "SetSelectionCreateContext" },
28049  { 16, "GetSelectionCreateContext" },
28050  { 17, "SetSelectionUseContext" },
28051  { 18, "GetSelectionUseContext" },
28052  { 19, "GetSelectionContext" },
28053  { 20, "GetSelectionDataContext" },
28054  { 21, "ListSelections" },
28055  { 22, "GetClientContext" },
28056  { 0, NULL }
28057 };
28058 const x11_event_info xselinux_events[] = {
28059  { NULL, NULL }
28060 };
28061 static x11_reply_info xselinux_replies[] = {
28062  { 0, xselinuxQueryVersion_Reply },
28063  { 2, xselinuxGetDeviceCreateContext_Reply },
28064  { 4, xselinuxGetDeviceContext_Reply },
28065  { 6, xselinuxGetWindowCreateContext_Reply },
28066  { 7, xselinuxGetWindowContext_Reply },
28067  { 9, xselinuxGetPropertyCreateContext_Reply },
28068  { 11, xselinuxGetPropertyUseContext_Reply },
28069  { 12, xselinuxGetPropertyContext_Reply },
28070  { 13, xselinuxGetPropertyDataContext_Reply },
28071  { 14, xselinuxListProperties_Reply },
28072  { 16, xselinuxGetSelectionCreateContext_Reply },
28073  { 18, xselinuxGetSelectionUseContext_Reply },
28074  { 19, xselinuxGetSelectionContext_Reply },
28075  { 20, xselinuxGetSelectionDataContext_Reply },
28076  { 21, xselinuxListSelections_Reply },
28077  { 22, xselinuxGetClientContext_Reply },
28078  { 0, NULL }
28079 };
28080 
28081 static void dispatch_xselinux(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
28082 {
28083  int minor, length;
28084  minor = CARD8(xselinux_extension_minor);
28085  length = REQUEST_LENGTH();
28086 
28087  col_append_fstr(pinfo->cinfo, COL_INFO, "-%s",
28088  val_to_str(minor, xselinux_extension_minor,
28089  "<Unknown opcode %d>"));
28090  switch (minor) {
28091  case 0:
28092  xselinuxQueryVersion(tvb, pinfo, offsetp, t, byte_order, length);
28093  break;
28094  case 1:
28095  xselinuxSetDeviceCreateContext(tvb, pinfo, offsetp, t, byte_order, length);
28096  break;
28097  case 2:
28098  xselinuxGetDeviceCreateContext(tvb, pinfo, offsetp, t, byte_order, length);
28099  break;
28100  case 3:
28101  xselinuxSetDeviceContext(tvb, pinfo, offsetp, t, byte_order, length);
28102  break;
28103  case 4:
28104  xselinuxGetDeviceContext(tvb, pinfo, offsetp, t, byte_order, length);
28105  break;
28106  case 5:
28107  xselinuxSetWindowCreateContext(tvb, pinfo, offsetp, t, byte_order, length);
28108  break;
28109  case 6:
28110  xselinuxGetWindowCreateContext(tvb, pinfo, offsetp, t, byte_order, length);
28111  break;
28112  case 7:
28113  xselinuxGetWindowContext(tvb, pinfo, offsetp, t, byte_order, length);
28114  break;
28115  case 8:
28116  xselinuxSetPropertyCreateContext(tvb, pinfo, offsetp, t, byte_order, length);
28117  break;
28118  case 9:
28119  xselinuxGetPropertyCreateContext(tvb, pinfo, offsetp, t, byte_order, length);
28120  break;
28121  case 10:
28122  xselinuxSetPropertyUseContext(tvb, pinfo, offsetp, t, byte_order, length);
28123  break;
28124  case 11:
28125  xselinuxGetPropertyUseContext(tvb, pinfo, offsetp, t, byte_order, length);
28126  break;
28127  case 12:
28128  xselinuxGetPropertyContext(tvb, pinfo, offsetp, t, byte_order, length);
28129  break;
28130  case 13:
28131  xselinuxGetPropertyDataContext(tvb, pinfo, offsetp, t, byte_order, length);
28132  break;
28133  case 14:
28134  xselinuxListProperties(tvb, pinfo, offsetp, t, byte_order, length);
28135  break;
28136  case 15:
28137  xselinuxSetSelectionCreateContext(tvb, pinfo, offsetp, t, byte_order, length);
28138  break;
28139  case 16:
28140  xselinuxGetSelectionCreateContext(tvb, pinfo, offsetp, t, byte_order, length);
28141  break;
28142  case 17:
28143  xselinuxSetSelectionUseContext(tvb, pinfo, offsetp, t, byte_order, length);
28144  break;
28145  case 18:
28146  xselinuxGetSelectionUseContext(tvb, pinfo, offsetp, t, byte_order, length);
28147  break;
28148  case 19:
28149  xselinuxGetSelectionContext(tvb, pinfo, offsetp, t, byte_order, length);
28150  break;
28151  case 20:
28152  xselinuxGetSelectionDataContext(tvb, pinfo, offsetp, t, byte_order, length);
28153  break;
28154  case 21:
28155  xselinuxListSelections(tvb, pinfo, offsetp, t, byte_order, length);
28156  break;
28157  case 22:
28158  xselinuxGetClientContext(tvb, pinfo, offsetp, t, byte_order, length);
28159  break;
28160  /* No need for a default case here, since Unknown is printed above,
28161  and UNDECODED() is taken care of by dissect_x11_request */
28162  }
28163 }
28164 
28165 static void register_xselinux(void)
28166 {
28167  set_handler("SELinux", dispatch_xselinux, xselinux_errors, xselinux_events, NULL, xselinux_replies);
28168 }
28169 
28170 static void xtestGetVersion(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
28171 {
28172  proto_tree_add_item(t, hf_x11_xtest_GetVersion_major_version, tvb, *offsetp, 1, byte_order);
28173  *offsetp += 1;
28174  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
28175  *offsetp += 1;
28176  proto_tree_add_item(t, hf_x11_xtest_GetVersion_minor_version, tvb, *offsetp, 2, byte_order);
28177  *offsetp += 2;
28178 }
28179 static void xtestGetVersion_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
28180 {
28181  int sequence_number;
28182 
28183  col_append_fstr(pinfo->cinfo, COL_INFO, "-GetVersion");
28184 
28185  REPLY(reply);
28186  proto_tree_add_item(t, hf_x11_xtest_GetVersion_reply_major_version, tvb, *offsetp, 1, byte_order);
28187  *offsetp += 1;
28188  sequence_number = tvb_get_guint16(tvb, *offsetp, byte_order);
28189  proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
28190  "%d (xtest-GetVersion)", sequence_number);
28191  *offsetp += 2;
28192  proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
28193  *offsetp += 4;
28194  proto_tree_add_item(t, hf_x11_xtest_GetVersion_reply_minor_version, tvb, *offsetp, 2, byte_order);
28195  *offsetp += 2;
28196 }
28197 
28198 static void xtestCompareCursor(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
28199 {
28200  proto_tree_add_item(t, hf_x11_xtest_CompareCursor_window, tvb, *offsetp, 4, byte_order);
28201  *offsetp += 4;
28202  proto_tree_add_item(t, hf_x11_xtest_CompareCursor_cursor, tvb, *offsetp, 4, byte_order);
28203  *offsetp += 4;
28204 }
28205 static void xtestCompareCursor_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
28206 {
28207  int sequence_number;
28208 
28209  col_append_fstr(pinfo->cinfo, COL_INFO, "-CompareCursor");
28210 
28211  REPLY(reply);
28212  proto_tree_add_item(t, hf_x11_xtest_CompareCursor_reply_same, tvb, *offsetp, 1, byte_order);
28213  *offsetp += 1;
28214  sequence_number = tvb_get_guint16(tvb, *offsetp, byte_order);
28215  proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
28216  "%d (xtest-CompareCursor)", sequence_number);
28217  *offsetp += 2;
28218  proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
28219  *offsetp += 4;
28220 }
28221 
28222 static void xtestFakeInput(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
28223 {
28224  proto_tree_add_item(t, hf_x11_xtest_FakeInput_type, tvb, *offsetp, 1, ENC_NA);
28225  *offsetp += 1;
28226  proto_tree_add_item(t, hf_x11_xtest_FakeInput_detail, tvb, *offsetp, 1, ENC_NA);
28227  *offsetp += 1;
28228  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 2, ENC_NA);
28229  *offsetp += 2;
28230  proto_tree_add_item(t, hf_x11_xtest_FakeInput_time, tvb, *offsetp, 4, byte_order);
28231  *offsetp += 4;
28232  proto_tree_add_item(t, hf_x11_xtest_FakeInput_root, tvb, *offsetp, 4, byte_order);
28233  *offsetp += 4;
28234  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 8, ENC_NA);
28235  *offsetp += 8;
28236  proto_tree_add_item(t, hf_x11_xtest_FakeInput_rootX, tvb, *offsetp, 2, byte_order);
28237  *offsetp += 2;
28238  proto_tree_add_item(t, hf_x11_xtest_FakeInput_rootY, tvb, *offsetp, 2, byte_order);
28239  *offsetp += 2;
28240  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 7, ENC_NA);
28241  *offsetp += 7;
28242  proto_tree_add_item(t, hf_x11_xtest_FakeInput_deviceid, tvb, *offsetp, 1, byte_order);
28243  *offsetp += 1;
28244 }
28245 
28246 static void xtestGrabControl(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
28247 {
28248  proto_tree_add_item(t, hf_x11_xtest_GrabControl_impervious, tvb, *offsetp, 1, byte_order);
28249  *offsetp += 1;
28250  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 3, ENC_NA);
28251  *offsetp += 3;
28252 }
28253 static const value_string xtest_extension_minor[] = {
28254  { 0, "GetVersion" },
28255  { 1, "CompareCursor" },
28256  { 2, "FakeInput" },
28257  { 3, "GrabControl" },
28258  { 0, NULL }
28259 };
28260 const x11_event_info xtest_events[] = {
28261  { NULL, NULL }
28262 };
28263 static x11_reply_info xtest_replies[] = {
28264  { 0, xtestGetVersion_Reply },
28265  { 1, xtestCompareCursor_Reply },
28266  { 0, NULL }
28267 };
28268 
28269 static void dispatch_xtest(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
28270 {
28271  int minor, length;
28272  minor = CARD8(xtest_extension_minor);
28273  length = REQUEST_LENGTH();
28274 
28275  col_append_fstr(pinfo->cinfo, COL_INFO, "-%s",
28276  val_to_str(minor, xtest_extension_minor,
28277  "<Unknown opcode %d>"));
28278  switch (minor) {
28279  case 0:
28280  xtestGetVersion(tvb, pinfo, offsetp, t, byte_order, length);
28281  break;
28282  case 1:
28283  xtestCompareCursor(tvb, pinfo, offsetp, t, byte_order, length);
28284  break;
28285  case 2:
28286  xtestFakeInput(tvb, pinfo, offsetp, t, byte_order, length);
28287  break;
28288  case 3:
28289  xtestGrabControl(tvb, pinfo, offsetp, t, byte_order, length);
28290  break;
28291  /* No need for a default case here, since Unknown is printed above,
28292  and UNDECODED() is taken care of by dissect_x11_request */
28293  }
28294 }
28295 
28296 static void register_xtest(void)
28297 {
28298  set_handler("XTEST", dispatch_xtest, xtest_errors, xtest_events, NULL, xtest_replies);
28299 }
28300 
28301 static void struct_xv_Rational(tvbuff_t *tvb, int *offsetp, proto_tree *root, guint byte_order _U_, int count)
28302 {
28303  int i;
28304  for (i = 0; i < count; i++) {
28305  proto_item *item;
28306  proto_tree *t;
28307 
28308  item = proto_tree_add_item(root, hf_x11_struct_xv_Rational, tvb, *offsetp, 8, ENC_NA);
28309  t = proto_item_add_subtree(item, ett_x11_rectangle);
28310  proto_tree_add_item(t, hf_x11_struct_xv_Rational_numerator, tvb, *offsetp, 4, byte_order);
28311  *offsetp += 4;
28312  proto_tree_add_item(t, hf_x11_struct_xv_Rational_denominator, tvb, *offsetp, 4, byte_order);
28313  *offsetp += 4;
28314  }
28315 }
28316 
28317 static void struct_xv_Format(tvbuff_t *tvb, int *offsetp, proto_tree *root, guint byte_order _U_, int count)
28318 {
28319  int i;
28320  for (i = 0; i < count; i++) {
28321  proto_item *item;
28322  proto_tree *t;
28323 
28324  item = proto_tree_add_item(root, hf_x11_struct_xv_Format, tvb, *offsetp, 8, ENC_NA);
28325  t = proto_item_add_subtree(item, ett_x11_rectangle);
28326  proto_tree_add_item(t, hf_x11_struct_xv_Format_visual, tvb, *offsetp, 4, byte_order);
28327  *offsetp += 4;
28328  proto_tree_add_item(t, hf_x11_struct_xv_Format_depth, tvb, *offsetp, 1, byte_order);
28329  *offsetp += 1;
28330  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 3, ENC_NA);
28331  *offsetp += 3;
28332  }
28333 }
28334 
28335 static int struct_size_xv_AdaptorInfo(tvbuff_t *tvb _U_, int *offsetp _U_, guint byte_order _U_)
28336 {
28337  int size = 0;
28338  int f_name_size;
28339  int f_num_formats;
28340  f_name_size = tvb_get_guint16(tvb, *offsetp + size + 4, byte_order);
28341  f_num_formats = tvb_get_guint16(tvb, *offsetp + size + 8, byte_order);
28342  size += f_name_size * 1;
28343  size = (size + 3) & ~3;
28344  size += f_num_formats * 8;
28345  return size + 12;
28346 }
28347 
28348 static void struct_xv_AdaptorInfo(tvbuff_t *tvb, int *offsetp, proto_tree *root, guint byte_order _U_, int count)
28349 {
28350  int i;
28351  for (i = 0; i < count; i++) {
28352  proto_item *item;
28353  proto_tree *t;
28354  int f_name_size;
28355  int f_num_formats;
28356 
28357  item = proto_tree_add_item(root, hf_x11_struct_xv_AdaptorInfo, tvb, *offsetp, struct_size_xv_AdaptorInfo(tvb, offsetp, byte_order), ENC_NA);
28358  t = proto_item_add_subtree(item, ett_x11_rectangle);
28359  proto_tree_add_item(t, hf_x11_struct_xv_AdaptorInfo_base_id, tvb, *offsetp, 4, byte_order);
28360  *offsetp += 4;
28361  f_name_size = tvb_get_guint16(tvb, *offsetp, byte_order);
28362  proto_tree_add_item(t, hf_x11_struct_xv_AdaptorInfo_name_size, tvb, *offsetp, 2, byte_order);
28363  *offsetp += 2;
28364  proto_tree_add_item(t, hf_x11_struct_xv_AdaptorInfo_num_ports, tvb, *offsetp, 2, byte_order);
28365  *offsetp += 2;
28366  f_num_formats = tvb_get_guint16(tvb, *offsetp, byte_order);
28367  proto_tree_add_item(t, hf_x11_struct_xv_AdaptorInfo_num_formats, tvb, *offsetp, 2, byte_order);
28368  *offsetp += 2;
28369  {
28370  const int* type_bits [] = {
28371  &hf_x11_struct_xv_AdaptorInfo_type_mask_InputMask,
28372  &hf_x11_struct_xv_AdaptorInfo_type_mask_OutputMask,
28373  &hf_x11_struct_xv_AdaptorInfo_type_mask_VideoMask,
28374  &hf_x11_struct_xv_AdaptorInfo_type_mask_StillMask,
28375  &hf_x11_struct_xv_AdaptorInfo_type_mask_ImageMask,
28376  NULL
28377  };
28378  proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_struct_xv_AdaptorInfo_type, ett_x11_rectangle, type_bits, byte_order);
28379  }
28380  *offsetp += 1;
28381  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
28382  *offsetp += 1;
28383  listOfByte(tvb, offsetp, t, hf_x11_struct_xv_AdaptorInfo_name, f_name_size, byte_order);
28384  if (*offsetp % 4) {
28385  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, (4 - *offsetp % 4), ENC_NA);
28386  *offsetp += (4 - *offsetp % 4);
28387  }
28388  struct_xv_Format(tvb, offsetp, t, byte_order, f_num_formats);
28389  }
28390 }
28391 
28392 static int struct_size_xv_EncodingInfo(tvbuff_t *tvb _U_, int *offsetp _U_, guint byte_order _U_)
28393 {
28394  int size = 0;
28395  int f_name_size;
28396  f_name_size = tvb_get_guint16(tvb, *offsetp + size + 4, byte_order);
28397  size += f_name_size * 1;
28398  size = (size + 3) & ~3;
28399  return size + 20;
28400 }
28401 
28402 static void struct_xv_EncodingInfo(tvbuff_t *tvb, int *offsetp, proto_tree *root, guint byte_order _U_, int count)
28403 {
28404  int i;
28405  for (i = 0; i < count; i++) {
28406  proto_item *item;
28407  proto_tree *t;
28408  int f_name_size;
28409 
28410  item = proto_tree_add_item(root, hf_x11_struct_xv_EncodingInfo, tvb, *offsetp, struct_size_xv_EncodingInfo(tvb, offsetp, byte_order), ENC_NA);
28411  t = proto_item_add_subtree(item, ett_x11_rectangle);
28412  proto_tree_add_item(t, hf_x11_struct_xv_EncodingInfo_encoding, tvb, *offsetp, 4, byte_order);
28413  *offsetp += 4;
28414  f_name_size = tvb_get_guint16(tvb, *offsetp, byte_order);
28415  proto_tree_add_item(t, hf_x11_struct_xv_EncodingInfo_name_size, tvb, *offsetp, 2, byte_order);
28416  *offsetp += 2;
28417  proto_tree_add_item(t, hf_x11_struct_xv_EncodingInfo_width, tvb, *offsetp, 2, byte_order);
28418  *offsetp += 2;
28419  proto_tree_add_item(t, hf_x11_struct_xv_EncodingInfo_height, tvb, *offsetp, 2, byte_order);
28420  *offsetp += 2;
28421  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 2, ENC_NA);
28422  *offsetp += 2;
28423  struct_xv_Rational(tvb, offsetp, t, byte_order, 1);
28424  listOfByte(tvb, offsetp, t, hf_x11_struct_xv_EncodingInfo_name, f_name_size, byte_order);
28425  if (*offsetp % 4) {
28426  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, (4 - *offsetp % 4), ENC_NA);
28427  *offsetp += (4 - *offsetp % 4);
28428  }
28429  }
28430 }
28431 
28432 static int struct_size_xv_AttributeInfo(tvbuff_t *tvb _U_, int *offsetp _U_, guint byte_order _U_)
28433 {
28434  int size = 0;
28435  int f_size;
28436  f_size = tvb_get_guint32(tvb, *offsetp + size + 12, byte_order);
28437  size += f_size * 1;
28438  size = (size + 3) & ~3;
28439  return size + 16;
28440 }
28441 
28442 static void struct_xv_AttributeInfo(tvbuff_t *tvb, int *offsetp, proto_tree *root, guint byte_order _U_, int count)
28443 {
28444  int i;
28445  for (i = 0; i < count; i++) {
28446  proto_item *item;
28447  proto_tree *t;
28448  int f_size;
28449 
28450  item = proto_tree_add_item(root, hf_x11_struct_xv_AttributeInfo, tvb, *offsetp, struct_size_xv_AttributeInfo(tvb, offsetp, byte_order), ENC_NA);
28451  t = proto_item_add_subtree(item, ett_x11_rectangle);
28452  {
28453  const int* flags_bits [] = {
28454  &hf_x11_struct_xv_AttributeInfo_flags_mask_Gettable,
28455  &hf_x11_struct_xv_AttributeInfo_flags_mask_Settable,
28456  NULL
28457  };
28458  proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_struct_xv_AttributeInfo_flags, ett_x11_rectangle, flags_bits, byte_order);
28459  }
28460  *offsetp += 4;
28461  proto_tree_add_item(t, hf_x11_struct_xv_AttributeInfo_min, tvb, *offsetp, 4, byte_order);
28462  *offsetp += 4;
28463  proto_tree_add_item(t, hf_x11_struct_xv_AttributeInfo_max, tvb, *offsetp, 4, byte_order);
28464  *offsetp += 4;
28465  f_size = tvb_get_guint32(tvb, *offsetp, byte_order);
28466  proto_tree_add_item(t, hf_x11_struct_xv_AttributeInfo_size, tvb, *offsetp, 4, byte_order);
28467  *offsetp += 4;
28468  listOfByte(tvb, offsetp, t, hf_x11_struct_xv_AttributeInfo_name, f_size, byte_order);
28469  if (*offsetp % 4) {
28470  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, (4 - *offsetp % 4), ENC_NA);
28471  *offsetp += (4 - *offsetp % 4);
28472  }
28473  }
28474 }
28475 
28476 static void struct_xv_ImageFormatInfo(tvbuff_t *tvb, int *offsetp, proto_tree *root, guint byte_order _U_, int count)
28477 {
28478  int i;
28479  for (i = 0; i < count; i++) {
28480  proto_item *item;
28481  proto_tree *t;
28482 
28483  item = proto_tree_add_item(root, hf_x11_struct_xv_ImageFormatInfo, tvb, *offsetp, 128, ENC_NA);
28484  t = proto_item_add_subtree(item, ett_x11_rectangle);
28485  proto_tree_add_item(t, hf_x11_struct_xv_ImageFormatInfo_id, tvb, *offsetp, 4, byte_order);
28486  *offsetp += 4;
28487  field8(tvb, offsetp, t, hf_x11_struct_xv_ImageFormatInfo_type, byte_order);
28488  field8(tvb, offsetp, t, hf_x11_struct_xv_ImageFormatInfo_byte_order, byte_order);
28489  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 2, ENC_NA);
28490  *offsetp += 2;
28491  listOfByte(tvb, offsetp, t, hf_x11_struct_xv_ImageFormatInfo_guid, 16, byte_order);
28492  proto_tree_add_item(t, hf_x11_struct_xv_ImageFormatInfo_bpp, tvb, *offsetp, 1, byte_order);
28493  *offsetp += 1;
28494  proto_tree_add_item(t, hf_x11_struct_xv_ImageFormatInfo_num_planes, tvb, *offsetp, 1, byte_order);
28495  *offsetp += 1;
28496  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 2, ENC_NA);
28497  *offsetp += 2;
28498  proto_tree_add_item(t, hf_x11_struct_xv_ImageFormatInfo_depth, tvb, *offsetp, 1, byte_order);
28499  *offsetp += 1;
28500  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 3, ENC_NA);
28501  *offsetp += 3;
28502  proto_tree_add_item(t, hf_x11_struct_xv_ImageFormatInfo_red_mask, tvb, *offsetp, 4, byte_order);
28503  *offsetp += 4;
28504  proto_tree_add_item(t, hf_x11_struct_xv_ImageFormatInfo_green_mask, tvb, *offsetp, 4, byte_order);
28505  *offsetp += 4;
28506  proto_tree_add_item(t, hf_x11_struct_xv_ImageFormatInfo_blue_mask, tvb, *offsetp, 4, byte_order);
28507  *offsetp += 4;
28508  field8(tvb, offsetp, t, hf_x11_struct_xv_ImageFormatInfo_format, byte_order);
28509  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 3, ENC_NA);
28510  *offsetp += 3;
28511  proto_tree_add_item(t, hf_x11_struct_xv_ImageFormatInfo_y_sample_bits, tvb, *offsetp, 4, byte_order);
28512  *offsetp += 4;
28513  proto_tree_add_item(t, hf_x11_struct_xv_ImageFormatInfo_u_sample_bits, tvb, *offsetp, 4, byte_order);
28514  *offsetp += 4;
28515  proto_tree_add_item(t, hf_x11_struct_xv_ImageFormatInfo_v_sample_bits, tvb, *offsetp, 4, byte_order);
28516  *offsetp += 4;
28517  proto_tree_add_item(t, hf_x11_struct_xv_ImageFormatInfo_vhorz_y_period, tvb, *offsetp, 4, byte_order);
28518  *offsetp += 4;
28519  proto_tree_add_item(t, hf_x11_struct_xv_ImageFormatInfo_vhorz_u_period, tvb, *offsetp, 4, byte_order);
28520  *offsetp += 4;
28521  proto_tree_add_item(t, hf_x11_struct_xv_ImageFormatInfo_vhorz_v_period, tvb, *offsetp, 4, byte_order);
28522  *offsetp += 4;
28523  proto_tree_add_item(t, hf_x11_struct_xv_ImageFormatInfo_vvert_y_period, tvb, *offsetp, 4, byte_order);
28524  *offsetp += 4;
28525  proto_tree_add_item(t, hf_x11_struct_xv_ImageFormatInfo_vvert_u_period, tvb, *offsetp, 4, byte_order);
28526  *offsetp += 4;
28527  proto_tree_add_item(t, hf_x11_struct_xv_ImageFormatInfo_vvert_v_period, tvb, *offsetp, 4, byte_order);
28528  *offsetp += 4;
28529  listOfByte(tvb, offsetp, t, hf_x11_struct_xv_ImageFormatInfo_vcomp_order, 32, byte_order);
28530  field8(tvb, offsetp, t, hf_x11_struct_xv_ImageFormatInfo_vscanline_order, byte_order);
28531  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 11, ENC_NA);
28532  *offsetp += 11;
28533  }
28534 }
28535 
28536 static void xvPortNotify(tvbuff_t *tvb, int *offsetp, proto_tree *t, guint byte_order)
28537 {
28538  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
28539  *offsetp += 1;
28540  CARD16(event_sequencenumber);
28541  proto_tree_add_item(t, hf_x11_xv_PortNotify_time, tvb, *offsetp, 4, byte_order);
28542  *offsetp += 4;
28543  proto_tree_add_item(t, hf_x11_xv_PortNotify_port, tvb, *offsetp, 4, byte_order);
28544  *offsetp += 4;
28545  proto_tree_add_item(t, hf_x11_xv_PortNotify_attribute, tvb, *offsetp, 4, byte_order);
28546  *offsetp += 4;
28547  proto_tree_add_item(t, hf_x11_xv_PortNotify_value, tvb, *offsetp, 4, byte_order);
28548  *offsetp += 4;
28549 }
28550 
28551 
28552 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_)
28553 {
28554 }
28555 static void xvQueryExtension_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
28556 {
28557  int sequence_number;
28558 
28559  col_append_fstr(pinfo->cinfo, COL_INFO, "-QueryExtension");
28560 
28561  REPLY(reply);
28562  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
28563  *offsetp += 1;
28564  sequence_number = tvb_get_guint16(tvb, *offsetp, byte_order);
28565  proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
28566  "%d (xv-QueryExtension)", sequence_number);
28567  *offsetp += 2;
28568  proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
28569  *offsetp += 4;
28570  proto_tree_add_item(t, hf_x11_xv_QueryExtension_reply_major, tvb, *offsetp, 2, byte_order);
28571  *offsetp += 2;
28572  proto_tree_add_item(t, hf_x11_xv_QueryExtension_reply_minor, tvb, *offsetp, 2, byte_order);
28573  *offsetp += 2;
28574 }
28575 
28576 static void xvQueryAdaptors(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
28577 {
28578  proto_tree_add_item(t, hf_x11_xv_QueryAdaptors_window, tvb, *offsetp, 4, byte_order);
28579  *offsetp += 4;
28580 }
28581 static void xvQueryAdaptors_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
28582 {
28583  int sequence_number;
28584  int f_num_adaptors;
28585 
28586  col_append_fstr(pinfo->cinfo, COL_INFO, "-QueryAdaptors");
28587 
28588  REPLY(reply);
28589  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
28590  *offsetp += 1;
28591  sequence_number = tvb_get_guint16(tvb, *offsetp, byte_order);
28592  proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
28593  "%d (xv-QueryAdaptors)", sequence_number);
28594  *offsetp += 2;
28595  proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
28596  *offsetp += 4;
28597  f_num_adaptors = tvb_get_guint16(tvb, *offsetp, byte_order);
28598  proto_tree_add_item(t, hf_x11_xv_QueryAdaptors_reply_num_adaptors, tvb, *offsetp, 2, byte_order);
28599  *offsetp += 2;
28600  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 22, ENC_NA);
28601  *offsetp += 22;
28602  struct_xv_AdaptorInfo(tvb, offsetp, t, byte_order, f_num_adaptors);
28603 }
28604 
28605 static void xvQueryEncodings(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
28606 {
28607  proto_tree_add_item(t, hf_x11_xv_QueryEncodings_port, tvb, *offsetp, 4, byte_order);
28608  *offsetp += 4;
28609 }
28610 static void xvQueryEncodings_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
28611 {
28612  int sequence_number;
28613  int f_num_encodings;
28614 
28615  col_append_fstr(pinfo->cinfo, COL_INFO, "-QueryEncodings");
28616 
28617  REPLY(reply);
28618  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
28619  *offsetp += 1;
28620  sequence_number = tvb_get_guint16(tvb, *offsetp, byte_order);
28621  proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
28622  "%d (xv-QueryEncodings)", sequence_number);
28623  *offsetp += 2;
28624  proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
28625  *offsetp += 4;
28626  f_num_encodings = tvb_get_guint16(tvb, *offsetp, byte_order);
28627  proto_tree_add_item(t, hf_x11_xv_QueryEncodings_reply_num_encodings, tvb, *offsetp, 2, byte_order);
28628  *offsetp += 2;
28629  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 22, ENC_NA);
28630  *offsetp += 22;
28631  struct_xv_EncodingInfo(tvb, offsetp, t, byte_order, f_num_encodings);
28632 }
28633 
28634 static void xvGrabPort(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
28635 {
28636  proto_tree_add_item(t, hf_x11_xv_GrabPort_port, tvb, *offsetp, 4, byte_order);
28637  *offsetp += 4;
28638  field32(tvb, offsetp, t, hf_x11_xv_GrabPort_time, byte_order);
28639 }
28640 static void xvGrabPort_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
28641 {
28642  int sequence_number;
28643 
28644  col_append_fstr(pinfo->cinfo, COL_INFO, "-GrabPort");
28645 
28646  REPLY(reply);
28647  field8(tvb, offsetp, t, hf_x11_xv_GrabPort_reply_result, byte_order);
28648  sequence_number = tvb_get_guint16(tvb, *offsetp, byte_order);
28649  proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
28650  "%d (xv-GrabPort)", sequence_number);
28651  *offsetp += 2;
28652  proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
28653  *offsetp += 4;
28654 }
28655 
28656 static void xvUngrabPort(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
28657 {
28658  proto_tree_add_item(t, hf_x11_xv_UngrabPort_port, tvb, *offsetp, 4, byte_order);
28659  *offsetp += 4;
28660  field32(tvb, offsetp, t, hf_x11_xv_UngrabPort_time, byte_order);
28661 }
28662 
28663 static void xvPutVideo(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
28664 {
28665  proto_tree_add_item(t, hf_x11_xv_PutVideo_port, tvb, *offsetp, 4, byte_order);
28666  *offsetp += 4;
28667  proto_tree_add_item(t, hf_x11_xv_PutVideo_drawable, tvb, *offsetp, 4, byte_order);
28668  *offsetp += 4;
28669  proto_tree_add_item(t, hf_x11_xv_PutVideo_gc, tvb, *offsetp, 4, byte_order);
28670  *offsetp += 4;
28671  proto_tree_add_item(t, hf_x11_xv_PutVideo_vid_x, tvb, *offsetp, 2, byte_order);
28672  *offsetp += 2;
28673  proto_tree_add_item(t, hf_x11_xv_PutVideo_vid_y, tvb, *offsetp, 2, byte_order);
28674  *offsetp += 2;
28675  proto_tree_add_item(t, hf_x11_xv_PutVideo_vid_w, tvb, *offsetp, 2, byte_order);
28676  *offsetp += 2;
28677  proto_tree_add_item(t, hf_x11_xv_PutVideo_vid_h, tvb, *offsetp, 2, byte_order);
28678  *offsetp += 2;
28679  proto_tree_add_item(t, hf_x11_xv_PutVideo_drw_x, tvb, *offsetp, 2, byte_order);
28680  *offsetp += 2;
28681  proto_tree_add_item(t, hf_x11_xv_PutVideo_drw_y, tvb, *offsetp, 2, byte_order);
28682  *offsetp += 2;
28683  proto_tree_add_item(t, hf_x11_xv_PutVideo_drw_w, tvb, *offsetp, 2, byte_order);
28684  *offsetp += 2;
28685  proto_tree_add_item(t, hf_x11_xv_PutVideo_drw_h, tvb, *offsetp, 2, byte_order);
28686  *offsetp += 2;
28687 }
28688 
28689 static void xvPutStill(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
28690 {
28691  proto_tree_add_item(t, hf_x11_xv_PutStill_port, tvb, *offsetp, 4, byte_order);
28692  *offsetp += 4;
28693  proto_tree_add_item(t, hf_x11_xv_PutStill_drawable, tvb, *offsetp, 4, byte_order);
28694  *offsetp += 4;
28695  proto_tree_add_item(t, hf_x11_xv_PutStill_gc, tvb, *offsetp, 4, byte_order);
28696  *offsetp += 4;
28697  proto_tree_add_item(t, hf_x11_xv_PutStill_vid_x, tvb, *offsetp, 2, byte_order);
28698  *offsetp += 2;
28699  proto_tree_add_item(t, hf_x11_xv_PutStill_vid_y, tvb, *offsetp, 2, byte_order);
28700  *offsetp += 2;
28701  proto_tree_add_item(t, hf_x11_xv_PutStill_vid_w, tvb, *offsetp, 2, byte_order);
28702  *offsetp += 2;
28703  proto_tree_add_item(t, hf_x11_xv_PutStill_vid_h, tvb, *offsetp, 2, byte_order);
28704  *offsetp += 2;
28705  proto_tree_add_item(t, hf_x11_xv_PutStill_drw_x, tvb, *offsetp, 2, byte_order);
28706  *offsetp += 2;
28707  proto_tree_add_item(t, hf_x11_xv_PutStill_drw_y, tvb, *offsetp, 2, byte_order);
28708  *offsetp += 2;
28709  proto_tree_add_item(t, hf_x11_xv_PutStill_drw_w, tvb, *offsetp, 2, byte_order);
28710  *offsetp += 2;
28711  proto_tree_add_item(t, hf_x11_xv_PutStill_drw_h, tvb, *offsetp, 2, byte_order);
28712  *offsetp += 2;
28713 }
28714 
28715 static void xvGetVideo(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
28716 {
28717  proto_tree_add_item(t, hf_x11_xv_GetVideo_port, tvb, *offsetp, 4, byte_order);
28718  *offsetp += 4;
28719  proto_tree_add_item(t, hf_x11_xv_GetVideo_drawable, tvb, *offsetp, 4, byte_order);
28720  *offsetp += 4;
28721  proto_tree_add_item(t, hf_x11_xv_GetVideo_gc, tvb, *offsetp, 4, byte_order);
28722  *offsetp += 4;
28723  proto_tree_add_item(t, hf_x11_xv_GetVideo_vid_x, tvb, *offsetp, 2, byte_order);
28724  *offsetp += 2;
28725  proto_tree_add_item(t, hf_x11_xv_GetVideo_vid_y, tvb, *offsetp, 2, byte_order);
28726  *offsetp += 2;
28727  proto_tree_add_item(t, hf_x11_xv_GetVideo_vid_w, tvb, *offsetp, 2, byte_order);
28728  *offsetp += 2;
28729  proto_tree_add_item(t, hf_x11_xv_GetVideo_vid_h, tvb, *offsetp, 2, byte_order);
28730  *offsetp += 2;
28731  proto_tree_add_item(t, hf_x11_xv_GetVideo_drw_x, tvb, *offsetp, 2, byte_order);
28732  *offsetp += 2;
28733  proto_tree_add_item(t, hf_x11_xv_GetVideo_drw_y, tvb, *offsetp, 2, byte_order);
28734  *offsetp += 2;
28735  proto_tree_add_item(t, hf_x11_xv_GetVideo_drw_w, tvb, *offsetp, 2, byte_order);
28736  *offsetp += 2;
28737  proto_tree_add_item(t, hf_x11_xv_GetVideo_drw_h, tvb, *offsetp, 2, byte_order);
28738  *offsetp += 2;
28739 }
28740 
28741 static void xvGetStill(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
28742 {
28743  proto_tree_add_item(t, hf_x11_xv_GetStill_port, tvb, *offsetp, 4, byte_order);
28744  *offsetp += 4;
28745  proto_tree_add_item(t, hf_x11_xv_GetStill_drawable, tvb, *offsetp, 4, byte_order);
28746  *offsetp += 4;
28747  proto_tree_add_item(t, hf_x11_xv_GetStill_gc, tvb, *offsetp, 4, byte_order);
28748  *offsetp += 4;
28749  proto_tree_add_item(t, hf_x11_xv_GetStill_vid_x, tvb, *offsetp, 2, byte_order);
28750  *offsetp += 2;
28751  proto_tree_add_item(t, hf_x11_xv_GetStill_vid_y, tvb, *offsetp, 2, byte_order);
28752  *offsetp += 2;
28753  proto_tree_add_item(t, hf_x11_xv_GetStill_vid_w, tvb, *offsetp, 2, byte_order);
28754  *offsetp += 2;
28755  proto_tree_add_item(t, hf_x11_xv_GetStill_vid_h, tvb, *offsetp, 2, byte_order);
28756  *offsetp += 2;
28757  proto_tree_add_item(t, hf_x11_xv_GetStill_drw_x, tvb, *offsetp, 2, byte_order);
28758  *offsetp += 2;
28759  proto_tree_add_item(t, hf_x11_xv_GetStill_drw_y, tvb, *offsetp, 2, byte_order);
28760  *offsetp += 2;
28761  proto_tree_add_item(t, hf_x11_xv_GetStill_drw_w, tvb, *offsetp, 2, byte_order);
28762  *offsetp += 2;
28763  proto_tree_add_item(t, hf_x11_xv_GetStill_drw_h, tvb, *offsetp, 2, byte_order);
28764  *offsetp += 2;
28765 }
28766 
28767 static void xvStopVideo(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
28768 {
28769  proto_tree_add_item(t, hf_x11_xv_StopVideo_port, tvb, *offsetp, 4, byte_order);
28770  *offsetp += 4;
28771  proto_tree_add_item(t, hf_x11_xv_StopVideo_drawable, tvb, *offsetp, 4, byte_order);
28772  *offsetp += 4;
28773 }
28774 
28775 static void xvSelectVideoNotify(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
28776 {
28777  proto_tree_add_item(t, hf_x11_xv_SelectVideoNotify_drawable, tvb, *offsetp, 4, byte_order);
28778  *offsetp += 4;
28779  proto_tree_add_item(t, hf_x11_xv_SelectVideoNotify_onoff, tvb, *offsetp, 1, byte_order);
28780  *offsetp += 1;
28781  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 3, ENC_NA);
28782  *offsetp += 3;
28783 }
28784 
28785 static void xvSelectPortNotify(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
28786 {
28787  proto_tree_add_item(t, hf_x11_xv_SelectPortNotify_port, tvb, *offsetp, 4, byte_order);
28788  *offsetp += 4;
28789  proto_tree_add_item(t, hf_x11_xv_SelectPortNotify_onoff, tvb, *offsetp, 1, byte_order);
28790  *offsetp += 1;
28791  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 3, ENC_NA);
28792  *offsetp += 3;
28793 }
28794 
28795 static void xvQueryBestSize(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
28796 {
28797  proto_tree_add_item(t, hf_x11_xv_QueryBestSize_port, tvb, *offsetp, 4, byte_order);
28798  *offsetp += 4;
28799  proto_tree_add_item(t, hf_x11_xv_QueryBestSize_vid_w, tvb, *offsetp, 2, byte_order);
28800  *offsetp += 2;
28801  proto_tree_add_item(t, hf_x11_xv_QueryBestSize_vid_h, tvb, *offsetp, 2, byte_order);
28802  *offsetp += 2;
28803  proto_tree_add_item(t, hf_x11_xv_QueryBestSize_drw_w, tvb, *offsetp, 2, byte_order);
28804  *offsetp += 2;
28805  proto_tree_add_item(t, hf_x11_xv_QueryBestSize_drw_h, tvb, *offsetp, 2, byte_order);
28806  *offsetp += 2;
28807  proto_tree_add_item(t, hf_x11_xv_QueryBestSize_motion, tvb, *offsetp, 1, byte_order);
28808  *offsetp += 1;
28809  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 3, ENC_NA);
28810  *offsetp += 3;
28811 }
28812 static void xvQueryBestSize_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
28813 {
28814  int sequence_number;
28815 
28816  col_append_fstr(pinfo->cinfo, COL_INFO, "-QueryBestSize");
28817 
28818  REPLY(reply);
28819  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
28820  *offsetp += 1;
28821  sequence_number = tvb_get_guint16(tvb, *offsetp, byte_order);
28822  proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
28823  "%d (xv-QueryBestSize)", sequence_number);
28824  *offsetp += 2;
28825  proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
28826  *offsetp += 4;
28827  proto_tree_add_item(t, hf_x11_xv_QueryBestSize_reply_actual_width, tvb, *offsetp, 2, byte_order);
28828  *offsetp += 2;
28829  proto_tree_add_item(t, hf_x11_xv_QueryBestSize_reply_actual_height, tvb, *offsetp, 2, byte_order);
28830  *offsetp += 2;
28831 }
28832 
28833 static void xvSetPortAttribute(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
28834 {
28835  proto_tree_add_item(t, hf_x11_xv_SetPortAttribute_port, tvb, *offsetp, 4, byte_order);
28836  *offsetp += 4;
28837  proto_tree_add_item(t, hf_x11_xv_SetPortAttribute_attribute, tvb, *offsetp, 4, byte_order);
28838  *offsetp += 4;
28839  proto_tree_add_item(t, hf_x11_xv_SetPortAttribute_value, tvb, *offsetp, 4, byte_order);
28840  *offsetp += 4;
28841 }
28842 
28843 static void xvGetPortAttribute(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
28844 {
28845  proto_tree_add_item(t, hf_x11_xv_GetPortAttribute_port, tvb, *offsetp, 4, byte_order);
28846  *offsetp += 4;
28847  proto_tree_add_item(t, hf_x11_xv_GetPortAttribute_attribute, tvb, *offsetp, 4, byte_order);
28848  *offsetp += 4;
28849 }
28850 static void xvGetPortAttribute_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
28851 {
28852  int sequence_number;
28853 
28854  col_append_fstr(pinfo->cinfo, COL_INFO, "-GetPortAttribute");
28855 
28856  REPLY(reply);
28857  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
28858  *offsetp += 1;
28859  sequence_number = tvb_get_guint16(tvb, *offsetp, byte_order);
28860  proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
28861  "%d (xv-GetPortAttribute)", sequence_number);
28862  *offsetp += 2;
28863  proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
28864  *offsetp += 4;
28865  proto_tree_add_item(t, hf_x11_xv_GetPortAttribute_reply_value, tvb, *offsetp, 4, byte_order);
28866  *offsetp += 4;
28867 }
28868 
28869 static void xvQueryPortAttributes(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
28870 {
28871  proto_tree_add_item(t, hf_x11_xv_QueryPortAttributes_port, tvb, *offsetp, 4, byte_order);
28872  *offsetp += 4;
28873 }
28874 static void xvQueryPortAttributes_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
28875 {
28876  int sequence_number;
28877  int f_num_attributes;
28878 
28879  col_append_fstr(pinfo->cinfo, COL_INFO, "-QueryPortAttributes");
28880 
28881  REPLY(reply);
28882  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
28883  *offsetp += 1;
28884  sequence_number = tvb_get_guint16(tvb, *offsetp, byte_order);
28885  proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
28886  "%d (xv-QueryPortAttributes)", sequence_number);
28887  *offsetp += 2;
28888  proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
28889  *offsetp += 4;
28890  f_num_attributes = tvb_get_guint32(tvb, *offsetp, byte_order);
28891  proto_tree_add_item(t, hf_x11_xv_QueryPortAttributes_reply_num_attributes, tvb, *offsetp, 4, byte_order);
28892  *offsetp += 4;
28893  proto_tree_add_item(t, hf_x11_xv_QueryPortAttributes_reply_text_size, tvb, *offsetp, 4, byte_order);
28894  *offsetp += 4;
28895  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 16, ENC_NA);
28896  *offsetp += 16;
28897  struct_xv_AttributeInfo(tvb, offsetp, t, byte_order, f_num_attributes);
28898 }
28899 
28900 static void xvListImageFormats(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
28901 {
28902  proto_tree_add_item(t, hf_x11_xv_ListImageFormats_port, tvb, *offsetp, 4, byte_order);
28903  *offsetp += 4;
28904 }
28905 static void xvListImageFormats_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
28906 {
28907  int sequence_number;
28908  int f_num_formats;
28909 
28910  col_append_fstr(pinfo->cinfo, COL_INFO, "-ListImageFormats");
28911 
28912  REPLY(reply);
28913  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
28914  *offsetp += 1;
28915  sequence_number = tvb_get_guint16(tvb, *offsetp, byte_order);
28916  proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
28917  "%d (xv-ListImageFormats)", sequence_number);
28918  *offsetp += 2;
28919  proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
28920  *offsetp += 4;
28921  f_num_formats = tvb_get_guint32(tvb, *offsetp, byte_order);
28922  proto_tree_add_item(t, hf_x11_xv_ListImageFormats_reply_num_formats, tvb, *offsetp, 4, byte_order);
28923  *offsetp += 4;
28924  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 20, ENC_NA);
28925  *offsetp += 20;
28926  struct_xv_ImageFormatInfo(tvb, offsetp, t, byte_order, f_num_formats);
28927 }
28928 
28929 static void xvQueryImageAttributes(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
28930 {
28931  proto_tree_add_item(t, hf_x11_xv_QueryImageAttributes_port, tvb, *offsetp, 4, byte_order);
28932  *offsetp += 4;
28933  proto_tree_add_item(t, hf_x11_xv_QueryImageAttributes_id, tvb, *offsetp, 4, byte_order);
28934  *offsetp += 4;
28935  proto_tree_add_item(t, hf_x11_xv_QueryImageAttributes_width, tvb, *offsetp, 2, byte_order);
28936  *offsetp += 2;
28937  proto_tree_add_item(t, hf_x11_xv_QueryImageAttributes_height, tvb, *offsetp, 2, byte_order);
28938  *offsetp += 2;
28939 }
28940 static void xvQueryImageAttributes_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
28941 {
28942  int sequence_number;
28943  int f_num_planes;
28944 
28945  col_append_fstr(pinfo->cinfo, COL_INFO, "-QueryImageAttributes");
28946 
28947  REPLY(reply);
28948  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
28949  *offsetp += 1;
28950  sequence_number = tvb_get_guint16(tvb, *offsetp, byte_order);
28951  proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
28952  "%d (xv-QueryImageAttributes)", sequence_number);
28953  *offsetp += 2;
28954  proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
28955  *offsetp += 4;
28956  f_num_planes = tvb_get_guint32(tvb, *offsetp, byte_order);
28957  proto_tree_add_item(t, hf_x11_xv_QueryImageAttributes_reply_num_planes, tvb, *offsetp, 4, byte_order);
28958  *offsetp += 4;
28959  proto_tree_add_item(t, hf_x11_xv_QueryImageAttributes_reply_data_size, tvb, *offsetp, 4, byte_order);
28960  *offsetp += 4;
28961  proto_tree_add_item(t, hf_x11_xv_QueryImageAttributes_reply_width, tvb, *offsetp, 2, byte_order);
28962  *offsetp += 2;
28963  proto_tree_add_item(t, hf_x11_xv_QueryImageAttributes_reply_height, tvb, *offsetp, 2, byte_order);
28964  *offsetp += 2;
28965  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 12, ENC_NA);
28966  *offsetp += 12;
28967  listOfCard32(tvb, offsetp, t, hf_x11_xv_QueryImageAttributes_reply_pitches, hf_x11_xv_QueryImageAttributes_reply_pitches_item, f_num_planes, byte_order);
28968  listOfCard32(tvb, offsetp, t, hf_x11_xv_QueryImageAttributes_reply_offsets, hf_x11_xv_QueryImageAttributes_reply_offsets_item, f_num_planes, byte_order);
28969 }
28970 
28971 static void xvPutImage(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
28972 {
28973  proto_tree_add_item(t, hf_x11_xv_PutImage_port, tvb, *offsetp, 4, byte_order);
28974  *offsetp += 4;
28975  proto_tree_add_item(t, hf_x11_xv_PutImage_drawable, tvb, *offsetp, 4, byte_order);
28976  *offsetp += 4;
28977  proto_tree_add_item(t, hf_x11_xv_PutImage_gc, tvb, *offsetp, 4, byte_order);
28978  *offsetp += 4;
28979  proto_tree_add_item(t, hf_x11_xv_PutImage_id, tvb, *offsetp, 4, byte_order);
28980  *offsetp += 4;
28981  proto_tree_add_item(t, hf_x11_xv_PutImage_src_x, tvb, *offsetp, 2, byte_order);
28982  *offsetp += 2;
28983  proto_tree_add_item(t, hf_x11_xv_PutImage_src_y, tvb, *offsetp, 2, byte_order);
28984  *offsetp += 2;
28985  proto_tree_add_item(t, hf_x11_xv_PutImage_src_w, tvb, *offsetp, 2, byte_order);
28986  *offsetp += 2;
28987  proto_tree_add_item(t, hf_x11_xv_PutImage_src_h, tvb, *offsetp, 2, byte_order);
28988  *offsetp += 2;
28989  proto_tree_add_item(t, hf_x11_xv_PutImage_drw_x, tvb, *offsetp, 2, byte_order);
28990  *offsetp += 2;
28991  proto_tree_add_item(t, hf_x11_xv_PutImage_drw_y, tvb, *offsetp, 2, byte_order);
28992  *offsetp += 2;
28993  proto_tree_add_item(t, hf_x11_xv_PutImage_drw_w, tvb, *offsetp, 2, byte_order);
28994  *offsetp += 2;
28995  proto_tree_add_item(t, hf_x11_xv_PutImage_drw_h, tvb, *offsetp, 2, byte_order);
28996  *offsetp += 2;
28997  proto_tree_add_item(t, hf_x11_xv_PutImage_width, tvb, *offsetp, 2, byte_order);
28998  *offsetp += 2;
28999  proto_tree_add_item(t, hf_x11_xv_PutImage_height, tvb, *offsetp, 2, byte_order);
29000  *offsetp += 2;
29001  listOfByte(tvb, offsetp, t, hf_x11_xv_PutImage_data, (length - 40) / 1, byte_order);
29002 }
29003 
29004 static void xvShmPutImage(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
29005 {
29006  proto_tree_add_item(t, hf_x11_xv_ShmPutImage_port, tvb, *offsetp, 4, byte_order);
29007  *offsetp += 4;
29008  proto_tree_add_item(t, hf_x11_xv_ShmPutImage_drawable, tvb, *offsetp, 4, byte_order);
29009  *offsetp += 4;
29010  proto_tree_add_item(t, hf_x11_xv_ShmPutImage_gc, tvb, *offsetp, 4, byte_order);
29011  *offsetp += 4;
29012  proto_tree_add_item(t, hf_x11_xv_ShmPutImage_shmseg, tvb, *offsetp, 4, byte_order);
29013  *offsetp += 4;
29014  proto_tree_add_item(t, hf_x11_xv_ShmPutImage_id, tvb, *offsetp, 4, byte_order);
29015  *offsetp += 4;
29016  proto_tree_add_item(t, hf_x11_xv_ShmPutImage_offset, tvb, *offsetp, 4, byte_order);
29017  *offsetp += 4;
29018  proto_tree_add_item(t, hf_x11_xv_ShmPutImage_src_x, tvb, *offsetp, 2, byte_order);
29019  *offsetp += 2;
29020  proto_tree_add_item(t, hf_x11_xv_ShmPutImage_src_y, tvb, *offsetp, 2, byte_order);
29021  *offsetp += 2;
29022  proto_tree_add_item(t, hf_x11_xv_ShmPutImage_src_w, tvb, *offsetp, 2, byte_order);
29023  *offsetp += 2;
29024  proto_tree_add_item(t, hf_x11_xv_ShmPutImage_src_h, tvb, *offsetp, 2, byte_order);
29025  *offsetp += 2;
29026  proto_tree_add_item(t, hf_x11_xv_ShmPutImage_drw_x, tvb, *offsetp, 2, byte_order);
29027  *offsetp += 2;
29028  proto_tree_add_item(t, hf_x11_xv_ShmPutImage_drw_y, tvb, *offsetp, 2, byte_order);
29029  *offsetp += 2;
29030  proto_tree_add_item(t, hf_x11_xv_ShmPutImage_drw_w, tvb, *offsetp, 2, byte_order);
29031  *offsetp += 2;
29032  proto_tree_add_item(t, hf_x11_xv_ShmPutImage_drw_h, tvb, *offsetp, 2, byte_order);
29033  *offsetp += 2;
29034  proto_tree_add_item(t, hf_x11_xv_ShmPutImage_width, tvb, *offsetp, 2, byte_order);
29035  *offsetp += 2;
29036  proto_tree_add_item(t, hf_x11_xv_ShmPutImage_height, tvb, *offsetp, 2, byte_order);
29037  *offsetp += 2;
29038  proto_tree_add_item(t, hf_x11_xv_ShmPutImage_send_event, tvb, *offsetp, 1, byte_order);
29039  *offsetp += 1;
29040  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 3, ENC_NA);
29041  *offsetp += 3;
29042 }
29043 static const value_string xv_extension_minor[] = {
29044  { 0, "QueryExtension" },
29045  { 1, "QueryAdaptors" },
29046  { 2, "QueryEncodings" },
29047  { 3, "GrabPort" },
29048  { 4, "UngrabPort" },
29049  { 5, "PutVideo" },
29050  { 6, "PutStill" },
29051  { 7, "GetVideo" },
29052  { 8, "GetStill" },
29053  { 9, "StopVideo" },
29054  { 10, "SelectVideoNotify" },
29055  { 11, "SelectPortNotify" },
29056  { 12, "QueryBestSize" },
29057  { 13, "SetPortAttribute" },
29058  { 14, "GetPortAttribute" },
29059  { 15, "QueryPortAttributes" },
29060  { 16, "ListImageFormats" },
29061  { 17, "QueryImageAttributes" },
29062  { 18, "PutImage" },
29063  { 19, "ShmPutImage" },
29064  { 0, NULL }
29065 };
29066 const x11_event_info xv_events[] = {
29067  { "xv-PortNotify", xvPortNotify },
29068  { NULL, NULL }
29069 };
29070 static x11_reply_info xv_replies[] = {
29071  { 0, xvQueryExtension_Reply },
29072  { 1, xvQueryAdaptors_Reply },
29073  { 2, xvQueryEncodings_Reply },
29074  { 3, xvGrabPort_Reply },
29075  { 12, xvQueryBestSize_Reply },
29076  { 14, xvGetPortAttribute_Reply },
29077  { 15, xvQueryPortAttributes_Reply },
29078  { 16, xvListImageFormats_Reply },
29079  { 17, xvQueryImageAttributes_Reply },
29080  { 0, NULL }
29081 };
29082 
29083 static void dispatch_xv(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
29084 {
29085  int minor, length;
29086  minor = CARD8(xv_extension_minor);
29087  length = REQUEST_LENGTH();
29088 
29089  col_append_fstr(pinfo->cinfo, COL_INFO, "-%s",
29090  val_to_str(minor, xv_extension_minor,
29091  "<Unknown opcode %d>"));
29092  switch (minor) {
29093  case 0:
29094  xvQueryExtension(tvb, pinfo, offsetp, t, byte_order, length);
29095  break;
29096  case 1:
29097  xvQueryAdaptors(tvb, pinfo, offsetp, t, byte_order, length);
29098  break;
29099  case 2:
29100  xvQueryEncodings(tvb, pinfo, offsetp, t, byte_order, length);
29101  break;
29102  case 3:
29103  xvGrabPort(tvb, pinfo, offsetp, t, byte_order, length);
29104  break;
29105  case 4:
29106  xvUngrabPort(tvb, pinfo, offsetp, t, byte_order, length);
29107  break;
29108  case 5:
29109  xvPutVideo(tvb, pinfo, offsetp, t, byte_order, length);
29110  break;
29111  case 6:
29112  xvPutStill(tvb, pinfo, offsetp, t, byte_order, length);
29113  break;
29114  case 7:
29115  xvGetVideo(tvb, pinfo, offsetp, t, byte_order, length);
29116  break;
29117  case 8:
29118  xvGetStill(tvb, pinfo, offsetp, t, byte_order, length);
29119  break;
29120  case 9:
29121  xvStopVideo(tvb, pinfo, offsetp, t, byte_order, length);
29122  break;
29123  case 10:
29124  xvSelectVideoNotify(tvb, pinfo, offsetp, t, byte_order, length);
29125  break;
29126  case 11:
29127  xvSelectPortNotify(tvb, pinfo, offsetp, t, byte_order, length);
29128  break;
29129  case 12:
29130  xvQueryBestSize(tvb, pinfo, offsetp, t, byte_order, length);
29131  break;
29132  case 13:
29133  xvSetPortAttribute(tvb, pinfo, offsetp, t, byte_order, length);
29134  break;
29135  case 14:
29136  xvGetPortAttribute(tvb, pinfo, offsetp, t, byte_order, length);
29137  break;
29138  case 15:
29139  xvQueryPortAttributes(tvb, pinfo, offsetp, t, byte_order, length);
29140  break;
29141  case 16:
29142  xvListImageFormats(tvb, pinfo, offsetp, t, byte_order, length);
29143  break;
29144  case 17:
29145  xvQueryImageAttributes(tvb, pinfo, offsetp, t, byte_order, length);
29146  break;
29147  case 18:
29148  xvPutImage(tvb, pinfo, offsetp, t, byte_order, length);
29149  break;
29150  case 19:
29151  xvShmPutImage(tvb, pinfo, offsetp, t, byte_order, length);
29152  break;
29153  /* No need for a default case here, since Unknown is printed above,
29154  and UNDECODED() is taken care of by dissect_x11_request */
29155  }
29156 }
29157 
29158 static void register_xv(void)
29159 {
29160  set_handler("XVideo", dispatch_xv, xv_errors, xv_events, NULL, xv_replies);
29161 }
29162 
29163 static void struct_xvmc_SurfaceInfo(tvbuff_t *tvb, int *offsetp, proto_tree *root, guint byte_order _U_, int count)
29164 {
29165  int i;
29166  for (i = 0; i < count; i++) {
29167  proto_item *item;
29168  proto_tree *t;
29169 
29170  item = proto_tree_add_item(root, hf_x11_struct_xvmc_SurfaceInfo, tvb, *offsetp, 24, ENC_NA);
29171  t = proto_item_add_subtree(item, ett_x11_rectangle);
29172  proto_tree_add_item(t, hf_x11_struct_xvmc_SurfaceInfo_id, tvb, *offsetp, 4, byte_order);
29173  *offsetp += 4;
29174  proto_tree_add_item(t, hf_x11_struct_xvmc_SurfaceInfo_chroma_format, tvb, *offsetp, 2, byte_order);
29175  *offsetp += 2;
29176  proto_tree_add_item(t, hf_x11_struct_xvmc_SurfaceInfo_pad0, tvb, *offsetp, 2, byte_order);
29177  *offsetp += 2;
29178  proto_tree_add_item(t, hf_x11_struct_xvmc_SurfaceInfo_max_width, tvb, *offsetp, 2, byte_order);
29179  *offsetp += 2;
29180  proto_tree_add_item(t, hf_x11_struct_xvmc_SurfaceInfo_max_height, tvb, *offsetp, 2, byte_order);
29181  *offsetp += 2;
29182  proto_tree_add_item(t, hf_x11_struct_xvmc_SurfaceInfo_subpicture_max_width, tvb, *offsetp, 2, byte_order);
29183  *offsetp += 2;
29184  proto_tree_add_item(t, hf_x11_struct_xvmc_SurfaceInfo_subpicture_max_height, tvb, *offsetp, 2, byte_order);
29185  *offsetp += 2;
29186  proto_tree_add_item(t, hf_x11_struct_xvmc_SurfaceInfo_mc_type, tvb, *offsetp, 4, byte_order);
29187  *offsetp += 4;
29188  proto_tree_add_item(t, hf_x11_struct_xvmc_SurfaceInfo_flags, tvb, *offsetp, 4, byte_order);
29189  *offsetp += 4;
29190  }
29191 }
29192 
29193 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_)
29194 {
29195 }
29196 static void xvmcQueryVersion_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
29197 {
29198  int sequence_number;
29199 
29200  col_append_fstr(pinfo->cinfo, COL_INFO, "-QueryVersion");
29201 
29202  REPLY(reply);
29203  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
29204  *offsetp += 1;
29205  sequence_number = tvb_get_guint16(tvb, *offsetp, byte_order);
29206  proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
29207  "%d (xvmc-QueryVersion)", sequence_number);
29208  *offsetp += 2;
29209  proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
29210  *offsetp += 4;
29211  proto_tree_add_item(t, hf_x11_xvmc_QueryVersion_reply_major, tvb, *offsetp, 4, byte_order);
29212  *offsetp += 4;
29213  proto_tree_add_item(t, hf_x11_xvmc_QueryVersion_reply_minor, tvb, *offsetp, 4, byte_order);
29214  *offsetp += 4;
29215 }
29216 
29217 static void xvmcListSurfaceTypes(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
29218 {
29219  proto_tree_add_item(t, hf_x11_xvmc_ListSurfaceTypes_port_id, tvb, *offsetp, 4, byte_order);
29220  *offsetp += 4;
29221 }
29222 static void xvmcListSurfaceTypes_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
29223 {
29224  int sequence_number;
29225  int f_num;
29226 
29227  col_append_fstr(pinfo->cinfo, COL_INFO, "-ListSurfaceTypes");
29228 
29229  REPLY(reply);
29230  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
29231  *offsetp += 1;
29232  sequence_number = tvb_get_guint16(tvb, *offsetp, byte_order);
29233  proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
29234  "%d (xvmc-ListSurfaceTypes)", sequence_number);
29235  *offsetp += 2;
29236  proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
29237  *offsetp += 4;
29238  f_num = tvb_get_guint32(tvb, *offsetp, byte_order);
29239  proto_tree_add_item(t, hf_x11_xvmc_ListSurfaceTypes_reply_num, tvb, *offsetp, 4, byte_order);
29240  *offsetp += 4;
29241  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 20, ENC_NA);
29242  *offsetp += 20;
29243  struct_xvmc_SurfaceInfo(tvb, offsetp, t, byte_order, f_num);
29244 }
29245 
29246 static void xvmcCreateContext(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
29247 {
29248  proto_tree_add_item(t, hf_x11_xvmc_CreateContext_context_id, tvb, *offsetp, 4, byte_order);
29249  *offsetp += 4;
29250  proto_tree_add_item(t, hf_x11_xvmc_CreateContext_port_id, tvb, *offsetp, 4, byte_order);
29251  *offsetp += 4;
29252  proto_tree_add_item(t, hf_x11_xvmc_CreateContext_surface_id, tvb, *offsetp, 4, byte_order);
29253  *offsetp += 4;
29254  proto_tree_add_item(t, hf_x11_xvmc_CreateContext_width, tvb, *offsetp, 2, byte_order);
29255  *offsetp += 2;
29256  proto_tree_add_item(t, hf_x11_xvmc_CreateContext_height, tvb, *offsetp, 2, byte_order);
29257  *offsetp += 2;
29258  proto_tree_add_item(t, hf_x11_xvmc_CreateContext_flags, tvb, *offsetp, 4, byte_order);
29259  *offsetp += 4;
29260 }
29261 static void xvmcCreateContext_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
29262 {
29263  int sequence_number;
29264  int f_length;
29265 
29266  col_append_fstr(pinfo->cinfo, COL_INFO, "-CreateContext");
29267 
29268  REPLY(reply);
29269  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
29270  *offsetp += 1;
29271  sequence_number = tvb_get_guint16(tvb, *offsetp, byte_order);
29272  proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
29273  "%d (xvmc-CreateContext)", sequence_number);
29274  *offsetp += 2;
29275  f_length = tvb_get_guint32(tvb, *offsetp, byte_order);
29276  proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
29277  *offsetp += 4;
29278  proto_tree_add_item(t, hf_x11_xvmc_CreateContext_reply_width_actual, tvb, *offsetp, 2, byte_order);
29279  *offsetp += 2;
29280  proto_tree_add_item(t, hf_x11_xvmc_CreateContext_reply_height_actual, tvb, *offsetp, 2, byte_order);
29281  *offsetp += 2;
29282  proto_tree_add_item(t, hf_x11_xvmc_CreateContext_reply_flags_return, tvb, *offsetp, 4, byte_order);
29283  *offsetp += 4;
29284  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 20, ENC_NA);
29285  *offsetp += 20;
29286  listOfCard32(tvb, offsetp, t, hf_x11_xvmc_CreateContext_reply_priv_data, hf_x11_xvmc_CreateContext_reply_priv_data_item, f_length, byte_order);
29287 }
29288 
29289 static void xvmcDestroyContext(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
29290 {
29291  proto_tree_add_item(t, hf_x11_xvmc_DestroyContext_context_id, tvb, *offsetp, 4, byte_order);
29292  *offsetp += 4;
29293 }
29294 
29295 static void xvmcCreateSurface(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
29296 {
29297  proto_tree_add_item(t, hf_x11_xvmc_CreateSurface_surface_id, tvb, *offsetp, 4, byte_order);
29298  *offsetp += 4;
29299  proto_tree_add_item(t, hf_x11_xvmc_CreateSurface_context_id, tvb, *offsetp, 4, byte_order);
29300  *offsetp += 4;
29301 }
29302 static void xvmcCreateSurface_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
29303 {
29304  int sequence_number;
29305  int f_length;
29306 
29307  col_append_fstr(pinfo->cinfo, COL_INFO, "-CreateSurface");
29308 
29309  REPLY(reply);
29310  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
29311  *offsetp += 1;
29312  sequence_number = tvb_get_guint16(tvb, *offsetp, byte_order);
29313  proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
29314  "%d (xvmc-CreateSurface)", sequence_number);
29315  *offsetp += 2;
29316  f_length = tvb_get_guint32(tvb, *offsetp, byte_order);
29317  proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
29318  *offsetp += 4;
29319  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 24, ENC_NA);
29320  *offsetp += 24;
29321  listOfCard32(tvb, offsetp, t, hf_x11_xvmc_CreateSurface_reply_priv_data, hf_x11_xvmc_CreateSurface_reply_priv_data_item, f_length, byte_order);
29322 }
29323 
29324 static void xvmcDestroySurface(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
29325 {
29326  proto_tree_add_item(t, hf_x11_xvmc_DestroySurface_surface_id, tvb, *offsetp, 4, byte_order);
29327  *offsetp += 4;
29328 }
29329 
29330 static void xvmcCreateSubpicture(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
29331 {
29332  proto_tree_add_item(t, hf_x11_xvmc_CreateSubpicture_subpicture_id, tvb, *offsetp, 4, byte_order);
29333  *offsetp += 4;
29334  proto_tree_add_item(t, hf_x11_xvmc_CreateSubpicture_context, tvb, *offsetp, 4, byte_order);
29335  *offsetp += 4;
29336  proto_tree_add_item(t, hf_x11_xvmc_CreateSubpicture_xvimage_id, tvb, *offsetp, 4, byte_order);
29337  *offsetp += 4;
29338  proto_tree_add_item(t, hf_x11_xvmc_CreateSubpicture_width, tvb, *offsetp, 2, byte_order);
29339  *offsetp += 2;
29340  proto_tree_add_item(t, hf_x11_xvmc_CreateSubpicture_height, tvb, *offsetp, 2, byte_order);
29341  *offsetp += 2;
29342 }
29343 static void xvmcCreateSubpicture_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
29344 {
29345  int sequence_number;
29346  int f_length;
29347 
29348  col_append_fstr(pinfo->cinfo, COL_INFO, "-CreateSubpicture");
29349 
29350  REPLY(reply);
29351  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
29352  *offsetp += 1;
29353  sequence_number = tvb_get_guint16(tvb, *offsetp, byte_order);
29354  proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
29355  "%d (xvmc-CreateSubpicture)", sequence_number);
29356  *offsetp += 2;
29357  f_length = tvb_get_guint32(tvb, *offsetp, byte_order);
29358  proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
29359  *offsetp += 4;
29360  proto_tree_add_item(t, hf_x11_xvmc_CreateSubpicture_reply_width_actual, tvb, *offsetp, 2, byte_order);
29361  *offsetp += 2;
29362  proto_tree_add_item(t, hf_x11_xvmc_CreateSubpicture_reply_height_actual, tvb, *offsetp, 2, byte_order);
29363  *offsetp += 2;
29364  proto_tree_add_item(t, hf_x11_xvmc_CreateSubpicture_reply_num_palette_entries, tvb, *offsetp, 2, byte_order);
29365  *offsetp += 2;
29366  proto_tree_add_item(t, hf_x11_xvmc_CreateSubpicture_reply_entry_bytes, tvb, *offsetp, 2, byte_order);
29367  *offsetp += 2;
29368  listOfByte(tvb, offsetp, t, hf_x11_xvmc_CreateSubpicture_reply_component_order, 4, byte_order);
29369  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 12, ENC_NA);
29370  *offsetp += 12;
29371  listOfCard32(tvb, offsetp, t, hf_x11_xvmc_CreateSubpicture_reply_priv_data, hf_x11_xvmc_CreateSubpicture_reply_priv_data_item, f_length, byte_order);
29372 }
29373 
29374 static void xvmcDestroySubpicture(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
29375 {
29376  proto_tree_add_item(t, hf_x11_xvmc_DestroySubpicture_subpicture_id, tvb, *offsetp, 4, byte_order);
29377  *offsetp += 4;
29378 }
29379 
29380 static void xvmcListSubpictureTypes(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, guint byte_order, int length _U_)
29381 {
29382  proto_tree_add_item(t, hf_x11_xvmc_ListSubpictureTypes_port_id, tvb, *offsetp, 4, byte_order);
29383  *offsetp += 4;
29384  proto_tree_add_item(t, hf_x11_xvmc_ListSubpictureTypes_surface_id, tvb, *offsetp, 4, byte_order);
29385  *offsetp += 4;
29386 }
29387 static void xvmcListSubpictureTypes_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
29388 {
29389  int sequence_number;
29390  int f_num;
29391 
29392  col_append_fstr(pinfo->cinfo, COL_INFO, "-ListSubpictureTypes");
29393 
29394  REPLY(reply);
29395  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
29396  *offsetp += 1;
29397  sequence_number = tvb_get_guint16(tvb, *offsetp, byte_order);
29398  proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
29399  "%d (xvmc-ListSubpictureTypes)", sequence_number);
29400  *offsetp += 2;
29401  proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
29402  *offsetp += 4;
29403  f_num = tvb_get_guint32(tvb, *offsetp, byte_order);
29404  proto_tree_add_item(t, hf_x11_xvmc_ListSubpictureTypes_reply_num, tvb, *offsetp, 4, byte_order);
29405  *offsetp += 4;
29406  proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 20, ENC_NA);
29407  *offsetp += 20;
29408  struct_xv_ImageFormatInfo(tvb, offsetp, t, byte_order, f_num);
29409 }
29410 static const value_string xvmc_extension_minor[] = {
29411  { 0, "QueryVersion" },
29412  { 1, "ListSurfaceTypes" },
29413  { 2, "CreateContext" },
29414  { 3, "DestroyContext" },
29415  { 4, "CreateSurface" },
29416  { 5, "DestroySurface" },
29417  { 6, "CreateSubpicture" },
29418  { 7, "DestroySubpicture" },
29419  { 8, "ListSubpictureTypes" },
29420  { 0, NULL }
29421 };
29422 const x11_event_info xvmc_events[] = {
29423  { NULL, NULL }
29424 };
29425 static x11_reply_info xvmc_replies[] = {
29426  { 0, xvmcQueryVersion_Reply },
29427  { 1, xvmcListSurfaceTypes_Reply },
29428  { 2, xvmcCreateContext_Reply },
29429  { 4, xvmcCreateSurface_Reply },
29430  { 6, xvmcCreateSubpicture_Reply },
29431  { 8, xvmcListSubpictureTypes_Reply },
29432  { 0, NULL }
29433 };
29434 
29435 static void dispatch_xvmc(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, guint byte_order)
29436 {
29437  int minor, length;
29438  minor = CARD8(xvmc_extension_minor);
29439  length = REQUEST_LENGTH();
29440 
29441  col_append_fstr(pinfo->cinfo, COL_INFO, "-%s",
29442  val_to_str(minor, xvmc_extension_minor,
29443  "<Unknown opcode %d>"));
29444  switch (minor) {
29445  case 0:
29446  xvmcQueryVersion(tvb, pinfo, offsetp, t, byte_order, length);
29447  break;
29448  case 1:
29449  xvmcListSurfaceTypes(tvb, pinfo, offsetp, t, byte_order, length);
29450  break;
29451  case 2:
29452  xvmcCreateContext(tvb, pinfo, offsetp, t, byte_order, length);
29453  break;
29454  case 3:
29455  xvmcDestroyContext(tvb, pinfo, offsetp, t, byte_order, length);
29456  break;
29457  case 4:
29458  xvmcCreateSurface(tvb, pinfo, offsetp, t, byte_order, length);
29459  break;
29460  case 5:
29461  xvmcDestroySurface(tvb, pinfo, offsetp, t, byte_order, length);
29462  break;
29463  case 6:
29464  xvmcCreateSubpicture(tvb, pinfo, offsetp, t, byte_order, length);
29465  break;
29466  case 7:
29467  xvmcDestroySubpicture(tvb, pinfo, offsetp, t, byte_order, length);
29468  break;
29469  case 8:
29470  xvmcListSubpictureTypes(tvb, pinfo, offsetp, t, byte_order, length);
29471  break;
29472  /* No need for a default case here, since Unknown is printed above,
29473  and UNDECODED() is taken care of by dissect_x11_request */
29474  }
29475 }
29476 
29477 static void register_xvmc(void)
29478 {
29479  set_handler("XVideo-MotionCompensation", dispatch_xvmc, xvmc_errors, xvmc_events, NULL, xvmc_replies);
29480 }
29481 static void register_x11_extensions(void)
29482 {
29483  register_bigreq();
29484  register_composite();
29485  register_damage();
29486  register_dpms();
29487  register_dri2();
29488  register_dri3();
29489  register_ge();
29490  register_glx();
29491  register_present();
29492  register_randr();
29493  register_record();
29494  register_render();
29495  register_res();
29496  register_screensaver();
29497  register_shape();
29498  register_shm();
29499  register_sync();
29500  register_xc_misc();
29501  register_xevie();
29502  register_xf86dri();
29503  register_xf86vidmode();
29504  register_xfixes();
29505  register_xinerama();
29506  register_xinput();
29507  register_xkb();
29508  register_xprint();
29509  register_xselinux();
29510  register_xtest();
29511  register_xv();
29512  register_xvmc();
29513 }
proto_item * proto_tree_add_bitmask(proto_tree *parent_tree, tvbuff_t *tvb, const guint offset, const int hf_hdr, const gint ett, const int **fields, const guint encoding)
Definition: proto.c:10974
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
proto_item * proto_tree_add_uint(proto_tree *tree, int hfindex, tvbuff_t *tvb, gint start, gint length, guint32 value)
Definition: proto.c:4607
Definition: packet-x11.c:3297
Definition: tvbuff-int.h:35
struct epan_column_info * cinfo
Definition: packet_info.h:46
proto_tree * proto_item_add_subtree(proto_item *pi, const gint idx)
Definition: proto.c:6285
Definition: packet-x11.c:3307
Definition: packet-x11.c:3302
Definition: value_string.h:24
Definition: value_string.h:164
Definition: proto.h:759